Posted: Friday, March 10, 2023

Word Count: 1128

Reading Time: 5 minutes


Summary

  1. Use Web Apps for Websites
  2. Containers should be considered over machines
  3. Virtual Machines should typically be leveraged as a last resort
  4.  Spot, Savings plans or reserved instances can provide additional cost savings.

Introduction

This was something that I’ve had a definite interest in. Simply put, there is an intimidatingly large amount of compute options in the cloud to choose from. When you’re looking to migrate into the cloud or building a greenfield environment, what should you consider, and why.

Defining Compute in terms of IT.

Let’s first define what compute is from an operational IT perspective. Compute is a transitive verb that is defined as deriving something by means of calculation. The definition is straight-forward, accurate and definitely overly simplified from the information technology perspective. By that definition, everything in the information technology stack is a compute device. However, when you speak to an IT professional and mention the word compute they instinctively know, I would hope, that the conversation is focused on a specific type of device.

To that end, I would define it as any computing device that can be configured perform multiple related or unrelated computational tasks. Let’s take your basic, Windows or Linux server. By default, these devices do not serve any specific purpose outside of a user desktop. However, with little modification and effort, theoretically, they can be configured to perform a specific of multiple related or unrelated tasks. A router for example is purposely built to route layer 3 traffic. A server can also be configured to route traffic, but additionally it can provide mail, storage and database services. There are a several reasons why this would be a terrible idea, but it’s not impossible.

Choosing the appropriate computing resource

Now that we’ve established a baseline definition, let’s start discussing cloud computing options. Cloud service providers (CSP) provide a variety of ways to implement solutions in the cloud. Most major cloud providers offer their version of virtual machines, container services, and web apps. All of which will provide a viable migration path into the cloud, but there are pluses and minuses to consider with each offering.

Virtual Machines

Will most likely be the easiest path to migration. Architecturally speaking most IT organizations are very familiar with type-1 hypervisor architecture.  Additionally, services such as Azure VMware solutions (AVS) and VMware Cloud on AWS allow organizations to extend their existing VMware presence into the cloud.  This reduces the requirement to retrain their current virtualization teams. 

Virtual Machine Pros
Virtual Machine Cons
Virtual Machine Use Cases
Additional Thoughts

Although virtual machines provide a relatively easy way to migrate existing workloads into the cloud, it doesn’t necessarily mean it would be the appropriate path. When considering a migration into the cloud, consider modernizing your infrastructure. If virtual machines are to be leveraged, then consider reserving compute or spot instances.  

Containers

Containers are next level virtualization. It decouples the application from the hosting operating system. This extraction layer introduces new possibilities for IT workloads.  More organizations are considering containers as it adds additional scaling and decoupling capabilities to their infrastructure.  Additional, many orgs leverage containers within their virtualization environment. 

Container Pros
Container Cons
Container Use Cases
Additional Thoughts

Containers are a great alternative to virtual machines. They are extremely portable and very performant. By decoupling the application from the operating system tasks such as Scaling in/out, software updates, and high availability operations take less time to complete.  Cost saving opportunities are similar to virtual machines.

Web Apps

Web app are purposely built to for hosting web applications, REST apis and mobile back-ends. Web apps support most popular coding languages such as .Net, Java, Ruby, Node.js, PHP, and Pythons.

Web App Pros
Web App Cons
Web App Use Cases

Conclusion

That’s just a small subset of computing offerings in the cloud that this article doesn’t touch.  In addition to the information provided above, I’ve created a workflow diagram that attempts to pictorially aid you in your decision quest. It’s something that I know isn’t perfected, but I plan to keep updating it.  I leveraged a diagram created by Microsoft and expanded it to highlight related solutions from AWS and Google Cloud.