A few months ago I published an article about the pros and cons of DevOps as a Service. There I mentioned AWS and Google Cloud Platform as the main platforms that are frequently used by DevOps. Why can’t we make a small comparison for them? Sure, there’s also Microsoft Azure among the giants. But I’ll try to come back to it later. So, today I’m going to make a basic comparison for AWS vs Google Cloud Platform in the term of using these cloud computing providers for DevOps.
AWS vs Google Cloud Platform. What is better for DevOps in the cloud?
You already know that DevOps as a Service (DaaS) is a delivery model for a set of tools that facilitates collaboration between a software development team and the operations team. In this model, the DaaS provider collects the disparate tools that cover various aspects of the overall process and connects them to work together as one unit.
Nowadays, many organization adapt DevOps and migrate their apps to the cloud. Basically, it is the migration of your tools and processes for continuous delivery to a hosted virtual platform. How to choose a better cloud computing provider?
AWS vs Google Cloud Platform
Let’s start with Amazon Web Services (AWS). AWS has already built a powerful global network to provide a virtual host for some of the world’s most complex IT environments. Its data centers are fiber linked and arranged all over the world. In AWS the payments are scheduled according to the services you use down to the millisecond of compute time. In a nutshell, AWS is a fast and relatively easy way to migrate your DevOps to the cloud.
Google Cloud Platform’s (GCP) DevOps option worth seriously considering too. The ever-growing list of capabilities of this global network already includes the support for such platforms as Visual Studio, Android Studio, Eclipse, Powershell and many others.
There is no need to name all the obvious AWS main benefits like ‘automation’, ‘secure’, ‘programmable’, ‘pay-as-you-go’ etc.
In AWS, there are three particular services are the core of continuous cloud delivery:
- AWS CodeBuild This is extensible, fully managed build service that provides continuous scaling along with CI and CD. CodeBuild offers automatic scaling and grows on demand with your needs, for example, the simultaneous deployment of two different build versions, which allows for comparison testing in the production environment. Particularly important for many organizations is CodeBuild’s cost efficiency, because you are charged by the minute for the compute resources you use.
- AWS CodePipeline It builds, tests, and deploys your code every time there is a code change, based on the release process models you define. This enables you to rapidly and reliably deliver features and updates. You can easily build out an end-to-end solution by using the pre-built plugins for popular third-party services like GitHub or integrating your own custom plugins into any stage of your release process. With this CodePipeline, you pay for what you use — no upfront fees or long-term commitments.
- AWS CodeDeploy CodeDeploy delivers the working package to every instance outlined your preconfigured parameters. AWS CodeDeploy automates code deployments to any instance, including Amazon EC2instances and on-premises servers. AWS CodeDeploy makes it easier to rapidly release new features, helps in avoiding downtime during application deployment, and handles the complexity of updating the applications. It is code-agnostic and easily incorporates common legacy code.
In addition to native AWS DevOps tools, there are some 3rd party options like Chef, Puppet, Jenkins etc.
Find the details about AWS for DevOps. Some useful tips could be found on AWS DevOps blog.
Google Cloud Platform
Google Cloud Platform is made up of a lot of different services and solutions to utilize the same software and hardware infrastructure that Google uses for its own products (like YouTube and Gmail).
Some of the main GCP’s benefits are that it is one of the largest and most advanced computer networks, and it gives you an access to the numerous tools to help you focus on building your application. Stackdriver Monitoring, Stackdriver debugger, Stackdriver Logging, security scanner service (App Engine) and many more. You can use them all immediately as part of your application lifecycle pipeline.
Native management tools for the Google Cloud environment include the next modules:
- Google Compute Engine Google Compute Engine allows users to launch virtual machines on demand. This is one of the primary services for complete isolation and automatic scaling from single instances to global. Compute Engine’s VMs boot quickly, come with persistent disk storage, and deliver consistent performance. Its virtual servers are available in many configurations including predefined sizes or the option to create Custom Machine Types optimized for specific needs. Note, if you compare, Amazon EC2 is essentially the same thing as Google Compute Engine.
- GCP Deployment Manager Google Cloud Deployment Manager allows you to specify all the resources needed for your application in a declarative format using yaml (or Python, or Jinja2). This means that rather than painstakingly listing each step that will be required for a deployment, DevOps teams can tell Deployment Manager what a final deployment should look like and GCP will use the necessary tools and processes for you. When a perfect deployment procedure is developed, it is saved to be repeatable and scalable on demand. With Google Cloud Deployment Manager you can do deploy many resources at one time, in parallel, pass variables into your templates and get output values back, view your deployments in the Google Cloud Console in a hierarchical view and more…
- GCP Cloud Console Cloud Console gives you a detailed view of every detail of your DevOps in the cloud. Web applications, data analysis, virtual machines, datastore, databases, networking, developer services… Google Cloud Console helps you deploy, scale and diagnose production issues in a simple web-based interface. From virtual machines to release management and rollback, master, monitor and manage all things GCP from the desktop or on the fly. With GCP Cloud Console for DevOps, you can easily take charge of the cloud-based continuous delivery cycle.
Find out more about Google Platform for DevOps here. Also, there you can read some useful tips mentioned in DevOps guides that are linked to the same page I just mentioned.
Google Cloud Platform vs AWS comparison table
You can equip AWS EC2 instances with up to 128 vCPUs and 3,904 GB of RAM.
You can equip Google Compute Engine instances with up to 96 vCPUs and 624 GB of RAM
General with volume sizes from 1GB to 16TB, and Provisioned IOPS SSD from 4GB to 16 TB
SSD, volume sizes from 1 GB to 64 TB
Amazon EC2 instances have a maximum bandwidth of 25 Gbps, however, this is only on the largest instance sizes. Standard instances max out at 10 Gbps/second.
Each core is subject to a 2 Gbits/second (Gbps) cap for peak performance. Each additional core increases the network cap, up to a theoretical maximum of 16 Gbps for each virtual machine.
Billing and Pricing
AWS simple monthly calculator
Google Cloud Platform pricing calculator
(I didn’t mention prices on purpose — you have to enter your needed parameters to see the pricing).
Google Cloud Documentation
AWS platform security model includes:
- All the data stored on EC2 instances is encrypted under 256-bit AES and each encryption key is also encrypted with a set of regularly changed master keys.
- Network firewalls built into Amazon VPC, and web application firewall capabilities in AWS WAF let you create private networks and control access to your instances and applications.
- AWS Identity and Access Management (IAM), AWS Multi-Factor Authentication, and AWS Directory Services allow for defining, enforcing, and managing user access policies.
- AWS has audit-friendly service features for PCI, ISO, HIPAA, SOC and other compliance standards.
Google Cloud security model includes:
- All the data stored on persistent disks and is encrypted under 256-bit AES and each encryption key is also encrypted with a set of regularly changed master keys. By default.
- Commitment to enterprise security certifications (SSAE16, ISO 27017, ISO 27018, PCI, and HIPAA compliance).
- Only authenticated and authorized requests from other components that coming to Google storage stack are required.
- Google Cloud Identity and Access Management (Cloud IAM) was launched in September 2017 to provide predefined roles that give granular access to specific Google Cloud Platform resources and prevent unwanted access to other resources.
The most important telemetry insights for DevOps
When you have chosen your provider, it is vitally to keep an eye on your statistics that should include next parameters:
- Server and VM health and statistics
- Application health
- Automated testing results
- Network volume
- Security and access control list activity
- Database transactions
Nowadays cloud computing has become more cost-efficient, reliable and secure. All the major providers are now investing in their hardware, software, and global networking infrastructure to obtain more market share. Due to the competition between them, the DevOps teams received very sophisticated, easy-to-integrate, fast and hi-end solutions. As the quality remains almost equal, the difference between main cloud computing providers lies mostly in price and the number of options you get.
What can also make a difference this is the operation zones. AWS operates 49 Availability Zones within 18 geographic Regions, with announced plans for 12 more Availability Zones and four more Regions in Bahrain, Hong Kong SAR, Sweden, and a second AWS GovCloud Region in the US. While Google Cloud Platform has 13 regions, 39 zones, over 100 points of presence, and a global network with 100,000s of miles of fiber optic cable.
Taking a market share into account, AWS is leading. Google is making good progress but has much more work to do to prove itself a viable enterprise option.
AWS leads in terms of the numbers of customers and products. On the other hand, GCP already provides all the necessary functionality and offers good pricing along with configuration models, backed up by serious traffic privacy and security measures.
So, what is better for DevOps in the cloud? I don’t have an answer but I showed you the alternatives to choose from. Now, when you have all the data, you have the power to make your own decision for your DevOps team!
p.s. Don’t forget about Microsoft Azure! I’ll consider it soon too!