Everything you need to know can be learned online. Everything that is, except experience, which you will also need. To help you get started I have created a list of online courses you can take.
To become a SRE you will need to become technically good at Linux system administration and programming. On top of this you’ll also need to learn a wide range of skills related to accelerating software delivery.
Everyones path will be different. In my experience the path is usually a curvy line involving many side quests and setbacks.
To preface, you do not need a degree. However, if you already have a degree in computer science you will find this helps with software development, distributed systems and architecture later on.
If you are starting from scratch the best entry point is usually help desk as these jobs are abundant. From there jump to a managed service provider or somewhere that supports environments for customers. Learn Bash scripting and automation and configuration as code. Attend meetups and try to work on some personal projects. Build a home lab or sign up for some free cloud credits and play as much as you can.
If you’re starting from the development side it’s trickier because your salary will be increasing at a very tempting rate. You’ll likely need to take a pay cut to learn the operational stuff. Your development background will be extremely useful in future but you should expect at least 18 months of poverty. On the bright side once you’re up to speed on the operational side of things you’ll be able to build some very cool tools.
Very few people are prepared to make short term sacrifices for long term gain. Therefore, if you are an experienced software developer who is prepared to cross over into an operational role for a couple of years you’ll be the exception rather than the norm. This will work in your favor in the long run.
Becoming a SRE is really only the beginning. You could probably get to this point within 5 years with a few job swaps and constant learning and a bit of luck. You’ll then need to really focus on experience and hopefully get some fashionable company names on your CV to prove you’ve worked in well run teams.
You will need to be able to manage Linux servers. This includes automating configuration and fixing problems. You’ll need to know about virtual machines and containers and a whole bunch of services. You’ll also need to learn networking to at least a CCNA level. There’s really no skipping over this stage. To become truly useful as a SRE in future you’ll need to know how to fix everything on your own and under pressure.
For configuration management I’d recommend learning Ansible.
Ignore Windows. Learn either Centos or Ubuntu inside out.
Required Experience: 2 years minimum.
This does not mean running a micro instance in AWS for a year on their free plan.
This is proper experience working for a company where you’re the one responsible for fixing the servers. You need to have been paged at least a couple of times at 3am and you need to break out in cold sweats when somebody hints at a DNS issue. You’ll have spent hours tcp dumping. It’s the only way that you’ll deeply acknowledge why complexity is the enemy.
Managing environments in the cloud is an essential skill. If a company still owns a data centre you probably don’t want to work for them anyway. AWS is the most popular so you may as well learn this.
Required Experience: 1 year minimum.
It’s possible that some of this will happen naturally as a result of either your operational experience or developer experience. You’re going to need to somehow land a job that lets you write some Terraform. You really need to get some cloud automation practice and it’s possible that a managed service provider won’t let you spend a lot of time on things that reduce their revenue. Similarly, developers get poked at to churn out features so your cloud-ops time is restricted. Look for a job in a company as a web operations person supporting their internal systems in the cloud. Try to save them some money by turning things off and on again.
In order to converse with developers you need to have lived the life of a developer. This is not just about learning how to program. This is about how developers build software, the way software development teams operate and all of the subtleties.
Required Experience: 2 years minimum.
It doesn’t really matter which language but Python is probably the best choice when beginning learning on your own time. The routes to becoming a developer are numerous. People starting from the operations side progress through scripting and DSL’s towards creating API’s and self service tooling. The simplest route may therefore be to find a job that lets you grow into a development role as part of their ‘DevOps transformation’.
Some people go cold turkey and work on personal projects until they become proficient enough to land a junior developer role. Company size and projects play a part in your experience here. In order to fully understand what it’s like to be a developer you need to work in a software development team and begin to really hate Jira and the agile process in general.
You can fix Linux systems, automate clouds, write your own applications and understand that not all developers are evil but most project managers are. Now you’re ready to overcomplicate everything with Kubernetes. I half joke. Most companies with over 100 developers will have a platforms team and are moving to container orchestration platforms.
Required Experience: 2 years+
Generally you’re going to need to work at some kind of SaaS company. These are the companies that pay the big salaries and have the types of problems that SRE’s solve. You’ll be working in a platforms team and you’re usually outnumbered at least 10:1 developers vs SRE’s. Hopefully you’ve remembered the scars from your operationally focussed roles and weigh them against the pressures of software development. You’re now a very senior member of the team and should be mentoring other team members and helping solve complex architecture issues.
If you have all of the knowledge contained above, plus experience working as an SRE at a well known SaaS company for a couple of years, then you’re the unicorn that every recruiter is currently looking for. Now you need to either optimize for lifestyle or income.
Tell us about a new Kubernetes application
Never miss a thing! Sign up for our newsletter to stay updated.
Discover and learn about everything Kubernetes