Choosing a Cloud Computing Platform
The ability to use a computing platform on the cloud became available in 2006, and many options are now prevalent. Let’s look at the factors that govern the choice of platform.
Server-based or Serverless
A server-based platform exposes the servers or virtual machines (VMs) to users, giving them direct access. An autoscaling group may be associated with the VMs, but users still have to manage them. Load balancing may need to be provisioned to balance the load across the multiple servers.
With a serverless computing platform, users do not need to provision the infrastructure, which includes the VMs, autoscaling groups, and load balancers. No VMs are exposed to users, and none have to be managed. Scaling, load balancing, and fault tolerance are all built in.
Choose a server-based platform if users want to manage the infrastructure at a granular level. Choose a serverless platform if users want to be concerned only about application development and deployment, leaving the infrastructure provisioning and management to the cloud service provider.
Operating System and Software Support
The VMs that a computing platform runs may be selected based on preconfigured VM images. Each type of VM image runs a specific operating system. Choose a computing platform that supports the OS and version needed, noting that certain platforms may not support a preferred OS. Some VM images also package related software.
All computing platforms provide a variable resource capacity in terms of CPU, storage, memory, and networking. The computing resource capacity is provided in fixed sizes, sometimes termed a compute shape, machine type, or instance type. A specific compute shape may be associated with 2 vCPU, 4 GiB memory, 10 GB storage and up to 20 Gbps network performance.
Different compute shapes are suitable for different types of workloads. While some are general purpose, others are optimized for computing, memory, storage, or speed. A compute shape with high resource capacity may be suitable for a resource-intensive application such as a machine learning app.
A highly available computing platform is distributed across several regions and availability zones, so find out if a platform supports your preference.
As VMs are typically scaled automatically, choose a computing platform based on load balancer options. Note that a platform may not support a specific type, such as a network load balancer.
Integration with Other Services
Unlike a VM on a local hypervisor, cloud-based VMs seldom run without access to any other type of service. Choose a computing platform that is integrated with other services such as database, storage, logging, monitoring, security, and DevOps.
Containerization further refines virtualization by running software in isolated, lightweight containers. Most cloud platforms support Docker containerization and an orchestration platform such as a managed Kubernetes service.
Most cloud computing services offer the option to use dedicated hosts that run in a virtual private cloud network on hardware that is dedicated to a single account or customer, isolated from all other computing instances or VMs.
VMs running in the cloud may need to be accessed from a local machine. Find out what type of client access is supported in terms of operating system, language API support, RESTful access, and type of authentication credentials.