DevOps best practices and cases

DevOps roles and responsibilities, briefly about what DevOps have to do

Do you think that DevOps is a team of developers, operation engineers, and quality assurance specialists who can switch roles and do each other’s work? It is a little bit more complicated, but we will help you to understand. From its origin as methodology, DevOps means that these three positions will work on optimization, without clarifications, concerning roles, team composition, or responsibilities. That’s why many companies tried to combine developers, operation departments, and QA, acknowledge them with each other’s tools, and hope for improvements. DevOps won’t work in that way.

Consequences of development of DevOps practices

DevOps is a set of practices, methodologies aimed to improve the collaboration between these departments. Initial problem was that developers and QA team end their work as soon as the code successfully passes all tests. After that, it was the work of Ops specialists to make it to production, maintenance, and support of the application. This problem was actual for many companies, as this approach was widely spread among companies. DevOps was trying to solve this problem, but not by just combining the Dev with Ops, but by implementing core DevOps principles:
  1. Infrastructure as a code (IaC) – all server environments and configurations are described in files and stored as a code. They can be used and modified by any member of the team to create server infrastructure. It is possible to state that these are templates and they can increase the productivity of an IT team. By the way, we have created an article in which we described how templates can make the life of your DevOps team much easier.
  2. Continuous integration (CI) – it allows the IT team, to integrate new features and requests from stakeholders and end-users continuously in a form of iteration of software development.
  3. Continuous delivery (CD) – is an automatic delivery of a working code to the end-user. The code is delivered after it passes all the tests and without any additional actions from the DevOps. It allows us to significantly reduce downtime and improve user experience.
Based on these practices we can assume that DevOps is about process and practices, not about roles. Everyone in the DevOps team writes a code, but Ops specialists are responsible for infrastructure code, Dev and QA write automated tests and application code to ensure quality. This complex DevOps approach differs from the various combinations of roles of an IT team.

DevOps roles in a team

DevOps’ should have one goal: to ensure the security and productivity of cloud infrastructure. They are responsible for all bottlenecks of the production pipeline and have to evaluate risks even from the start of the production process. DevOps builds a pipeline where each new piece of code passes tests and uploads to a repository and then pushes it to production. DevOps specialists think in advance about how the app will work, about possible bottlenecks, and how to avoid them. That is why DevOps concentrates on time to market, and writing of pipelines, to ensure a stable and reliable environment.

To make the DevOps team productive it has contained several roles. They are not mandatory, but if you follow this guide, you probably can improve your production process. These roles are:
  1. Product owner – responsible for interaction between a team and stakeholders. A person who can interpret the requirements of the business to the tech team. Also, the product owner is a person who understands how the app has to work and what infrastructure it requires for support and delivery to customers. The product owner can be from the client-side as well as from the tech team.
  2. Team lead – is the position of the most technically advanced person, who can estimate required technologies and delegate tasks among team members.
  3. Cloud architect – the person with practical experience in building cloud infrastructure, understanding of required technologies, and how to use them to support the application.
  4. Site reliability engineer – specialist whose major task is to ensure in availability and stable performance of an application in large-scale infrastructure. 
  5. DevOps system administrator – this is one of the major roles, as it installs and supports infrastructure, monitors the usage of resources, and constantly improves the system performance.
This team composition makes it possible to achieve the required performance for a big project, however, in particular cases structure and role distribution may vary.

At Cloudy, we consider all aspects in every case and collect the right team for every project. Contact us to learn more.