preloader
image

Learn Cloud the right way

Many people want to learn how to work in the cloud, and loads of folks will point you towards resources like A Cloud Guru, Linux Academy, YouTube, and many other resources. Those are great resources, while there are many of these and many of YouTube videos out there for getting started, I find that often these focus on the what rather than the why and how. Further, I find that most of these teach cloud in a way that just prepares you to be a mile wide and an inch deep; that is, they’re all based in the web UI and don’t show you how things fit together.

Who is this for?

I value all readers here, though to keep this from being too long, I’ve written this for those that already have a good understanding of Information Technology – particularly a DevOps type of understanding even if only at a high level. Generally, I’d expect that you have a good idea of how workloads/applications at your company are deployed today, the challenges your company is facing, and that you’re ready to dedicate time to learning some ideas for how that can be re-architected.

Disclaimer

I’ve written this for AWS with some Azure sprinkled in; you can do all of this in Azure, GCP, etc., though you’ll probably need to use something like this comparison chart from Google to find the analagous services.

So how should you learn the cloud?

Azure has a free tier. So does AWS. And so does GCP. Pick one and sign up. Don’t stress about which one – really – just pick one and start. With each you’ll get enough credits to run a small server instance for a whole month! Don’t do that.

The cloud is so dang cool because of orchestration and a different way to think about how workloads are run. Some ideas for you to practice:

  • Orchestrating multiple instances
  • Failover
  • Configuration management (e.g.: Ansible, Chef, Puppet, etc.)
  • Make VM root drives disposable by putting data exclsively on a backed-up drive (Azure Managed Disks, AWS EBS1 data drive, etc.)
  • Create some custom machine images (Azure: Machine Image; AWS: AMI2)
  • Find some cool Azure functions or AWS Lambdas on GitHub; get used to configuring, deploying, running, and monitoring them
  • Use services like Azure Notification Hubs, AWS SES3 (or SNS4), etc.
  • Use storage bucket/blob lifecycle rules
  • Understand IAM roles. Better yet, do these labs from Rhino Security Labs
  • Do everything again, except from this point forwards no more using the Web Console (Use the CLI for everything, as it’s much more efficient and repeatable, plus it teaches to think of everything “as code”)
  • Write some Terraform to deploy some infrastructure. Maybe also Azure Templates and AWS CloudFormations & compare them!
  • Try out the CDK for Terraform and for AWS
  • Make a website with GeoIP, CDN5, where it takes markdown documents from one storage bucket and transforms them into HTML via Function/Lamba to another bucket.

This will take time. A LOT OF IT. But it won’t cost more than a few dollars, and will really open your eyes to the power of the public cloud.

Backing Technologies

You may notice that there are a lot of things that are not strictly cloud that are featured here. This is no accident; the cloud is another tool in your toolbox. While incredibly powerful, what really makes the difference in terms of transformational success and ROI6 is your ability to leverage it properly – that is, in a cost-efficient and scalable manner.

VMware brought revolutionary change to running datacenters. Public Cloud builds on those lessons and introduces even more non-persistence and access granularity, which – if done well – can save boatloads of money and can empower an organization to run extremely lean. Lifting and shifting virtual servers as-is isn’t it though, so I suggest not doing that.

Other fun things

There are a ton of ways to build upon your knowledge in the free tier – everything from Rekognition to SageMaker; from Lex and MQ to Comprehend and Glue, and all of the developer-centric tools such as Azure DevOps or AWS CodePipeline/CodeCommit/CodeBuild/CodeDeploy. Over time you’ll be able to start wiring these things together as part of your learning journey, and in no time you’ll be harnessing the power of the public cloud!


  1. Elastic Block Store for VMs to attach to ↩︎

  2. Amazon Machine Image, essentially a full image of a machine which often used for scale-out applications ↩︎

  3. Simple Email Service, a quick way to send emails from any application ↩︎

  4. Simple Notification Service, a fully managed service for both application-to-applicaton (i.e.: events) and application-to-person communications (i.e.: text messages) ↩︎

  5. Content Delivery Network, a cache of web content pushed out close to the users so that information doesn’t have to go all the way from the origin server for each request. Common examples include Akamai, Cloudflare, Fastly, and more. Ones I’d suggest for the learning process with your free accounts: AWS CloudFront and Azure CDN↩︎

  6. Return on Investment ↩︎