(gentle music)
- 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.
(gentle upbeat music)
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.
(gentle upbeat music)
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.
(gentle music)
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!
(gentle upbeat music)
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.
(gentle upbeat music)
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.
(gentle upbeat music)
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.
(gentle upbeat music)
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.
(gentle upbeat music)
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.
(gentle upbeat music)