With the cloud industry growing at a yearly rate of 42% and cloud adoption at its peak, there are numerous types of cloud infrastructure services available in the market. It has become notoriously tricky to choose the right cloud infrastructure for your business and gain the competitive edge that IT infrastructure may give you.
Choosing the right cloud infrastructure for your application can make or break your business. You may tailor cloud infrastructure to your application workloads and squeeze out the most performance per dollar, while failing to do so may result in unexpected bills, inferior reliability and over-the-top expenditure. Good accounting software can help you track all your business spending.
What is cloud computing?
Cloud computing is an on-demand computing computing resource with on-the-go billing that can be managed manually via client portal, or programmatically via API. It gives businesses the agility to rapidly spin infrastructure resources up and down only paying for what you have used.
Cloud computing has evolved throughout the years. Originally, cloud vendors had been offering general purpose virtual machines with overbooked hardware resources delivered on demand. Later on dedicated virtual machines had hit the market to solve the noisy neighbor’s problem that was innate when over-committing server hardware.
Eventually bare metal has been introduced to cloud computing. Engineers were now given direct access to the underlying server hardware through virtualization, and this has opened a myriad of possibilities. For instance, you may now choose servers with CPUs that have the most suitable instruction sets to cope with your workload, customize hardware components, or even manage BIOS level settings.
What is cloud infrastructure?
Cloud infrastructure, or cloud infrastructure-as-a-service (IaaS), is a form of cloud computing service that offers virtualized server environments. It is of the three main categories of cloud services next to software as a service (SaaS) and platform as a service (PaaS).
Below, we'll briefly explain the differences between each cloud infrastructure type and then delve into the specifics of how to choose a cloud provider to help you decide which is the right service for your needs.
-
Infrastructure-as-a-Service (IaaS)
Infrastructure as a Service (IaaS) is a cloud computing model offering virtualized computing resources (as a service). With this first model, a third-party service provider oversees the underlying infrastructure, including servers, storage, networking, and virtualization of the servers, and the users are in charge of the operating system, applications, data, etc.
Infrastructure as a Service is used by businesses that want to leverage cloud computing resources without buying and managing an on-premises infrastructure because they can rent the resources on demand instead.
-
Platform as a Service (PaaS)
Platform as a Service (PaaS), similarly to IaaS, is a cloud computing services provider. However, with PaaS, the third-party cloud service provider offers a complete development and deployment platform that includes the underlying infrastructure, operating systems, runtime environments, middleware, and development tools. PaaS allows developers to focus more on building, testing, deploying, and managing their applications.
-
Software as a Service (SaaS)
Software as a Service (SaaS) providers offer a complete service, e.g., the whole end-user application, for example, Salesforce, HubSpot, BigCommerce, Experro, Slack, Zendesk, Zoom, or Zoom alternatives like MS Teams. A SaaS company fully manages and maintains the underlying infrastructure. Users only have to know how to use the particular software.
With the SaaS offering, users can access the software applications online via any device with an Internet connection without needing to install it on their devices. The subscription fee depends on used services and specific features.
Each infrastructure offering delivers a different level of control and represents one part of the cloud computing stack, with IaaS services being the most flexible. Now that we know each component and what it means, let's dive into the key aspects to consider when choosing a cloud infrastructure provider.
6 things to consider when choosing a cloud infrastructure provider
Let’s now go through the steps you should consider when choosing your cloud infrastructure provider. Now, let’s review the things to consider when choosing your cloud infrastructure provider.
1. Select a suitable cloud infrastructure type
The first and perhaps the most important step when choosing your cloud infrastructure provider is to understand the cloud server infrastructure and how they are set up.
The most straightforward way to look at cloud infrastructure as a service (IaaS) is to group it by the hardware abstraction layer, starting with bare metal and going all the way up to software containers.
Image 1 – cloud compute infrastructure types by hardware abstraction layer.
Bare metal cloud (dedicated server)
Bare Metal, also known as Dedicated Server, is a non-virtualized physical machine with hardware level control that belongs to a single customer. In the old days Bare Metal was not suited for cloud computing, but now you may get them deployed on demand in minutes via client portal or API and pay by the hour for what you have used.
With bare metal cloud dedicated servers you have no virtualization overhead, so you can choose specific CPUs for certain workloads, and even customize server hardware. This gives high-end horsepower for your computations and allows you to maximize performance per dollar.
Dedicated cloud servers are a complete game-changer in cloud computing. They allow companies to run high performance computing jobs, real time analytics, mission critical business applications and more. What was once possible with mainframe computers and restricted to large enterprises, is now easily achievable for small and medium businesses.
Pros:
- Deployed in minutes
- Enterprise-grade performance
- Hardware level control & full customization
- Premium privacy & security
Cons:
- Too much capacity for small workloads
- Hardware-level features require some additional knowledge
Virtual machines (virtual servers)
Virtual Machines – also known as virtual private servers (VPS), cloud instances, droplets, etc. – are the oldest and probably the most popular cloud computing building block up to this day. It is one abstraction layer above bare metal with some type of a hypervisor (ESXi, Hyper-V, KVM, etc.) being used to create and manage virtual machines.
Virtual servers share a pool of hardware resources (CPU, RAM, Storage, Network) that can be dynamically allocated in production to scale up your infrastructure capacity. Virtual servers can be further categorized by whether hardware resources are being overcommitted.
There are two main types of virtual machines:
1. Cloud VPS - virtual private servers (shared resources)
Virtual Machines with shared resources (Cloud VPS) use a pool of overbooked hardware resources. It is the cheapest option out there, however its performance may fluctuate due to the noisy neighbor’s problem when other Cloud VPS instances on the same node simultaneously experience peak workloads.
Image 2 – Cloud VPS servers with overbooked CPU, RAM, Storage and Network resources.
Cloud VPS servers are best suited for small applications that do not continuously run at peak workloads. They may be used to kick-start a small website or a blog, as well as host a small database, a microservices node or a development environment.
Pros:
- Deployed in minutes
- Cheap and highly available
- Easy to scale up on-the-go
Cons:
- Shared hardware resources
- Susceptible to noisy neighbor’s effect
- Unreliable with peak workloads
2. Cloud VDS - virtual dedicated servers (dedicated resources)
Virtual machines with dedicated resources (Cloud VDS) use a pool of hardware resources with no over-commitment. By having dedicated resources, you are no longer susceptible to the noisy neighbor’s effect. Cloud VDS servers may run at their maximum all the time with no performance fluctuations.
This may sound small, but it opens a myriad of possibilities. You may use Cloud VDS servers to host mission critical workloads that cannot afford performance fluctuations like eCommerce sites, medium databases, and enterprise applications to name a few.
Pros:
- Deployed in minutes
- Dedicated hardware resources
- Stable premium performance
Cons:
- More expensive than Cloud VPS
- Limited variety of servers
Containers
Containers, often referred to as Docker containers, are yet another step upwards in the hardware abstraction hierarchy. A container is a standard unit of software that packages up code with its dependencies so that your application could run on any compute environment – build once, run anywhere.
Containers share access to the underlying operating system kernel, which makes them significantly more flexible and efficient compared to virtual machines.
Image 4 – containerized applications on top of Docker engine
Containers are the de-facto building blocks of micro-services applications where your system is segmented by small pieces of loosely coupled functional blocks of software, each being run in a container. Micro-services architecture makes your application much more flexible, resilient, and easier to scale at the cost of increased complexity.
If you are considering this approach, make sure your application is big enough to justify this increased complexity, as it will translate into additional working hours for your DevOps Team.
Pros:
- Build once, run anywhere
- Lightweight, flexible, and easy to scale
- Easy to migrate your application to any compute environment
Cons:
- Require micro-services architecture to reap all the benefits
- More moving parts to monitor and manage
- Extra knowledge required
2. Choose the most profitable billing type
Cloud computing is renowned for its pricing flexibility. With cloud infrastructure you can avoid significant capital investments and choose one of the three available payment methods – hourly, fixed-term or spot – that will help you get in charge of your monthly invoice.
Hourly billing
Public cloud services are traditionally billed by the hour with a pre-paid or post-paid billing model. This pay per use billing has democratized compute infrastructure and allowed it to be consumed as a service. Servers are deployed on-demand in minutes or even seconds and you only pay for what you use. You either need to top up your prepaid balance in advance, or you get invoiced by the end of the month.
Hourly billing is great when you have unexpected workload peaks, or your business is prone to seasonal demand fluctuations. Make sure you understand all invoicing terms and conditions for a smooth billing process.
Fixed-term billing
Fixed-term billing is also available at every major cloud service provider. It allows you to save a significant amount of your budget by committing to use cloud infrastructure for a certain amount of time. As a rule of thumb, the longer you commit, the less you pay.
It’s worth considering fixed-term billing if you are running stable workloads for a long time.
Spot server market
Spot Servers are short-lived, low-cost servers billed by the hour that can be used for various stateless, fault-tolerant workloads like high performance computing, or scientific modeling.
Spot Server Market allow you to save up to 70% of compute costs by employing spare compute resources of the cloud vendor that would otherwise be idle. You get these cheap compute resources for a fraction of cost at a risk of them being taken away from you at any time.
There are different Spot Market types available. Some vendors use spot market auction where spare resources are being given away to the highest bidder for a limited time period, while other vendors do not apply any artificial restrictions and allow you to use spot servers indefinitely until someone requests them for a standard price.
3. Evaluate cloud service provider security
Cybersecurity is becoming an increasingly important subject these days. Although cloud security is a shared responsibility of the cloud provider and the customer, there are still some things to consider making sure you choose a safe and reliable cloud platform. Alternatively, you might want to outsource cybersecurity as it provides cost-effectiveness and access to specialized expertise.
DDoS protection
Having a solid DDoS protection is a must nowadays and nearly all cloud service providers give you this. Although DDoS protection differs a lot among cloud vendors, you are likely to find some type of standard, as well as advanced DDoS protection being offered.
Standard DDoS protection is a type of free out-of-the box protection against the most common DDoS attack vectors that operates at network and transport layers (OSI layer 3 and 4). It typically filters out suspicious packets or ill traffic patterns in real time and doesn’t require any application or resource changes.
Advanced DDoS protection often includes application layer (OSI layer 7) protection and features like adaptive scrubbing protection that learns your application’s traffic over time and filters out traffic anomalies. The price of advanced DDoS protection may vary from a few dollars to thousands of dollars every month.
Identity and access management
Simple passwords and single factor authentication are no longer enough. You must enable multifactor authentication for your cloud account to protect your business. It is also handy when your cloud vendor supports SSH key assignment for every server upon deployment, as it’s considered a more robust authentication method, especially when managing a fleet of servers at scale.
When it comes to access management, it is often the case that user roles are configured very loosely or not used at all, granting access privileges beyond what is required. Your cloud vendor should support user access management to allow you create more granular user roles with access to specific parts of the system according to the scope of responsibility.
Virtual private cloud
Virtual Private Cloud in its essence is a fully isolated private subnet that allows your cloud resources to have a private and secure interconnection on a virtual local area network (VLAN) with zero traffic costs. Every cloud resource is assigned with an arbitrary internal IP address which is then used to internally map and interconnect your cloud resources.
Image 5 – a scheme of a virtual private subnet (VLAN).
Private subnets are mainly used to micro-segment workloads from each other, with granular security policies at subnet gateways. In other words, a private subnet will help you protect sensitive system nodes that should never be accessed from the Internet directly. A good example of this is your production database that is typically only accessed by your application.
Private subnets may also help you create separate environments for development, staging and production servers, as well as isolate different user groups.
Cloud monitoring
It’s crucial to continuously monitor the state and operational workflow of your IT infrastructure. Although there are a myriad of cloud native tools for infrastructure monitoring, it’s great when your cloud vendor offers some type of infrastructure monitoring out of the box.
Image 6 – cloud infrastructure monitoring dashboard.
In addition to this, your cloud vendor must track every action on your client portal and provide you with detailed activity logs. This not only ensures transparency and accountability inside your team, but also provides you with a single source of truth in case of a security breach.
Disaster recovery
Bad things happen, and when they do, you better be prepared. The most important thing to protect is your data, so make sure your cloud provider offers some type of data redundancy.
On a server level your cloud vendor may offer a Redundant Array of Independent Disks (RAID) that allows losing up to two storage disks without losing the data. On a data center level your cloud vendor may offer storage snapshots that automatically replicate your data to one or more physical locations that are independent from the compute node.
Finally, sticking with a single cloud vendor may not be enough. As hybrid cloud and multi cloud system architectures are becoming more and more popular, it is worth considering disaster recovery solutions that span across different cloud vendors. This way you may use compute infrastructure at vendor A mixed with object storage from vendor B that is automatically replicated at vendor C.
4. Cloud infrastructure reliability and performance
Infrastructure benchmarking is a tough process that requires rigorous methodology and precise process to get an apples-to-apples comparison.
We have run benchmark tests against different types of cloud compute infrastructure to determine their strengths and weaknesses. We‘ve chosen Geekbench 5 benchmarking software that models real-world tasks and applications like augmented reality, machine learning and many others.
After running a series of tests on every infrastructure type, we‘ve concluded that VPS (Virtual Servers) give you the best performance per dollar when testing a single server instance. This confirms that if you have a single-server application with low-end workloads, it is always worth taking a general purpose virtual machine.
Image 7 – servers ranked by Geekbench 5 performance points divided by their price at Cherry Servers. Virtual Servers (VPS), Intel Bare Metal (E3-1240, E5-1600, E5-2600, E5-4600, Gold) and AMD Bare Metal (EPYC) were tested.
On the other hand, when you are running high-end specialized workloads or need to significantly shorten the time of your compute jobs, there's nothing better than powerful and reliable single-tenant Bare Metal infrastructure. As a rule of thumb, the newer the infrastructure, and the more CPU cores it includes, the more powerful your system becomes.
Image 8 – servers ranked by their multi-core CPU scores. You may reach significantly more compute power per node by choosing newer CPUs with more cores.
5. Evaluate cloud network connectivity and traffic costs
A strong network setup, including a cloud VPN is the foundation of any cloud infrastructure. Every cloud service provider has a portfolio of networking services to make your life easier and help you build more profound and secure system architectures. Let’s review the most fundamental parts of any cloud network offering.
Network bandwidth
Network bandwidth, also known as port speed, is the amount of data that can be transferred across the network in a single moment. Cloud vendors are quite diverse in their bandwidth capacity offerings. Available bandwidth may vary from a few hundred Mbps up to a hundred Gbps per server.
Network bandwidth determines how quickly the data is transferred to a single user, and how many concurrent users can get the date at a constant speed. As a rule of thumb, the higher the bandwidth, the higher the cost of the server. It is reasonable not to spend on network bandwidth that would never be fully used.
Typically, a high network connectivity is a must for bandwidth-intense use cases like:
- Content delivery networks (CDN),
- Virtual Private Networks (VPN)
- Media streaming and others.
Whereas you may get away with a slightly lower network connectivity for compute-intensive applications like:
- eCommerce websites,
- Big data processing,
- Mission-critical business systems and others.
Traffic price
It’s not only important how much data you can transfer per second, but also the overall amount of data that you actually transfer per month. Some vendors give you unlimited traffic at the cost of low network bandwidth, while others may give you free traffic packages and charge you extra when you exceed them.
Traffic prices vary dramatically at different vendors. The biggest cloud vendors charge up to $122 per TB, which may be a serious deal-breaker for bandwidth-intense applications. In contrast, a niche cloud vendor may charge you as little as $0.5 per TB for extra traffic on 3Gbps port.
IP addressing
IP Addressing may be a topic of its own, but the fundamental principles still apply across different cloud vendors. Cloud infrastructure resources usually have IP addresses to communicate with internal or external systems. There are different IP addressing services that may or may not be useful according to your use case.
Dedicated IP address is linked to a single cloud server as the main point of communication. It is a static external IP address that can be reached via the Internet. A dedicated IP address is sufficient for single-server applications, but above that you may want a bit more sophistication.
Floating IP, also known as Elastic IP, is a static external IP address that can be dynamically linked to any cloud server. You may do so manually, or via API. It is a great feature that comes very handy in failover, load balancing, high availability, and similar scenarios.
IP subnet is simply a range of public IP addresses that can be assigned to your selected servers. You may want to use it for virtualization purposes, web scraping and similar applications.
Bring Your Own IPs (BYOIP) is a service provided by some cloud vendors which allows you to bring a range of your own IP addresses and use it with the vendor's compute infrastructure. You may want to bring your own addresses when you are migrating your on-premises system to the cloud and have some IP-related dependencies.
6. Make sure technical support is there for you
A typical cloud infrastructure service provider takes care of the server hardware, electricity, networking and deployment automation – this is what makes one a cloud vendor, after all.
Nevertheless, there’s much more when it comes to a modern cloud platform, and when things go wrong it is better to have your back covered by seasoned cloud engineers.
Scope of assistance
Cloud support may vary from basic (Level 1) to premium (Level 2) and enterprise (Level 3) tiers. Even though the exact set of support services may vary among different cloud vendors, the overall idea of support tiers remains the same.
Basic cloud support (Level 1) covers basic customer issues with low business impact, such as sales requests, well-documented usage problems or billing queries. You may not be able to contact a live person when being on a basic cloud support tier, but you most probably get access to self-service knowledgebase documentation.
Basic cloud support is usually free of charge and comes as a part of a standard service offering.
Premium cloud support (Level 2) covers more difficult technical issues that, as a rule of thumb, take more than 15 minutes to be resolved and require more profound product knowledge. These are usually undocumented technical problems that have medium business impact. You get in touch with a support engineer to troubleshoot the issue and find the best possible resolution.
Premium cloud support may cost you from $29 to $500 monthly, plus 3% to 10% from your overall monthly spend.
Enterprise cloud support (Level 3) covers the most difficult technical issues that not only require deep product knowledge but also architectural proficiency and a good understanding of diverse use cases. These may be sophisticated technical problems that have severe business impact, architectural consulting, cloud strategy guidance or even system stress tests.
Enterprise cloud support may cost you from $1000 to $15000 monthly, plus 3% to 10% from your overall monthly spend.
All-inclusive cloud support can have its own distinct category, since there’s a vast difference between hyperscale cloud vendors (AWS, Microsoft Azure, etc.) and niche cloud infrastructure providers (Cherry Servers, Digital Ocean, etc.). By choosing a niche cloud vendor you most often get an all-inclusive cloud support package that covers Level 1, Level 2 and sometimes even Level 3 support cases.
All-inclusive cloud support may not cost you anything and come as a value-added service to a default cloud infrastructure offering. It means that you can find a cloud vendor where enterprise-level cloud support will be available to you free of charge.
It is not immediately clear what set of technical support services are included into the all-inclusive cloud support package, so it is best to double check with your cloud vendor to set realistic expectations.
Average response time
Average cloud support response time may vary from 24 hours to 15 minutes. At hyperscale cloud vendors support response time depends on the severity of your issue, but not your support plan. For instance, general questions may be addressed in 24 hours, system impairments in 12 hours, production system failures in 1 hour, and business-critical system failures in 15 minutes.
With niche cloud vendors it is always a good sign if you get a clear commitment to respond in a certain amount of time. Support issues are not that strictly classified by their severity level. You usually get a single support response time for all your queries, which may be as short as 15 minutes.
Support availability
Cloud support may be available via email (support tickets), phone and live chat apps. Email is the main channel of communication for technical support, as it’s the most convenient way to convey sometimes lengthy technical nuances. Almost every public cloud provider supports email support.
In addition to this, it is always great to have support by phone system or live chat as a secondary form of communication. You may get into a situation where you would need to troubleshoot some technical issue with your support engineer in real time, and this is when live support becomes very handy. Live support may or may not be offered by a niche cloud vendor, while hyperscale providers offer it with their premium and enterprise plans.
To wrap up
Choosing the best cloud provider is a tough nut nowadays. Here at Cherry Servers, we help you squeeze out the maximum performance per dollar from your IT infrastructure. Sign up now to get your personal account manager and free cloud technology consultation 24/7.