Ask HN: How did you learn DevOps as a developer?
I'm particularly interested in the experiences of web developers that have made the switch from pure development to a dev ops role? What did you learn first, what was useful, how did your background prepare you for your first role etc?
It's an area that I'm interested in, but don't get much exposure to in my day job as a junior web developer. I'm fairly confident with tweaking Ansible scripts to setup DigitalOcean droplets, but want to learn more.
6 comments
[ 625 ms ] story [ 1108 ms ] threadThanks!
I know so much ridiculous but very practical "devops stuff" because I've been installing things configuring them and deploying to them by hand (running the commands or writing scripts) for a long time. It has come in handy so many times. Now that I think of it, it has paid off more than any other technical experience.
So now I can sit down behind any devops toolkit and very quickly get up and running or even debug it without having much experience with it.
Also managing your own code will help make you a better developer. So in short to learn devops: learn ops by doing it the old fashioned way. Then Ansible, Puppet, Cloud formation, etc... is easy.
I'm literally going the other direction. I've got a sysadmin background, with little coding experience. Getting put in a DevOps role is how I'm learning to code more than just bash scripts.
Chef stuff has me neck deep in Ruby. I'm wishing I'd have gotten into this 20 years ago.
Ansible is great; easy to learn and powerful. I recommend the book "Ansible Up & Running".
Learn Linux thoroughly. I recommend the book "How Linux works". You want to know how you can do basic administration such as managing users, setting up syslog, registering system services (systemd/init.d) etc. Also, learn how ssh works, how you use keys, how ssh config file works, agent forwarding, etc. One of the last chapters/appendixes in the Ansible book goes into detail.
Learn about monitoring, for example using the book "The art of monitoring". Graphite + Grafana works great for me. There are many choices, don't get into the rabbit hole of trying to compare them all. Just set up end to end monitoring and alerting. We use Seyren for alerting which is simple and nice.
I also like the book "Site Reliability Engineering" by some Google engineers. Though this is more advanced stuff, for mature organizations that have the basics covered.