Roadmap 2022 Optimized
Roadmap 2022 Optimized
Roadmap 2022 Optimized
Roadmap
2022 WILL BUTTON
01
Start
Here
Spoiler alert #2: You have to be
comfortable learning every day for the rest
of your career. If that doesn't sound
appealing | fun | enjoyable | tolerable. Stop
right here. I'm going to say you a ton of work
and lost time. This is not the career for you.
Welcome, adventurer.
In each section, you'll find some broad
I'm going to assume that if you've found
goals and objectives to help you guide what
your way to my landing page, filled out your
you should be learning and how to gauge
email address, clicked the link, and
when it's time to move to the next section.
downloaded this guide: you know what
At the end, you'll find some guidelines on
DevOps is.
which section to tackle next, based on how
that section relates to the one you just
So we're skipping that, m-kay?
finished. So no matter where you start,
you'll eventually cover all the sections.
My assumption is you want to know how to
learn it. It's a huge topic. I've treaded these
As your skills grow, put them to the test.
waters for decades and now I want to help
Using virtual machines, cloud services, or
you succeed in them.
old hardware you have access to: make sure
you're getting firsthand experience with the
Spoiler alert: you will never learn it all.
tools you are learning about.
The more you learn, the less you realize you
know.
Let's do this.
4
Table of
Contents
01 START HERE
02 LINUX
03 NETWORKING
04 SECURITY
05 INFRASTRUCTURE AS CODE
06 CI/CD
07 CONTAINERS
09 KUBERNETES
10 SCRIPTING
11 PROGRAMMING
12 OBSERVABILITY
SECTION 02
Linux
Skill Objectives:
Install/configure OS
Using BASH
Starting/stopping/creating services
User management
The Linux filesystem
Text manipulation (awk, sed, grep, wc,
The main objective for Linux is to be echo, cat, tail, etc...)
comfortable with the administration, Process monitoring with top, ps, lsof
configuration, and operation of the OS. You Networking and network configuration
will spend a lot of time working with Linux System performance
so any effort spent here will pay dividends Using screen or tmux
later. As an added bonus, learning how Logging in locally and remotely
Linux operates takes a lot of mystery out of Firewall management
"how things work". Install/configure applications using the
OS package manager (apt or yum)
You don't need to become an expert but you POSIX basics
should be comfortable with the tasks here. File permissions
If you need to Google or use the man pages
for syntax help is perfectly acceptable. The
key thing is to know what tool to use.
devopsfordevelopers.io/section-two
5
Where to
next?
Choose from the following related topics for the
next stop on your journey
AWS Networking
With a better understanding of the OS All of those servers need to talk to each
environment, learning how to build and other right? Networking is the key to making
manage servers in the cloud may be a great that happen. Learning networking gives you
next step. the knowledge to build super-highways
instead of dirt roads for your digital citizens.
6
SECTION 03
Networking
devopsfordevelopers.io/section-three
7
Where to
next?
Choose from the following related topics for the
next stop on your journey
Kubernetes Observability
So you want to build a network inside a Someone should probably keep an eye on
network? Me too! K8S has some interesting this networking stuff, right? Seems pretty
ways to scale your applications without important so maybe implementing some
using your physical network. It could be an monitoring, logging, and alerting is a good
interesting next-stop on your journey. place to focus next.
8
SECTION 04
Security
User Security:
User management
Password policies
File permissions
Sudo access
Application Security:
Dependency updates
Secrets management
Vulnerability scanning
Docker container security
Network Security:
Open ports
Security doesn't really need an introduction. Firewalls
You know you have to be secure, but what Logging
does that really mean? What are the things Pen-testing
you do to be secure?
Despite the fact that there are only a few
That's what you'll focus on in this section. bullet points there, this topic is huge. One
Security is everyone's problem and while good way to approach this is after learning
you won't know how to address every about the objectives above, come back and
security gap, you'll know how to see one re-address this topic after each of the other
when it exists. sections.
Bonus objective: Disaster Recovery.
I break security down into 3 areas: user You will be hacked. How will you recover
security, application security, and network and keep your company operating when
security. The following objectives should that happens?
help you wrap your head around them.
devopsfordevelopers.io/section-four
9
Where to
next?
Choose from the following related topics for the
next stop on your journey
Linux Networking
Now that you have a better idea on what to If we're making things secure, controlling
secure, consider focusing on where to access seems like a good first step, right?
secure it by building your Linux skills and An attacker can't hack it if they can't get to
learning not only how to build and manage it.
Linux, but how to harden it for security.
CI/CD Observability
Managing security can get pretty complex. Logging, monitoring, and alerting are
This may be a good time to introduce CI/CD critical components to security. After all,
and see if there is a way we can have our how else are you going to know when a
security policies applied and verified with security incident happens?
every deployment.
10
SECTION 05
Infrastructure
as Code
The objective for this section is simple but
not easy, Think of every application,
network, server, or other device you built,
managed, and configured in this guide. IaC
allows you to reproduce it automatically,
with no chance for human error. It also
allows you to do it an infinite number of
times with the exact same results.
Pick a tool, really any tool: Ansible, Puppet,
SaltStack, CloudFormation, or Terraform. I
like Ansible personally, YMMV.
devopsfordevelopers.io/section-five
11
Where to
next?
Choose from the following related topics for the
next stop on your journey
Linux Networking
A significant portion of your infrastructure In today's world, a lot of our networking is
will be Linux servers. This is a good time to virtualized in the cloud. That means we can
brush up on those Linux skills with a focus define our networks as code and allow our
on identifying what parts we can implement IAC to manage them for us.
via IAC.
Security CI/CD
An important component to IaC is "who It's Infrastructure as Code, right? If it's code,
needs access to what", so maybe a quick that means we can automate the
study of security can help answer that deployment. And if it's deployed, we can
question and provide some guidelines on use CI/CD. That makes CI/CD a great topic
how to implement it. to study next.
12
SECTION 06
CI/CD
devopsfordevelopers.io/section-six
13
Where to
next?
Choose from the following related topics for the
next stop on your journey
AWS Kubernetes
Now that you have a better understanding Just like AWS, at some point Kubernetes
of deploying software, it's a good time to may be part of your environment. Learning
learn about where that software will be the fundamentals of K8S will give you a
deployed. AWS is likely going to be part of better understanding of where you deploy
that equation. your applications.
14
SECTION 07
Containers
devopsfordevelopers.io/section-seven
15
Where to
next?
Choose from the following related topics for the
next stop on your journey
Linux Kubernetes
Your containers rely on the container host Learning K8S is a great way to learn how
for operation, which is likely Linux. That containers operate in concert at scale. K8S
makes Linux an excellent choice to study is fully implemented using containers, not
next if you haven't already covered that only for the applications you deploy on it,
topic. but for core K8S functions as well. A worthy
next topic.
16
SECTION 08
AWS
Objectives:
VPC - absolutely mission critical
IAM - access to everything is governed
by IAM
Security Groups - used to control access
While there are many cloud providers to at a network level
choose from, I recommend starting with EC2 - running virtual machines in AWS
AWS. It's the industry beast and the most Load balancers - the key to successful
widely used of all the cloud providers. If you highly available, fault tolerant
have a strong preference for a different applications
provider, by all means: go learn it. RDS - managed database services
Lambda - Serverless applications in
In any case, many of the skills you learn for AWS
AWS directly transfer to Azure and GCP so Fargate - A great way to start using
it's not like you will have to start from containerized applications
scratch when you learn AWS but then land a S3 - storage, not to be confused with:
job working in Azure. EBS - volumes for your EC2 instances
KMS - a place to keep secrets like API
Learn the fundamentals, and build from keys, passwords, etc...
there. Cloudwatch - monitoring for all things
AWS
Billing - this stuff can get expensive
devopsfordevelopers.io/section-eight
17
Where to
next?
Choose from the following related topics for the
next stop on your journey
Linux Scripting
Your AWS infrastructure will likely consist of With so many tasks, dependencies, and
many Linux servers, so why not get a head interactions in AWS, learning scripting will
start on that and make Linux your next area be time well spent to automate many of the
of study? routine tasks needed.
18
SECTION 09
Kubernetes
devopsfordevelopers.io/section-nine
19
Where to
next?
Choose from the following related topics for the
next stop on your journey
Networking Containers
Properly implemented networking is critical One hundred percent of K8S is implemented
to managing a secure K8S implementation. via containers. If you're not comfortable
That makes networking an excellent topic building and managing containers, it's an
to study next. excellent topic to dive into next.
20
SECTION 10
Scripting
devopsfordevelopers.io/section-ten
21
Where to
next?
Choose from the following related topics for the
next stop on your journey
22
SECTION 11
Programming
Objectives:
Since DevOps is a collaborative role Language syntax
between Development and Operations, it Workflow (i.e. git workflow)
makes sense that you will need at least a Variables, types, flow control, and logic
fundamental understanding of Reading and writing data to file objects
programming. and storage objects like databases,
In your career it will not be uncommon to message queues
debug code, contribute to code to help your Packaging and deploying your code
Development teams implement DevOps Debugging
practices, review code, and even create Handling errors
your own applications. Writing tests
Many aspiring DevOps engineers get
nervous when it comes to coding. In this
section, you'll learn the basics, giving you
the confidence to take on more challenges
and responsibilities.
devopsfordevelopers.io/section-eleven
23
Where to
next?
Choose from the following related topics for the
next stop on your journey
AWS Observability
One of the interesting uses for programming You've built that killer app, but what's it
is in your AWS environment. AWS has a doing? That's a critical question. One that
complete SDK for many languages, studying observability will help you answer.
allowing you to leverage those
programming skills for your own good (or
evil, I'm not judging).
24
SECTION 12
Observability
devopsfordevelopers.io/section-twelve
25
Where to
next?
Choose from the following related topics for the
next stop on your journey
AWS Kubernetes
There are many places in AWS to put your Much like AWS, your K8S environment can
Observability skills to the test. Head on over put your Observability skills to the test.
to this section to learn more about AWS and Learning how to build, maintain, and
how to leverage the skills learned here. monitor K8S can be a great follow up to this
section.
26
Reach out!