In the previous blog posts, we covered the need for automation as a discipline, culture of focusing on services, breaking the silos and architecting for agility. If I had to choose a process or a shift in the operational model that represents all of the above in ONE, it has to be the notion of continuous delivery and DevOps.
DevOps can mean multiple things to multiple folks. I have tried to summarize some pre-reqs:
Code check-in and integration in small batches – keep the batch small
Continuous and automated testing
I wanted to stress that Continuous Deployment does not mean that the features are released to the market for immediate consumption. But it is the flexibility to try and gauge market perception through A/B testing or making features available to a subset of the user base to see how well they are doing.
This is why the automation capabilities of an orchestrated datacenter must span across functional silos, helping to eliminate the manual handoffs between dev, test, staging and production lifecycle environments that so often introduce delays and errors, and ultimately reduce quality.
Real-time collaboration between Development and Operations through a model-driven approach to DevOps can automate a lot of application development and monitoring to ensure development is agile, while maintaining tight controls to minimize poor performance, outages and security vulnerabilities.
Jack be nimble, Jack be modular
Your goal should really to be nimble enough that you can deliver new features weekly. That might sound like a tall order for some IT organizations, but employing a building block approach to the design and modelling of an application and its infrastructure goes a long way. These building blocks will include application components such as databases and middleware, and infrastructure components like servers and storage, so creating an application is a matter of connecting the appropriate components together. (HP Continuous Delivery Automation provides this through Flexible Application Modelling.)
Administrators should then be in a position to modify the blocks along the application lifecycle as necessary, without having to modify the application code itself as it moves through test, staging and to production. This expedites application design and enables users to leverage best practices across multiple models.
Modular and reusable application deployment helps to speed up the release pipeline by building once and then rapidly deploying. At the pace that business compete at today, IT organizations must keep up with similarly swift delivery of the most advanced applications and services it can offer.