Infrastructure as a service (IaaS) cloud computing complements on-premises computing. On-premises refers to enterprise infrastructure that iss completely managed in a company’s data center or in a third-party data center. An enterprise is free to choose the hardware and software stack to run on their infrastructure. They’re also responsible for all management and control, from physical access to data centers to implementing access controls on applications and data.
If an enterprise deploys infrastructure to a third-party data center, the data center provider will assume some responsibilities, such as controlling physical access and ensuring adequate power supply, but the enterprise maintains full control over the computing and storage infrastructure.
Cloud computing is a shared computing model. A cloud provider allows others to use its computing, storage, and networking infrastructure. Cloud providers typically charge for resources used—this is the “pay as you go” model. Cloud computing customers can provision virtualized compute and storage resources, which are partially managed by the cloud provider. The cloud provider is responsible for physical security, ensuring network access to its data centers, keeping servers patched, and providing operating system and container-level software components.
Cloud providers also typically have significant physical resources to allow customers to scale up compute resources as needed, and to store large volumes of data for extended periods of time. These providers work with such large infrastructures that the economies of scale come into play. This contributes to the cost benefits of using cloud resources over on-premises infrastructure.
The major cloud providers are Amazon Web Services, Microsoft Azure, and Google Cloud. Other public cloud IaaS platforms include IBM Cloud, Oracle Cloud, and Alibaba Cloud.
AWS is the largest cloud provider, and helped define the cloud industry. Today, AWS offerings include an array of services. AWS computing services include Elastic Compute Cloud (EC2), Elastic Container Service (ECS), Elastic Kubernetes Service (EKS), and AWS Lambda for serverless computing. There are several types of storage systems, such as Amazon Simple Storage Service (S3), Amazon Elastic Block Store (EBS), Amazon Elastic File System (EFS), and Amazon S3 Glacier for archival storage.
In the managed database area, AWS offers Relational Database Service (RDS) for transactional relational databases, Redshift for data warehousing, and DynamoDB for high-traffic web apps, e-commerce, and gaming. AWS machine learning offerings currently include recommendations, forecasting, and text analytics. Expect to see that list expand. AWS is also serving the Internet of Things (IoT) market with services such as IoT Core for device connectivity and messaging, and IoT Analytics for data analysis and intelligence.
AWS provides additional enterprise services, such as integration with on-premises identity management systems and directories.
Azure also offers a range of IaaS, PaaS, and SaaS services. In addition to running Windows servers, Azure supports open source Linux operating systems. Like other cloud providers, Microsoft Azure offers VMs, Azure Kubernetes Service for container orchestration, as well as serverless computing with Azure Functions.
Microsoft Azure has a full range of storage services including file, archive, disk, blob, and queue storage services. Of course, there is support for SQL Server, but Azure offers a service called SQL Server Stretch Database for dynamically extending on-premises SQL Server databases to the cloud. Your database options aren’t limited to Microsoft offerings. MySQL, Maria, and PostgreSQL are also available.
Azure’s AI offerings include Cognitive Services to enable contextual interactions, a machine learning platform for training and deploying machine learning models, and Azure Databricks, a managed Spark service for big data analytics.
It has industry-specific services for government, financial services, retail, manufacturing, and healthcare. Azure offers a full range of developer support services, including source code management, project planning, artifact storage, and “build, test, deploy” pipelines. Also, enterprise Microsoft customers may find advantages by leveraging Azure’s Hybrid Use Benefit with native support.
Google Cloud Platform, part of Google Cloud, offers comparable services to AWS, including compute, storage, managed databases, and machine learning resources. IaaS customers will be especially interested in GCP custom VM types. Users can configure their own combination of CPU and memory in addition to choosing a predefined set of instance types created by Google.
GCP exposes the same technologies that Google uses to provide its business services, such as search and email. Some of Google’s services are designed to make it easy for customers to create services the way Google would. For example, Cloud Bigtable is a scalable NoSQL database well suited to write intensive applications, and Cloud Dataflow is a stream and batch processing service. Google is putting more emphasis on supporting enterprise customers—one example is Anthos, which manages Kubernetes workloads across multiple cloud and on-premises data centers.
GCP is a leader in machine learning and data analytics. It also has developer tools, support for IoT, and an API management platform that can be widely used by small and midsize businesses, as well as enterprises. It’s generally seen as a solid third in the public cloud space, with AWS and Azure the clear leaders.
Pricing and total realized costs are two of the main advantages and concerns for organizations adopting public cloud services. Precisely matching your workloads to the right cloud provider and the right instance type and configuration offered by that provider is the best way to optimize cloud spend. But, the complexity of choice created by multiple millions of possible cloud service options drives real management concerns for enterprises venturing into the cloud.
One complexity: AWS, Azure, and GCP all use a pay-as-you-go model, but each has their own variations on that model.
On the whole, cloud vendors charge based on the kinds of resources used and the duration of their use. For example, at the time of this writing, a user could create a VM instance with 2 CPUs and 8GB of memory in AWS and run it for one hour for less than a dime per hour. 1GB of data can be stored in AWS S3 for one month for only $0.0125. (Note that cloud vendors may also charge network egress fees on data that leaves the cloud.)
Vendors have some notable variations from the simple, on-demand model. AWS, GCP, and Azure all offer low-cost VM instances that come with fewer reliability guarantees.
Users with predictable and steady workloads can also take advantage of long-term discounts. These are called savings plans and reserved instances in AWS, and reserved instances in Azure. GCP automatically calculates usage-based discounts.
One of the most important aspects of maximizing your enterprise’s cloud investment is effectively managing your resources—the selection, purchase strategy, and configuration of the public cloud instances on which you place your workloads.
For example, selecting the right EC2 instance type can mean the difference between overpaying and overprovisioning for the services you actually realize.