July 7, 2014 | Written by: Steve Strutt
Share this post:
This blog post is part of a series in which I am exploring how open cloud-inspired approaches, OpenStack, DevOps and open standards can help IT adapt to the shift to user and customer engagement through social and mobile applications.
In many of the client cases I work with, users are demanding new applications and services to engage with the new consumer-centric world. To satisfy this demand, I have seen a pattern of integrated approaches to cloud-enabled application delivery emerging across development and operations teams. This builds on accepted DevOps practices and couples them with public or private cloud infrastructure provisioned to greatly reduce the time taken to deliver new applications into production.
In this post I take a deeper look at how this is made possible by combining deployment automation and software-defined Environments (SDEs).
Accelerating delivery and reducing costs
Agile delivery demands a broad perspective to challenge existing processes and practices. My observation is that enterprise IT organizations have optimized themselves to manage complex technologies by evolving into discrete specialist domains, which are good for reducing departmental costs but limited in terms of IT flexibility and agility. Integration is required across these IT domains to address the need for agility and overall IT cost reduction, including lifetime application maintenance costs. Similar to younger born-on-the-cloud organizations, an integrated cloud-enabled approach to application delivery and lifecycle management (ALM) is required across development and operations.
OpenStack is the foundation
For many clients I work with, the hand-offs between domains are manual and slow. A virtual machine (VM) can be provisioned in as little as 15 minutes, but the whole process of standing up an environment for development or test can still take weeks. Infrastructure as a service (IaaS) cloud built on an application programming interface (API)-enabled infrastructure platform like OpenStack provides the foundation to programmatically automate hand-offs and integrate across the application delivery landscape, reducing weeks to hours or minutes.
The idea of the software-defined data center (SDDC) or software-defined infrastructure (SDI) is widely discussed in the IT industry as a potential solution. Though frequently I find the discussion is limited to the IT department as an evolution of virtualization and without reference to the applications and services hosted by this infrastructure, I feel this is an exasperating and unhelpful progression. Valuable as it is, a data center built on SDI to manage the physical and virtual IT infrastructure provides only a partial solution.
Software-defined infrastructure is an enabler
Software-defined infrastructure needs a plan and direction if the business is to benefit from the agility inherent in its key features: flexibility and programmatic API control. If IT does not deliver the ability to rapidly deliver and iterate new functionalities, the credit card comes out. I discussed this point in my earlier post “The seismic impact of social and mobile on IT.”
As a subset of DevOps, deployment automation provides the driver that users need to benefit from the agility that an IaaS delivery model built on SDI brings. Consequently, this reduces the time and cost taken to develop, test and deliver new applications. This cloud-enabled approach addresses application delivery, the infrastructure supporting it and maintenance for the life of the deployment. I have illustrated it in the figure reproduced here.
This approach to delivery is made up of two domains:
- Deployment automation and application lifecycle management
These tools perform orchestrated deployment of environments and components through the stages of the delivery pipeline. This is an end-to-end solution from development and test environments to production. The IBM solution is based on UrbanCode Deploy. Illustrated by the lifecycle arrow in the figure, lifetime application maintenance is also enabled by automation of the delivery pipeline. The automation reduces the time and effort required to deliver and retest application updates, middleware patches, version changes and infrastructure renewal.
- Software Defined Environment
SDE brings OpenStack-based software-defined infrastructure (SDI) together with the application patterns that I covered in my previous post. It provides application-aware environment provisioning to tailor the IT infrastructure to the workload being deployed and runtime workload optimization.
In the second part of this post, published here, I delve further into deployment automation, application lifecycle tooling and software-defined environments.
How are you addressing social and mobile delivery? Are you adopting deployment automation and cloud? I would be interested to hear, so leave a comment below or connect with me on Twitter @SteveStrutt.