I’ve been working with Microsoft Azure Cloud Platform for a while now and in my free time, I’ve been also looking into Google’s Cloud Platform out of curiosity. It’s interesting to see how the two platforms compare. On one hand, both platforms provide similar functionalities but usually under different names. On the other hand, there are some unique offerings by Microsoft Azure and some unique offerings by Google Cloud.
In this series of posts, I want to go through Microsoft Azure and Google Cloud and highlight similarities and differences as we go along. My goal is not to rank one cloud platform as better or worse than the other, that’s not my intention. Rather, I want to technically look at both platforms, clarify similarities and differences, and hopefully make lives of fellow cloud developers a little bit of easier.
Many organizations use cloud resources to compute and not surprisingly, both Microsoft Azure and Google Cloud group a number of features under “Compute”, so this is a good starting point for our investigation.
In Microsoft Azure, Compute section contains the following features:
- Virtual Machines (IaaS): Fully customizable Windows and Linux VMs and apps (typically Microsoft apps, some Linux apps, Docker and a few more).
- Cloud Services (PaaS): Web and Worker Roles. Support for Java, Node.js, PHP, Python, .NET, Ruby. Autoscaling, load balancing and health monitoring of instances with automatic OS and application patching.
- Batch: Cloud-scale job scheduling and compute management. Stage data and execute compute pipelines. Takes care of scheduling, queuing, dispatching and monitoring jobs.
- RemoteApp: Install Windows apps on a Windows Server in the cloud and let Remote Desktop clients access those apps on their Internet-connected laptop, tablet, or phone.
In Google Cloud, Compute section contains the following features:
- Compute Engine (IaaS): Unmanaged Linux VMs running in Google’s infrastructure.
- Container Engine: Run Docker containers in the cloud.
- App Engine (PaaS): Managed platform for building web and mobile backends. Support for Java, Python, PHP and Go. Autoscaling and health monitoring of instances with automatic OS updates.
In terms of similarities, conceptually Virtual Machines = Compute Engine and Cloud Services = App Engine. Azure does not have a separate offering for Docker containers but Virtual Machines can be configured to run Docker, so Virtual Machines can be thought to contain the Container Engine as well.
In terms of differences, RemoteApp is a Windows specific service, so it’s not surprising that Google Cloud Platform does not have anything similar. Azure’s Batch service has no corresponding service under Google Cloud Compute section but Google Cloud has something called Cloud DataFlow under Big Data section that looks very similar. We will cover Big Data section of Google Cloud in later posts.
This wraps up other first post on the topic. In the next post, I will be looking look at different storage options provided by Microsoft Azure and Google Cloud.