Summary: Are you looking for a cloud service for your software development project? This article compares the currently available services and providers to help you decide which one will fit your needs the best.
We sat down with Software Architect and Machine Learning Engineer, Alexis Alulema, to help break down some of the common Cloud Services and Providers. Alexis has 20 years of development experience, a Master of Science in Computer Engineering from the University of New Mexico specializing in the Internet of Things, and is (lucky for us) a number8
consultant currently living in Ecuador.
More than ever cloud services are necessary in the software development process. From development, to testing, to release the cloud is used throughout the process. This use makes choosing a cloud technology and provider ever more important. From Compute Services to the Internet of Things to Blockchain, all development projects can have some kind of cloud service involved in the process. In particular, this article compares the different Infrastructure-as-a-Service (IaaS) and Platform-as-a-Service (PaaS) services and providers.
What are the different Cloud Services?
The ten most relevant services are Compute Services, Storage Services, Database Services, Big Data and Analytics, Machine Learning and Artificial Intelligence, Hybrid Cloud, Internet of Things (IoT), DevOps, Service Mesh, and Blockchain. Each service has its specialized segment of the market and set of needs it fulfills. Finally, due to rising complexity, it is common for companies to consider multi-cloud approaches that incorporate multiple services.
Who are the Main Providers?
The main providers are Amazon Web Services (abbreviated AWS), Azure (Microsoft’s brand name for cloud services), IBM (formerly Bluemix), and Google. In general, over the last few years, the main providers have remained the same however their market placement has changed over time with Azure taking the lead from Amazon.
Are there any other Providers?
Alibaba and SAP are two other large companies that offer cloud services. Alibaba is the fourth largest web hosting provider and has a variety of offerings. Alibaba is not covered in this article since they are focusing on China and other parts of Asia instead of globally. SAP is also not covered since their cloud offerings are more geared towards integrating with existing SAP services used by businesses. Additionally, over the past 2 years, SAP has scaled back or eliminated several of its competing offerings including SAP Virtual Machine.
What are Compute Services and What are the Options?
Compute Services are made up of Virtual Machines, Container Services, and Serverless Compute. Overall, compute services have changed the least over the last few years. Soon, however, compute services are poised to change quite a bit given the rise in serverless computing.
For virtual machines, each of the major players has its pros that make different platforms ideal. For example, they all have different packages that allow performance and other features to be tailored to a specific project or set of needs. Also, even though they all support a variety of operating systems, certain Microsoft-specific tools are more easily set up and implemented on Azure Virtual Machines
. Finally, while most of the platforms support adding Graphics Processing Units (GPUs), Google’s Cloud Compute Engine
also supports the Cloud TPU
(Tensor Processing Unit) developed by Google. Both pieces of hardware will speed up machine learning, however, the Cloud TPU can train machine learning models faster than GPUs.
Container services are also fairly standardized across the various providers. These services are becoming increasingly common across businesses and contributed to the creation of a different category of services, covered later, known as “Service Mesh.” The main difference between service providers with containers is that Google created Kubernetes technology. While Kubernetes is available from the other providers, Google has the most expertise.
Finally, serverless compute services begin to have some of the main differences. This technology allows applications to integrate with other services, optimize resources, and accelerate development. Hands down, Amazon Lambda
and Azure Functions
support the widest range of languages and technologies, with Lambda being the most widely used service. IBM Cloud Functions
integrates easily with Watson APIs as well as most of the commonly used IDEs. Google’s Cloud Functions
, however, is the most limited service in this class since it only supports Node.js, Python, and Go.
What are Storage Services and what are my options?
Storage services are made up of Object Storage, Block Storage, and File Storage. Cloud storage services are becoming increasingly relevant year over year as big data becomes more important.
Object storage places data in buckets or containers (the exact term varies between the providers). The providers have service packages that vary based on performance, amount of data, redundancy, and availability. As well, in this category are options for the long term cold storage of data like AWS Glacier
(to accompany Amazon S3
) and Azure Cloud Backup
(to accompany Azure Blob
). In contrast to the other services, IBM Cloud Object Storage
includes both storage and backup in one product.
Block storage keeps data in spread out fixed-sized pieces. In general, they all have similar plans and features. Google Persistent Disk
has one additional feature compared to the other options. It offers automatic disk encryption to protect data, which can be a dealbreaker for some.
Finally, there is file storage. These services store files in a hierarchy typically for use in servers or virtual machines. It is important to remember that these file storage systems are normally hosted on the same service as the virtual machine or server that is using the data. For example, an IBM Cloud File Storage
service would not be combined with a Google Compute Engine virtual machine.
What are Database Services and what are my options?
Database services are made up of Relational Database Management Services (RDBMS), NoSQL Database Services, In-Memory Data Service, and Graph Database Service.
RDBMS offerings remain relatively consistent. As well, all of the providers, except for Google offer separate services, one for running servers or virtual machines and another for warehousing data. Amazon, for example, has Amazon Relational Database Service
for running servers and Amazon Redshift
for the warehouse.
NoSQL databases are an increasingly popular enterprise solution that is separate from Relational databases and graph databases. Choosing between these options comes down to the required performance, API, and languages. For example, Amazon DynamoDB Accelerator (DAX)
In-Memory Data Services and Graph Database Services are both more specialized products. In-Memory Data Services are useful for projects that need to collect and access data quickly. Generally, these services are similar between the providers. Graph Database Services only differ based on the language they use. Amazon Neptune
supports a variety of query languages whereas the rest are limited to one. Azure Cosmos
only supports the Gremlin API for graph databases and IBM Compose
and Google BigTable
only support JanusGraph.
What are Machine Learning and Artificial Intelligence and what are my options?
Over the past five years with the rise in more powerful computer hardware, Machine Learning and Deep Learning has grown. In particular, specialized hardware made it grow. This category is made up of Machine Learning and Artificial Intelligence service.
Machine learning services are similar between the providers with two exceptions. Google Cloud Machine Learning Engine
and TPUs which help accelerate machine learning projects. These technologies lead Google to have the best performance of the providers. IBM Watson Machine Learning
is a war-horse for machine learning and includes many impressive features. In general, IBM Watson is also the biggest name of the bunch.
With artificial intelligence, all service providers offer a variety of features. There are however different artificial intelligence features offered by the different platforms, with new ones regularly being added. To make a proper choice for artificial intelligence it is necessary to research the offerings of each provider at that given time.
What is Hybrid Cloud and what are my options?
Traditionally, hybrid cloud services were the most limited options. The cloud providers preferred to have everything hosted in their data centers using their platforms. What this meant was businesses had to choose between self-hosting their data centers in a private cloud or relying on the public cloud. There could be little to no interaction between the two. Now there are hybrid cloud solutions that allow businesses to take advantage of the best of both solutions.
is a long time hybrid cloud service. In contrast, Amazon was strongly anti-hybrid cloud, making it impossible to use their services as part of a hybrid solution. In 2018 with the introduction of AWS Outpost
, it became possible to use Amazon with a hybrid cloud solution. IBM, with its acquisition of Red Hat, hopes to become the number one hybrid provider by offering the only open cloud solution. Google also offers a variety of tools to integrate local datacenters with their public cloud.
What is the Internet of Things and what are my options?
Over the past 5 years, IoT (Internet of Things) has spread considerably. This spread has led to new services being created to address the analytics and security challenges of IoT devices. All of the providers offer IoT services. Amazon and Azure offer a few specialized IoT integration services to tailor the experience to specific needs. For example, Amazon offers AWS IoT Events
and AWS IoT SiteWise
. Azure also offers IoT Hub
and IoT Central
What is DevOps and what are my options?
With the focus on cloud computing, DevOps changed software development to be more cloud-focused. In particular, DevOps services make Continuous Integration and Continuous Delivery possible to integrate the cloud and development processes. Amazon, Azure, and IBM have a few different offerings that allow the experience to be tailored to specific needs. Google on the other hand only offers Google Cloud Deployment Manager
to handle all DevOps services.
What is Service Mesh and what are my Options?
Service Mesh allows large-scale complex applications to be spread across multiple microservers with a single management console and data aggregated across them. All of the providers offer this service and they have similar features between them. The main difference is that Istion on IBM Cloud Kubernetes Service
, for example, is optimized for IBM services. Similarly, Google Cloud Istio
is optimized for other Google services.
What is Blockchain and what are my options?
Blockchain stores data in groups (called “blocks”) in a cryptographic list (or the “chain”). Businesses have started to use this, however, it is more of a niche product than an everyday need. All of the providers offer at least one blockchain service. In addition to their traditional blockchain service, Amazon also offers Amazon QLDB
which is a newer innovation in the blockchain space.
Cloud computing is poised to continue growing as an important part of application development. Multi-cloud and hybrid cloud solutions, in particular, are set for exponential growth shortly, especially as companies merge their existing infrastructure with the public cloud.
Looking to add an experienced cloud developer to your team?