When several departments in an organization have different workflows and storage needs, a multi-cloud deployment can help. But working with multiple clouds poses challenges, including migrating workloads among clouds and accessing resources.
First, you'll likely face issues moving workloads from one cloud to another. Clouds must have compatible interfaces to migrate workloads between them. Standards such as REST have become more prominent, but not every cloud vendor adheres to them. To transparently connect from one cloud to another, the source cloud must be able to talk to the target cloud's API, and that's not always the case.
Every cloud provider uses its own standards and file formats. Consider cloud-based virtual machines; different standards exist for the file that backs VM storage. Your cloud may use Virtual Hard Disk (VHD), Qcow2, Virtual Machine Disk (VMDK) or any other standard that shapes the virtual machine disk format. And the cloud storage services you use in one cloud might not be available in another, which can make it impossible to move workloads easily between clouds. If the cloud instance uses a disk image file, then file format compatibility issues may prevent you from moving workloads between clouds, too.
Interoperability is key
You might use different clouds for specific purposes, such as storage, or to run VMs or containers. And you might choose another cloud because it offers strong security features. In this type of multi-cloud deployment, cross-cloud access is important. Virtual machines might access storage from the cloud you use for storage, for example. When building a multi-cloud environment, make sure your clouds are highly compatible to simplify interoperability.
Another challenge when working in multi-cloud environments is that every cloud has its own portal. You might find yourself working from several different management windows, which increases chances of getting lost while configuring the environment.
The next serious problem in a multi-cloud environment is app sprawl, which can happen in environments where multiple clouds serve the same purpose. This may happen in companies where different departments have autonomy in selecting clouds and applications that fit their needs. If you manage every cloud as a separate entity, it's difficult to avoid app sprawl.
Every cloud comes with its own monitoring tools. In a multi-cloud environment, you risk monitoring the output of different monitoring utilities, which increases the chance of missing vital information.
How to create a seamless multi-cloud deployment
If you run a multi-cloud environment, you're not alone. Other companies have already faced the multi-cloud challenges and are coping with the challenges. The following three approaches will help your multi-cloud environment to run smoothly:
- Standardize as much as possible. This is probably the easiest step to take in all aspects of your multi-cloud deployment. If it's about cloud storage, make sure what you're using is Amazon S3 compatible. If it's about virtual machines, try working with Open Virtualization Format even though VM format standardization isn't as widespread as storage standardization. If it's about containers, use Docker. A standardized approach makes multi-cloud environments run smoother. At least, it ensures workloads can be easily migrated among different clouds.
- Consolidate management. A single multi-cloud management tool can solve challenges ranging from having to work with multiple management tools and from multiple management portals to dealing with application and VM sprawl. Vendors in this market include BMC Software, CenturyLink, Cisco, Concerto Cloud Services, IBM, NetEnrich, RightScale, Scalr, Turbonomic and VMware.These tools overlay their own management interface on top of the individual cloud management interfaces. They provide a single interface to manage the multi-cloud environment and make it look as if you're working with one cloud.
- Monitor the results. In addition to multi-cloud management, an independent monitoring tool can be helpful. A specific cloud's monitoring options are fine for monitoring what's happening in that particular cloud. But for multi-cloud environments, you'll want a tool that sees the bigger picture of all the clouds involved. This can be a commercial product developed with multi-cloud in mind or open source monitoring tools, such as those from Nagios and Zabbix.
If you're struggling with a multi-cloud deployment or see one in your future, take time to address the special challenges involved. But don't stop there. The three approaches outlined above -- standardize, consolidate management and institute independent monitoring -- will make for a smooth multi-cloud experience, with fewer challenges.