Hi, I’m Nana.
Creator of #1 DevOps training
After helping 70,000+ developers in their
careers, I know exactly what skills you need.
This is your blueprint from code to DevOps.
If you downloaded this guide, you likely fall into 1 of these categories,
as many of our DevOps Bootcamp students:
1) Upskill as a Software Engineer
You understand, knowing DevOps has many benefits:
Higher Salary: Many companies pay premium for a
developer, who also knows DevOps
Better Engineer: You want to be a full fledged engineer,
who understands the complete engineering process -
development as well as deployment cycle
Job Security: You don’t want to fall behind, and with AI,
having DevOps expertise will make you indispensable
2) Transition to DevOps Engineer Role
There are many reasons for that:
Preference: To work on holistic end-to-end processes,
automating everything and doing diverse tasks
Tangible Impact: You love seeing immediate results by
optimizing and improving team workflows
3) Manage DevOps tasks
thrown to you Cross-Team Collaboration: You like working across
teams, communicating and collaborating to solve
Often companies don’t hire or don’t find challenges system-wide
skilled DevOps Engineers.
No matter if you want or not, more and
more DevOps tasks land on your desk and
you’re trying to keep up!
[Link]
Great news! Your coding skills are your foundation -
here's how they translate to DevOps
DevOps Pre-Requisites - Part 1
[Link]
You know programming!
DevOps engineers work closely with developers and
system administrators to automate tasks. They often need
to write scripts and small applications to automate them.
So your software development background is a huge plus.
DevOps is all about automation.
Automation logic is written as code. So your development skills of writing clean,
maintainable code, thinking logically, writing automated tests will help you write
infrastructure automation scripts, release pipeline scripts etc.
Software Development Lifecycle
Your work as a DevOps engineer is a holistic one.
So it’s also crucial to:
Understand what the whole lifecycle covers from idea to
code, all the way to releasing it to the end user
Understand how developers collaborate (Agile, Jira
workflows)
How applications are configured and built (Build Tools)
Just like application code, DevOps automation code files are
also managed and hosted with a version control tool, like Git.
So you have a massive advantage, knowing these:
Git workflows, Branching strategies
Git commands and Merge conflict resolution
Collaborative development, Code review processes
[Link]
Most software engineers jump straight into the DevOps technologies,
but here's the thing - these tools are built on Linux concepts.
Master the foundation that every container, cloud instance, and
server runs on!
DevOps Pre-Requisites - Part 2
[Link]
As a developer, your new REST API service deployed to
Kubernetes isn't receiving requests from other services.
What do you do?
You SSH into your Linux test container, use simple curl
curl commands to test
connectivity between services, and check basic network connectivity with ping.
ping
You discover that while your application is running, it's not actually listening on
the expected port - a quick netstat
netstat -tulpn
-tulpn shows no process on port 8080.
This basic Linux networking knowledge helps you find that you misconfigured the
container port, fix it, and get your service running properly.
The Importance of Linux in DevOps environment
Without Linux skills, you'd be stuck in a modern DevOps environment - unable to
verify network connectivity, check container health, or troubleshoot basic
infrastructure issues.
Every container Every cloud instance
runs on Linux runs Linux
And without understanding the operating system that runs your entire
infrastructure, you can't effectively deploy or debug your applications.
[Link]
A big part of DevOps is about preparing and maintaining the
infrastructure (servers) on which the application is
deployed.
So you need to know the basics of how to administer a
server and install different tools on it.
Since most servers use Linux OS, you need to be comfortable
using Linux, especially its Command Line Interface.
Basic concepts of Operating Systems
You also need to know the basics of
you need to understant:
Networking & Security in order to
configure the infrastructure:
Shell Commands
Configure Firewalls to secure access
Understand IP addresses, ports, DNS
Linux File System & Permissions Load Balancers
Proxies
HTTP/HTTPS
SSH Key Management
Virtualization Packages
However, to draw a line here between DevOps and IT Operations: You don't
need to be the SysAdmin. So no advanced knowledge of server
administration is needed here. There are own professions like SysAdmins,
Networking or Security Professionals for more advanced use cases.
[Link]
Before diving in,
WHO are we and WHAT do we do?
#1 Educator for
DevOps & Cloud Engineering
At TechWorld with Nana, we make DevOps easy for developers everywhere!
With our hands-on tutorials and DevOps bootcamp certification, we've brought
together a massive community of 1.5+ million engineers worldwide.
Our secret? We take complex concepts - turn them into practical, real-world
knowledge you can ACTUALLY use.
Our straight-to-the-point teaching style—made us one of the
most trusted names in DevOps & Cloud education.
We're training everyone—from individuals around the world to
teams in startups and Fortune 500 companies.
We've helped over 70,000+ developers master the tools that drive today's top
tech companies.
How? No fluff—just real, hands-on learning that connects writing code to
running production systems at scale
Enjoy the DevOps Roadmap for
software engineers!
Where modern applications live
-
flexible, scalable, pay-as-you-go infrastructure
[Link]
As a developer, you've built a [Link] API that needs to handle varying traffic -
100 users at night, 10,000 during day peaks.
You deploy it to AWS EC2 instances behind an Application Cloud
Load Balancer. At 3 AM, your app runs on just two [Link] Infrastructure
instances ($15/month each).
When morning traffic hits, AWS Auto Scaling automatically detects
increased CPU usage and launches four more instances within minutes.
At 6 PM, as traffic drops, instances automatically shut down.
You pay only for actual server usage.
Then Black Friday hits - your monitoring shows traffic surging to 50,000 users!
While your on-premise competitors' servers crash
under load, your Auto Scaling Group automatically
scales to 20 instances across three availability zones.
The Application Load Balancer distributes traffic
evenly, keeping response times stable. Cloud
After the sales end, the system scales back down automatically. Extra cost: just $100
for that day's additional servers.
On-Premise Comparison
On-premise, you'd need to permanently maintain a server farm
($50,000+ in hardware) year-round just to handle these few peak
days, plus redundant power, cooling, and maintenance staff.
That’s the reason why companies are moving to cloud.
And why you need to learn specific Cloud services that are
important for application deployment.
DevOps Engineering includes cloud skills!
[Link]
Cloud is essentially a network of data centers - huge facilities
filled with computers - that allow you to rent computing
resources instead of buying and maintaining your own
hardware.
It’s like having a powerful computer that you can
access from anywhere with an internet connection.
These are Infrastructure as a Service (IaaS) platforms, which offer a range of
additional services, like backup, security, load balancing etc.
Cost Efficiency Scalability & Flexibility
Pay-as-you-go pricing: Only pay
Scale up/down instantly based on
for resources you actually use
demand
No upfront infrastructure costs
Handle traffic spikes automatically
Reduce operational costs (fewer
Deploy globally in minutes
IT staff needed)
Reliability & Security Focus
Automatic failover if one location By using cloud services, you can
has issues focus on your application and
Built-in redundancy and backup improving user experience, instead
systems of worrying about managing servers
Enterprise-level security features and infrastructure.
[Link]
These cloud services are platform-specific.
So you need to learn the services of that specific cloud platform and learn how to
manage the whole infrastructure on it.
AWS is the most powerful and most
widely used IaaS platform.
Once you learn one IaaS
Other popular ones: Microsoft
platform, it's easy to learn
Azure, Google Cloud
others
AWS has 100s of services, but you only need to learn handful of cloud services
you/your company actually uses. E.g. when the K8s cluster runs on AWS, you need
to learn the EKS service as well.
Managing The Primary The Main
Users & Permissions Networking Service Compute Services
Control Access Your private Network Virtual Servers
[Link]
Solving “it works on my machine”
-
Package once, run anywhere
[Link]
As a developer, your team reports that your Python API works on their machines
but crashes in staging.
With Containers
You quickly spin up a Docker container with the exact same Python 3.8.5 version, system
libraries, and dependencies defined in your Dockerfile.
Running the API inside this container on your macOS laptop perfectly
reproduces the error happening in the Linux staging environment.
You discover a dependency conflict, update the [Link],
rebuild the container, and push it to the repository.
Now your application runs identically
everywhere:
your MacBook app code configuration
colleague's Windows PC
Linux staging runtime &
and production system tools
start script dependencies
Because the container packages the ENTIRE
Container
runtime environment, not just the code:
Before Containers
You'd spend days documenting every system library version, Python
package, and OS-level dependency in a wiki.
Then your operations team would painstakingly try to replicate this
environment on each server, often discovering hidden dependencies
months later when code that worked in testing would crash in production
due to a slightly different library version or missing system package.
[Link]
Containers have become the new
standard of software packaging, so you A container is a
will run your application as a container. standard unit of
software that
This means you need to generally packages up code and
understand: all its dependencies,
concepts of virtualization
so the application runs quickly and
concepts of containerization
reliably on any computing
how to manage containerized
environment.
applications on a server.
Containers and virtual machines have similar resource isolation and allocation
benefits, but function differently. VMs virtualize the whole OS. Containers
virtualize only the application level of the OS. Therefore, containers are more
lightweight and faster.
Docker is by far the most popular container technology!
What you should know:
Build Docker images
Starting, stopping containers Write Dockerfiles to dockerize apps
Inspect active containers Run multiple containers using Docker-
Docker Networking Compose
Persist data with Docker Volumes Work with Docker Repository
Free Learning Resource
Docker in 1 Hour Docker Docs
[Link]
Managing thousands of containers,
-
across hundreds of servers
[Link]
As a developer, your e-commerce app consists of 30 microservices in Docker
containers.
During Black Friday, your payment service struggles with high load.
Kubernetes detects unhealthy payment containers, automatically
payment-svc
restarts them, and ensures at least 5 copies always run, redirecting
customer traffic only to healthy ones.
When servers get too busy, Kubernetes
automatically creates more payment payment-svc payment-svc
service containers, scaling from 6 to 15 payment-svc
copies. payment-svc
payment-svc payment-svc
payment-svc
If a server starts running out of resources, Kubernetes
moves all containers from it to other servers automatically.
Before Kubernetes
Your ops team would wake up at 3 AM to manually restart
crashed applications, add more copies by hand, update
traffic routing rules, and migrate everything from failing
servers
- Taking hours to do what Kubernetes now handles
automatically in minutes.
[Link]
Since containers are popular and easy to
use, many companies are running
hundreds or thousands of containers on
multiple servers. This means these
containers need to be managed
somehow.
Kubernetes (also known as K8s) is the
For this purpose there are container most popular container orchestration
orchestration tools. tool
So you need to learn:
How Kubernetes works
How to administer and manage the
K8s cluster
How to deploy applications on K8s
Specific K8s knowledge needed:
Learn core components like,
Container orchestration tools like
Deployment, Service, ConfigMap,
Kubernetes, automate the deployment,
Secret, StatefulSet, Ingress
scaling and management of
Kubernetes CLI (Kubectl)
containerized applications.
Persisting data with K8s Volumes
Namespaces
Free Learning Resource
Kubernetes in 1 Hour Kubernetes Docs
[Link]
From commit to production:
-
automating the software delivery lifecycle
[Link]
As a developer, you push a bug fix to your feature branch.
Your CI/CD pipeline automatically starts:
1) Builds your Java application 4) Deploys to a test environment
2) Runs 300 unit tests 5) Runs integration tests, security
3) Packages it into a Docker container scans, and performance checks
20 minutes later, you get a Slack notification that your code failed a
security test - an outdated dependency has a critical vulnerability.
You update the dependency, push again, and after all tests pass automatically,
create a pull request. When merged to main, the pipeline deploys to staging, then
production with zero downtime:
Before CI/CD
You would:
Manually run tests on your machine (missing half of
them)
Wait for QA team to test (2-3 days)
Then schedule a deployment window with ops team -
a process taking days and often missing critical issues
until they hit production.
[Link]
CI/CD is the heart of DevOps.
There are many CI/CD platforms
In DevOps, all code changes, like new out there:
features or bug fixes, need to be
integrated in the existing application
and deployed for the end user
continuously and in an automated
way.
Hence the term: The most used ones at companies are
Continuous Integration and Jenkins, GitLab CI, GitHub Actions
Continuous Deployment (CI/CD)
When the feature or bugfix is done, a
Skills you need to learn here:
pipeline running on a CI server (e.g.
Setting up the CI/CD server
Jenkins) should be triggered
Integrate code repository to trigger
automatically, which:
pipeline automatically
Build & Package Manager Tools to
1. runs the tests
execute the tests and package the
2. packages the application
application
3. builds a container Image
Configuring artifact repositories (like
4. pushes the container Image to an
Nexus) and integrate with pipeline
image repository
Configuring deployment to different
5. deploys the new version to a
environments (cloud, K8s cluster)
server
Free Learning Resource
GitLab CI in 1 Hour CI/CD Tutorials
[Link]
Read these stories of software
developers, who dared to DevOps
Read their stories and get inspired
or copy link:
[Link]
[Link]
Treating servers like software:
-
version-controlled, reproducible infrastructure
[Link]
As a developer, you need to deploy the
same [Link] application for three
my-app different clients, each requiring their own
isolated environment.
You create a Terraform script defining the standard infrastructure:
EC2 instances with auto-scaling
Application Load Balancer
RDS database, and correct VPC networking.
For each client, you only change a few variables - instance sizes, scaling
thresholds, and SSL certificates.
One terraform apply command deploys a
complete environment in 15 minutes, with every
security rule and network configuration exactly
matching your approved template: Client C
Client A
Client B
When you need to update all environments with a new security patch, you modify
one line in your base module, run Terraform, and it consistently applies the change
across all client environments.
Before IaC
Each client environment would be a unique snowflake,
manually configured and documented in wiki pages,
making maintenance and security updates error-prone and
time-consuming.
[Link]
Manually creating and maintaining
infrastructure is time consuming and
Terraform is the most
error prone. Especially when you need
popular infrastructure
to replicate the infrastructure, e.g. for a
provisioning tool
Development, Testing and Production
environment.
In DevOps, we want to automate as
much as possible and that's where
Infrastructure as Code comes into the Ansible is the most
picture. popular configuration
management tool
Benefits of having everything as code :
Encourage collaboration in a team
Document changes to infrastructure
DEV TEST PROD
Transparency of the infrastructure
state
With IaC we use code to create and
configure infrastructure and there are 2 Accessibility to that information in a
types of IaC tools you need to know: centralized place versus being
scattered on people's local machines
1. Infrastructure provisioning in the form of some scripts.
2. Configuration management
Free Learning Resource
Terraform explained IaC Tutorials
[Link]
From metrics to insights:
-
making sense of your application's behavior
[Link]
As a developer, users report your e-commerce checkout
is "sometimes slow."
You check your Grafana dashboard, which shows
Prometheus metrics for the past 24 hours.
You notice that every 2 hours, response times
jump from 200ms to 2 seconds, exactly when your
inventory sync job runs.
The graphs show that during these spikes, your database CPU hits
90% and connection pool runs out of available connections.
A quick look at resource usage metrics reveals the
sync job is running on the same database as user
checkouts.
You move the sync job to a read replica, and Grafana
immediately shows checkout response times staying
stable at 200ms.
Before Monitoring
You'd spend days trying to catch the issue in action,
manually watching server metrics, and asking users:
"when exactly did you see it slow down?" - leading to
frustrated customers and lost sales.
[Link]
Once software is in production, it is important to monitor it to track the
performance, discover problems in your infrastructure and the application.
DevOps encompasses to setup proper
monitoring system
Prometheus:
Setup software monitoring
A popular monitoring
Setup infrastructure monitoring, e.g. for
and alerting tool
your Kubernetes cluster and underlying
servers
Visualize the data
Grafana:
Analytics and
You will need to:
interactive visualization
Collect metrics
tool
Write queries
Set up alerts to notify team
Create custom dashboards
What to monitor
You should also understand how
systems can collect and aggregate data
Infrastructure Monitoring
with the goal of using it to troubleshoot,
CPU, Memory, Disk usage
gain business insights etc.
Network traffic & latency
Container metrics
Cloud resource utilization
ELK Stack:
Application Monitoring A popular log
Response times management stack
Error rates
Request throughput
Database performance
Free Learning Resource
Prometheus explained
[Link]
Was this guide helpful for you?
How can we make it better?
Let me know
nana@[Link]
[Link]
All the best on your
DevOps and Cloud journey! :)
Join 1.2M+ engineers Join 200k+ engineers