A new strategy to develop software, should be followed by a new strategy to deploy software. And a Microservices initiative constitutes an excellent opportunity to also implement a DevOps approach to hosting and deployment of software, some even say that in order to be successful with a Microservices initiative you will require DevOps. In this blog post we will exploit why this is so and how a DevOps way of thinking can be implemented alongside your Microservices initiative.
DevOps is the concept of combining the resources and competencies from the traditional Development and Operations departments, to work closer together. The idea is to shorten release cycles, increase end-users quality experience and decrease error handling times. This is not a new concept to the developer or operations community and Redpill Linpro has previously launched our own concept on how to become ”DevOps Ready”. This concept includes a few other potential benefits together with some hard advice on how to go about to be ”DevOps Ready”. We will not to repeat too much of what has already been said in previous texts on the DevOps concept, but rather focus on why this concept plays so well with your Microservices initiative and what can be won implementing these concepts jointly.
Decrease the size of the chunks
A very important objective of a Microservices initiative is to decrease the size of the chunks of code that are deployed to fulfill a specific function. The idea is rather to isolate specific functionality in specifically designed Microservices that performs distinct assignments. The reason for doing this is to decouple functionality and to be able to do modifications and additions to functionality without the risk to affect other applications/functions. This decoupling of functionality also enables developers to release code much more often, since a faulty release will only affect that particular microservice. From an operations perspective this also decreases risks. If a microservice can be deployed without seriously affecting or risking to destabilize the entire operations environment, it is easier to hand over some of the responsibility for the application deployed in the hosting environment to developers.
Implementing a DevOps way of working is not only about technology or discussions about responsibility, it is also a question on culture. Whereas in traditional IT organisations, there have often been a brick wall between development and operations, working in a DevOps style means that we also have to accept a culture of sharing and working together to improve the end-user experienced quality of the application as a whole. When working together, developers can gain access to metrics previously only in the hands of operations and operations can get involved earlier in the development process and gain an understanding to challenges faced during development. Maybe we can help each other out with input from respective areas of interest/expertise?
It is often a good idea to implement a cultural change when we are already working on another change. That change could be your Microservices initiative. While introducing a new approach to software development, you might as well do an overhaul on your IT organisational structures as a whole. Our recommendation on how to do this is as always to ”Think Big – Act Small – Scale Fast”.
We have already in previous blog posts and steps in the ”Microservices Ready” model suggested to start with a smaller team and do a PoC that can be scaled up when successful. If you want to pair your microservices initiative with a DevOps way of working, you should make sure from the start, to include this perspective in the PoC and build up of your Microservices initiative. If you are able to successfully implement a DevOps approach with your first microservices team, make sure to include methodology, routines, tooling and processes already from the beginning and in guidelines as mentioned in the Microservices Ready model step 3 – Guidelines.
A great opportunity
To summarize and not to repeat to much of what have already been said on DevOps in previous blog posts, let’s just conclude that implementing a Microservices initiative/architecture also constitutes a great opportunity to implement a DevOps approach. Potential wins are shorter release cycles, decreased time from requirement to deploy, increased end-user experienced quality and decreased error handling times.
Learn more about our Microservices Ready model here
- Microservices Ready Model Step 1 – Strategy
- Microservices Ready model step 2 – Organisation
- Microservices Ready model step 3 – Guidelines
- Microservices Ready model step 4 – Reference Architecture
- Microservices Ready model step 5 – API Management
- Microservices Ready model step 7 – Test