Are you on cloud yet or clouded? The answer lies in how you have adopted the transformation. Today, the world is Hybrid. For large enterprises and organizations, it always has been. Almost no enterprise is monolithic when it comes to their environments. They may already have different distributed environments and/or mainframes in their ecosystem. The advent of cloud has only added to this complexity and hybrid nature of the environments. Enterprises which have replaced their datacenter with cloud adoption, in some cases are unable to do so completely or even adopt a singular cloud solution as that remains the domain of born-on-the-web companies that started on the cloud (think Netflix) or started on physical servers and migrated very early to the cloud (think WhatsApp). You cannot think of a big bank or even a telecom giant that is a Cloud Service Provider (CSP) that fits this bill.
For the typical Enterprise (IBM included), the cloud has replaced and consolidated large sprawls of physical servers. However, physical environments remain, and may never go away and cost of migration plays a very important part in this retention. There may be large data-heavy applications that are hosted on distributed environments that may be just too expensive to re-host on the cloud. Then there are mainframe-hosted applications that cannot be migrated to the Cloud. Or the migration to cloud may be a massive multi-year transformation that you are only starting on and will have to live with workloads spread between the cloud and the physical world for an extended period of time.
What’s interesting is that, even the cloud itself will be ‘Hybrid’ in nature. There may be combination of on-premises and off-premises clouds adopted, with off-premise’s ‘cheaper’ cloud used for less critical workloads like Dev-Test environments, and on-premise’s cloud for business-critical workloads. There may also be the presence of a Platform-as-a-Service (PaaS) being used for developing innovative Systems of Engagement applications or for experimentation, which co-exists with an Infrastructure-as-a-Service (IaaS) Cloud for Systems of Record applications and other traditional workloads.
That is the complex world we live in.
DevOps and Hybrid Cloud
Cloud is the transformation enterprises are looking for whereas DevOps practices help achieve the transformation with speed and quality. When we talk about DevOps in the Hybrid Cloud environments, there are two main scenarios that can be adopted.
- Cloud hosted application delivery pipeline: When adopting DevOps one adopts a set of tools that create what is an Application Delivery pipeline. This includes tools such as an Integrated Development Environment (IDE), a Source Code Management (SCM) System, a Build tool, an asset repository, Test tools, an Automated Application Deployment tool, Environment provisioning tools and application monitoring tools, etc. All these tools can be hosted in the cloud and made available as a service. If you are using a PaaS such as IBM Bluemix as your application delivery platform, it includes these DevOps services.
- Cloud Hosted Environments: As applications are developed and delivered to production, they pass through multiple environments. These include development environments, multiple test environments, System Integration Test (SIT), User Acceptance Test (UAT), Performance Test, and potentially other pre-production environments (names and type vary from organization to organization), and of course Production. These environments may be spread over cloud and physical infrastructure, or even multiple cloud environments.
IBM has hosted offerings for the DevOps delivery pipeline that cover the first scenario, including its Collaborative Lifecycle Management as a Service (CLMaaS) and cloud hosted Rational Software Delivery Platform (SDP) tools available through IBMs business partner CloudOne. As mentioned before IBM Bluemix PaaS includes in it DevOps Services to deliver these capabilities in the PaaS.
For the purpose of this post, we will examine the second scenario in detail.
Application Delivery for Hybrid Cloud Environments:
Let’s examine a customer scenario I worked on recently. This customer, a large bank, was looking to host all their application delivery and production environments to the cloud. For cost management, they had decided to host their highly dynamic Development and Test (Dev-Test) environments on an off-premise’s ‘public’ or ‘virtual-private’ cloud, and host their Production environments on-premise on a private self-managed cloud. At the same time, their core business systems, in this case their core banking systems, all remained hosted on a Mainframe z/OS system. They are exposing their core Banking Applications to other applications that consume their services as REST APIs via an IBM DataPower gateway.
The goal of this organization is to be able to deploy complete business capabilities which comprises of services and middleware components deployed to the Production Cloud, and the back-end Mainframe. The primary challenge was to use a Deployment Automation tool that can deploy components and manage application configurations across all these multiple environments.
The second challenge was the need to deploy applications under development as they progressed through different environments in the delivery pipeline. These environments were hosted in a public cloud. As the production environments are hosted in a private cloud, there was a need to use ‘pattern’ technology that would allow for the provisioning of ‘production-like’ environments through the lower pre-production environments. These ‘patterns’ would allow for the production environments and the pre-production environments that match, albeit with different configurations and scale, to be managed and versioned as code. These patterns would evolve as the applications and the environments they were deployed on evolved through the development iterations.
Architecture for Application Delivery for Hybrid Cloud
Our discussion so far now leads us to designing architectures for application delivery for Hybrid Cloud which requires a deployment automation tool that supports multiple technologies comprising the hybrid cloud environment. As discussed before, multiple technologies ranging from off-premise, on-premise clouds to physical infrastructure may be included in these hybrid environments. IBM UrbanCode Deploy with Patterns provides such support.
IBM UrbanCode Deploy with Patterns supports two cloud pattern technologies:
- IBM Virtual System Patterns
- OpenStack HEAT/HOT templates
This allows IBM UrbanCode Deploy with Patterns to support both provisioning of cloud environments using these patterns, and the deployment of applications to these environments, whether to an on-premise or off-premise cloud. In addition, it supports application deployment to static environments on physical infrastructure – distributed and mainframe. The Cloud technologies supported by UrbanCode Deploy with Patterns include OpenStack Private Cloud, Softlayer, Amazon Web Services and VMWare vCenter. In addition, IBM UrbanCode Deploy with Patterns also supports deploying buildpacks to IBM Bluemix PaaS.
It is apparent from the example above that hybrid cloud is changing the face of enterprises and organizations today. With the speed the market is changing today, one cannot depend on waiting for transformation. IBM can help enterprises with their Cloud and DevOps journey leveraging our unique cloud and DevOps expertise. On November 20, you can know more about Hybrid cloud strategies and interact with some of the industry experts like Rosalind Radcliffe (Distinguished Engineer, Chief Architect for CLM and DevOps, Member of the Academy of Technology at IBM), Richard Irving (Certified Client Technical Professional at IBM) and Wayne Monk (Vice President, Business Development and Alliances at Skytap) at the IBM DevOps Symposium in the New York area (Jersey City). We are streaming the first hour as a series of lightning talks given by few distinguished industry leaders – so join us live or on the web.