DevOps is a practice for developing a system that allows development and operation (Operations) teams to cooperate and respond to business demands more flexibly and quickly. While initiating DevOps, the Development team and Operation team collaborate with each other. This will increase the value of the business by software/system to be developed and operated.
When you hear ‘DevOps’, you might think of tools such as Opscode’s ‘Chef’ and Puppet lab’s ‘Puppet’. In reality, these tools are part of DevOps. The shared tool improves the speed of information sharing and creates an environment that enables fine development. The development and operation process is essential for creating an environment where both parties can develop and operate according to the rules.
Two Universal DevOps Principles
- Collaborate across teams – Development, Operations, Quality, and Management etc.
- Automate everything you can – Builds, Deployments, Infrastructure etc
DevOps and Infrastructure as Code
The idea of DevOps is not to deny the existence of development experts and operation experts or to break down each team in one stroke and make it into one team. Rather, the experts will proceed towards the same goal and cooperate closely, recognizing each other’s specialty areas as an expert. By doing so, one can accelerate business by practicing smoother development and operation.
However, in order to promote mutual understanding between development and operation, it is necessary to grasp the technologies that each other specializes, even with just the outline. In order to do that, experts will get reasonable compensation. In recent years there have also appeared techniques to lower the barriers of each area.
Differences in Roles, Missions
The developer’s mission is ‘to make better things’ and one cannot make perfect things from the beginning. In addition, there are also changes in the business environment surrounding, so it is necessary to continually change, modify, and add inevitably. Meanwhile, the mission of the operator is to make the system operate stably.
One should always remember that DevOps is a development and operation process, organizational culture and shared tools. Create an environment where organizational culture, development team, and operations team can respect and cooperate with each other.
Essential Organization in DevOps
The role of the development team and the operation team in business is very different. Even within the same information system, the development team has the role of releasing the service more and more, while the operation team has the role of stabilizing the performance of the service. Due to the difference in these roles, it is easy for the development team and the operation team to have a conflicted relationship.
Normally, developers are not given the authority to touch the system to avoid system failure due to accidental operation. Because of this limitation, developers must ask the operator to obtain application logs, even to investigate the problem.
On the other hand, often the operation department collectively handles multiple systems with few people. From the developer’s point of view, there is only one operations department, but from the operations department, there are multiple developers.
Tools supporting DevOps processes
In order to realize the process of DevOps in recent years, various tools supporting each process are emerging. There are also reasons for the presence of these tools in the background that the word DevOps is increasingly used.
For example, in the development process, there are integrated development environments (IDE), an editor capable of simultaneous work of multiple people, a vagrant that provides development servers, and Docker that packages and provides applications with the environment. In the testing process, tools for automated testing and services and CI / CD for providing virtual environments of various devices are provided.