Let’s say you’re new to cloud computing, and anxious to dive in, but unsure about which platform to use. The two most popular (by market-share) are AWS (Amazon Web Services) and Microsoft’s Azure. Which should you start with?
First, some facts: According to Burning Glass, which collects and analyzes millions of job postings from across the country, projected growth in Azure-related jobs is expected to hit 38.4 percent over the next decade. The median salary for those with Azure skills, meanwhile, is $100,868. Burning Glass breaks down the job titles that demand Azure:
Meanwhile, Burning Glass pegs growth for AWS-related jobs as even more robust, hitting 45.6 percent over the next 10 years. Current median average salary for AWS-related jobs is $104,088, which is pretty good, especially compared to the “average” tech salary of $94,000! Here are some of the top skills:
Whether you choose Azure or AWS, keep in mind that you might switch to the other at some point. Also, some businesses want cloud architects and developers who are skilled at both. Fortunately, Microsoft and Amazon have designed their respective platforms to make them as “sticky” as possible; they integrate with a full range of developer tools, operating systems (Linux), IDEs (Eclipse, etc.), database services, and shells (bash, Powershell, etc.). There’s a lot to learn (to put it mildly), but also quite a bit of versatility in terms of getting unique projects done. Start with the IDEs and shells and languages you’re comfortable with.
There are four primary “places” where you interact with Azure or AWS. First is through the web: Log into your account, then configure and use the platform right through your browser. Next is the command-line: You can type commands to configure and control your cloud resources, ultimately performing the same tasks as you could through the browser.
Third, there are plugins for IDEs, which let you interact with your cloud resources through various means such as clicking menus and typing commands all without leaving the IDE. Fourth are SDKs, with which you can interact with your cloud resources right from your programs (SDKs exist for virtually all the popular programming languages).
Learn to Love the Command Line (No, Seriously)
Pro tip! If you’re not much of a command-line aficionado, you’re really going to want to start. AWS and Azure command-line tools can live inside shell scripts, where you can do some pretty sophisticated work managing your cloud resources. Also, the command-line tools closely mimic the APIs that you can use through programming languages. Most shops use these command-line tools, and when you land that job, you’ll be expected to know them.
Beyond the tools, it’s vital you understand cloud technology. Where should you start? Why, with the fundamentals, of course. Azure and AWS each have hundreds of so-called services, which are individual technologies within the cloud. That’s far too much to learn at once, and no job is going to require you know all the services. Here are the basics.
This is by far the most ubiquitous. This service consists of your servers, which are virtual computers that are hosted in data centers owned by AWS or Azure. Cloud technology lets you quickly “launch” or “spin up” compute servers. You choose the amount of memory and CPU cores; you then choose an operating system to run on the server. Learn this launching process to the point that you’re comfortable and can do it over and over.
Computers need hard drive space. When launching a server, you need to provide a fixed disk where the operating system and storage lives. You can specify the technology (magnetic vs SSD) and the amount of space.
One of the things that makes the cloud so useful is your ability to store massive amounts of data—terabytes and more. AWS’s storage is called S3 and Azure’s is called Blob. Such storage is typically external to your servers. To access it, you use various APIs in your code, or shell scripts that make use of the CLI. (The CLI can run on your own development machine, as well as on your cloud servers, letting you issue commands from either place.) You can easily upload and download data and access it from your cloud software.
Docker and Kubernetes have become a vital part of cloud computing. To learn about these, you’ll steer away from the Azure and AWS docs and study Docker and Kubernetes separately. Then you’ll read the Azure and AWS docs for what services they provide for containers. This is where you start in the world of serverless technology.
Both AWS and Azure have huge database capabilities. They offer multiple technologies, from SQL to NoSQL. But a key element here is that, while they offer native hosting where you don’t have to install and manage the software (such as MySQL or MongoDB) yourself, you’re still free to install such software on your own compute servers and skip the managed hosting. Doing it yourself is generally more cost-effective but requires more time. For you learning cloud? Learn both.
This is just the tip of the proverbial iceberg. With hundreds of services, it’s easy to get overwhelmed, so just start with the basics I’ve listed here. But which do you choose first? If you’re eyeballing some jobs that use a particular cloud, certainly shoot for that one. In terms of which technology is “better,” just get over that right now. Neither is better. Which is more “suited” for particular jobs? Really, they both have similar offerings, so again, no clear winner.
Are there local meetups and groups that serve one technology or the other, or have far more members? That might be the right choice so you can quickly meet people in the field who can answer questions and perhaps even help get your foot in the door for a job. And if you’re still not sure, play with both! They both offer free beginner plans that allow you to start learning. The plans are fully functional, letting you to build real cloud software. See if you prefer one. Then dive in and read the docs, and learn by doing.