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, you’re about to! In this post, we’ll talk about how you build applications using various cloud services.
Your keys to a better career
Get started with ACG and transform your career with courses and real hands-on labs in AWS, Microsoft Azure, Google Cloud, and beyond.
What is developer tooling?
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 of 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.
Command Line Interface
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. (Other than theclickity-clackity mechanical keyboards of old got replaced with slimmer, quieter — and worse — keyboards.)
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.
The Software Development Kit
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.
What is an 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 SDK||Azure SDK||GCP SDK|
|Specific SDKs for web development, mobile development, IoT, IDE, integration, and command-line tools||IoT-specific iOS and Android SDKs||Google APIs are used for specific languaes or platforms|
GCP, of course, also provides an SDK, but it works a bit differently. 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 writing this!
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 fly out from the left.
- AWS presents all their cloud services in one single list.
- And Azure has lots of blades that keep growing left as you progress.
However, once you get used to the tool, they all do the same thing: let you manage cloud resources through a user interface.
Get the Cloud Dictionary of Pain
Speaking cloud doesn’t have to be hard. We analyzed millions of responses to ID the top concepts that trip people up. Grab this cloud guide for succinct definitions of some of the most painful terms in cloud.
Cloud Dev Tools
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 the tools you use to write code.
- AWS has Cloud 9, 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.
Infrastructure as Code
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!
- AWS has CloudFormation to run and manage scripts, and that uses yaml.
- In Azure, you can use Azure Resource Manager templates — or ARM templates — to deploy infrastructure resources using JSON notation. Microsoft, though, has taken it one step further and created Bicep. (Get it? ARM? Bicep? Yeah…) Bicep is 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.
Local Developer Tools
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. But 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 to 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. Now always pick the right tool for the job, though, which in this case will work with all clouds, most likely.
Specific Developer Tools
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 post isn’t long enough to go through all of them, but each cloud platform creates tools that are unique to it and don’t really translate to the others. So I’ve left those out.
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 (including our rotating line-up of free courses) for a more in-depth breakdown and hands-on approach. So, thanks for reading. Stay safe and keep being awesome, cloud gurus.