July 16, 2014 | Written by: Steve Strutt
Share this post:
In my first post, I discussed how combining deployment automation and software-defined environments (SDE) reduces application delivery time and increases agility. In this post, I look at these two solutions in greater depth.
In summary, the two solutions deliver the following benefits:
• Deployment automation streamlines the deployment of applications to the development, test and production environments through automation and elimination of manual tasks.
• SDE brings OpenStack-based software-defined infrastructure (SDI) together with application patterns to reliably and repeatedly create the application environments for each stage of the pipeline.
This approach to cloud-enabled application delivery is illustrated in the figure reproduced here.
Deployment automation and application lifecycle tooling
Deployment automation tools are core to the DevOps space and central to enabling IT organizations to accelerate delivery by eliminating manual tasks. As illustrated, these tools automate environment creation through the SDE layer and perform application deployment, along with component tracking and versioning.
They 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, including Unit Acceptance Test (UAT) and System Integration Test (SIT) through to production. The method tests the deployment and configuration process as much as the application code itself, eliminating configuration errors that would affect 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 benefits of deployment automation are 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 also a challenge in most of the organizations I work with. Using manual deployment processes, the time and effort required to deploy new versions and update middleware and infrastructure is herculean. My observation 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. I covered some of the non-technical reasons for this in earlier posts.
Automation of the deployment pipeline, while reducing delivery time for new applications, also provides a vehicle 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.
In an SDE, abstracted and virtualized IT infrastructure resources are managed programmatically through application programming interfaces (APIs). When deployed, 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, programmatically managed by APIs. This abstraction and management through OpenStack APIs 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 robust and proven component building blocks, out of which complex environments can be built. With patterns, multitiered application 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. UrbanCode Deploy provides a final deployment of the application code and any required configuration.
Private, public and hybrid solutions
Pattern technology and delivery automation is supported across the IBM private and public cloud portfolio. This provides clients with a choice of on-premises SDE deployment options, off-premises deployment on IBM SoftLayer public cloud and hybrid configurations. The solutions include:
• IBM PureApplication System (on premises) is for users looking for an all-in-one integrated appliance that can be delivered rapidly, embodying both SDE and patterns
• IBM PureApplication Service on SoftLayer (off premises) is a public cloud-hosted implementation of PureApplication System, providing commonality and portability of patterns with on-premises implementations
• SmartCloud Orchestrator (on or off-premises) is for users who have custom implementation requirements. Based on the OpenStack IaaS platform, it provides flexible workload placement on public and private clouds, or a hybrid cloud deployment model. On-premises support includes System z, in addition to IBM Power Systems, IBM PureFlex System and IBM Flex System, System x and third party x86 environments.
Managing both pets and cattle, as stated in my previous post, is a challenge for IT. This multiplatform 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 outlined how IBM is addressing one of the major challenges faced by IT today: 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 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.