today's post is about DevOps!
Do you already know about the DevOps culture? If not, Igor Araújo explains in this post right here. As the name suggests, the concept of DevOps is to establish a healthy and collaborative relationship between the development team (Dev) and the infrastructure/operations team (Ops).
DevOps is a trending topic. To understand the causes, we have to take a look at the current process of development. Well, the current processes, which had been running for over 20 years are all based on static systems. Many of these systems were prepared and only delivered at the end of development. Any necessary change would take another big time to be performed.
The world has changed a lot, new technologies emerged, the electronic components have become part of our day, and now we have dynamic systems. The systems are in constant updates. And everything has to be very agile, after all, nobody wants to be left behind.
Very well, now imagine a scenario where the infrastructure team and the development team are completely separate, they does not collaborate and they are not walking together. There are high chances of appearing problems, do you agree?? Allow me to describe one, at least: the development team has prepared a new version to be delivered to the customer with a new feature. This new version required the addition of a new column in a table, but the operation team, despite having been instructed, did not perform the procedure to add the column, and then obviously the system will "crash".
So that this problem does not occur, the companies that still maintains this division – typically development and infrastructure/operations – often makes the process "bureaucratized" for the updates arrive at the end users. And then begins the chaos … Imagine a resource that can only be granted by the infra employee D. The employee A asks for B, who asks for C, who finally asks to D. He performs the operation (correctly, if the request arrived correctly up to him) and then tells C to tells B to tells A that the change was made. All of this mapped within the highest standards of software engineering, but demanded unnecessary time and is not 100% guaranteed that everything is the way A had planned.
The DevOps concept aims to reduce problems like this, since we would have a multidisciplinary team (development aggregating operations knowledg) with possibility to directly perform the necessary updates in the tables and be independent to deploy in any environment. This scenario makes it easy to the team to continuous delivery a quality product.
If you read the post this far and is identified with the chaos scenario (lol) or a bureaucracy that slows the updates to the end users, here's some tips you should include in every release you prepare:
- Basic system deploy manua. Even though the infrastructure team is already used to deploy the system, this information is not too much;
- When there are changes in the deployment process, or any extra routine that need to be performed, or directory creation, or some new environment variable, include that information separately to make it stand;
- Scripts for database updating, whenever. Also keep a history of what has changed (structures and functions) in each version.
Thats it. And you, are already adapting to a more dynamic world?
See you soon!
– Revista Mundo J Ágil – coluna tendências em foco – edição JAN e FEV