Methodologically, Devops supports the principles of Agile and Continuous Delivery – continuous software delivery. Agile methods such as Scrum, Kanban and their variants can be used to organize processes. In terms of tools for automating the processes of development, testing and deployment, the following technologies and popular means of their implementation are used.
- Distributed version control (Git, Mercurial, Subversion, CVS);
- Containerization (Docker, Rocket, Kubernetes);
- Continuous integration – building and testing the end product (Jenkins, TeamCity, Bamboo);
- Infrastructure management as code (Puppet, Chef, Ansible);
- Virtualization (Vagrant);
- Cloud Resource Balancing (VMware DRS).
The DevOps engineer or devops service provider is responsible for executing the devops processes and synchronizes all stages of the software product creation, from code writing to testing and release. Such a specialist interacts with the development and administration departments and automates the execution of their tasks by implementing the above mentioned software tools. You can learn more about DevOps-engineer’s area of responsibility from other sources.
Since DevOps-engineer combines many professions (administrator, developer, tester and manager), he must have experience in administering different operating systems and cloud platforms. He also needs knowledge of network technologies and the ability to write scripts and code in several programming languages. These competences are shared with other members of the Agile team.
Who uses DevOps and where?
DevOps can be useful for almost any organization involved in application development or managing a large number of servers. Large IT giants hire DevOps engineers (Amazon, Adobe, Google, Facebook, etc.) and technological enterprises in other fields (Netflix, Walmart, Etsy, etc.).
Small businesses and startups, whose goal is to launch a minimum viable product on the market faster, to test a new idea while doing without DevOps engineers. This is due, in addition to organizational and methodological factors, also to the financial side: DevOps engineers earn the most in the industry. However, you should understand that if you use this tool correctly, you will have the opportunity to reach a new level and achieve different results from the usual processes.