What is DevOps
We have often come across the buzzword ‘DevOps’ and businesses wanting to implement it as soon as possible.But it’s not as easy as any other framework.Today we try to understand why many DevOps Implementations fails.We would also list down points on how to prevent these failures.
DevOps is a culture and set of practices and should not be about just tooling.It talks about close collaboration between common set of tools and processes.We should not confuse it with creating a new DevOps Team.
We have an infinite number of definitions for DevOps.But still we see failures in its implementation.So where does it go wrong? .Lets try to discover them with below heads.
DevOps Implementation Challenges
1.Shifting Technology is complex.
DevOps toolstack is a challenging task.We might have legacy or hybrid environments.
The DevOps implementation needs to be compatible with various complex and hybrid solutions available like OCI and Azure.We should be able to manage these hybrid environments.Unless this capability is built we won’t be able to succeed.
As long as we have automated all the processes related to SaaS,IaaS and Paas we should be ok.
2.Cultural Change is difficult.
DevOps definitely brings a cultural change.With changing tools and techstacks ,its implementation requires change acceptance.
Firstly , It should be compatible with ongoing agile processes.And obviously people resist change.
Moreover, We need advocates who can present the advantages and ease of use for its implementation.
3.Process orchestration is an uneasy process.
We are moving to bigger and better platforms in the software industry.To manage large volumes of data and users we need better processes.
However, We also need better and new orchestration tools.Now to implement these complex tools we again need some advocates of these processes because these are very complex to start with.
4.Improvement around dependent systems is required.
As soon as we start moving towards softwares which can handle an infinite volume of data and users we also have to look for improvements in the dependent systems.
Above all, user experience is the first one which needs improvements.Accessibility and usability also comes as a top priority.
5.Relying on Quick fix solutions.
Hot Fixes should go away and the self healing process needs to be implemented to achieve DevOps maturity.Self healing and alert mechanism should be the way forward for the Zero Touch Deployments.
Therefore, We should be able to send alerts even before a failure has taken place.We should be able to predict our failures.
Common bottlenecks in software delivery process
Often,we come across various reasons for creating bottlenecks on our own.Lets try to list them out.
- Manual Activities
- Improper configuration management.
- Manual testing.
- Inconsistent environments.
- Knowledge gaps.
- Developer waits for QA and vice versa.
- Lack of shared tools.
- Difference in priorities.
To get rid of all these problems we should start measuring the metrics related to continuous DevOps.If we are not measuring then we are lacking vision as well as our weapon to resolve issues.
Let’s have a look at some of the metrics we should measure in order to measure our DevOps maturity.
- Deployment Frequency
- Lead Time
- Failed Deployments / Self Healing
- Change Volume
- Response Time
- MTTR – Mean time to recovery
- Change in user volume
- Change in Performance
- Rollbacks and Rollouts Percentage
- Dynamic Scalability
- DR strategies
In conclusion, I can only say that to prevent roadblock and failures in DevOps Implementation we should actually work on DevOps Maturity Model.
Most Importantly, we should not create another silo in a new team to remove silos of other teams.DevOps implementation should not focus on selling tools but only on selling the culture.
In conclusion, change will not happen over night.We will have to work towards continuous improvement