DevOps best practices and cases

Why do I need consultants if I already have DevOps?

Unfortunately, having a DevOps-engineer does not guarantee the complete absence of problems in this area. Very often people may have a blurred eye, or they may not be able to choose the right tools, or they may not have an understanding of how to solve this problem more effectively for business, rather than just provide a technical solution.

Why do you need DevOps?

Main reasons:
  • automate deploy
  • make a fault-tolerance cloud system with automatic scaling
  • avoid the service failures (downtime)
  • remove security holes
  • administration of local and cloud servers
  • improve the code quality of the solution developed.

However, your DevOps may not do the best job, most often we have seen such problems:
  • Not using actual technologies: manual deploy or on shell scripts (without Docker), saying: “You do not understand our special case!”
  • Use of new technologies without the need: we'll be like Google, let’s run our microservice in Kubernetes
  • Weak understanding of System Design and the importance of elements: why do we need CloudFront, the site speed is ok, but it will not for users in another part of the world!
  • Refusing to use cloud solutions: no, they are very expensive, we'd better put the server here and I will configure and maintain it (all my working hours), but do not pay the money to AWS

We can go on forever and ever with examples. However, as a rule, the difference between a consultant and an employee is that the second may not always be interested in building the best architecture and choosing the right technology. 

How does a consultant work?

DevOps consultant usually has extensive experience in DevOps and has seen many bad and good solutions. Regardless of the payment model, the consultant is interested in helping the business, because payment for his work depends on it. A hired employee often does not care so much about it.

So the consultant focuses on solving both technical and business problems, taking into account business requirements, complexity of implementation, time, and other costs. The consultant can perform tasks either on his own or work together with Dev and DevOps teams, taking on responsibilities such as setting goals, helping with the choice of tools, explaining his solutions, and sharing his experience and knowledge.

When you hire a consultant, you do not hire another employee (a couple of hands), but you hire a competent specialist to solve your task (obtaining a partner in essence). Therefore, there is no need for HR costs, and you know how much it costs to hire and how long it takes to close a vacancy. And when you are looking for the right specialists, the risks of unattended systems malfunction increase, all the above factors should be taken into account.

Case Study: The task is resolved by the consultant/employee

Let's take a look at this situation:
On a new project you need to create software consisting of a mobile application, admin web page, a database and an infrastructure for all this. This is a complex system that must also be integrated with other customer projects. The task of DevOps in this case is to give clear recommendations to developers on key points which should be realised in the app that it was scalable and easily adjusted. In addition, it is worth remembering about building the infrastructure for the project, CI/CD processes, security and a hundred other things. Of course, the entire development cycle has a certain deadline.

Hired DevOps Reaction

Developer tasks become a "bone in the throat" or an endless stream of communication, but you have been working on Cloud tasks that are solved faster and are familiar to you. In this way, the developers have been working for some time without understanding your requirements for an application, such as what it should be. The dev team has already made the first build, which unfortunately cannot be adequately deployed in production. You have delayed the inevitable, and the pressure is increasing. When you don't have any more tasks left and you can't solve them properly, you finally go to Project Manager to express your concerns about the possible failure of the project presentation. You feel much better, but a lot of time is wasted. 

Negative impact:
  • PM is disappointed that you came so late with a problem you initially knew.
  • PM respects your technical skills, but now he will need to come up with a solution in a short time.
  • PM has no idea how to solve this problem

In the worst case, it will be necessary to postpone the presentation indefinitely until a solution is found, as a result of which the company may lose its status and reduce the level of trust of stakeholders.

DevOps Consultant Reaction

When you analyze your tasks, you realize that you do not see a suitable solution for the application deployment tasks that will be developed soon, so you decide to talk to the Project Manager (PM).  It's a good rule to come to the PM with potential solutions, not just problems. During the meeting, you present the problem in as accessible a language as possible and explain its impact on the product presentation. Then you present your options for solutions that will help the presentation succeed, describing their pros and cons. Together with PM, you define a further action plan by considering such cases:
  • Provide clear application requirements from DevOps
  • Postpone product launch for very important reasons
  • Cancellation of product development
  • Rework product architecture and key points with the Dev team

Summing up, we can conclude that the consultant has a rich technical experience and a good understanding of the business, all these skills will allow you to save money through intelligent solutions, competent goal setting and sharing experience with your team. Also, we recommend try to get rid of the common misconceptions about consultants with the help of this article.

If you have any doubts about the quality of your infrastructure don't hesitate to contact us to discuss your task in more detail or schedule the call to make the real-time audit of your case.