0% found this document useful (0 votes)
28 views30 pages

Free DevOps Bootcamp Guide Download

The document outlines a comprehensive guide for developers looking to transition into DevOps roles or enhance their skills in the field. It emphasizes the importance of understanding software development, automation, cloud services, and containerization, particularly with tools like Docker and Kubernetes. The guide also highlights the significance of CI/CD pipelines for efficient software delivery and the necessity of Linux knowledge for managing infrastructure effectively.

Uploaded by

freddy.julio
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views30 pages

Free DevOps Bootcamp Guide Download

The document outlines a comprehensive guide for developers looking to transition into DevOps roles or enhance their skills in the field. It emphasizes the importance of understanding software development, automation, cloud services, and containerization, particularly with tools like Docker and Kubernetes. The guide also highlights the significance of CI/CD pipelines for efficient software delivery and the necessity of Linux knowledge for managing infrastructure effectively.

Uploaded by

freddy.julio
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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

You might also like