DevOps: A Continuous Delivery Cycle
DevOps represents the movement of uniting Software Developers and IT Operations professionals to collaborate on building an automated continuous delivery process throughout the building, testing and releasing phases of software delivery.
What are the three pillars of DevOps:
The three pillars of DevOps are culture, automation and measurement and each are necessary for the overall goal of continuous development and delivery to survive.
The culture required for DevOps to succeed is one that removes all the silos existing in the software delivery process. When new business requirements are passed on to development teams who code and pass on their work to testers before operations hears any word of it, the lack of communication and collaboration creates chaos, or at least inefficiency. Suggested practices are to physically bring people together to ensure that the requirements will be met by the development team, keeping in mind security while the operations team can assure that any necessary changes to scale and keep the software updated are known ahead of time. When perfected, a culture of openness should ensure that every team is always working on something to keep the pipeline of continuous software delivery flowing smoothly.
To ensure that organizations have enough bandwidth to be able to continuously work on developing and deploying new software, automation is key to guarantee previous releases do not require time and resources to be maintained and updated. An apt analogy is that if your software applications were to be animals, you would rather have cattle than pets. Pets require unique individual attention and if you continue to acquire more pets, the headaches involved with walking a dog, cleaning a bird cage, declawing a cat etc… can be time consuming and complicated. Automated software applications are like a herd of cattle, they all require the same resources, don’t require individual attention and can be easily monitored and maintained. Automate: don’t have pets, have cattle.
The final step to full DevOps implementation is measurement or monitoring which can oftentimes be ignored or underserved. The importance of measurement is becoming increasingly apparent as companies and IT professionals are realizing how important monitoring IT infrastructure leads to savings in maintenance and repair. Effective measurement can solve problems before they start by tracking uncharacteristic variance in patterns of data transfer alerting administrators to bugs or security threats at the earliest sign of any issue. While measurement and monitoring can be difficult to set up, there are many services that are tailored to assist in DevOps initiatives that allow for consolidated monitoring of all automated systems making it easier to make sure your ‘herd of cattle’ are safe and operational.
So what are the end results of effective DevOps implementation?
When a culture of DevOps has been accomplished, all parties have a better understanding of what goes into the full software lifecycle. This point is particularly appointment for people providing business requirements that often don’t provide the necessary information when factoring in the realities faced by developers and Ops teams. Furthermore, the lag between each team should be minimal to none and upcoming projects should be foreseen ensuring all teams are busy and working towards common goals.
Finally, what does DevOps have to do with my previous articles on DronaHQ’s mobile Container as a Service and Docker Containers? DevOps is now heavily relying on the use of micro-services, SaaS products and Cloud virtualization as tools and environments for application development and deployment. To achieve continuous deployment and agile development organizations can’t rely on their in house teams to compete with the best practices and specialized services available in the marketplace. Mobile containers and Docker containers enable DevOps by allowing teams to focus on development and deployment in simplified environments. To finish my four part series I will discuss how all of these innovations are all moving to various virtual clouds, demonstrating how with containers and cloud computing, virtual infrastructures and DevOps automation will bring IT to a future where IT developers and professionals will only have to build, deploy and move on from many of the roadblocks they face in software delivery and infrastructure change.
*Originally Posted on July 20, 2016