Demistify DevOps!
Apr 1, 2016
All sectors are concerned by the digital transformation! That’s the reality of all companies.
In our recent report about DevOps, we write about this extensively and show how this digital transformation takes place in a context where companies need to always deliver more value – i.e. more services – to the business or customers, faster and faster with even more flexible teams.
This implies new constraints and new challenges to these companies. They have to develop applications, services that:
- Run on heterogeneous environments
- For always decreasing budgets
- But taking into account continuous changes of the requirements
- And Providing new release in short iteration
- That were Developed by distributed teams
- For the same quality and availability level
My role, as an architect, in this context is to guarantee that the time spent to build a solution/application is optimized – i.e. shorten – in order to reduce the costs. But the tricky thing is that the solution still needs to guarantee the same high level of quality.
This means that the recommendations and best practices for the technology used to build the solution are applied. In order to guarantee all of that the review and verification process needs to be automated all the development process long : from the requirements gathering to the solution deployment, through the design and the development steps !
But how to reach these objectives? What kind of tools or methodology exist? Is it an organizational problem to solve ?
In fact, the three areas contribute to reach the goal by applying a DevOps Approach !
Then what is DevOps ?
This is an acronym to gather a mix of new and established concepts in a trend and approach that spreads quickly across the IT community. But there are lots of acronyms for which different people have a different and often opposite view of its meaning.
But I am sure of one thing, that’s not a tool that you can buy and deploy to solve all your development process concerns : design development, build, maintenance, deployment and change request process !
Tools are at the art of DevOps, as they help to automate the different steps of the development process with the defined constraints and goals.
DevOps is an approach that mixes the management of resource (to give them a specific culture), of process/organization (to build integrated team, mix all the profiles) and tools. The only goal is to build and deliver the solution that bring the best value to the customer, in a continuous way!
DevOps is extending ALM (Application Lifecycle Management, another acronym), that focusses on the management of the solution/application development process, to the application management and environment management on which the aforementioned application is running.
In my next blog posts, I will write in detail, the different viewpoints of a DevOps approach, i.e.:
- The resources, as actors involved in the DevOps approach, and how they will be organized
- The process and how the different development steps are performed by the different resources
- The tools : what kind of tools can help to put in place a DevOps approach
A last question is still pending : what are the pre-requisite to put in place a DevOps approach ? Could we deploy the DevOps approach block by block (the tools first, then the process or other way round)? Or should we deploy it with a global approach in a single step ?