The official date of birth of the term DevOps is considered to be 2009, when Belgium hosted the first “Devopsdays” conference. A year later, those wishing to be typed already on 4 such events. In 2017 - 47 conferences around the world, including in Moscow. So what is DevOps?
DevOps is not a profession, but a culture, a philosophy, a method — a set of practices that brings together software developers, testers, and people responsible for its maintenance. Hence the name - an acronym for “development” and “operations”. The main goal is to reduce the gap between the work of all IT departments of the company, optimize responsibility for the tasks “at the intersection” of development and operation, increase productivity, reduce the number of errors, and, as a result, meet the needs of the business and the client.
The standard process is divided into 5 stages:
• analysis of project requirements;
• design;
• implementation;
• product testing;
• implementation and support.
')
In this case, the interaction, as a rule, is carried out at best between neighboring ones. Thus, if after the release of the software, errors are detected in it, the issues to the hardware and system administrators, then to the testers, are considered first, and then it comes to the developers and planners. When you have one release per year, that's okay, but in modern companies, productivity reaches dozens of releases per day. Finding a quick fix or at least a culprit in this situation is almost impossible. There are only two solutions left: to score the staff with dozens and hundreds of sysadmins and intermediate workers who would have time to track each release, which is extremely doubtful, or to minimize mistakes by changing the approach to records management as a whole.
DevOps is a modern solution to this problem. He changes this approach to a cyclical and, at the same time, end-to-end. In such a production process, all stages are interrelated, they require precise organization and control. That is, developers, in addition to the main activity, should participate in the deployment, system analysts - in development, testers - in customization, etc. The implementation of the DevOps methodology is a complex and painstaking task, implemented both with the help of tools and specialists. This, by the way, is its main difference from Agile, where it is enough just to change the way of thinking, the organization of labor, without necessarily introducing additional personnel or software systems.
Prior to Russia, the practice of introducing DevOps began to reach about 5 years ago, so the need for DevOps - engineers is growing steadily, the competition is still low, and the demand for specialists has not yet been formed and is also at the stage of constant growth.
Another plus of learning DevOps is the lack of fundamental training. Despite the attractiveness of the methodology, many specialists are former developers who want to expand the scope of work. But much more often in DevOps there are system analysts who have little work with code in the shell and bash. In general, in order to master this methodology, it is not necessary to have a serious background. It is enough to have experience in one of the degrees of software life and to know, at least in theory, related disciplines.
The practical side of the issue is just dedicated to our course. The program is divided into 5 logical levels. At first, we focus on the basic things of DevOps - chat rooms, version control systems and tasks, workflow visualization, cloud services, secure remote connection. In general, everything without which it is difficult to imagine modern collective programming. Of the products, we will take a closer look at the Google Cloud Platform, Packer, Slack, HipChat, Rocketchat, and of course Git.
After laying the foundations of development and administration, we move to the second level, where we discuss infrastructure settings and configuration. Using the example of the Terraform utility, we will learn how to create, modify and assign versions to components of our system and work with remote backends. In addition, at the first two levels, we consider the BSA model (Base-Service-App): from the base level to configuration using Ansible.
At the third level, we will start working with Docker - a system for automating and deploying applications, in particular, with Dockerfile, Hub, Compose. Here we will consider the concepts of continuous integration and automated delivery conveyor, we will touch upon the testing of containers a bit. Thus, already at this stage we will lay the proper organization of software release according to the DevOps methodology.
Level four is devoted to such an important procedure in the life of each product, as monitoring followed by the identification and recording of errors. To do this, we first define what needs to be monitored, consider the most popular monitoring, alert and logging systems. Of course, in practice we will learn how to install, configure and work with them.
At the last fifth level, we will reach the summit of DevOps-mastery - orchestration and deployment and scaling strategies. For this we need Docker Swarm, Service Discovery, Kubernetes and Gitlab CI.
In our course, we have tried to fully demonstrate the practice of organizing software production according to DevOps, because it is here that the most questions arise. Therefore, if you are interested in this topic and want to get acquainted in practice with the “right” development cycle and software deployment, it's time to join the DevOps culture - welcome
to our course .
Less than a month is left before the course starts!