In my first post, I discussed how combining Software Defined Environments (SDE) and deployment automation reduces application delivery time and increases agility. In this post, I look at these capabilities in greater depth.
In summary they deliver the following benefits:
SDE combines OpenStack-based Software Defined Infrastructure (SDI) with application patterns to repeatably and reliably create the application environments for each stage of the delivery pipeline.
Deployment automation stream-lines deployment of applications into development, test and production environments via automation and elimination of manual tasks.
This SDE enabled approach to application delivery is illustrated in the figure reproduced here.
Deployment automation and application lifecycle
Deployment automation is central to enabling IT organizations to accelerate delivery by the elimination of manual tasks. As shown above, it automates environment creation via the SDE layer and perform application deployment, along with component tracking and versioning.
These tools also manage the configuration of each SDE environment, database and application component, ensuring repeatable and consistent delivery. This is an end-to-end solution from test environments, through to production. The approach tests the deployment and configuration process as much as the application code itself, eliminating configuration errors that would impact service availability.
At the heart of the IBM solution, UrbanCode Deploy manages the stages of the delivery pipeline, automating the environment builds, component deployment and configuration for each stage.
Faster application roll out
The benefit is faster application roll out and improved delivery consistency with repeatable, reliable and governed processes. Peter Spung provides a great explanation of the benefits of UrbanCode Deploy adoption in many clients and links to case studies in his blog post “DevOps Application Release and Deploy for Managers: The Payoff is Worth the Pursuit.” I also suggest the "Application Release and Deployment for Dummies" ebook for a good overview of the subject of release and deploy.
Reduced life time maintenance effort
Long-term application maintenance and remediation is a challenge in most of the organizations. Using manual deployment processes, the time and effort required to deploy new versions and update middleware and infrastructure is herculean. My experience is that due to the effort and cost, it just does not happen and deployed applications quickly slip into being part of the maintenance backlog.
Automation of deployment processes, while reducing delivery time for new applications, also provides a route to reduce the costs and effort involved in maintaining existing services. Patches, middleware and infrastructure changes can be deployed through the delivery pipeline, rapidly tested and released to production with confidence and reduced effort.
Software Defined Environments
In an SDE, virtualized IT infrastructure resources are managed programmatically through application programming interfaces (APIs). Applications define their infrastructure requirements, configuration and Service Level expectations. The developer, the people deploying the service and the service provider are all taken into account.
The OpenStack infrastructure as a service (IaaS) platform, abstracts IT resources as resource pools, managed by APIs. This abstraction makes it easier to program the configuration of IT infrastructure and avoids lock in to proprietary vendor APIs.
Sitting above this infrastructure API layer, application patterns provide solid and proven component building blocks, from which complex environments can be built. With patterns, multi-tier applications and infrastructure environments can be rapidly and repeatedly deployed time and time again without error, increasing service stability and reducing failures due to misconfiguration. This technique of full stack deployment enables rigorous testing to be performed in production-like environments early in the test cycle. The approach improves quality and reduces test and remediation costs later in the delivery cycle.
As illustrated in the figure, at each stage of the delivery pipeline, IBM UrbanCode Deploy programmatically directs the SDE to create a tailored environment based on the specified application pattern. On top of this UrbanCode Deploy provides final deployment of the application code and any required configuration.
Private, public and hybrid solutions
Delivery automation and pattern technology is supported across IBM’s private and public cloud portfolio. This provides a choice of on-premises SDE deployment options, off-premises deployment on IBM SoftLayer public cloud and hybrid configurations. The solutions include:
Managing both pets and cattle, as stated in my previous post is a challenge for IT. This multi-platform approach to OpenStack provides agility and commodity scale out management for systems of engagement and the transactional integrity of enterprise systems for systems of record.
UrbanCode Deploy working with SmartCloud Orchestrator
My colleague, Michael Brokmann, provides a detailed description of how DevOps and SDE work together in “How to do a full stack release with IBM UrbanCode Deploy and IBM SmartCloud Orchestrator.”
To put theory into practice and dispel any hint of smoke and mirrors, this is supported by a series of videos of a real delivery pipeline implementation created for the CeBIT fair in Hannover, Germany earlier this year: DevOps and cloud: An end-to-end scenario video series
Accelerating social and mobile deployment
In these two posts, I have sketched out how IBM is addressing one of the major challenges faced by IT today: that of meeting user expectations for agile delivery while addressing the cost challenges of managing applications and infrastructure through their life cycle.
In future posts I will look at how IBM is implementing OpenStack, hybrid cloud and how application patterns are used with deployment automation in more depth.
How are you handling the challenge of delivering social and mobile? Are you adopting deployment automation and cloud? I look forward to hearing your thoughts. Leave a comment below or connect with me on Twitter @SteveStrutt or follow @IBMSDE for more updates.
Chief Technology Officer - IBM Cloud Computing, UK & Ireland