Enterprise architects should do their homework before developing hybrid cloud applications and choosing cloud providers...
to support them. Choosing the wrong provider and building apps in the wrong environments can negatively affect application performance, workflows, change costs and both communication and transactions with customers.
My goal here is to clarify misconceptions about hybrid cloud development and application environments and to define the criteria for choosing providers for hybrid cloud applications.
There are numerous definitions of hybrid cloud environments, but most people agree that a hybrid cloud environment is composed of at least one private cloud and at least one public cloud, a service provider's external compute environment. The private cloud can be on-premises or reside as a virtual private cloud located outside the enterprise data center. To simplify this discussion, I'll consider a hybrid cloud environment to be a single on-premises private cloud and a single off-premises public cloud.
In my experience, enterprises fare best when they use a single cloud provider for their public and private cloud environments, because when they're developed by different vendors, they almost always utilize different infrastructures. Using separate providers often calls for working with two different storage models, hypervisors, security models, network models, management tools, etc. These differences can lead to problems and challenges in developing applications for hybrid cloud environments (e.g., in developing "real" hybrid cloud applications). Historically, we've seen these same types of problems when trying to move an application from a Windows to a Linux platform.
What's inside a hybrid cloud?
Today, a hybrid cloud environment is viewed as a hybrid system that can process various types of applications such as single cloud applications and hybrid cloud applications. Single cloud applications are packaged in virtual machines or containers and moved back and forth between the private cloud and the public cloud. This is the type of application supported by most vendors who offer hybrid cloud environments.
Hybrid cloud applications are similar to analog and digital computer hybrid applications developed in the 1960s. Within these hybrid applications, a single application was split and distributed across both analog and digital computers with each piece of the application running simultaneously. Similarly, the functionality of a hybrid cloud application is subdivided into parts that run simultaneously and in a seamless manner on both the private and public clouds.
Hybrid cloud provider selection criteria
When creating a hybrid cloud application or a single cloud application, you can encounter several potential challenges. Examining them can help enterprise architects develop more effective vendor evaluation criteria. These challenges include:
- Finding a hybrid cloud solution provider that can host hybrid cloud applications (as well as single cloud applications). A cloud environment that cannot seamlessly support hybrid cloud applications is a no go.
- Distributing hybrid cloud application functionality across the private and public clouds. Without the necessary tools, knowledge and infrastructure, achieving integration and commonality is difficult.
- Achieving suitable application performance, even when using performance monitoring tools, such as simulators.
- Being able to securely pass data, messages and service calls among all applications and platforms through firewalls and routers on both the private and public clouds in a timely manner.
- Transferring data between the private and public cloud components of a hybrid cloud application at high rates of speed. (Note that latency-critical applications may not run well as hybrid cloud applications unless high-speed alternatives to the Internet can be used to transfer data and messages and service calls).
- Managing a hybrid cloud environment through a single interface.
A hybrid cloud provider should be able resolve all these issues. In addition, a cloud vendor should be able to provide the necessary tools for seamless relocation of services between private and public cloud infrastructures; without this, developers will not be able to build effective hybrid cloud applications.
This partial list of challenges can serve as initial evaluation criteria for choosing hybrid cloud environments and hybrid cloud applications. As of now, few mission-critical applications have been moved to public clouds because of security, performance, compliance and other issues. With hybrid cloud environments, enterprise architects can take advantage of the security characteristics of the on-premises private cloud and the reach and compute power of the public cloud simultaneously.
A look at hybrid cloud offerings
Today, several cloud services vendors can support hybrid clouds; but unfortunately, most of these vendors come with two common disadvantages: high costs and inflexibility when switching to another vendor (i.e., lock-in). The most utilized services are Eucalyptus/HP, IBM, HP and VMware; so, without necessarily recommending them, I'll briefly discuss their respective offerings:
- For several years, Eucalyptus -- acquired by HP in September 2014 -- has offered an open source hybrid cloud solution with APIs meant specifically for Amazon Web Services (AWS) cloud environments. Virtual images (running workloads) created using Eucalyptus can be migrated over to EC2. Virtual images can also be downloaded from Amazon EC2 and run on private clouds created with Eucalyptus. This approach to hybrid clouds supports single but not hybrid cloud applications.
- Note that HP acquired Eucalyptus to bolster its Helion Cloud Portfolio. HP's Helion offering is based on open source OpenStack, Eucalyptus and HP CloudSystem architecture. HP would prefer that its customers use its Helion offering, but they also have many running workloads on AWS. A customer (including a cloud provider) can use some or all of the Helion components to create a private or public cloud as well as a hybrid cloud environment. HP, like IBM, uses the mix and match approach to hybrid cloud solutions.
- IBM offers what it refers to as a customizable hybrid cloud option. This can be costly because implementing it usually requires assistance from IBM professional services and the use of various IBM pre-cloud software offerings. Building an IBM hybrid cloud environment to host hybrid cloud applications is done most often by companies with deep pockets who have been long-time IBM customers.
- VMware's vCloud Hybrid Service appears to have a reasonable chance to provide a hybrid cloud solution that supports its applications seamlessly. VMware offers the capability to build private and public clouds using the same infrastructure components for both. That's a plus, but the software is VMware software, meaning lock-in and expensive licensing fees.
Remember that it will be difficult to divide an existing business application into two parts; one part running on your private cloud and the other on the public cloud. It is easier to develop new hybrid cloud applications that have access to both the infrastructure and services of your hybrid cloud environment from the onset. The biggest challenge is choosing the public-hybrid cloud provider that fits your needs and budget. Hopefully, the criteria and information provided here will help.
Questions to ask when considering hybrid cloud apps
Achieving performance in hybrid cloud