There are several reasons why companies are interested in DevOps. Probably the most important reason is the demand for faster software releases fueled by the prominent appearance of IT solutions in our daily lives. Non-IT companies now also become vendors of IT solutions in addition to consumers. IT solutions are delivered more and more as a service in an agile way instead of a product nowadays. Another reason is the notion that working together in developing and maintaining a system allows to release unplanned functionality and fixes more quickly and with less failures. Overall it gives more control and trust in maintaining solutions compared to a silo approach having run and change departments separated.
So, how exactly can DevOps being applied to shorten the release time while keeping quality up? There are three key factors that can help to accomplish this. The first key factor is agility. All stakeholders from business people to developers and maintenance engineers will have to change to an agile mindset. Working together in an agile approach like scrum. The second key factor is automation. Automate everything is the credo. Through automation every step in the process from building and testing to releasing and deploying can be done in a predictable and repeatable way. The third key factor is monitoring. Whenever something fails in production or anywhere in the development pipeline, all relevant stakeholders should be informed to take action immediately.
Cloud solutions were initially designed to outsource data centers, but they evolved into much more than that. Implementing these key factors can of course be done in any environment, but cloud solutions are especially good in it. This not only holds for public cloud solutions. A private or hybrid cloud solution is also possible, allowing to keep code, tools and services on premise when desired.
Let’s see how these key factors are supported in cloud platforms.
Agility
Cloud platforms offer a complete online development environment, support for work item tracking, code and component repositories, online and locally installed IDE’s, build and release pipelines, test tools and dashboards. Scrum is fully supported through Scrum and Kanban boards, issue and change management, backlog, sprint planning and burndown, etc.
Automation
All operations like creating environments, making releases, doing deployments, performing automated tests and tear down environments can be automated. The build and release pipeline can be fully customized giving the opportunity to implement continuous delivery and deployment. For example, when a new piece of code is committed by a developer, the following steps may be performed automatically:
- the build server is triggered to build it;
- an environment including virtual machines, databases and other services needed can be created;
- a software release can be created, available for everyone to deploy;
- the release can be deployed to the newly created environment;
- automated tests can be run;
- the environment can be tear down after usage, limiting the costs involved;
- the software can be promoted to production if desired.
Monitoring
Cloud solutions offer many dashboards out of the box, to monitor both the development pipeline and running services. Additional instrumentation of code gives the possibility to log detailed information. Based on this information, triggers can be implemented to respond to any event in a flexible way.
Because cloud solutions matured at the same moment in time the need for DevOps appeared, features for DevOps have been taken into account for cloud platform features. This makes cloud solutions a good choice for DevOps teams.