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.
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.
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.
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.
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.
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.
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.
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.
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 includes TensorFlow 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.
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.
Azure Stack 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.
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.
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.
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.
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.
Provide your information to talk with a number8 Account Executive about your development needs today and feel what it’s like to be listened to before being sold a solution.
Let us help you add highly skilled, versatile developers to your team.