Development is expensive, and for it to pay off, you need to get products to market quickly, stay ahead of the competition, and be flexible in responding to changing user requirements.
DevOps can help with this – a unique approach to development that allows you to automate workflows and quickly release finished IT products. analyze what this approach is, what problems DevOps solves, and what tools are needed for its implementation and implementation.
What Is DevOps In Simple Terms?
The classic development process consists of three separated stages:
- first, a team of programmers – Dev – writes the code and builds it;
- then the QA / QC team of testers takes the code from the programmers and tests it;
- Finally, the team of administrators – Ops – installs the tested code on “production” servers and serves it to users.
The problem with this approach is that all three stages: they poorly coupled:
- programmers write code, and they don’t care what happens to it next;
- testers can test the wrong version of the code for three days because they forgot to transfer the new one;
- Administrators install the code on “production” servers, but nothing works: the configuration is not the same as that of the testers.
And development is also slow because tasks between programmers, testers, and administrators are transferred in groups and not in a stream. For example, administrators first collect many complaints from users and only then pass them on to programmers. Programmers fix, testers test – and it takes a long time to update with bug fixes.
Plus, tasks are sent and received by live people with limited bandwidth. And a “bottleneck” may arise – tasks will endlessly accumulate in one department. For example, if testers do not have time to test, then both programmers and administrators will be out of work.
To fix all this, DevOps appeared – it is a unique approach to organizing development teams. Its essence is that developers, testers, and administrators work in a single stream – they are not responsible for each stage. Still, together they work on the release of the product and try to automate their departments’ tasks so that the code moves between stages without delay. In DevOps, responsibility for the outcome is shared between the entire team.
In DevOps, tasks continuously move between development departments: the tested code is immediately released for release. The reports collected by the administrator about the application’s operation turn into a plan for developers.
For DevOps to work, you need to establish continuous communication – a pipeline between developers, testers, and administrators. It requires automation tools to help you more efficiently transfer code, test it, and deploy it to servers.
DevOps is not just a philosophy but a technology. It is not enough to say: “We work as one team” – it is also necessary to provide the tools for such collaboration. Typically, a dedicated person is hired to set up such tools and processes – a DevOps engineer.
“An example from practice: in 2018, one of the small companies in the advertising market decided to order the development of a CRM system adapted to its business processes. Employees drew up requirements, chose a contractor. Development and implementation took about a year, and during this time, the business processes have changed. The newly developed system needed to be redesigned, the company again turned to the contractor – and the new development took another six months.
If the contractor had used DevOps, would have launched the CRM system in six months, the product would not have to be reworked, and the company would have saved at least 20% of the development budget.