INFRASTRUCTURE AS A CODE (DEVOPS)
We establish provisioning of the data centers and cloud-based environments using automation tools (ansible, puppet), automated orchestration of micro-services packaged as Docker containers and various data storages (relational and NoSQL).
DevOps is not only an engineering technique, but covers new institutional challenges.
The declared goal is to remove barriers between DEVelopment and OPerations. That’s why DevOps is often understood as operations, QA and development being on the same team. They sit in the same room, hold common meetings and communicate. The rapprochement and informal communication of team members is always useful and can lead to better results. However, there are also formal practices, the adherence to which allows for improvement of the delivery of releases, and, therefore, the satisfaction of the business.
These formal practices are often as follows:
- Continuous Integration
- Infrastructure as Code
- Continuous Deployment
- Configuration Management
- Application Performance Monitoring
Infrastructure as a code
Infrastructure as code is the process of managing and preparing the computing infrastructure (processes, physical servers, virtual servers, etc.) and their configuration through machine-processable definition files, rather than the physical hardware configuration or the use of the Wiki configuration tools.
The approach to configuring applications must be the same as for the code. Therefore, configuration files and environment variables should be stored in a centralized repository or version control system; possibly in the same location where the code is stored. When configuring the application, they should be taken from there. If there is a need to change the configuration on the server, the responsible employee does not enter it to change, for example, a connection to the database. He/she changes the necessary variable in the repository, and it then automatically appears on the server.
For variables that are specific to different environments (Dev, Stage, Production), synonyms are used, which can be substituted for real values.
Accelerate Delivery. The computer will quickly change and adjust the configuration.
MTTR – (Mean Time to Repair). Time to recover.