DevOps on IBM SoftLayer: Some real life experiences
Throughout the last few weeks I have been involved in a major customer project where we had to implement the DevOps notion of a continuous delivery pipeline based on IBM SoftLayer. SoftLayer is IBM’s premier infrastructure as a service (IaaS) cloud solution with 13 data centers located around the world. Throughout my next few blog posts I want to share the extremely positive experiences we made when integrating IBM
Based on ambitious business targets within a highly competitive and dynamic industry, the customer is targeting to increase its release cycle into a weekly deployment cycle. Speed and quality require a fully automated deployment and provisioning process spanning development and operations. While the customer is keeping the responsibility for the application development domain, they asked several vendors for a proposal to take over the management responsibility for the operations of the infrastructure while at the same time integrating application deployment and infrastructure provisioning into a full stack release process.
We decided to implement an approach where each change, irregardless of whether it is a functional change within the application or a required change within the infrastructure stack, is triggering a walkthrough of the staging process as shown in the diagram to the right. Multiple stages from development, testing and integration into production were completely provisioned with each new change, including the latest release of the application.
You’ll recognize the notion of a pattern. A pattern defines all required steps to bring IaaS cloud services into a ready-to-go platform that we can deploy the application into. For example we defined the notion of a “single PaaS” (platform as a service) pattern, which defines a three-tier web architecture spanning three networking zones based on a software stack of a web server, an application server and a database. In addition we defined a “HADR PaaS” pattern, which defines a three-tier web architecture as well but in a fully redundant way, as all components are redundantly deployed.
We installed IBM UrbanCode Deploy into the management virtual local area network (VLAN) that we created inside the SoftLayer data center. In addition the management VLAN comprised the following systems:
We pre-provisioned three networking zones or VLANs and a load balancer. All of them were provisioned up front because they don’t change permanently.
With each change—merely application-related changes coming from the application development teams—IBM UrbanCode Deploy is triggering an infrastructure provisioning (based on the above-mentioned pattern approach) followed by an application deployment of the latest release, all in a fully automated, end-to-end continuous delivery pipeline.
It took us around 30 minutes to deploy a fully redundant WebSphere Application Server cell connected to an IBM DB2 HADR cluster and deploy the latest version of the application on top of it within the IBM SoftLayer cloud data center in Amsterdam, all controlled by IBM UrbanCode Deploy.
We had to implement around ten different use cases, from provisioning and de-provisioning to completely switching production lines from a passive to an active mode, also known as the “blue-green” in the industry.
Do you want to hear more details about what we did, or know more about the different use cases? Please let me know. I’m planning to give you more insight in subsequent blog entries.