Ask HN: Is an AWS certification worth it for learning the basics of dev ops?

24 points by sweetheart ↗ HN
For context, I'm a senior software engineer primarily working on the frontend. I'm also a founder of a small company and the only technical person on the team at the moment. I want to (need to!) learn more about dev ops so that I can migrate us off limited tools like Firebase, which are starting to limit us.

Is an AWS cert a reasonable and effective way to do that? How did y'all learn more about dev ops?

I don't want to be an SRE, but I want to be able to build our applications without being locked into very limited and opinionated services.

15 comments

[ 2.9 ms ] story [ 52.7 ms ] thread
I would recommend Cantrills aws courses[0]. the Solutions Architect course is what you're after. Its only 40 bucks and worth more then that. Completely jam packed with information. It walks you through the scenario of updating a non-profit orgs infra from an in house one to an aws cloud version.

The cert might be a good thing to aim for, but if you could specify what exactly you want/need to learn how to do. we could probably give more detailed information

[0] learn.cantrill.io

I will definitely check this out. Thank you kindly!

For my short term concerns, I want to migrate one of my applications off of Firebase. Primarily just dealing with our primary DBs, user auth, and object storage. I understand how AWS can easily fulfill all of this, but no clue how to get all of that orchestrated.

In general, I'd like to know more about this type of architecting simply because it interests me, and I want to be able to build the tools I imagine without being hampered by how to host DBs, event queues, etc.

For auth, cognito is what you'll have to look at unless you want to build something out yourself. It has a per user cost

Avoid Dynamo unless you understand it. It will be like firebase but 10x worse, if you get it wrong, there are 2 great aws conference talks on youtube about it, and a great book out there. Its really its own subject, great when you use it right, and absolute nightmare any other way.

Object storage with s3 is pretty simple, turning on cloudfront for cdn is also easy.

I have AWS experience, if you would like to do a consultation to talk it over, my email is in my profile. I don't really have the bandwidth to take on another project right now, but can provide some advice.

+1 for Cantrill. I got their SAA last year and learned a lot. It's the most comprehensive AWS online course AFAIK. You not only learn stuff for the certification but also learn many 'whys' and there's lots of practice.
If you don’t want to be locked, AWS is perhaps not for you. IMHO you should learn software containers and other standard devops tools.
Just curious, how are you getting limited by Firebase for whatever your use-case is?
I would be focused on trying to simply run your workloads on your own.

It can be with EC2 or on your own physical/virtual Linux machine, but it should involve the required databases, the various components (e.g. your front & backends,) and some way of providing access (it could just be the option address and a port at the start.)

Lastly, figure out what it looks like to update code safely.

Afterwards, you should have a pretty good idea of how you can leverage cloud services to enhance or replace aspects of this, but will be dependent on none of them.

I can’t imagine that you’ll get this valuable perspective from any available course.

I work at AWS, and worked at private businesses who used AWS prior to joining AWS. I also have a handful of AWS (including DevOps Pro) and non-AWS certs.

An AWS cert will teach you how to do DevOps using AWS tools. It'll teach you how to build a CI/CD pipeline, deploy containers, manage Kubernetes, etc. all in AWS. But to really understand it all, you need to know the underlying tech.

I would suggest learning the underlying tech first. And then if you decide you want to deploy on AWS, get the AWS cert. But if you don't know the difference between a Packer file and a Dockerfile; or if you don't understand IaaC, the AWS cert (assuming you pass the exam) will be of little use.

If you want to do AWS, I may suggest getting a Developer Associate/DevOps Pro training course and going through it. But any time you run into a concept you don't know, stop the course and go backfill your general DevOps knowledge. It'll help you retain the AWS knowledge, and you'll also be in a better position to actually put that cert to use.

Do you happen to know any DevOps training courses you would suggest I looked at?
Honestly, I haven't found a single 'this is DevOps' training course. But here are some pretty decent YouTube videos I just found:

https://www.youtube.com/watch?v=Me3ea4nUt0U&list=PLEiEAq2VkU... <-- Good intro to DevOps concepts, and points out some popular tools https://www.youtube.com/watch?v=l0tnG231VEc&list=PLEiEAq2VkU... <-- Deeper dive into DevOps tooling

From there you can dive into info about particular tools. Tooling discussions usually talk about other tools that can fit the same role. For example, if you're learning about Ansible, you'll probably hear about Puppet and Chef. That will give you other paths to travel down and learn more about the space.

Although if you already have a stack in mind, it'll help your studies be more focused.

Really what you want to learn is architecture and systems engineering. AWS is just a collection of SaaS tools that you use to build a solution. They all have their own qualities which some other systems share. Actually using AWS is like becoming a plumber; you're just connecting pieces together. The more important part is understanding what the underlying design is and why you would use one piece of technology or another in a given solution.

To answer your question: I don't think you're going to gain a whole lot out of the certification, but if it leads you to better understand how to build distributed systems, it couldn't hurt. Try to focus more on understanding the underlying concepts than the way AWS implements something. (Learning "the way AWS does it" is often a shitload of extra work which doesn't contribute to helping you understand how to design and operate systems)

Also fwiw, think of the word "DevOps" is a word that means 'the practice of technocultural collaboration'. There is no 'dev ops', but there is systems operations, systems engineering, systems architecture, systems administration. It doesn't really have to do with development, even if there is sometimes quasi-programming or developer-like concepts involved.

Sometimes I think I should start a computer systems engineering & operations school... It's a really deep set of topics that there aren't good books about.

For real. Most of what they do is wrap and bastardize open source services. If you want to command true value in the industry for decades to come, learn all the systems they use under the hood. Right now high school students are getting their AWS certificates. That niche will soon be completely flooded. Go for the core technologies and you will never be without a job or means to start your own company.
If you want to get familiar with DevOps basics in a cloud environment I would start with the Cloud Resume Challenge (https://cloudresumechallenge.dev/). It provides a good way to get started on building things with IaC and using pipelines to do so.

It also provides practical, real-world experience that none of AWS' certs offer.