Ask HN: What cloud platform should a Python developer learn?

14 points by SSJPython ↗ HN
Specifically, a Python developer in the automation and scripting space. Which cloud platform is most beneficial: AWS, Azure, or Google?

16 comments

[ 2.7 ms ] story [ 50.1 ms ] thread
What provider(s) do your customer(s) or employer(s) use?

Start there

You should learn cloud platforms, not a cloud platform.

Also avoid to waste your life learning proprietary technology that will become obsolete and discontinued. Software containers are likely there to stay, the latest serverless framework from a cloud provider will likely not.

I don’t agree to 100% but you sure have a good point.

Containers can be hosted on a 100% open source software platform, which is quite a nice feature indeed. Unlike Heroku, Lambda, SQS, Aurora, etc etc.

The vendor lock-in risk is definitely real, but, really, what are the chances that AWS will stop offering Lambda? or GCP will end-of-life BigTable?
Can the cloud help you with a specific goal?
I’d start with terraform against a cloud of your choice.

Personally I’ve been using oracle as a test bed for that given their generous free tier but for production I’d probably use GCP

Agree here - learn a declarative infra description language like terraform, or cdk, or pulumi, or something. Infra-as-code will put you on the right side of things for cloud infra.

I say that as a person who is not super bullish on big cloud architectures. So, also learn a more 'imperative' tool like ansible (even with its sucky syntax), for repeatably provisioning hosts.

Orgs that don't use tools like that are, in my opinion, strictly of a lower level of maturity and having-shit-together-ness than ones that do.

Please don't learn the tools first before learning the fundamentals of the Cloud platform. Else you'll never understand what the resources you're putting together will do and how they interact with each other.
Yeah, but the easiest way to learn a cloud provider's service is to read the TF provider's docs for the resource(s) in question. It helps to cut through the fluff and to get down to the essential elements of the offering.

Once you know how to provision the resource and all the switches and dials on it, you can then go find out what they do and how they work by readying the cloud platforms docs.

This MO works pretty well for me.

What about fly.io? Since Heroku discontinued its Free tier, lots of people praise it for its simplicity.

As a person, who played quite a bit with Digital Ocean and would have loved to skip the server setuping, I think it would be perfect for my future projects as well.

Heroku has been useful to learners so they don't have to deal with the complexity all at once. Render is a good alternative offering a similar experience.
I’ve heard good things about GCP, but I would think AWS open more doors since it’s more popular.

Personally I stay away from Azure, IMHO it just seems clunky. (Just my personal opinion so take it with a grain of salt.)

BTW, if you’re new to cloud stuff this resource might come handy: https://cloudresumechallenge.dev/

Best of luck!

You should learn core concepts that compose the cloud platform. Things like docker containers, databases, object storage, load balancers, NAT/Networking/DNS, e.t.c.

Cloud platform specific stuff is way easier to learn compared to the core concepts.

Start with Docker and a PaaS like Heroku/Render/Fly/Dokku to get the core web service things without getting lost in all the proprietary vendor-specific things, or the madness of building one's own cloud just to run some web applications (Kubernetes etc).
Learning Kubernetes abstractions: which problems are they supposed to solve and how exactly they do it (trade offs) may be useful whatever cloud platform you choose later (in automation/scripting space).