Cloud Provider Comparisons

Cloud Provider Comparisons: AWS vs Azure vs GCP – Developer Tooling

Episode description

In Cloud Provider Comparisons, we take a look at the same cloud services across the three major public cloud providers – Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP). In this episode we focus on developer tooling. Join ACG Senior Community Training Architect Lars Klint as he explores and compares common cloud developer developer tools across AWS, GCP and Azure, including consoles, the Command Line Interface (CLI), and Software Development Kits (SDK). We also compare some specific cloud developer tools, local developer tools, and infrastructure as code offerings.

Links to everything covered in this episode are provided below.

0:00 Introduction
0:35 What is developer tooling for the cloud?
1:10 Command Line Interface (CLI)
2:08 Software Development Kit (SDK)
4:10 Consoles
5:01 Cloud developer tools
6:03 Infrastructure as code
7:10 Local developer tools
8:17 Specific developer tools

Continue your cloud developer learning at ACG with these courses:

Episode links:

Series description

In Cloud Provider Comparisons, we explore and compare the same cloud service across the three major public cloud providers - Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP).

- Since you're here, it's likely you already know about cloud platforms, but do you know how one compares to the others when it comes to features and services? Well, that is what this show answers. I'm Lars Klint and this is Cloud Provider Comparisons. In this episode, we focus less on the actual cloud services and more on how you build your applications using them. Yes, developer tooling is key to getting the most out of any cloud platform when building the next Leonardo DiCaprio deep fake Movie Maker.

First, though, what are we talking about when we say developer tooling? It is whichever tool you use to interact, manipulate, use, integrate, or in some other way consume cloud services. That's kind of broad, I know. So allow me to start with some of the tools which are common across AWS, GCP, and Azure. Then, I'll get into tools that can change a lot and why cloud platform choice matters less than dev tool choice.

Since the infancy of computing, developers and engineers have used a command line interface or CLI to interact with devices. A CLI is a standard text input tool where you can type commands and get a text-based response return. This is still the case with cloud due to the familiarity and efficiency of a CLI. Typing on a keyboard hasn't changed much in the last 40 years. All three cloud platforms have a CLI tool that is both powerful and widely used.

If you're a serious cloud developer person using the CLI on any platform is how you get stuff done efficiently. They also have both a local version you can install on your machine, and an online version of the CLI you can use from anywhere.

Okay, the CLI was an easy one. It's pretty much the same across all three cloud platforms. When we talk about developer tooling, though, it really depends on which servers you want to use, which programming language you prefer, and how you like to interact with a cloud platform. But let's start with a standard offering for many products, including cloud, to any developer wanting to use their product, the software development kit or just SDK. An SDK is a nicely wrapped package of tools for third-party developers to produce applications using a particular framework, and GCP, Azure, and AWS all have one.

Well, when I say one, I mean, a ton! Yes, it is standard to have an SDK for your platform. But as my old mentor said, "The good thing about standards is that there are so many to choose from." AWS offers SDKs for nine different languages including JavaScript, Python, php, .net, Ruby, Java, Go, NodeJS, and C++, but they aren't done there. There are also specific SDKs for web development, mobile development, IoT, IDE, integration, and command line tools.

Azure has a slightly simpler approach and mainly offers SDK versions for specific programming languages, such as .net, Java, JavaScript, Python, Go, C++, C, PHP, and Ruby. There are also IoT specific, iOS and Android SDKs though hm. GCP, of course, also provides an SDK but it works a bit different. What Google calls the Cloud SDK is for using the gcloud CLI tool.

And if you want to use a specific language or platform with GCP, then you use one of the many, many Google APIs. There are 645 of them at the time of recording, hm!

The consoles or user interfaces for each cloud is a single entry point for the entire range of cloud services. GCP calls this the cloud console, AWS calls this the management console, and in Azure, it's the portal. While all the consoles can perform pretty much the same functions, they look vastly different. At first glance, GCP uses a huge number of menus that flies out from the left. AWS presents all their cloud services in one single list.

And Azure has lots of blades that keeps growing left as you progress, yeah. However, once you get used to the tool, they all do the same thing, let you manage cloud resources through a user interface, hm.

And that brings us to cloud dev tools. These are tools that live exclusively in the cloud which developers use to build amazingness. There are a lot of these between the platforms, but I'll focus on tools you use to write code. AWS has Cloud9, a 100% online integrated development environment or IDE for creating applications using AWS resources. It supports a number of programming languages, allows collaboration in real time, supports container development, and you can build, test, and debug your code too.

Azure has the Visual Studio Code online experience which implements an almost exact online version of the very popular VS Code, more on that in a sec. GCP has their Cloud Code IDE which both allows you to write code online, but also integrates into common developer tools, which we'll cover shortly.

A very popular way to create and manage cloud resources is using code or scripts. Being able to run some code to create infrastructure provides a bunch of benefits like automation, versioning, and efficiency, meaning fewer mistakes and more time for cake, hm. AWS has CloudFormation to run and manage scripts and that uses yaml. And in Azure, you can use Azure Resource Manager templates, or just ARM templates, to deploy infrastructure resources using json notation. Microsoft, though, has taken it one step further though and created Bicep.

Get it? Arm, bicep (drums rolling), yeah. A domain specific language that offers type safety and declarative syntax to make using infrastructure as code much easier. On GCP, the tool is called Deployment Manager and uses yaml as a language for defining the scripts to run. However, you can also use Terraform to create a single script that works on all three cloud platforms.

If you're a developer, like me, you might also prefer to have all your dev tools on your local machine. Often, it prevents dropouts, latency issues, and performance problems. It also enables you to dev all night offline on a remote mountain top while singing old ABBA songs. I digress. So far, we've been comparing clouds, but when it comes to local tools on your own device, it depends more on the language you want to use than the choice of cloud platform.

If you're a Java developer, you're most likely be using Eclipse, Netbeans, or Intellij Idea. If you are a Node JS developer, VS Code or WebStorm are good choices. And if you are into .net and C#, chances are that Visual Studio or VS Code is your tool of choice. Now, my point is that any of the three big clouds will be supported for your language of choice, and hence your tool of choice, hm.

Now, always pick the right tool for the job though, which in this case will work with all clouds, most likely.

At this point, you might be shouting at the screen saying, "You forgot the Kubernetes big data machine learning premium notebook service!" And you'd be right. There are a ton of very specific developer tools on all three platforms. And this show isn't long enough to go through all of them, but each cloud platform creates tools that are unique to it and doesn't really translate to the others. So, I've left them out this time, hm. I'll add the links though to this episode if you're curious to explore these specific tools in more depth.

To sum it all up, when it comes to developer tools, the cloud provider you choose is less important compared to choosing the right tool for the job. Azure, GCP, and AWS all provide great online tools as well as support for almost any tool you prefer to use locally. If you want to learn more about cloud development, have a look at A Cloud Guru's courses for a more in-depth breakdown and hands-on approach. So thanks for watching. Stay safe and keep being awesome cloud gurus.

More videos in this series

Master the Cloud with ACG

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?