Written by Stéphane H. Maes, PhD, CTO and Chief Architect of HP Software Cloud Product Unit
DevOps is an agile development and application release management methodology that is gaining momentum both for traditional application development as well as for the development of cloud services.
It ranges from the ability to:
Integrate development tools
Automate the processes of managing the artifacts
Deploy the service for testing and staging deployment and production of an application
Provide a closed feedback loop with the development tools
DevOps is usually also associated with the notion of CI/CD (Continuous Integration/Continuous Deployment) where code developed by the developers are continuously (i.e. often in a day and/or as soon that new code passes certain criteria) merged with a shared mainline and that the software in that mainline is always suitable for production deployment.
So all of these tools and methodologies provide ways to rapidly, automatically, efficiently and reliably reflect code changes into the production service. They also rapidly fix any issue discovered during production. But what about the “Ops” aspect of DevOps? Once in production, the appropriate automation of the management should take place. After all, the evolution is to no longer simply write the code and dump it over the Wall for IT to manage. With DevOps, developers or Lines of Business (LOBs) essentially deploy in production, they should be able to also be able to provide to prescribe, facilitate, setup or automate the operation of the service.
We are looking at facilitating the Ops phase of DevOps with solutions around CODAR, (see my previous blog for details) and CSA which enable:
Not only the integration of CODAR with an open source a la carte DevOps tool chain or an Enterprise tool chain around HP ADM / ALM portfolio to provide a deployment system at the different stage of the development, testing and staging up to production but also, by relying on service models common with CSA, we offer the option to:
Immediately offer a user-facing catalog of production ready services that can be deployed on-demand
Monitor and provide second day operation of the deployed services by allowing the models used at deployment to include setup and use of monitoring systems as well as handling of events processing, incidents and subsequent remediation. Note: This approach requires models that are aware of the Operational constraints.
Using the approach of policy guided fulfillment that we are a contributor to OpenStack, we also allow the “dev” part of the DevOps to be authored by developers or architects—with limited need to model the operational constraints. These can be separately authored as policies and bound to what is to be deployed in production. This is where policy enforcement ensures that applications respect the operation constraints. For example: where/how components can be deployed, how they must be monitored (performance, usage, compliance/audit or security wise) and how events are to be processed and incident handled, notified or remediated.
HP Software extensive IT operation and Management solutions as well as open source or third-party solutions can be involved this way to manage traditional application/services developed with a DevOps methodology as well as with Cloud native applications. I will discuss these concepts in a future blog.
Of course applications may also be written in way that prescribes aspects of their management. Today some of these capabilities, focused on cloud native applications are provided by platforms like HP Development Platform.
With such approaches, I illustrated how DevOps indeed extends to the Operation aspects. With the right modeling, fulfillment and management tools, developers can either actively describe how the application should be operated or how IT departments can make sure that in all cases operation is automated for the application reaching production in a DevOps process. They can also verify that appropriate enterprise wide policies/practices are respected while in production.
In upcoming blogs I will dig more into the details of these different aspects to give you additional insight into DevOps. You can also learn more about DevOps in my previous blog: