Where to Put Your Applications in the Cloud for the Best Performance

With all that’s been written about cloud services and questions to ask cloud providers, it sometimes can be difficult to get insightful, specific information on what exactly to put in which cloud service and why.

There is plenty of good advice around, such as Kurt Marko’s SearchCloudComputing article, “Matching Apps with Cloud.” We’d also like to provide some commentary from our own experiences in IT and cloud professional services helping enterprise customers migrate their applications to the cloud.

Traditional or Cloud Native?

Marko suggests that one distinction to consider carefully is traditional client-server applications versus cloud-native apps. Traditional apps are more monolithic and not built for a shared cloud environment. However, they can run on a cloud infrastructure via hypervisors and virtual machines (VMs). Cloud-native apps are designed to be “cloud-ready” and are built around a modular, microservice-oriented architecture using a mix of containers, cloud services and API calls that were designed for a more scalable shared infrastructure. Cloud-native apps can be more easily and quickly deployed, moved and scaled in the cloud, whereas traditional applications can be more difficult to install, configure and deploy.

We agree and also feel that there are certain workloads that you will need to consider by type, criticality or risk-for-cloud migration. You will have legacy applications that are simply not cloud-ready or will have to be rebuilt for cloud. This is why we see more and more enterprises adopting “cloud first” strategies where they either build all their new applications as cloud native, and/or retrofit legacy applications to more easily adapt to the cloud.

Getting Your Cloud Migration Started

IT environments are highly complex, and though traditional environments can be “lifted” onto an IaaS platform, this can create inefficiencies and wasted resources in a cloud environment. We suggest that you take the following steps when considering how to effectively and efficiently migrate applications to the cloud:

  1. Look at the applications, the job they perform and their dependencies on other applications. When looking at applications versus the “VM,” you will begin to identify PaaS and SaaS solutions that can accomplish your strategic business objectives.
  2. Compare the specific PaaS-like components offered by each provider very carefully. This is particularly critical when it comes to application portability and interoperability between cloud services.
  3. Based on your overall application and cloud migration strategy and the findings from baseline testing of your native applications and VMs, identify necessary changes for improvement and consider any rollback/contingency plans.
  4. Look at your current network infrastructure and make the necessary augmentations for hybrid cloud platforms.

Run a CSP Proof of Concept

Cloud service providers (CSPs) also offer subtle differences in pricing (e.g., discounts for reserving, prepaying sustained use) that can make a difference depending on your application architecture. It is always wise to run real-world scenarios and estimates with each provider you’re considering.

This is easily accomplished with public CSPs today. Where you have access to a public CSPs’ return on investment/total cost of ownership calculators, we find it’s best to create a small proof-of-concept (POC). You will have a far deeper understanding of the multiple components used, the cost of components and how they function together. POCs will allow you to delete and start over, or shut down when complete.

Definitely also consider what operating systems or hypervisors your applications run on today when looking at cloud providers. If your apps run on VMware and vSphere, then VMware vCloud could make a lot of sense, as you can continue using tools you’re familiar with. If you’re a big Windows and Office shop, migrating to Azure/Office365 may be a lot easier in both the short and long run than the alternatives. If you’ve build your apps on Linux, then AWS and Google may be the way to go.

Other considerations when developing a cloud application and system architecture include keeping it portable and building for high availability. Look at CSP cross-regional disaster recovery and ensure security best practices are maintained and access policies followed.

Prioritize Performance

Finally, performance is a critical metric for your cloud strategy. Any cloud environment can slow application response time if workloads have to travel over long distances. Working with multiple CSPs that house their cloud services in the same colocation data center, close to fast, low-latency interconnections to their services, can do wonders for application responsiveness and user quality of experience. Prior to selecting a specific cloud service, consider performing baseline testing, on-premises or in a colocation facility such as Equinix’s Solution Validation Centers, to compare different types of workloads and user volumes against various services. Be sure to look at different network connectivity scenarios, bandwidth limits, input/output operations per second (I/O and IOPs) and disk I/O. You’ll gain a better understanding of how to select and size the correct cloud resource/services for the best user experience, and it will also help you ensure your key performance and design goals are being met.

Check out Equinix Professional Services for Cloud to see how you can make the best match between your applications and cloud services every time.