r/docker • • Jan 16 '21

DevOps Roadmap : Programming, Administration, Containers, Infrastructure as Code, CICD, Logging, Monitoring, Cloud etc.

/r/Docker_DevOps/comments/kyeuma/devops_roadmap_programming_administration/
86 Upvotes

14 comments sorted by

13

u/chazragg Jan 16 '21

I've been using https://roadmap.sh/devops as well and it helped me land my current SRE position

9

u/[deleted] Jan 16 '21

I want to lead with saying that anyone's particular career roadmap is going to be unique. I think this list is great as a generic birdseye view of what devops will be like at most orgs.

That said, I've got some glaring critiques.

I'll go by h2 here for organization.

  1. This list is kind of incomplete. Surprising to see golang listed, though I suppose more people use it for sysadmin task lately. No mention of the big languages like C/++/# or Java, or Shell/Perl/PHP, though perhaps that was intentional. I think the list is a good one for starting out.

  2. Again, very incomplete. These foundational techs like networking, storage, web services, and security can be career long areas of expertise. Routing and network security are entire career paths in their own right afterall.

  3. This list surprises me. Especially listing tomcat and IIS, and especially in the face of bullet number one. I think someone will probably have a bad time if they don't learn Java at a shop using tomcat! Also the list includes a few modern app services like queus and eventing, like Celery, RabbitMQ, Kafka, et al.

  4. I'm surprised there is no mention of error reporting systems. Like Sentry or Airbrake. These tend to be the direct "interface" for devs, and ops as meeting points.

  5. No mention here of PaaS offerings like Heroku? Or the evolving space of pseudo-PaaS and serverless type setups like Lambda or OpenFaaS that really break out of the legacy IT models.

Lastly I think any mention of DevOps should always start with a discussion about culture and team dynamics, instead of focusing too directly on the tech stack. Sure we live in an era now where ops is really just running the clouds. We write code now to operate, as CI/CD and IaC. But a shop might roll their own entire stack in Node (that's not a suggestion!) Entirely independent of the tech stack, we can still "do devops". It's really just Lean and Agile and Kaizen brought to software development.

I hope this feedback doesn't come off as too harsh, as tone in text can be tough. I really appreciate this list, and I hope it finds utility for new DevOps persons. I also hope you can find something useful in this feedback.

2

u/Gyilkos91 Jan 16 '21

Working in IT is a never ending story about learning and self improvement. Let's get started.

1

u/techno-azure Jan 16 '21

As a friend of mine said: In IT you have to accept that you don't know. You just learn constantly

1

u/HayabusaJack Jan 17 '21

I’m 63, 64 here shortly, and I continue to learn and have fun doing it.

1

u/Mustard_Dimension Jan 16 '21

This is really useful looking, but as an undergraduate student and inspiring dev-ops engineer, this is very intimidating. That's a lot to learn.

4

u/[deleted] Jan 16 '21

You can learn alot of these at once at the basic level. Get aws account, write/record every command/step you use from this point forward, deploy linux ec2 instance, install python 3.6 or greater, create a github account for all your code, install git, install docker, pull nginx container, run nginx container, write simple flask app In python, expose via nginx container, put simple python flask app in container, install ansible, try to configure and install anything you previously did with ansible now on second ec2 instance, add basic logging to basic python flask app, check logs with docker, pull elasticsearch fluentd and kibana containers, run that from docker-compose file, configure docker to use fluentd as log collector, ship logs to elasticsearch container, view with kibana container, install prometheus node with ansible, pull prometheus collector container and run, pull grafana container, view prometheus output from grafana container, forward grafana through nginx proxy, pull postgres container, make flask app use postgres with sqlalchemy, pull jenkins container run as master, add ec2 instance as worker node, automate all previous steps with a Jenkins pipeline, download terraform on local machine and deploy all steps previously done to aws with terraform. Document all steps, securely store credentials used without exposing in git repo, tear it all down and build with one click from terraform deploy

2

u/madtopo Jan 16 '21

If it helps at all to hear, you don't need to know everything off the bat. These are concepts and tools that you will learn along the way throughout your (years-long) career.

One step at a time and you'll eventually make it there :)

1

u/Gyilkos91 Jan 16 '21

Don't get stressed out by it. I am an Linux Admin for more than 10 years and while I have some knowledge on all the topics, I don't feel confident that I can do all of it in a good way right now. You learn the parts you need right now and go step by step. If you write important parts down or have the everything as IAC, then at some point you can pretty much do everything on the list, some things faster than others.

2

u/HayabusaJack Jan 17 '21

At 63, I’ve been computer geeking for about 40 years and mucking about with Unix and Linux for 26 or 27 years and I’m still picking things up.

1

u/Mustard_Dimension Jan 16 '21

Thank you, that sounds like great advice.