Currently there are a lot of companies going through the process of performing Data Center consolidation and/or Cloud migration of their IT systems. This generally aligns with the goal of cutting costs, being more agile to adjust to business needs, provide faster provisioning, better management and so on.
One of the things which is generally considered is the low “hanging fruits” which in this case is generally the infrastructure pieces leaving all the applications as they are. This is a good way to start but also potentially can create other issues like “fat fingers” since with a better provisioning and self-service IT systems now you start to get everyone with the ability to create new instances and suddenly you loose control again over what exactly is in your data center or in your cloud. You start to have questions about the governance of the process because people tend to remember to provision new instances to test something but also tend to forget to release it when they are done. This actually causes increased costs and requires a very good governance process.
This means that by only going for the infrastructure is not a bad thing, exactly the opposite but requires that you perform the correct steps and put in place the correct processes make sure the end goal you were trying to achieve is protected. For that you need to think beyond the infrastructure and take that time and project to perform also a mindset change from IT Operations to DevOps and remove completely the distance between the Development and the IT Operations (Monitoring, Management, Support and so on).
Agility and DevOps
DevOps has been an emerging trend which promises to deliver value quicker to the customer which actually means at the same time more agility in the full process.
But what is DevOps?
Everybody, like in any other new trend, seems to have a different idea of what it is.
Here are some typical ideas I’ve heard:
- DevOps is solely about development and operations collaborating and bridging that existing gap.
- DevOps is only about providing automation
- DevOps is about doing small and frequent deployments
- DevOps is just Kanban for Operations.
All of those have some truth in them but in my opinion DevOps is based on the following three important things:
It’s about a different mindset when approaching all the process, from development to operations. Is about becoming a real team and stopping the silos and the typical expressions like “The code is Code Complete so now that’s a problem for Operations”.
Actually it’s all about providing a shared goal for all the team involved in a specific project because now their goal isn’t if the code is complete or not, isn’t the number of tickets solved in a determined time. It’s really about what are the business KPIs which this project need to drive, and so everyone is in the same boat. Developers now are interested in the code quality and the number of defects because that will affect the business KPIs and so their targets. Operations are really interested in participating in all the steps of the project and even during the development understanding where things are, which technologies are being used, what telemetry is being provided by the solution so they can better plan for it.
The bottom line is that it’s about shared business goals for the complete team and a different mindset or culture.
DevOps is all about trying to find new ways to improve efficiency and better support for the business.
All the processes are focused on how to deliver better business value quicker to the customer. How to use the right set of processes in order to enhance the quality and speed of everything which is built, operated and supported. How to actually ingest all the feedback and patterns seen during the operations cycle into the product backlog so that they can be quickly adjusted and deliver more value.
This means it’s all about delivering better processes to support the different mindset or culture.
This is a very important part because tools are a way to provide a better support to the processes and people. It’s a way to allow people to be more productive and be quicker understanding what is the best way to achieve the goals and keep measuring how all the processes are being used and tracking against the real goals, which are making the business successful.
So what does this mean for the Agility and DevOps relationship?
This means Agility and DevOps are actually related because in order to have agility is not only about using SCRUM/XP or any other agile methodology. It’s also about changing the culture which in this case should have started already when they started using agile methodologies. (You would be surprised with how many times this isn’t actually the case and you have SCRUM being done by project manager on a waterfall way. An example is when someone has one sprint called “Stabilization sprint” or “Performance Tuning Spring”. Why are they needed, wasn’t there a Definition of Done (DoD) in the first place?).
Importance of DevOps for DC Consolidation or Cloud Migration
Having said that it should already be pretty obvious why is it important to think about DevOps when doing a Data Center Consolidation or a Cloud Migration. The reason is actually simple. You don’t want to do the same mistakes again and be in the same position in 1-3 years from now.
When doing a Data Center Consolidation or a Cloud Migration it is important to look at the infrastructure but also:
- Applications which it is supporting
- People mindset and culture
- Processes and tools
- Key business success metrics and goals
Also it’s important sometimes to have someone with a different mindset look at the plans, since too often I see people which have been doing the exact same thing for several years being the one directing these projects. It’s not that they aren’t important, it’s just that with time the vision about a specific problem tends to create a tunnel vision and breaking that is very important.
So in summary, Data Center Consolidation or Cloud Migration isn’t just an operations problem, it’s actually something which is going to potentially impact the whole organization and for that reason is a very good time to think about people mindset and culture, processes and tools because you really don’t want to be doing this process over and over again. To achieve this DevOps is definitely the way to go, breaking the mentalities and embracing the business agility and creating shared goals for the teams so that what really matters is supporting the business and not the underlying technologies and infrastructure.
In future posts I will be talking about some tolls which can help implement DevOps processes better and provide the required visibility so that those goals are achieved, but there is something I won’t be able to help and that is changing the mindset and culture of people because that is something each person need to understand and embrace. Having said that my goal is to try to show how important this is and how this trend isn’t only another “buzzword” which someone made up, but really something which can make you and your company more successful.