The DevOps Cycle 1: Management, Planning and Continuous Integration
One thing producing innovative movements in companies is DevOps. Let’s now clarify the phases of the iterative DevOps cycle: Planning, Development, Continuous integration, Deployment, Operation and Monitoring.
Phases in DevOps
It’s important to understand that it’s one of multiple representations, not the definitive canon, simplified into 6 main phases. However, it’s not a cascade cycle where the phases are separated by boundaries. Nor are initiated when the previous one has ended completely. Now, let’s look at each DevOps cycle phase in more detail.
Every project needs a vision that indicates the ultimate work goal to its participants. Defining a set of functionalities giving each iteration value, the criteria to be fulfilled and the end – for each project phase. A Living Product Stack which continuously supports a process of gardening – from a business point of view.
This feeds the different phases of development and operations. Also addressing changes and evolutions according to a continuous improvement process, based on continuous feedback. It’s also important that Business and Management get training on tools and metrics in order to have enough visibility of the project’s development.
Development – Building code
This phase is where the project gets built. Writing code, designing infrastructure, automating processes, defining tests or implementing security. It’s where, at present, you’ll find the most important effort in automating repetitive or complex actions.
However, the most important part of this phase is evidence. Either in a management application, operations with data or in the deployment of virtual infrastructure. Developers will store code in a code manager that allows historical viewing, branches, versioning, and more. But this isn’t enough, and each piece built must include its own automated tests.
Meaning, the mechanisms with which the system itself can ensure that what we have done is correct. That it doesn’t fail or negatively impact other parties, meets the acceptance criteria, and points out developmental errors.
Continuous integration – aka. peaceful sleep
Continuous integration is to automate the mechanism of review, validation, testing and alerts of the value built in the iterations, from a global point of view. The arrival of DevOps and the concepts of Infrastructure as a code, make IT also a full participant of this phase.
This is the unique functionality or feature, built in the development environment, together with the automatic tests that ensure it works well. Then published in a service that integrates it with the rest of the application.
Tests include ones for each functionality, integration tests of the whole application, functional tests, acceptance tests, quality analysis of the code, and regression tests. And if something fails, the early warning will pop up, indicating which piece/ line is breaking the system.
Ultimately, the closer you get to the moment of initiating the critical path of deployment, the quieter you get. Because more evidence is included in the work. Stay tuned for part 2 of the DevOps Cycle tomorrow, where we’ll discuss the final three phases: automated deployment, operations and monitoring.