Often, your decision depends more on your DevOps team’s comfort level with a particular cloud provider or your current stack more than the cloud provider itself. After you’ve decided to move to the cloud, the next decision is to decide on a cloud provider that fits your DevOps needs. Here are some things to consider when evaluating cloud providers with DevOps principles in mind:
- Solid track record. The cloud you choose should have a history of responsible financial decisions and enough capital to operate and expand large datacenters over decades.
- Compliance and risk management. Formal structure and established compliance policies are vital to ensure that your data is safe and secure. Ideally, review audits before you sign contracts.
- Positive reputation. Customer trust is absolutely key. Do you trust that you can rely on this cloud provider to continue to grow and support your evolving DevOps needs?
- Service Level Agreements (SLAs). What level of service do you require? Typically cloud providers offer various levels of uptime reliability based on cost. For example, 99.9 percent uptime will be significantly cheaper than 99.999 percent uptime.
- Metrics and monitoring. What types of application insights, monitoring, and telemetry does the vendor supply? Be sure that you can gain an appropriate level of insight into your systems in as close to real-time as possible.
- Compute capabilities
- Storage solutions
- Deployment features
- Logging and monitoring
- Friendly user interfaces
The three major cloud providers are Google Cloud Platform (GCP), Microsoft Azure, and Amazon web Services (AWS). You can also find smaller cloud providers and certainly a number of private cloud providers, but the bulk of what you need to know comes from comparing the public cloud providers.
Amazon Web Services (AWS)
As do the other major public cloud providers, AWS provides on-demand computing through a pay-as-you-go subscription. Users of AWS can subscribe to any number of services and computing resources. Amazon is the current market leader among cloud providers, holding the majority of cloud subscribers.It offers a robust set of features and services in regions throughout the world. Two of the most well-known services are Amazon Elastic Compute Cloud (EC2) and Amazon Simple Storage Service (Amazon S3). As with other cloud providers, services are accessed and infrastructure is provisioned through APIs.
Microsoft Azure
Before Microsoft launched this cloud provider as Microsoft Azure, it was called Windows Azure. Microsoft designed it to do just what the name implies — serve as a cloud provider for traditionally Windows IT organizations. But as the market became more competitive and Microsoft started to better understand the engineering landscape, Azure adapted, grew, and evolved.Although still arguably less robust than AWS, Azure is a well-rounded cloud provider focused on user experience. Through various product launches and acquisitions — notably GitHub — Microsoft has invested heavily in Linux infrastructure, which has enabled it to provide more robust services to a wider audience.
Google Cloud Platform (GCP)
The Google Cloud Platform (GCP) has the least market share of the three major public cloud providers but offers a substantial set of cloud services throughout nearly two dozen geographic regions.Perhaps the most appealing aspect of GCP is that it offers users the same infrastructure Google uses internally. This infrastructure includes extremely powerful computing, storage, analytics, and machine learning services. Depending on your specific product, GCP may have specialized tools that are lacking (or less mature) in AWS and Azure.
Finding DevOps tools and services in the cloud
Literally hundreds of tools and services are at your disposal through the major cloud providers. Those tools and services are generally separated into the following categories:- Compute
- Storage
- Networking
- Resource management
- Cloud Artificial Intelligence (AI)
- Identity
- Security
- Serverless
- IoT
Additional services are included, such as identity management, block storage, private cloud, secrets storage, and more. It’s far from an exhaustive list but can serve as a solid foundation for you as you begin to research your options and get a feel for what differentiates the cloud providers.
- App deployment: Platform as a Service (PaaS) solution for deploying applications in a variety of languages including Java, .NET, Python, Node.js, C#, Ruby, and Go
- Azure: Azure Cloud Services
- AWS: AWS Elastic Beanstalk
- GCP: Google App Engine
- Virtual machine (VM) management: Infrastructure as a Service (IaaS) option for running virtual machines (VMs) with Linux or Windows
- Azure: Azure Virtual Machines
- AWS: Amazon EC2
- GCP: Google Compute Engine
- Managed Kubernetes: Enables better container management via the popular orchestrator Kubernetes
- Azure: Azure Kubernetes Service (AKS)
- AWS: Amazon Elastic Container Service (ECS) for Kubernetes
- GCP: Google Kubernetes Engine
- Serverless: Enables users to create logical workflows of serverless functions
- Azure: Azure Functions
- AWS: AWS Lambda
- GCP: Google Cloud Functions
- Cloud storage: Unstructured object storage with caching
- Azure: Azure Blob Storage
- AWS: Amazon S3
- GCP: Google Cloud Storage
- Databases: SQL and NoSQL databases, on demand
- Azure: Azure Cosmos DB
- AWS: Amazon Relational Database Service (RDS) and Amazon DynamoDB (NoSQL)
- GCP: Google Cloud SQL and Google Cloud BigTable (NoSQL)
The table below lists additional services provided by most, if not all, cloud providers.
Service Category | Functionality |
Block storage | Data storage used in storage-area network (SAN) environments. Block storage is similar to storing data on a hard drive. |
Virtual Private Cloud (VPC) | Logically isolated, shared computing resources. |
Firewall | Network security that controls traffic. |
Content Delivery Network (CDN) | Content delivery based on the location of the user. Typically utilizes caching, load balancing and analytics. |
Domain Name System (DNS) | Translator of domain names to IP addresses for browsers. |
Single Sign-On (SSO) | Access control to multiple systems or applications using the same credentials. If you’ve logged into an independent application with your Google, Twitter or GitHub credentials, you’ve used SSO. |
Identity and Access Management (IAM) | Role-based user access management. Pre-determined roles have access to a set group of features; users are assigned roles. |
Telemetry, monitoring and logging | Tools to provide application insights on performance, server load, memory consumption and more. |
Deployments | Configuration, infrastructure and release pipeline management tools. |
Cloud shell | Shell access from a command-line interface (CLI) within the browser. |
Secrets storage | Secure storage of keys, tokens, passwords, certificates and other secrets. |
Message Queues | Dynamically scaled message brokers. |
Machine Learning (ML) | Deep learning frameworks and tools for data scientists. |
IoT | Device connection and management. |