← Certified DevOps Engineer Β· Lesson 3 of 11

Module Two

πŸ“– Every lesson in this course is free to read right here, no account needed. Create a free account to track your progress, take the exam, and earn your certificate.
1

Course Outline

Course Outline: Certified DevOps Engineer

πŸ§‘β€πŸ’» Certified DevOps Engineer Course Outline

Design and implement modern software delivery pipelines β€” prepare for the certification exam
🎯 Audience: Developers, SysAdmins, Cloud Engineers πŸ“š Prerequisites: Linux basics, scripting, cloud concepts ⏱ Duration: 40–50 hours + hands-on labs πŸ… Certification: AWS / Azure / GSDC / DevOps Institute

1 Introduction to DevOps
1.1 Foundations of DevOps
Understanding the DevOps movement and its core principles.
What is DevOps? Definition, history, and evolution of DevOps practices Core Principles The Three Ways, Theory of Constraints, learning organizations Culture & Mindset Collaboration, breaking silos between Dev and Ops Agile & Lean How Agile and Lean complement DevOps DevOps Lifecycle Plan β†’ Code β†’ Build β†’ Test β†’ Release β†’ Deploy β†’ Operate β†’ Monitor
2 Version Control & Source Code Management
2.1 Git & Collaboration Workflows
Mastering version control for team-based software development.
Git Fundamentals Repositories, commits, branches, and merging Branching Strategies Git Flow, trunk-based development, feature branching Collaboration Pull requests, code reviews, fork-based workflows GitHub / GitLab Managing repositories, issues, project boards Release Management Semantic versioning, tagging, and release artifacts
3 Continuous Integration (CI)
3.1 Automating Code Integration & Testing
Building reliable CI pipelines to catch issues early.
CI Concepts Automating code integration, building, and testing Jenkins Fundamentals Installing, configuring, and managing Jenkins Pipeline as Code Declarative and scripted pipelines (Jenkinsfile) Build Automation Maven, Gradle, and other build tools Automated Testing Unit tests, integration tests, and test frameworks
4 Continuous Delivery & Deployment (CD)
4.1 Automating Releases & Deployments
Building end-to-end CD pipelines for safe, reliable releases.
CD Concepts Automating release processes and deployment Deployment Strategies Rolling updates, blue-green deployments, canary releases CI/CD Pipelines Designing and implementing end-to-end pipelines Artifact Management Storing and versioning build artifacts (JFrog, Nexus) Release Governance Approval workflows and deployment gates
5 Infrastructure as Code (IaC)
5.1 Provisioning & Managing Infrastructure
Treating infrastructure like software β€” versioned, repeatable, and automated.
IaC Concepts Declarative vs. imperative, immutable infrastructure Terraform Writing, planning, and applying infrastructure configurations Cloud-Native IaC CloudFormation, ARM Templates, Bicep Configuration Management Ansible for automation and configuration State Management Managing infrastructure state and drift detection
6 Containerization & Orchestration
6.1 Docker & Kubernetes
Building, shipping, and running applications at scale.
Docker Fundamentals Images, containers, Dockerfiles, and registries Container Lifecycle Building, running, and managing containers Kubernetes Architecture Pods, services, deployments, namespaces Kubernetes Orchestration Scaling, rolling updates, self-healing Helm & Packages Managing Kubernetes applications with Helm charts
7 Monitoring, Logging & Observability
7.1 Seeing What's Happening in Production
Gaining visibility into system health, performance, and user experience.
Monitoring Concepts Metrics, alerts, and dashboards Prometheus & Grafana Setting up monitoring and visualization Log Management Centralized logging with ELK Stack or similar tools APM Application Performance Monitoring and tracing Alerting & Incident Response Setting up alerts and incident management
8 Security in DevOps (DevSecOps)
8.1 Shifting Security Left
Integrating security throughout the software delivery lifecycle.
DevSecOps Principles Shift-left security, integrating security into the pipeline Secure CI/CD Scanning code, containers, and infrastructure for vulnerabilities Secrets Management Storing and managing sensitive information (Vault, Azure Key Vault) Compliance Ensuring compliance with security standards Security Automation Automating security checks in the pipeline
9 Cloud Platforms & DevOps
9.1 Cloud-Native DevOps
Leveraging cloud services for scalable, resilient DevOps pipelines.
Cloud Fundamentals IaaS, PaaS, SaaS, and cloud service models AWS DevOps CodePipeline, CodeBuild, CodeDeploy, CodeCommit Azure DevOps Azure Pipelines, Repos, Boards, and Artifacts GCP DevOps Cloud Build, Artifact Registry, deployment tools Multi-Cloud Hybrid and multi-cloud DevOps approaches
10 Exam Preparation & Capstone Project
10.1 Getting Certified & Building Your Portfolio
Solidifying knowledge and demonstrating practical DevOps skills.
Certification Overview Exam structure, domains, and key tips Practice Exams Full-length practice tests with detailed explanations Hands-On Labs Real-world scenarios and troubleshooting exercises Capstone Project End-to-end DevOps pipeline implementation Career Guidance DevOps roles, responsibilities, and career pathways

πŸ› οΈ Key Tools Covered
πŸ“¦ Version Control
Git, GitHub, GitLab
βš™οΈ CI / CD
Jenkins, Azure Pipelines, AWS CodePipeline, GitHub Actions
🧩 Configuration Mgmt
Ansible, Puppet, Chef
πŸ—οΈ Infrastructure as Code
Terraform, CloudFormation, ARM Templates, Bicep
🐳 Containerization
Docker, Podman
☸️ Orchestration
Kubernetes, Docker Swarm, Amazon ECS/EKS
πŸ“Š Monitoring
Prometheus, Grafana, CloudWatch, Azure Monitor
πŸ”’ Security
HashiCorp Vault, Azure Key Vault, SonarQube
πŸ—ΊοΈ Suggested Learning Path
1. DevOps Fundamentals (Module 1)
      ↓
2. Version Control (Module 2)
      ↓
3. CI / CD Pipelines (Modules 3–4)
      ↓
4. Infrastructure as Code (Module 5)
      ↓
5. Containers & Kubernetes (Module 6)
      ↓
6. Monitoring & Observability (Module 7)
      ↓
7. DevSecOps (Module 8)
      ↓
8. Cloud Platforms (Module 9)
      ↓
9. Exam Preparation & Capstone Project (Module 10)

πŸ’‘ Pro Tip: Hands-on practice is essential. Build real projects alongside each module.

πŸ… Certification Options
AWS Certified DevOps Engineer – Professional
Amazon Web Services (AWS)
Microsoft Certified: DevOps Engineer Expert (AZ-400)
Microsoft
Certified DevOps Engineer (CDE)
GSDC (Global Skill Development Council)
DevOps Engineering Foundation
DevOps Institute
2

Module One

Module 1: Introduction to DevOps

πŸ§‘β€πŸ’» Module 1: Introduction to DevOps


1. Module Title

πŸ§‘β€πŸ’» Introduction to DevOps: What, Why, and How

Welcome to the very first module of our Certified DevOps Engineer course! This module is called "Introduction to DevOps: What, Why, and How." In this module, we will learn all about DevOps — what it is, why it is important, and how it helps people build better software faster.

DevOps is a very important topic in the world of technology. It helps teams work together, build software more quickly, and make sure that software works properly. Think of DevOps as a way to make the whole process of creating software smoother and more fun!


2. Module Introduction

Hello and welcome! This is Module 1 of the Certified DevOps Engineer course. In this module, we are going to start our journey into the world of DevOps.

But first, let us think about something we all know — building things. When you build something, like a house or a treehouse, you need a plan, you need materials, and you need people to help you. Building software (like the apps on your phone or the websites you visit) is similar. People work together to create software, and they need to work in a way that is organized and efficient.

DevOps is a way of working together to build software. It brings together two groups of people: the "Developers" (who write the code) and the "Operations" people (who make sure the software runs properly on computers and servers). By working together, they can build better software, faster.

In this module, we will learn all about DevOps. We will use simple words, fun stories, and lots of examples. By the end of this module, you will understand what DevOps is and why it is so important in the technology world.

So, are you ready? Let us dive in and discover the amazing world of DevOps!


3. Learning Objectives

By the time you finish this module, you will be able to:

  • Explain what DevOps is in your own simple words.
  • Understand why DevOps is important for building software.
  • Describe the history of how DevOps came to be.
  • Identify the core principles of DevOps.
  • Understand the DevOps lifecycle and its stages.
  • Explain the difference between Agile and DevOps.
  • Recognize the benefits of DevOps culture.
  • Give examples of DevOps in action.
  • Demonstrate a basic understanding of the Three Ways of DevOps.
  • Feel excited to learn more about DevOps!

4. Warm-up Story

The Great Software Building Adventure

Once upon a time, in a busy city in Nigeria called Lagos, there was a company that built software for schools. The company was called "EduTech Solutions."

EduTech Solutions had two teams of people. One team was called the "Developers." Their job was to write the code — the instructions that make the software work. They were very creative and loved building new features.

The other team was called the "Operations" team. Their job was to make sure the software ran properly on the computers and servers. They made sure the software was available for students and teachers to use.

Here was the problem: the two teams did not talk to each other very much. The Developers would write code and then "throw it over the wall" to the Operations team. The Operations team would then try to make it work, but they often had problems because they did not understand the code.

The Developers wanted to add new features quickly. The Operations team wanted to make sure everything was stable and did not break. They had different goals, and they did not work well together.

One day, the company lost a big customer because the software kept breaking. The customer was frustrated and went to a competitor. The company knew something had to change.

That is when the company discovered DevOps. DevOps is a way of working that brings Developers and Operations together. They start talking to each other, sharing ideas, and working as one team.

With DevOps, the Developers and Operations people started meeting regularly. They planned together, built together, and solved problems together. The software became more reliable, and they could add new features much faster.

The company grew and became very successful. And it all started because they learned to work together through DevOps.

This story shows us how important it is for different teams to work together. DevOps helps teams do exactly that. Let us learn more about this amazing way of working!


5. Main Lessons

Lesson 1: What is DevOps?

Definition

DevOps is a way of working where the people who build software (Developers) and the people who run the software (Operations) work together as one team.

The word "DevOps" comes from combining two words: Dev (short for Development) and Ops (short for Operations).

Why is it Important?

DevOps is important because it helps teams build software faster, with fewer problems. When Developers and Operations work together, they can catch mistakes early and fix them quickly. This means better software for everyone!

Simple Explanation

Imagine you are building a treehouse with your friends. Some of your friends are good at designing (the Developers). Others are good at building and making sure the treehouse is safe (the Operations team).

If the designers do not talk to the builders, they might design a treehouse that is impossible to build. Or the builders might build it differently than the designers wanted. But if they work together, they can build an amazing treehouse that everyone loves!

DevOps is exactly the same but for building software. It brings the "designers" (Developers) and the "builders" (Operations) together.

Real-life Example

A company called "PayNaija" builds a payment app. The Developers write the code for the app. The Operations team makes sure the app runs on the servers. With DevOps, they work together so the app is always available and works perfectly.

School Example

Imagine your school is putting on a play. The scriptwriters (Developers) write the script. The stage crew (Operations) sets up the stage and lights. If they work together, the play is a success. If they do not talk, the play might be a disaster!

Home Example

Your family is planning a vacation. Some people plan the activities (Developers). Others handle the travel and accommodation (Operations). If you all work together, you have a great vacation. If not, things can go wrong.

Nigerian Example

A Nigerian bank uses DevOps to build its mobile banking app. The Developers and Operations teams work together. The app is updated frequently with new features, and it rarely crashes. Customers are happy!

Illustration

    WHAT IS DEVOPS?

    +-------------------+     +-------------------+
    |   DEVELOPMENT     |     |   OPERATIONS      |
    |   (Developers)    |     |   (Ops Team)      |
    |                   |     |                   |
    |  Write code       |     |  Run software     |
    |  Build features   |     |  Keep it running  |
    |  Create new stuff |     |  Fix problems     |
    +-------------------+     +-------------------+
              |                         |
              |     DEVOPS BRINGS       |
              |     THEM TOGETHER!      |
              |                         |
              V                         V
    +------------------------------------------+
    |                                           |
    |            DEVOPS TEAM                    |
    |                                           |
    |  Developers + Operations = Better,        |
    |  faster software!                        |
    |                                           |
    +------------------------------------------+
    

Mini Summary

DevOps is a way of working where Developers and Operations people work together as one team. It helps teams build better software, faster.


Lesson 2: Why Do We Need DevOps?

Definition

Why we need DevOps: We need DevOps because the old way of building software had many problems. Developers and Operations did not work together, and this caused delays, mistakes, and unhappy customers.

Why is it Important?

Understanding why we need DevOps helps us appreciate how much better it is to work together. It shows us the problems that DevOps solves.

Simple Explanation

Think about a relay race. In a relay race, one runner passes a baton to the next runner. If they do not pass it smoothly, they drop the baton and lose the race.

In the old way of building software, Developers would "pass the baton" (the code) to Operations. But they did not pass it smoothly. The Operations team often could not understand the code, and things broke. DevOps is like teaching the runners to pass the baton perfectly every time.

Problems Before DevOps

Problem What It Meant
Slow Releases It took months or even years to release new software.
Many Mistakes Software often had bugs because teams did not test together.
Finger-Pointing Developers blamed Operations when things broke, and vice versa.
Hard to Fix When something broke, it took a long time to fix because no one knew the whole picture.
Unhappy Customers Because software was slow and buggy, customers were not happy.

Real-life Example

A Nigerian e-commerce company used to release new features only once a year. Customers were frustrated because the app did not have the latest features. After adopting DevOps, they release new features every week. Customers are much happier.

School Example

Your class is working on a group project. If everyone works alone and does not share their work, the project will be a mess. But if everyone works together and shares ideas, the project is great. DevOps is like working together on a group project.

Home Example

Your family is planning a big dinner. If everyone cooks without talking to each other, you might end up with three different types of rice and no meat. But if you plan together, you make a wonderful meal. DevOps is like planning together.

Nigerian Example

A Nigerian bank used to take months to update its mobile app. Customers complained about outdated features. After adopting DevOps, the bank can update the app in days. Customers are happier, and the bank keeps more customers.

Illustration

    THE PROBLEM BEFORE DEVOPS

    DEVELOPMENT                      OPERATIONS
    +-------------------+            +-------------------+
    |  Write code       |            |  Run software     |
    |  Build features   |            |  Fix problems     |
    |                   |            |                   |
    |  "We are done!"   | ======>   |  "This does not   |
    |                   |   throw   |   work!"          |
    |                   |   over    |                   |
    |                   |   wall    |  "It is the       |
    |                   |           |   developer's     |
    |                   |           |   fault!"         |
    +-------------------+           +-------------------+

    RESULT: SLOW, BUGGY, UNHAPPY CUSTOMERS

    THE SOLUTION: DEVOPS!

    DEVELOPMENT AND OPERATIONS WORK TOGETHER
    +------------------------------------------+
    |                                           |
    |  "Let us work together!"                 |
    |  "We will build it together!"            |
    |  "We will fix problems together!"        |
    |                                           |
    |  RESULT: FAST, RELIABLE, HAPPY CUSTOMERS |
    |                                           |
    +------------------------------------------+
    

Mini Summary

We need DevOps because the old way of building software had many problems. Developers and Operations did not work together, causing slow releases, many mistakes, and unhappy customers. DevOps solves all these problems.


Lesson 3: The History of DevOps

Definition

The history of DevOps is the story of how DevOps came to be. It started because people realized that the old way of building software was not working well.

Why is it Important?

Understanding the history of DevOps helps us understand why it is so important today. It shows us that DevOps was created to solve real problems.

Simple Explanation

Imagine you are playing a video game. The game has two teams. One team designs the levels, and the other team makes sure the game runs smoothly. But the two teams never talk to each other. The level designers make levels that are too hard for the game engine to run. The game crashes, and players are unhappy.

The game developers realize they need to work together. They start meeting and talking. They plan together. The game becomes amazing. That is the story of how DevOps started!

Timeline of DevOps History

Year Event What Happened
2000s Agile Movement People realized that building software in a flexible, iterative way was better than doing everything at once.
2009 First DevOps Conference A conference called "Velocity 2009" talked about how Development and Operations should work together.
2010-2013 DevOps Grows More companies started using DevOps. Tools like Jenkins, Ansible, and Docker were created to help.
2014-2016 DevOps Becomes Mainstream DevOps became a standard way of working for many tech companies.
2017-Present DevOps Everywhere DevOps is now used by companies all over the world, including many in Nigeria.

Real-life Example

A company called "Flutterwave" (a Nigerian fintech company) started using DevOps to build its payment platform. By working together, they built a platform that processes millions of transactions every day.

School Example

Your school used to plan events with teachers and students working separately. Now, they have meetings where everyone shares ideas. The events are much better because everyone works together.

Home Example

Your family used to plan vacations with everyone making their own plans. Now, you have a family meeting where everyone shares ideas. The vacations are much more fun because everyone works together.

Nigerian Example

A Nigerian company called "Andela" uses DevOps to build software for clients all over the world. By working together, they deliver high- quality software quickly.

Illustration

    THE HISTORY OF DEVOPS TIMELINE

    2000s
    +-------------------+
    |  Agile Movement   |
    |  People want to   |
    |  work flexibly    |
    +-------------------+
           |
           V
    2009
    +-------------------+
    |  First DevOps     |
    |  Conference       |
    |  "Velocity 2009"  |
    +-------------------+
           |
           V
    2010-2013
    +-------------------+
    |  DevOps Grows     |
    |  New tools like   |
    |  Jenkins, Docker  |
    +-------------------+
           |
           V
    2014-2016
    +-------------------+
    |  DevOps Becomes   |
    |  Mainstream       |
    |  Many companies   |
    |  adopt it         |
    +-------------------+
           |
           V
    2017-Present
    +-------------------+
    |  DevOps Everywhere|
    |  Used worldwide   |
    |  Including Nigeria|
    +-------------------+
    

Mini Summary

DevOps started because people realized that working together was better than working separately. It has grown from an idea in 2009 to a standard way of working today.


Lesson 4: The DevOps Lifecycle

Definition

The DevOps Lifecycle is the series of steps that a team follows to build, test, release, and monitor software. It is like a roadmap for building software.

Why is it Important?

The DevOps Lifecycle shows us all the stages of building software. It helps us understand the complete picture and see how DevOps helps at every stage.

Simple Explanation

Imagine you are baking a cake. You have a recipe that tells you every step: gather ingredients, mix them, bake the cake, and serve it. The DevOps Lifecycle is like a recipe for building software. It tells you every step from start to finish.

The Stages of the DevOps Lifecycle

Stage What Happens Simple Example
Plan Decide what to build and how to build it Planning the cake recipe and ingredients
Code Write the software code Mixing the cake ingredients
Build Turn the code into a working program Putting the cake in the oven
Test Check that the software works correctly Tasting the cake to make sure it is good
Release Prepare the software to be used by customers Decorating the cake and putting it on a plate
Deploy Make the software available to users Serving the cake to your family
Operate Keep the software running properly Making sure the cake is stored properly
Monitor Watch the software to find problems Checking if the cake is still fresh

Real-life Example

A Nigerian company building a mobile app follows the DevOps Lifecycle. They plan the features, write the code, build the app, test it, release it, deploy it to app stores, operate it, and monitor it for problems.

School Example

Your class is making a school newspaper. You plan the articles, write them, put them together, check for errors, print them, distribute them, and check if students like them. That is the lifecycle of a newspaper!

Home Example

Your family is planning a party. You plan the party, prepare the food, set up the decorations, check everything is ready, host the party, and clean up afterwards. That is a lifecycle!

Nigerian Example

A Nigerian e-commerce company follows the DevOps Lifecycle to build its website. They plan new features, code them, build them, test them, release them, deploy them, operate the website, and monitor for issues.

Illustration

    THE DEVOPS LIFECYCLE

    +--------------------------------------------------+
    |                                                   |
    |         PLAN                                     |
    |    (Decide what to build)                        |
    |           |                                       |
    |           V                                       |
    |         CODE                                     |
    |    (Write the software)                          |
    |           |                                       |
    |           V                                       |
    |         BUILD                                    |
    |    (Turn code into a program)                    |
    |           |                                       |
    |           V                                       |
    |         TEST                                     |
    |    (Check it works)                              |
    |           |                                       |
    |           V                                       |
    |         RELEASE                                  |
    |    (Prepare for users)                           |
    |           |                                       |
    |           V                                       |
    |         DEPLOY                                   |
    |    (Make it available to users)                  |
    |           |                                       |
    |           V                                       |
    |         OPERATE                                  |
    |    (Keep it running)                             |
    |           |                                       |
    |           V                                       |
    |         MONITOR                                  |
    |    (Watch for problems)                          |
    |           |                                       |
    |           V                                       |
    |    (Go back to PLAN and repeat!)                 |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

The DevOps Lifecycle is the series of steps to build, test, release, and monitor software. The stages are: Plan, Code, Build, Test, Release, Deploy, Operate, and Monitor.


Lesson 5: Core DevOps Principles

Definition

Core DevOps Principles are the main ideas that guide how DevOps works. They are like the rules of the game.

Why is it Important?

Principles are important because they guide our actions. When we know the principles, we know how to do things the right way.

Simple Explanation

Imagine you are playing football. There are rules like "no hands" and "score a goal to win." These rules guide how you play. DevOps principles are the rules that guide how teams build software together.

The Three Ways of DevOps

There are three main principles in DevOps. They are called "The Three Ways." Let us learn about each one.

Principle 1: The First Way (Flow)

Definition: The First Way is about making the flow of work from Development to Operations fast and smooth.

Simple Explanation: Imagine a river. The water flows smoothly from the mountains to the ocean. The First Way is about making the work flow smoothly from the developer to the user.

Principle 2: The Second Way (Feedback)

Definition: The Second Way is about getting feedback quickly. When something goes wrong, we need to know immediately so we can fix it.

Simple Explanation: Imagine you are cooking. If you taste the food while cooking, you can add more salt if it needs it. If you wait until the end, it might be too late. The Second Way is about tasting the food early and often.

Principle 3: The Third Way (Continuous Learning)

Definition: The Third Way is about always learning and improving. We should always look for ways to do things better.

Simple Explanation: Imagine you are playing a video game. Every time you lose, you learn something new. You try again and get better. The Third Way is about always learning and improving.

Real-life Example

A Nigerian company follows the Three Ways. They release software quickly (Flow), they get feedback from users quickly (Feedback), and they always look for ways to improve (Continuous Learning).

School Example

Your school project team follows the Three Ways. You work smoothly together (Flow), you give each other feedback (Feedback), and you learn from mistakes (Continuous Learning).

Home Example

Your family plans a party. You work together smoothly (Flow), you ask guests for feedback (Feedback), and you learn what to do better next time (Continuous Learning).

Nigerian Example

A Nigerian company building a delivery app follows the Three Ways. They release updates quickly (Flow), they get feedback from customers (Feedback), and they always improve (Continuous Learning).

Illustration

    THE THREE WAYS OF DEVOPS

    +--------------------------------------------------+
    |                                                   |
    |  THE FIRST WAY: FLOW                             |
    |  +------------------------------------+           |
    |  |  Make work flow smoothly from      |           |
    |  |  Development to Operations         |           |
    |  |  "Keep the river flowing"         |           |
    |  +------------------------------------+           |
    |           |                                       |
    |           V                                       |
    |  THE SECOND WAY: FEEDBACK                         |
    |  +------------------------------------+           |
    |  |  Get feedback quickly               |           |
    |  |  "Taste the food while cooking"    |           |
    |  +------------------------------------+           |
    |           |                                       |
    |           V                                       |
    |  THE THIRD WAY: CONTINUOUS LEARNING               |
    |  +------------------------------------+           |
    |  |  Always learn and improve           |           |
    |  |  "Get better every day"            |           |
    |  +------------------------------------+           |
    |                                                   |
    |  TOGETHER, THEY MAKE DEVOPS WORK!                 |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

The core DevOps principles are called the Three Ways. The First Way is about smooth flow. The Second Way is about quick feedback. The Third Way is about continuous learning.


Lesson 6: DevOps Culture and Mindset

Definition

DevOps culture is the way people think and behave when they work in a DevOps team. It is about working together, sharing ideas, and helping each other.

Why is it Important?

Culture is important because it affects how people work. A good culture makes people happy and productive. A bad culture makes people unhappy and unproductive.

Simple Explanation

Imagine you are on a sports team. A good team cheers for each other, helps each other, and celebrates together. A bad team blames each other and does not work together. DevOps culture is like being on a good sports team.

Key Elements of DevOps Culture

Element What It Means
Collaboration Working together, sharing ideas, and helping each other
Communication Talking to each other openly and honestly
Trust Believing that others will do their best work
Blame-Free When something goes wrong, we fix it instead of blaming someone
Continuous Improvement Always looking for ways to get better
Shared Goals Everyone works towards the same goals

Real-life Example

A Nigerian company has a DevOps culture. The team meets daily, shares what they are working on, and helps each other. When something breaks, they fix it together instead of blaming anyone.

School Example

Your classroom has a good culture. Students help each other with homework, share supplies, and celebrate each other's successes.

Home Example

Your family has a good culture. Everyone helps with chores, listens to each other, and supports each other.

Nigerian Example

A Nigerian tech startup has a DevOps culture. The Developers and Operations people sit together, talk openly, and work as one team. They are very successful because of their culture.

Illustration

    DEVOPS CULTURE

    +--------------------------------------------------+
    |                                                   |
    |  πŸ—£οΈ COMMUNICATION                               |
    |     Talk openly and honestly                     |
    |                                                   |
    |  🀝 COLLABORATION                                |
    |     Work together, share ideas                   |
    |                                                   |
    |  ❀️ TRUST                                        |
    |     Believe in each other                        |
    |                                                   |
    |  βœ… BLAME-FREE                                   |
    |     Fix problems, not blame people               |
    |                                                   |
    |  πŸ“ˆ CONTINUOUS IMPROVEMENT                        |
    |     Always get better                            |
    |                                                   |
    |  🎯 SHARED GOALS                                 |
    |     Everyone works towards the same goal         |
    |                                                   |
    |  TOGETHER = DEVOPS SUCCESS! πŸš€                   |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

DevOps culture is about working together, sharing ideas, and helping each other. Key elements include collaboration, communication, trust, being blame-free, continuous improvement, and shared goals.


Lesson 7: Agile and DevOps

Definition

Agile is a way of building software where teams work in short cycles (called "sprints") and deliver small pieces of working software frequently. It is about being flexible and responding to change.

DevOps takes Agile and extends it. It brings in the Operations team so that the whole process of building and running software is smooth.

Why is it Important?

Understanding Agile helps us understand where DevOps came from. DevOps is like the "next step" after Agile.

Simple Explanation

Imagine you are building a house. The old way was to plan everything perfectly and build the whole house at once. Agile is like building the house room by room. You build the bedroom, then the kitchen, then the living room. You can change things as you go.

DevOps is like having the builders and the maintenance team work together. While the builders are building the house, the maintenance team is making sure everything is working properly. They work together from the start.

Agile vs DevOps

Aspect Agile DevOps
Focus Building software quickly and flexibly Building and running software together
Teams Development team Development + Operations teams
Goal Deliver working software frequently Deliver working software frequently AND keep it running
Timeframe Short sprints (2-4 weeks) Continuous delivery (always ready to release)

Real-life Example

A Nigerian company uses Agile to build its app. They release new features every two weeks. They also use DevOps to make sure the app runs smoothly for all users.

School Example

Your class uses Agile to plan a school event. You plan a little bit at a time and adjust as you go. You also use DevOps by having the teachers and students work together.

Home Example

Your family uses Agile to plan a vacation. You plan a little bit at a time and adjust. You also use DevOps by having everyone work together on the plan.

Nigerian Example

A Nigerian fintech company uses Agile to build new features quickly. They also use DevOps to make sure the features work properly for customers. Together, Agile and DevOps help them grow fast.

Illustration

    AGILE + DEVOPS = SUCCESS!

    AGILE:
    +--------------------------------------------------+
    |  Build software in short cycles (sprints)        |
    |  Deliver small pieces frequently                 |
    |  Respond to change quickly                       |
    |  Focus on Development                            |
    +--------------------------------------------------+
              |
              V
    DEVOPS:
    +--------------------------------------------------+
    |  Takes Agile and adds Operations                 |
    |  Development + Operations work together          |
    |  Build AND run software                          |
    |  Continuous delivery and monitoring              |
    +--------------------------------------------------+
              |
              V
    RESULT:
    +--------------------------------------------------+
    |  Faster, better, more reliable software!         |
    |  Happy developers, happy operations, happy users! |
    +--------------------------------------------------+
    

Mini Summary

Agile is a way of building software in short cycles. DevOps extends Agile by bringing in the Operations team so that building and running software are done together.


Lesson 8: The Benefits of DevOps

Definition

The benefits of DevOps are all the good things that happen when a team uses DevOps. These include faster releases, fewer problems, and happier customers.

Why is it Important?

Understanding the benefits helps us see why DevOps is so valuable. It helps us understand why so many companies are adopting DevOps.

Simple Explanation

Imagine you have a car. If you take good care of it, it runs smoothly, gets you where you need to go, and lasts a long time. DevOps is like taking good care of your software. The benefits are: it runs smoothly, it works well, and it lasts a long time.

Key Benefits of DevOps

Benefit What It Means
Faster Releases Software is released more quickly, so users get new features sooner
Fewer Problems Bugs and issues are caught and fixed early, so software is more reliable
Better Collaboration Teams work together, share ideas, and help each other
Happy Customers Because software works well and has new features, customers are happy
Less Stress Teams work together to solve problems, so there is less stress
Continuous Improvement Teams always look for ways to get better

Real-life Example

A Nigerian company adopted DevOps. Before DevOps, they released updates once a year. After DevOps, they release updates every week. Their customers are much happier.

School Example

Your school uses DevOps for its website. They release updates quickly, the website rarely breaks, and students and parents are happy.

Home Example

Your family uses DevOps principles to plan events. Everyone works together, problems are fixed quickly, and events are successful.

Nigerian Example

A Nigerian e-commerce company uses DevOps. They release new features quickly, their website is very reliable, and their customers love them. The company has grown a lot because of DevOps.

Illustration

    THE BENEFITS OF DEVOPS

    +--------------------------------------------------+
    |                                                   |
    |  πŸš€ FASTER RELEASES                              |
    |     New features reach users quickly             |
    |                                                   |
    |  πŸ› FEWER PROBLEMS                               |
    |     Bugs are caught and fixed early              |
    |                                                   |
    |  🀝 BETTER COLLABORATION                         |
    |     Teams work together happily                  |
    |                                                   |
    |  😊 HAPPY CUSTOMERS                              |
    |     Users love the software                      |
    |                                                   |
    |  🧘 LESS STRESS                                  |
    |     Teams are calm and effective                 |
    |                                                   |
    |  πŸ“ˆ CONTINUOUS IMPROVEMENT                        |
    |     Always getting better                        |
    |                                                   |
    |  ALL BECAUSE OF DEVOPS! πŸŽ‰                       |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

DevOps has many benefits. It leads to faster releases, fewer problems, better collaboration, happy customers, less stress, and continuous improvement.


Lesson 9: Who Uses DevOps?

Definition

Who uses DevOps: DevOps is used by many different types of organizations. From small startups to big companies, from tech giants to banks, and even schools and governments.

Why is it Important?

Knowing who uses DevOps shows us that DevOps is not just for one type of organization. It can be used by anyone who builds software.

Simple Explanation

Imagine a toolbox. DevOps is like a toolbox that anyone can use. Whether you are building a small birdhouse or a big skyscraper, the toolbox has the tools you need. DevOps is like that — it works for all types of software projects.

Types of Organizations Using DevOps

  • Tech Companies: Google, Amazon, Microsoft, and many others use DevOps.
  • Banks: Banks use DevOps to build their mobile apps and online banking systems.
  • E-commerce: Online stores like Jumia and Konga use DevOps.
  • Government: Governments use DevOps to build services for citizens.
  • Schools: Schools use DevOps to build learning platforms.
  • Hospitals: Hospitals use DevOps to build patient management systems.
  • Startups: Small startups use DevOps to build their products quickly.

Real-life Example

A Nigerian bank uses DevOps to build its mobile banking app. The app is updated frequently and works reliably. Customers can transfer money, pay bills, and check balances easily.

School Example

Your school uses a learning platform to share lessons and assignments. The platform is built using DevOps principles. It is always available and has new features regularly.

Home Example

Your family uses a family calendar app to coordinate activities. The app is built using DevOps. It is reliable and gets new features often.

Nigerian Examples

Many Nigerian companies use DevOps. Flutterwave, Paystack, Andela, Interswitch, and many others use DevOps to build their products.

Illustration

    WHO USES DEVOPS?

    +--------------------------------------------------+
    |                                                   |
    |  🏒 TECH COMPANIES                               |
    |     Google, Amazon, Microsoft                    |
    |                                                   |
    |  🏦 BANKS                                        |
    |     Mobile banking, online banking               |
    |                                                   |
    |  πŸ›οΈ E-COMMERCE                                   |
    |     Jumia, Konga, Shopify                        |
    |                                                   |
    |  πŸ›οΈ GOVERNMENT                                   |
    |     Citizen services, digital ID                 |
    |                                                   |
    |  🏫 SCHOOLS                                      |
    |     Learning platforms, student systems          |
    |                                                   |
    |  πŸ₯ HOSPITALS                                    |
    |     Patient management, health records           |
    |                                                   |
    |  πŸš€ STARTUPS                                     |
    |     Building new products quickly                |
    |                                                   |
    |  ANYONE WHO BUILDS SOFTWARE!                      |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

DevOps is used by many different organizations. Tech companies, banks, e-commerce, government, schools, hospitals, and startups all use DevOps.


Lesson 10: What We Have Learned So Far

Definition

In this lesson, we will review everything we have learned about DevOps. This will help us remember the most important ideas.

Why is it Important?

Reviewing helps us remember what we have learned. When we keep information in our brains, we can use it later.

Simple Explanation

Let us think back to everything we have talked about in this module:

  • What is DevOps? DevOps is a way of working where Developers and Operations work together to build software.
  • Why do we need DevOps? Because the old way of working separately caused problems like slow releases and many mistakes.
  • What is the history of DevOps? DevOps started around 2009 and has grown to be used by companies all over the world.
  • What is the DevOps Lifecycle? It is the series of steps: Plan, Code, Build, Test, Release, Deploy, Operate, and Monitor.
  • What are the Three Ways? They are the core principles: Flow, Feedback, and Continuous Learning.
  • What is DevOps culture? It is about working together, sharing ideas, and helping each other.
  • What is the difference between Agile and DevOps? Agile is about building software in short cycles. DevOps takes Agile and adds Operations.
  • What are the benefits of DevOps? Faster releases, fewer problems, better collaboration, happy customers, less stress, and continuous improvement.
  • Who uses DevOps? Tech companies, banks, e-commerce, government, schools, hospitals, and startups.

Real-life Example

A Nigerian company has learned all these DevOps concepts. They work together, release software quickly, and keep their customers happy.

School Example

Your class has learned about DevOps. You understand how working together helps you build better projects.

Home Example

Your family has learned about DevOps. You understand how planning together, giving feedback, and learning from mistakes helps your family work better.

Nigerian Example

A Nigerian entrepreneur has learned about DevOps. They are starting a new tech company and plan to use DevOps from the beginning.

Illustration

    WHAT WE HAVE LEARNED

    +--------------------------------------------------+
    |                                                   |
    |  πŸ“Œ DevOps = Development + Operations            |
    |  πŸ“Œ We need DevOps to build better software      |
    |  πŸ“Œ DevOps started around 2009                   |
    |  πŸ“Œ The DevOps Lifecycle has 8 stages            |
    |  πŸ“Œ The Three Ways: Flow, Feedback, Learning     |
    |  πŸ“Œ DevOps culture = working together            |
    |  πŸ“Œ Agile + DevOps = Building + Running          |
    |  πŸ“Œ Benefits: faster, fewer problems, happier    |
    |  πŸ“Œ Everyone uses DevOps!                        |
    |                                                   |
    |  YOU ARE NOW A DEVOPS BEGINNER! πŸŽ‰               |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

We have learned many things about DevOps. It is a way of working where Developers and Operations work together. It helps teams build better software, faster.


6. Key Vocabulary

Here are the important words we learned in this module. Each word has a simple definition to help you remember it.

Word Simple Definition
DevOps A way of working where Developers and Operations work together to build software.
Development The team that writes the code and builds new features.
Operations The team that makes sure the software runs properly on servers.
Agile A way of building software in short cycles, delivering small pieces frequently.
DevOps Lifecycle The series of steps to build, test, release, and monitor software.
Flow The First Way of DevOps — making work flow smoothly.
Feedback The Second Way of DevOps — getting feedback quickly.
Continuous Learning The Third Way of DevOps — always learning and improving.
Collaboration Working together and sharing ideas.
Communication Talking to each other openly and honestly.
Culture The way people think and behave in a group.
Continuous Improvement Always looking for ways to get better.

7. Important Concepts

Here are the most important concepts from this module. These are the big ideas that will help you understand DevOps.

  1. DevOps brings people together. DevOps is not just about tools. It is about people working together. The most important part of DevOps is the culture of collaboration.

  2. The DevOps Lifecycle is a roadmap. It has eight stages: Plan, Code, Build, Test, Release, Deploy, Operate, and Monitor. Each stage has important tasks.

  3. The Three Ways are the rules of DevOps. The First Way is about Flow. The Second Way is about Feedback. The Third Way is about Continuous Learning.

  4. DevOps culture is key. A good culture includes collaboration, communication, trust, being blame-free, continuous improvement, and shared goals.

  5. DevOps helps everyone. It helps Developers, Operations, the company, and the customers. It leads to faster releases, fewer problems, and happier people.


8. Step-by-Step Explanations

Let us look at how DevOps works in simple steps:

Step 1: Plan

The team decides what to build. They talk about the features, the timeline, and the goals. They plan the work.

Step 2: Code

The Developers write the code. They build the features that were planned. They write clean, organized code.

Step 3: Build

The code is turned into a working program. This is called "building." The team makes sure the program runs.

Step 4: Test

The team tests the program to make sure it works. They look for bugs and fix them. They make sure the software is high quality.

Step 5: Release

The software is prepared to be used by customers. This includes making sure it is ready and all the paperwork is done.

Step 6: Deploy

The software is made available to users. It is put on the servers where customers can access it.

Step 7: Operate

The team keeps the software running. They make sure it is available and working properly.

Step 8: Monitor

The team watches the software to find problems. They look for errors, slow performance, and other issues. Then they go back to Step 1 and do it all again!

Illustration

    STEP-BY-STEP: THE DEVOPS LIFECYCLE

    Step 1: PLAN
    +-------------------+
    |  Decide what to   |
    |  build            |
    +-------------------+
           |
           V
    Step 2: CODE
    +-------------------+
    |  Write the code   |
    +-------------------+
           |
           V
    Step 3: BUILD
    +-------------------+
    |  Turn code into   |
    |  a program        |
    +-------------------+
           |
           V
    Step 4: TEST
    +-------------------+
    |  Check it works   |
    +-------------------+
           |
           V
    Step 5: RELEASE
    +-------------------+
    |  Prepare for      |
    |  users            |
    +-------------------+
           |
           V
    Step 6: DEPLOY
    +-------------------+
    |  Make available   |
    |  to users         |
    +-------------------+
           |
           V
    Step 7: OPERATE
    +-------------------+
    |  Keep it running  |
    +-------------------+
           |
           V
    Step 8: MONITOR
    +-------------------+
    |  Watch for        |
    |  problems         |
    +-------------------+
           |
           V
    (Repeat from Step 1!)
    

9. Real-life Examples

Example 1: The Tech Company

A large technology company uses DevOps to build its search engine. The Developers and Operations teams work together. They release updates to the search engine every day. The search engine is always improving, and users are happy.

Example 2: The Bank

A bank uses DevOps to build its mobile app. The team releases new features every two weeks. The app is reliable and secure. Customers can do their banking from their phones without any problems.

Example 3: The Hospital

A hospital uses DevOps to build a patient management system. The system helps doctors and nurses manage patient records. It is always available and works perfectly. Patients get better care.


10. Nigerian Examples

Example 1: Flutterwave

Flutterwave is a Nigerian fintech company that uses DevOps to build its payment platform. The platform processes millions of transactions every day. The team uses DevOps to release new features quickly and keep the platform running smoothly.

Example 2: Paystack

Paystack is a Nigerian payment company (now part of Stripe). They use DevOps to build their payment infrastructure. They release updates frequently and their platform is very reliable.

Example 3: Andela

Andela is a Nigerian company that builds software for clients all over the world. They use DevOps to collaborate with clients and deliver high-quality software quickly.


11. Fun Examples Children Can Relate To

Example 1: The School Play

Your school is putting on a play. The actors (Developers) practice their lines. The stage crew (Operations) sets up the stage and lights. If they work together, the play is a success. If they do not talk, the play might be a disaster. DevOps is like the actors and stage crew working together!

Example 2: The Group Project

You and your friends are working on a group project for school. Some of you research, some of you write, and some of you design. If you all work together and share ideas, the project is great. DevOps is like working together on a group project.

Example 3: The Birthday Party

You are planning a birthday party. Some friends plan the games, some plan the food, and some plan the decorations. If you all work together, the party is amazing. DevOps is like planning a party together!


12. Everyday Examples

Example 1: Cooking Dinner

Your family is cooking dinner. The person chopping vegetables (Development) and the person cooking on the stove (Operations) work together. Dinner is ready on time and everyone enjoys it.

Example 2: Building a Treehouse

You and your friends are building a treehouse. The designer (Development) and the builder (Operations) work together. The treehouse is strong and fun.

Example 3: Planning a Trip

Your family is planning a trip. The person planning activities (Development) and the person planning travel (Operations) work together. The trip is wonderful.


13. Teacher Notes

For Teachers: This module is designed to be accessible for students of all ages. Here are some tips for teaching this module:

  • Use the story: The warm-up story about EduTech Solutions is a great way to introduce the topic. Ask students what they would do if they had two teams that did not talk to each other.
  • Encourage discussion: Ask students if they have ever worked on a group project where people did not communicate. This will help them understand why DevOps is so important.
  • Use the illustrations: The ASCII diagrams are simple and visual. They help students understand complex ideas easily.
  • Group activities: Have students role-play a Development team and an Operations team. Then have them role-play a DevOps team working together.
  • Relate to Nigerian examples: The Nigerian examples help students see how DevOps is relevant to their own country.
  • Review key vocabulary: Use the vocabulary table to help students remember important terms.
  • Use the exercises: The end-of-module exercises help reinforce learning. Use them for homework or classwork.

14. Parent Tips

For Parents: Your child is learning about DevOps and how it helps teams build software together. Here are some tips to support their learning:

  • Discuss working together: Talk to your child about how people work together in your own life. This could be at your job, at home, or in your community.
  • Ask about DevOps: Ask your child what they learned about DevOps. This will help them remember and understand the material better.
  • Relate to everyday life: Point out examples of working together in everyday life. Cooking dinner, planning a trip, and building something are all examples of DevOps-like collaboration.
  • Encourage curiosity: If your child asks questions about DevOps, take the time to answer them. There are many great resources online that can help.
  • Celebrate learning: Praise your child for completing this module. Learning about technology is an important skill for the future.

15. Interesting Facts

  • Fact 1: The word "DevOps" was first used at a conference in 2009. Since then, it has become one of the most important trends in technology.
  • Fact 2: Companies that use DevOps release software 30 times more frequently than companies that do not use DevOps. That means their users get new features much faster!
  • Fact 3: DevOps teams also recover from problems 168 times faster. When something breaks, they can fix it much more quickly.
  • Fact 4: Netflix, the video streaming service, is a famous DevOps success story. They use DevOps to stream billions of hours of video every day without problems.
  • Fact 5: Many Nigerian companies are now using DevOps. It is helping them grow and compete globally.
  • Fact 6: The "Three Ways" were introduced by a man named Gene Kim in a book called "The Phoenix Project." This book is considered a classic in the DevOps world.

16. Did You Know?

  • Did you know? DevOps is not just about tools. The most important part of DevOps is the people and how they work together.
  • Did you know? The DevOps Lifecycle is also called the "infinite loop" because it never stops. Teams keep planning, coding, building, testing, releasing, deploying, operating, and monitoring over and over again.
  • Did you know? There are many DevOps tools that help teams work together. Some popular ones are: Jenkins (for building), Docker (for containers), Kubernetes (for running software), and Ansible (for automation).
  • Did you know? DevOps is used by both big companies and small startups. Even a one-person team can use DevOps principles to work better.
  • Did you know? In Nigeria, DevOps is a growing career field. Many companies are looking for people who understand DevOps.
  • Did you know? DevOps is closely related to "DevSecOps," which adds Security to the mix. DevSecOps makes sure that security is also part of the DevOps process.

17. Remember This

  • πŸ”Ή DevOps is a way of working where Developers and Operations work together.
  • πŸ”Ή We need DevOps because the old way of working separately caused problems.
  • πŸ”Ή The DevOps Lifecycle has 8 stages: Plan, Code, Build, Test, Release, Deploy, Operate, and Monitor.
  • πŸ”Ή The Three Ways are: Flow, Feedback, and Continuous Learning.
  • πŸ”Ή DevOps culture is about collaboration, communication, trust, being blame-free, continuous improvement, and shared goals.
  • πŸ”Ή Agile is about building software in short cycles. DevOps takes Agile and adds Operations.
  • πŸ”Ή Benefits of DevOps include faster releases, fewer problems, better collaboration, happy customers, less stress, and continuous improvement.
  • πŸ”Ή Everyone uses DevOps — tech companies, banks, e-commerce, government, schools, hospitals, and startups.

18. Common Mistakes

  1. Mistake 1: Thinking DevOps is only about tools.

    DevOps is much more than just tools. It is about culture, process, and people working together. Tools are helpful, but they are not the most important part.

  2. Mistake 2: Thinking DevOps is only for developers.

    DevOps involves both Developers and Operations people. It is a team effort. Everyone works together.

  3. Mistake 3: Thinking DevOps is easy.

    DevOps takes effort and practice. It requires changing how people work and think. But it is worth it because of all the benefits.

  4. Mistake 4: Blaming people when things go wrong.

    In DevOps culture, we fix problems instead of blaming people. Blaming creates a bad culture. Fixing problems creates a good culture.

  5. Mistake 5: Forgetting about continuous learning.

    The Third Way is about always learning and improving. If you stop learning, you stop improving.

  6. Mistake 6: Thinking DevOps is a one-time thing.

    DevOps is a continuous process. You never "finish" DevOps. You keep improving and working together.


19. Best Practices

  1. Start with culture, not tools.

    Before you buy any tools, focus on building a good culture. Get people to work together and trust each other. Tools come later.

  2. Start small.

    You do not have to do everything at once. Start with one team or one project. Learn from that experience and then expand.

  3. Automate everything.

    In DevOps, we automate as much as possible. This includes building, testing, and deploying. Automation saves time and reduces mistakes.

  4. Get feedback early and often.

    Do not wait until the end to get feedback. Get feedback at every stage. This helps you catch problems early.

  5. Learn from failures.

    When something goes wrong, do not blame anyone. Instead, ask: "What did we learn?" and "How can we prevent this in the future?"

  6. Keep improving.

    Always look for ways to get better. There is always something you can improve.


20. ASCII Illustrations

Illustration 1: The DevOps Lifecycle

    THE DEVOPS LIFECYCLE

    +--------------------------------------------------+
    |                                                   |
    |         PLAN                                     |
    |    (Decide what to build)                        |
    |           |                                       |
    |           V                                       |
    |         CODE                                     |
    |    (Write the software)                          |
    |           |                                       |
    |           V                                       |
    |         BUILD                                    |
    |    (Turn code into a program)                    |
    |           |                                       |
    |           V                                       |
    |         TEST                                     |
    |    (Check it works)                              |
    |           |                                       |
    |           V                                       |
    |         RELEASE                                  |
    |    (Prepare for users)                           |
    |           |                                       |
    |           V                                       |
    |         DEPLOY                                   |
    |    (Make it available to users)                  |
    |           |                                       |
    |           V                                       |
    |         OPERATE                                  |
    |    (Keep it running)                             |
    |           |                                       |
    |           V                                       |
    |         MONITOR                                  |
    |    (Watch for problems)                          |
    |           |                                       |
    |           V                                       |
    |    (Go back to PLAN and repeat!)                 |
    |                                                   |
    +--------------------------------------------------+
    

Illustration 2: The Three Ways

    THE THREE WAYS OF DEVOPS

    +--------------------------------------------------+
    |                                                   |
    |  THE FIRST WAY: FLOW                             |
    |  +------------------------------------+           |
    |  |  Make work flow smoothly from      |           |
    |  |  Development to Operations         |           |
    |  |  "Keep the river flowing"         |           |
    |  +------------------------------------+           |
    |           |                                       |
    |           V                                       |
    |  THE SECOND WAY: FEEDBACK                         |
    |  +------------------------------------+           |
    |  |  Get feedback quickly               |           |
    |  |  "Taste the food while cooking"    |           |
    |  +------------------------------------+           |
    |           |                                       |
    |           V                                       |
    |  THE THIRD WAY: CONTINUOUS LEARNING               |
    |  +------------------------------------+           |
    |  |  Always learn and improve           |           |
    |  |  "Get better every day"            |           |
    |  +------------------------------------+           |
    |                                                   |
    +--------------------------------------------------+
    

Illustration 3: Agile vs DevOps

    AGILE + DEVOPS

    AGILE:
    +--------------------------------------------------+
    |  Build software in short cycles (sprints)        |
    |  Deliver small pieces frequently                 |
    |  Respond to change quickly                       |
    |  Focus on Development                            |
    +--------------------------------------------------+
              |
              V
    DEVOPS:
    +--------------------------------------------------+
    |  Takes Agile and adds Operations                 |
    |  Development + Operations work together          |
    |  Build AND run software                          |
    |  Continuous delivery and monitoring              |
    +--------------------------------------------------+
              |
              V
    RESULT:
    +--------------------------------------------------+
    |  Faster, better, more reliable software!         |
    |  Happy developers, happy operations, happy users! |
    +--------------------------------------------------+
    

21. Comparison Tables

Table 1: Before DevOps vs. After DevOps

Aspect Before DevOps After DevOps
Collaboration Teams worked separately Teams work together
Releases Slow (months or years) Fast (days or weeks)
Problems Many bugs and issues Fewer problems
Culture Blame culture Blame-free culture
Learning Learning was slow Continuous learning
Customers Unhappy customers Happy customers

Table 2: Agile vs. DevOps

Aspect Agile DevOps
Focus Building software Building AND running software
Teams Developers Developers + Operations
Goal Deliver working software Deliver AND keep it running
Timeframe Sprints (2-4 weeks) Continuous delivery
Scope Development only Development + Operations

Table 3: The Three Ways

Way What It Means Simple Analogy
First Way (Flow) Make work flow smoothly A river flowing to the ocean
Second Way (Feedback) Get feedback quickly Tasting food while cooking
Third Way (Learning) Always learn and improve Getting better at a game

Note: Each lesson in this module already includes a "Mini Summary" section right after the lesson content. Please refer back to the lessons above to review each mini summary.


23. End-of-Module Summary

Congratulations! You have completed Module 1 of the "Certified DevOps Engineer" course. Let us review everything we have learned:

What is DevOps?

DevOps is a way of working where the people who build software (Developers) and the people who run the software (Operations) work together as one team. It helps teams build better software, faster.

Why Do We Need DevOps?

We need DevOps because the old way of working separately caused problems like slow releases, many mistakes, finger-pointing, and unhappy customers. DevOps solves all these problems.

The History of DevOps

DevOps started around 2009 and has grown to be used by companies all over the world. It began with the Agile movement and evolved into a full way of working.

The DevOps Lifecycle

The DevOps Lifecycle is the series of steps to build, test, release, and monitor software. The eight stages are: Plan, Code, Build, Test, Release, Deploy, Operate, and Monitor.

The Three Ways

The Three Ways are the core principles of DevOps. The First Way is about Flow. The Second Way is about Feedback. The Third Way is about Continuous Learning.

DevOps Culture

DevOps culture is about working together, sharing ideas, and helping each other. Key elements include collaboration, communication, trust, being blame-free, continuous improvement, and shared goals.

Agile and DevOps

Agile is a way of building software in short cycles. DevOps extends Agile by bringing in the Operations team so that building and running software are done together.

The Benefits of DevOps

DevOps leads to faster releases, fewer problems, better collaboration, happy customers, less stress, and continuous improvement.

Who Uses DevOps?

DevOps is used by tech companies, banks, e-commerce, government, schools, hospitals, and startups. Anyone who builds software can use DevOps.

You have now completed Module 1! You are ready to move on to Module 2, where you will learn about Version Control and Source Code Management. Keep up the great work!


24. Frequently Asked Questions (10 Questions)

  1. Q1: What is DevOps?

    A: DevOps is a way of working where Developers and Operations work together to build software. It helps teams build better software, faster.

  2. Q2: Why is DevOps important?

    A: DevOps is important because it solves the problems of the old way of working. It leads to faster releases, fewer problems, and happier customers.

  3. Q3: Who uses DevOps?

    A: DevOps is used by many different organizations. Tech companies, banks, e-commerce, government, schools, hospitals, and startups all use DevOps.

  4. Q4: What are the Three Ways of DevOps?

    A: The Three Ways are: Flow (making work flow smoothly), Feedback (getting feedback quickly), and Continuous Learning (always learning and improving).

  5. Q5: What is the DevOps Lifecycle?

    A: The DevOps Lifecycle is the series of steps to build, test, release, and monitor software. The stages are: Plan, Code, Build, Test, Release, Deploy, Operate, and Monitor.

  6. Q6: What is the difference between Agile and DevOps?

    A: Agile is about building software in short cycles. DevOps takes Agile and adds Operations so that building AND running software are done together.

  7. Q7: What is DevOps culture?

    A: DevOps culture is about working together, sharing ideas, and helping each other. It includes collaboration, communication, trust, being blame-free, continuous improvement, and shared goals.

  8. Q8: What are the benefits of DevOps?

    A: DevOps leads to faster releases, fewer problems, better collaboration, happy customers, less stress, and continuous improvement.

  9. Q9: Do I need to be a developer to learn DevOps?

    A: No! DevOps is for everyone. You can be a developer, an operations person, a manager, or anyone who works with software. DevOps is about people working together.

  10. Q10: Is DevOps used in Nigeria?

    A: Yes! Many Nigerian companies like Flutterwave, Paystack, and Andela use DevOps. It is helping Nigerian companies grow and compete globally.


25. Review Questions (15 Questions)

  1. What is DevOps?

    Answer: DevOps is a way of working where Developers and Operations work together to build software.

  2. Why do we need DevOps?

    Answer: Because the old way of working separately caused problems like slow releases, many mistakes, and unhappy customers.

  3. What does "DevOps" stand for?

    Answer: DevOps combines "Development" and "Operations."

  4. What are the eight stages of the DevOps Lifecycle?

    Answer: Plan, Code, Build, Test, Release, Deploy, Operate, and Monitor.

  5. What are the Three Ways of DevOps?

    Answer: Flow, Feedback, and Continuous Learning.

  6. What is the First Way of DevOps?

    Answer: The First Way is Flow — making work flow smoothly from Development to Operations.

  7. What is the Second Way of DevOps?

    Answer: The Second Way is Feedback — getting feedback quickly so problems can be fixed early.

  8. What is the Third Way of DevOps?

    Answer: The Third Way is Continuous Learning — always learning and improving.

  9. What is DevOps culture?

    Answer: DevOps culture is about working together, sharing ideas, and helping each other.

  10. Name three elements of DevOps culture.

    Answer: Collaboration, communication, trust, being blame-free, continuous improvement, and shared goals. (Any three are acceptable.)

  11. What is Agile?

    Answer: Agile is a way of building software in short cycles, delivering small pieces frequently.

  12. How is DevOps different from Agile?

    Answer: Agile focuses on Development. DevOps takes Agile and adds Operations so that building AND running software are done together.

  13. Name two benefits of DevOps.

    Answer: Faster releases, fewer problems, better collaboration, happy customers, less stress, and continuous improvement. (Any two are acceptable.)

  14. Who uses DevOps?

    Answer: Tech companies, banks, e-commerce, government, schools, hospitals, and startups.

  15. Can DevOps be used in Nigeria?

    Answer: Yes! Many Nigerian companies like Flutterwave, Paystack, and Andela use DevOps.


26. Fill-in-the-Blank Exercises

Fill in the blanks with the correct words from the list:

Word list: DevOps, Development, Operations, Agile, Flow, Feedback, Continuous Learning, Lifecycle, Culture, Three Ways

  1. __________ is a way of working where Developers and Operations work together.

    Answer: DevOps

  2. The __________ team writes the code and builds new features.

    Answer: Development

  3. The __________ team makes sure the software runs properly.

    Answer: Operations

  4. __________ is a way of building software in short cycles.

    Answer: Agile

  5. The First Way of DevOps is __________.

    Answer: Flow

  6. The Second Way of DevOps is __________.

    Answer: Feedback

  7. The Third Way of DevOps is __________.

    Answer: Continuous Learning

  8. The DevOps __________ has eight stages.

    Answer: Lifecycle

  9. DevOps __________ is about working together and sharing ideas.

    Answer: Culture

  10. The core principles of DevOps are called the __________.

    Answer: Three Ways


27. True or False Exercises

Write True or False for each statement:

  1. DevOps is only about tools.

    Answer: False

  2. DevOps brings Developers and Operations together.

    Answer: True

  3. The DevOps Lifecycle has 5 stages.

    Answer: False (It has 8 stages)

  4. The First Way of DevOps is Feedback.

    Answer: False (The First Way is Flow)

  5. DevOps culture is about working together.

    Answer: True

  6. Agile and DevOps are the same thing.

    Answer: False

  7. DevOps leads to faster releases.

    Answer: True

  8. In DevOps culture, we blame people when things go wrong.

    Answer: False (We fix problems instead of blaming people)

  9. DevOps is used by many different organizations.

    Answer: True

  10. The Third Way of DevOps is about continuous learning.

    Answer: True

  11. DevOps is not used in Nigeria.

    Answer: False

  12. The DevOps Lifecycle never stops.

    Answer: True

  13. DevOps is only for developers.

    Answer: False

  14. DevOps helps make customers happy.

    Answer: True

  15. DevOps is a one-time thing.

    Answer: False


28. Multiple Choice Questions (15 Questions)

Choose the correct answer for each question:

  1. What is DevOps?

    A) A programming language
    B) A way of working where Developers and Operations work together
    C) A type of computer
    D) A video game

    Answer: B

  2. What does "DevOps" combine?

    A) Development and Operations
    B) Design and Operations
    C) Development and Design
    D) Data and Operations

    Answer: A

  3. How many stages are in the DevOps Lifecycle?

    A) 5
    B) 6
    C) 8
    D) 10

    Answer: C

  4. Which is NOT a stage in the DevOps Lifecycle?

    A) Plan
    B) Code
    C) Sing
    D) Monitor

    Answer: C

  5. What is the First Way of DevOps?

    A) Feedback
    B) Flow
    C) Continuous Learning
    D) Planning

    Answer: B

  6. What is the Second Way of DevOps?

    A) Feedback
    B) Flow
    C) Continuous Learning
    D) Planning

    Answer: A

  7. What is the Third Way of DevOps?

    A) Feedback
    B) Flow
    C) Continuous Learning
    D) Planning

    Answer: C

  8. Which is an element of DevOps culture?

    A) Blaming people
    B) Not communicating
    C) Collaboration
    D) Working alone

    Answer: C

  9. What is Agile?

    A) A way of building software in short cycles
    B) A way of running a marathon
    C) A type of food
    D) A video game

    Answer: A

  10. How is DevOps different from Agile?

    A) DevOps is the same as Agile
    B) DevOps adds Operations to Agile
    C) DevOps is about design, not code
    D) DevOps is older than Agile

    Answer: B

  11. Which is a benefit of DevOps?

    A) Slower releases
    B) More problems
    C) Faster releases
    D) Unhappy customers

    Answer: C

  12. Who uses DevOps?

    A) Only tech companies
    B) Only banks
    C) Many different types of organizations
    D) Only governments

    Answer: C

  13. Is DevOps used in Nigeria?

    A) No
    B) Yes, by many companies
    C) Only in Lagos
    D) Only by the government

    Answer: B

  14. What is the most important part of DevOps?

    A) Tools
    B) People and culture
    C) Computers
    D) Money

    Answer: B

  15. What is the DevOps Lifecycle?

    A) A series of steps to build, test, release, and monitor software
    B) A type of computer
    C) A video game
    D) A programming language

    Answer: A


29. Matching Exercises

Match the words in Column A with their correct meanings in Column B.

Column A Column B
1. DevOps A. The First Way — making work flow smoothly
2. Development B. The team that writes the code
3. Operations C. The team that runs the software
4. Flow D. A way of working where Developers and Operations work together
5. Feedback E. The Second Way — getting feedback quickly
6. Continuous Learning F. The Third Way — always learning and improving
7. Agile G. Building software in short cycles
8. DevOps Lifecycle H. The series of steps to build, test, release, and monitor software
9. DevOps Culture I. Working together, sharing ideas, and helping each other
10. Three Ways J. The core principles of DevOps

Answers:

  1. D
  2. B
  3. C
  4. A
  5. E
  6. F
  7. G
  8. H
  9. I
  10. J

30. Short Answer Questions

  1. What is DevOps and why is it useful?

    Answer: DevOps is a way of working where Developers and Operations work together to build software. It is useful because it leads to faster releases, fewer problems, and happier customers.

  2. Explain the three stages of the DevOps Lifecycle.

    Answer: The DevOps Lifecycle has eight stages: Plan (decide what to build), Code (write the software), Build (turn code into a program), Test (check it works), Release (prepare for users), Deploy (make it available), Operate (keep it running), and Monitor (watch for problems). Then it starts all over again.

  3. What are the Three Ways of DevOps? Explain each one.

    Answer: The Three Ways are:

    • First Way (Flow): Make work flow smoothly from Development to Operations.
    • Second Way (Feedback): Get feedback quickly so problems can be fixed early.
    • Third Way (Continuous Learning): Always learn and improve.
  4. What is DevOps culture and why is it important?

    Answer: DevOps culture is about working together, sharing ideas, and helping each other. It is important because a good culture helps people work better together, which leads to better software and happier teams.

  5. Give an example of how DevOps is used in Nigeria.

    Answer: Flutterwave is a Nigerian fintech company that uses DevOps. They use DevOps to build their payment platform, which processes millions of transactions every day. They release new features quickly and keep the platform running smoothly.


31. Scenario-based Exercises

Scenario 1: The Tech Startup

A small tech startup in Lagos is building a new app. The Developers and Operations team do not talk to each other. The Developers build features quickly, but the Operations team cannot run them properly. The app keeps crashing, and customers are unhappy.

Question: How could DevOps help this startup?

Answer: DevOps could help by bringing the Developers and Operations team together. They would start talking, planning, and working together. The Developers would build features that the Operations team can run. The app would stop crashing, and customers would be happy.

Scenario 2: The Bank

A Nigerian bank wants to release new features for its mobile app more quickly. Currently, it takes 3 months to release any update. Customers are complaining about the lack of new features.

Question: How could DevOps help the bank release features faster?

Answer: DevOps could help the bank by making the flow of work smoother. The Developers and Operations teams would work together. They would build, test, and release features more quickly. Instead of taking 3 months, they could release updates in weeks or even days.

Scenario 3: The E-commerce Company

An e-commerce company in Nigeria has a website that goes down frequently during peak shopping times. Customers cannot place orders, and the company loses money.

Question: How could DevOps help prevent the website from crashing?

Answer: DevOps could help by improving collaboration between Developers and Operations. The Operations team would be involved from the start, helping the Developers build software that is more reliable. With DevOps, they would also monitor the website more closely and fix problems before they become big issues.


32. Group Activity

Activity: The DevOps Simulation

Instructions:

  1. Form groups of 4-5 students.
  2. Assign roles:
    • 2 Developers: Responsible for writing code (drawing a picture or building something on paper)
    • 2 Operations: Responsible for running the code (making sure the picture is displayed or the building stands)
    • 1 Observer: Watches and gives feedback
  3. Round 1 (No DevOps): The Developers build something without talking to Operations. Operations tries to run it. Then switch roles and try again.
  4. Round 2 (With DevOps): Everyone works together. Developers and Operations plan together, build together, and solve problems together.
  5. Discuss: What was different between the two rounds? Which round was more successful? Why?
  6. Share with the class.

33. Individual Activity

Activity: My DevOps Reflection

Instructions:

  1. Think about a group project you worked on. It could be at school, at home, or in your community.
  2. Write down the following:
    • What was the project?
    • Who was involved?
    • How did people work together?
    • Were there any problems?
    • How could DevOps help make the project better?
  3. Now, write a short plan. If you were to do the project again using DevOps principles, what would you do differently?
  4. Submit your reflection and plan.

34. Classroom Discussion Questions

  1. Why do you think teams often work separately instead of together?

    Discuss with your classmates and share your ideas.

  2. How would you feel if you were a Developer and the Operations team never talked to you?

    Share your thoughts on why communication is important.

  3. What are some other situations where people working together makes things better?

    Think about different situations at home, at school, and in your community.

  4. Do you think DevOps will become more or less important in the future? Why?

    Share your opinions and listen to what others think.

  5. Can you think of a Nigerian company that might benefit from using DevOps?

    Share examples of companies in Nigeria.

  6. What do you think is the most important principle of DevOps?

    Explain why you think so.

  7. Do you think DevOps would help your school? How?

    Think about different projects and activities at school.

  8. What is the most important thing you learned about DevOps today?

    Share with the class.


35. Mini Project

Project: Create a "DevOps for Beginners" Guide

Goal: Create a simple guide to teach beginners about DevOps.

Instructions:

  1. Work individually or in small groups.
  2. Design a guide that includes:
    • A cover page with a title and a drawing
    • An introduction to DevOps
    • The DevOps Lifecycle (with explanations)
    • The Three Ways (Flow, Feedback, Continuous Learning)
    • DevOps culture (what it is and why it matters)
    • Agile vs DevOps (a comparison)
    • The benefits of DevOps
    • Who uses DevOps
    • Key vocabulary with definitions
    • A fun example or story
  3. Use simple language. Write as if you are teaching a 10-year-old.
  4. Include drawings or pictures. You can draw them by hand.
  5. Present your guide to the class.

36. Practical Assignment

Assignment: DevOps in Your Community

Goal: Observe how DevOps principles apply in your community.

Instructions:

  1. Find a project in your community. This could be a school event, a community event, or any project where people work together.
  2. Observe how people work together. Look for:
    • Do different groups communicate?
    • Do they work smoothly together?
    • Do they get feedback and use it?
    • Do they learn from mistakes?
  3. Write a report. Your report should include:
    • What project you observed
    • How people worked together (or did not)
    • What could be improved using DevOps principles
    • Your recommendations
  4. Submit your report.

37. Challenge Exercise

Challenge: The DevOps Solution

Scenario:

You are a DevOps consultant hired by a Nigerian company that sells products online. The company has a website that is slow, frequently crashes, and takes 6 months to release any new features. Customers are frustrated and going to competitors.

The company has:

  • A Development team that writes code
  • An Operations team that manages the servers
  • No communication between the two teams
  • No automated testing or deployment
  • A culture of blaming when things go wrong

Challenge: Create a complete DevOps plan for this company. Include:

  • Culture changes: How will you change the way people work together?
  • Process changes: What new processes will you introduce?
  • Tool recommendations: What tools will you suggest?
  • The DevOps Lifecycle: How will you implement each stage?
  • The Three Ways: How will you incorporate Flow, Feedback, and Continuous Learning?
  • Timeline: When will you implement each change?
  • Success metrics: How will you measure success?

BONUS CHALLENGE: Present your plan to the class as if you were presenting it to the company's management.


38. Quiz Answers

Multiple Choice Questions (Section 28):

  1. B
  2. A
  3. C
  4. C
  5. B
  6. A
  7. C
  8. C
  9. A
  10. B
  11. C
  12. C
  13. B
  14. B
  15. A

True or False Exercises (Section 27):

  1. False
  2. True
  3. False
  4. False
  5. True
  6. False
  7. True
  8. False
  9. True
  10. True
  11. False
  12. True
  13. False
  14. True
  15. False

Fill-in-the-Blank Exercises (Section 26):

  1. DevOps
  2. Development
  3. Operations
  4. Agile
  5. Flow
  6. Feedback
  7. Continuous Learning
  8. Lifecycle
  9. Culture
  10. Three Ways

Matching Exercises (Section 29):

  1. D
  2. B
  3. C
  4. A
  5. E
  6. F
  7. G
  8. H
  9. I
  10. J

39. Key Takeaways

  • πŸ”Ή DevOps is a way of working where Developers and Operations work together to build software.
  • πŸ”Ή DevOps is needed because the old way of working separately caused problems.
  • πŸ”Ή The DevOps Lifecycle has eight stages: Plan, Code, Build, Test, Release, Deploy, Operate, and Monitor.
  • πŸ”Ή The Three Ways are Flow, Feedback, and Continuous Learning.
  • πŸ”Ή DevOps culture is about working together, sharing ideas, and helping each other.
  • πŸ”Ή Agile is about building software in short cycles. DevOps extends Agile with Operations.
  • πŸ”Ή DevOps benefits include faster releases, fewer problems, and happier customers.
  • πŸ”Ή DevOps is used by tech companies, banks, e-commerce, government, schools, hospitals, and startups.
  • πŸ”Ή DevOps is used in Nigeria by companies like Flutterwave, Paystack, and Andela.
  • πŸ”Ή DevOps is about people — it is about working together and helping each other succeed.

40. Preparation for the Next Module

Congratulations! You have completed Module 1: "Introduction to DevOps." You now understand what DevOps is, why it is important, and how it helps teams build better software.

In Module 2, you will learn:

  • What is Version Control? You will learn how teams keep track of changes to their code.
  • What is Git? You will learn about the most popular version control system.
  • How to use Git: You will learn basic Git commands like commit, push, pull, and branch.
  • Collaboration workflows: You will learn how teams work together using Git.
  • GitHub and GitLab: You will learn about platforms that host Git repositories.

Before you start Module 2, here are some things to think about:

  1. Think about why it is important to track changes. Have you ever lost work because you did not save it? Version control helps prevent that.
  2. Think about collaboration. How do you and your classmates work on group projects? Version control helps teams work together smoothly.
  3. Review what you learned. Make sure you understand the key concepts from this module before moving on.

You are doing a fantastic job! Keep learning, keep growing, and we will see you in Module 2! πŸš€


© 2026 Certified DevOps Engineer Course • Module 1: Introduction to DevOps

3

Module Two

Module 2: Version Control & Source Code Management

πŸ“‚ Module 2: Version Control & Source Code Management


1. Module Title

πŸ“‚ Version Control & Source Code Management: Keeping Track of Your Work

Welcome to Module 2 of our Certified DevOps Engineer course! This module is called "Version Control & Source Code Management: Keeping Track of Your Work."

In this module, we will learn about a very important tool called Version Control. Version control helps teams keep track of all the changes they make to their code. It is like having a magic "undo" button for your entire project!

Think about writing a school essay. You write a draft, then you make changes, then you make more changes. Sometimes you realize you liked an older version better. Would not it be great if you could go back to any previous version of your essay? That is exactly what version control does for code!


2. Module Introduction

Hello and welcome back! In Module 1, we learned about DevOps and why it is so important for building software. Now, in Module 2, we are going to learn about one of the most important tools in DevOps: Version Control.

Imagine you are building a giant LEGO castle. You build it step by step. Sometimes you make a mistake and need to take a part off. Sometimes you want to try a different design. What if you could save every version of your castle? What if you could go back to any previous version whenever you wanted? That is what version control does for software.

We will learn about a specific version control system called Git. Git is the most popular version control system in the world. It is used by millions of developers to keep track of their code. We will also learn about platforms like GitHub and GitLab where people store their Git repositories.

By the end of this module, you will understand how teams work together using Git, how to save different versions of your work, and how to collaborate with others without stepping on each other's toes.

So, are you ready? Let us dive in and discover the amazing world of version control!


3. Learning Objectives

By the time you finish this module, you will be able to:

  • Explain what version control is in your own simple words.
  • Understand why version control is important for teams.
  • Identify the key concepts of Git (repository, commit, branch, merge).
  • Describe how Git helps teams work together.
  • Explain the difference between Git, GitHub, and GitLab.
  • Understand basic Git workflow: add, commit, push, pull.
  • Recognize common branching strategies.
  • Give examples of how version control is used in real projects.
  • Understand the concept of a pull request.
  • Feel confident to learn more about Git and version control!

4. Warm-up Story

The Great Code Disaster

Once upon a time, in a tech company in Lagos called "CodeVille," there was a team of developers building a new mobile app. The team was very talented, but they had one big problem: they did not use version control.

The team had a folder on their computers called "Final Code." But they kept changing it. So they made another folder called "Final Final Code." Then they made "Final Final Really Final Code." Then "Final Final Really Final For Real Code." It was a mess!

One day, a developer named Tunde made a big change to the code. But he made a mistake. The app stopped working. He tried to undo his change, but he could not remember what the old code looked like. The team spent three days trying to fix it, and they lost a big customer.

The team was very sad. They knew they needed a better way to work. That is when they discovered Git — a version control system that keeps track of every change to the code.

With Git, every change was saved. If someone made a mistake, they could easily go back to an older version. Team members could work on different parts of the code at the same time without messing up each other's work.

The team started using Git and GitHub. They never had a "code disaster" again. The app was released successfully, and CodeVille became one of the most successful tech companies in Nigeria.

This story shows us how important it is to keep track of changes. Version control helps teams avoid disasters and work together smoothly. Let us learn more about this amazing tool!


5. Main Lessons

Lesson 1: What is Version Control?

Definition

Version Control is a system that keeps track of all the changes you make to your files. It is like a time machine for your project!

Why is it Important?

Version control is important because it helps you remember what changes you made, when you made them, and why. It also helps teams work together without accidentally deleting each other's work.

Simple Explanation

Imagine you are writing a story. You write a page, save it, write another page, save it. Version control is like saving every version of your story as you go. But instead of just saving the latest version, it saves every single version you ever created. You can go back to any version anytime.

It is like having a magical notebook that never forgets anything you wrote, even if you erase it!

Real-life Example

A team building a website uses version control. Every time someone fixes a bug or adds a new feature, it is saved. If something breaks, they can go back to the version that was working.

School Example

You are writing a report for school. You write a draft, your teacher gives feedback, you make changes. Version control would let you see every version of your report, from the first draft to the final version.

Home Example

You are making a photo album. You add photos, rearrange them, and add captions. Version control would let you see every version of your album and go back to any previous version.

Nigerian Example

A Nigerian e-commerce company uses version control for their website. Every time they add a new product or change the design, it is saved. If a change causes a problem, they can easily undo it.

Illustration

    WHAT IS VERSION CONTROL?

    +--------------------------------------------------+
    |  VERSION CONTROL                                  |
    |                                                   |
    |  Version 1.0  β†’  Version 1.1  β†’  Version 1.2     |
    |     |               |               |             |
    |     V               V               V             |
    |  +------+       +------+       +------+          |
    |  | Start|  β†’    | Add  |  β†’    | Fix  |          |
    |  | File |       | Line |       | Bug  |          |
    |  +------+       +------+       +------+          |
    |                                                   |
    |  You can go back to ANY previous version!        |
    |                                                   |
    |  Version 1.0  ←  Version 1.1  ←  Version 1.2     |
    |     (Go back!)                                    |
    |                                                   |
    |  Like a time machine for your work! πŸ•°οΈ          |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Version control is a system that keeps track of every change you make to your files. It is like a time machine that lets you go back to any previous version of your work.


Lesson 2: Why Do We Need Version Control?

Definition

Why we need version control: We need version control because it helps us keep track of changes, work together with others, and fix mistakes easily.

Why is it Important?

Without version control, teams can lose work, overwrite each other's changes, and waste time trying to fix mistakes. Version control makes everything organized and safe.

Simple Explanation

Imagine you and your friends are drawing a picture together on a big piece of paper. You each have a marker. If you all draw at the same time, you might draw over each other's work. It would be a mess!

Now imagine you have a rule: each person draws one part at a time, and you save a photo after each step. If someone makes a mistake, you can go back to the photo before the mistake. That is what version control does for code!

Why We Need Version Control

Problem Without Version Control Solution With Version Control
Lost work when files are deleted or overwritten Every change is saved forever
Hard to remember what changes were made Every change has a message describing it
Team members accidentally overwrite each other's work Everyone works on their own copy and merges changes
Cannot go back to an older version Can go back to ANY previous version instantly
No one knows who made what change Every change has the author's name and date
Hard to try new ideas without breaking things Can work on branches without affecting the main code

Real-life Example

A team of 10 developers works on a banking app. Without version control, they would constantly overwrite each other's code. With Git, they all work on their own copies and merge their changes together safely.

School Example

Your class is working on a big group project. Without version control, it is hard to keep track of who did what. With version control, everyone can see the history of the project and who contributed what.

Home Example

Your family is planning a big event. Version control would help everyone see who added what to the plan and when. If someone makes a mistake, it can be undone easily.

Nigerian Example

A Nigerian fintech company has 50 developers working on their platform. They use version control to manage all the code. It helps them work together without chaos.

Illustration

    WHY WE NEED VERSION CONTROL

    WITHOUT VERSION CONTROL:
    +--------------------------------------------------+
    |  Developer 1:  "I changed the code!"            |
    |  Developer 2:  "I also changed the code!"       |
    |  Developer 3:  "I changed the code too!"        |
    |                                                   |
    |  πŸ”₯ CHAOS! Everything is overwritten!            |
    |  Nobody knows who did what.                     |
    |  Code is broken.                               |
    +--------------------------------------------------+

    WITH VERSION CONTROL:
    +--------------------------------------------------+
    |  Developer 1:  Saves changes β†’ Version 1.1      |
    |  Developer 2:  Saves changes β†’ Version 1.2      |
    |  Developer 3:  Saves changes β†’ Version 1.3      |
    |                                                   |
    |  βœ… EVERYTHING IS ORGANIZED!                     |
    |  Everyone's changes are saved.                  |
    |  Can go back to any version.                    |
    |  Code is safe!                                 |
    +--------------------------------------------------+
    

Mini Summary

We need version control because it helps us keep track of changes, work together, and fix mistakes easily. It prevents chaos and keeps everyone organized.


Lesson 3: What is Git?

Definition

Git is a type of version control system. It is the most popular version control system in the world. It was created in 2005 by a man named Linus Torvalds (who also created Linux).

Why is it Important?

Git is important because it is used by millions of developers all over the world. If you want to work in technology, learning Git is essential.

Simple Explanation

Imagine Git as a special filing cabinet. Every time you make a change to your code, you put a new folder into the filing cabinet. Each folder has the date, who made the change, and a description of what was changed. You can open any folder anytime and see exactly what the code looked like at that time.

Key Features of Git

  • Distributed: Everyone has a full copy of the entire project on their computer.
  • Fast: Git is very fast because it does most work on your computer, not on a server.
  • Branching: Git makes it easy to create "branches" to try new ideas without affecting the main code.
  • Merging: Git can combine changes from different branches together.
  • Track Everything: Git tracks every single change made to every file.

Real-life Example

A company building a mobile app uses Git. Every developer has a full copy of the code on their laptop. They work on their own copy and share changes with each other using Git.

School Example

Your class is writing a school newspaper. Git would let each student work on their own copy of the articles. When they are done, they can combine all the articles together.

Home Example

Your family is creating a family recipe book. Git would let everyone add and edit recipes on their own computers and then combine them.

Nigerian Example

A Nigerian developer at a company uses Git to manage code. Every developer has the full codebase on their computer. This is called a "distributed" system because everyone has their own copy.

Illustration

    WHAT IS GIT?

    +--------------------------------------------------+
    |  GIT IS A VERSION CONTROL SYSTEM                 |
    |                                                   |
    |  +------------------------------------------+    |
    |  |  YOUR COMPUTER                           |    |
    |  |  +------------------------------------+  |    |
    |  |  |  Full copy of the entire project   |  |    |
    |  |  |  with all history                  |  |    |
    |  |  +------------------------------------+  |    |
    |  +------------------------------------------+    |
    |                                                   |
    |  Git is like a filing cabinet where every        |
    |  change is saved as a separate folder.           |
    |                                                   |
    |  +-------------+  +-------------+  +---------+  |
    |  |  Version 1  |  |  Version 2  |  | Version |  |
    |  |  (Start)    |  |  (Add line) |  | 3 (Fix) |  |
    |  +-------------+  +-------------+  +---------+  |
    |                                                   |
    |  πŸ”‘ EVERYONE HAS THEIR OWN COPY                  |
    |  Git is "distributed" = everyone has everything! |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Git is the most popular version control system in the world. It tracks every change to your code, and everyone has a full copy of the entire project.


Lesson 4: Git Repository (Repo)

Definition

A Git repository (or "repo" for short) is a folder on your computer where Git keeps track of all your files and their history. It is like the filing cabinet we talked about earlier.

Why is it Important?

The repository is where all the magic happens. Everything you do in Git happens inside a repository. Without a repository, Git cannot track anything.

Simple Explanation

Imagine you have a big box. This box is your "repository." Every time you make a change to your project, you put a new item into the box. The box also has a list of every item you have ever put in it. If you want to see an old version, you just look in the box.

Two Types of Repositories

Type What It Is Example
Local Repository The copy of the project on your own computer The folder on your laptop
Remote Repository A copy stored on a server (like GitHub or GitLab) A repository on GitHub.com

Real-life Example

A developer has a Git repository on their laptop for a project. They also have a copy on GitHub. The one on the laptop is the "local" repo, and the one on GitHub is the "remote" repo.

School Example

Your class has a shared folder on the school network for projects. Each student has a copy on their computer (local), and there is a master copy on the school server (remote).

Home Example

Your family has a shared photo album. You have a copy on your phone (local), and there is a copy on the cloud (remote).

Nigerian Example

A Nigerian startup has a Git repository on GitHub. Every developer has a copy on their laptop. They push their changes to the remote repository on GitHub so everyone can share.

Illustration

    GIT REPOSITORY

    +--------------------------------------------------+
    |                                                   |
    |  LOCAL REPOSITORY (On Your Computer)             |
    |  +-------------------------------------------+    |
    |  |  πŸ“‚ My Project                           |    |
    |  |  β”œβ”€β”€ index.html                          |    |
    |  |  β”œβ”€β”€ style.css                           |    |
    |  |  β”œβ”€β”€ script.js                           |    |
    |  |  └── .git  ← Git tracking folder          |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           | Push (send changes)                   |
    |           V                                       |
    |  REMOTE REPOSITORY (On GitHub/GitLab)            |
    |  +-------------------------------------------+    |
    |  |  πŸ“‚ My Project (on server)                |    |
    |  |  β”œβ”€β”€ index.html                          |    |
    |  |  β”œβ”€β”€ style.css                           |    |
    |  |  β”œβ”€β”€ script.js                           |    |
    |  |  └── .git  ← Git tracking folder          |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           | Pull (get changes)                   |
    |           V                                       |
    |  LOCAL REPOSITORY (On Another Computer)          |
    |  +-------------------------------------------+    |
    |  |  πŸ“‚ My Project (friend's copy)            |    |
    |  |  β”œβ”€β”€ index.html                          |    |
    |  |  β”œβ”€β”€ style.css                           |    |
    |  |  β”œβ”€β”€ script.js                           |    |
    |  |  └── .git  ← Git tracking folder          |    |
    |  +-------------------------------------------+    |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

A Git repository is a folder where Git tracks all your files and changes. There are local repositories (on your computer) and remote repositories (on a server like GitHub).


Lesson 5: Git Commit

Definition

A commit is a snapshot of your files at a specific point in time. It is like taking a photo of your project. Each commit has a unique ID, a message, the author, and a date.

Why is it Important?

Commits are the heart of Git. They are how you save your work. Each commit is like a checkpoint that you can go back to anytime.

Simple Explanation

Imagine you are playing a video game. Every time you reach a new level, you save your game. If you make a mistake, you can go back to your last saved game. A commit is exactly like saving your game in Git!

Each save has a little note saying what you did. For example: "Added a new character" or "Fixed a bug."

What a Commit Contains

  • ID: A unique number (like a fingerprint) for the commit.
  • Message: A short description of what changed.
  • Author: Who made the changes.
  • Date: When the changes were made.
  • Changes: The actual changes to the files.

Real-life Example

A developer makes changes to a website. They do a Git commit with the message: "Added new homepage design." This saves a snapshot of the website with the new design.

School Example

You are writing a story. Every time you finish a chapter, you "commit" it with a message like "Finished Chapter 1." You can go back to any chapter anytime.

Home Example

You are saving photos from a trip. Each day, you save the photos with a note like "Day 1: Beach." You can go back to any day's photos.

Nigerian Example

A developer in Abuja works on a fintech app. They commit their code every time they finish a new feature. The commit message says what the feature does.

Illustration

    GIT COMMIT

    +--------------------------------------------------+
    |  COMMIT = SNAPSHOT OF YOUR WORK                  |
    |                                                   |
    |  +--------------------------------------------+  |
    |  |  COMMIT 1                                  |  |
    |  |  ID: abc123                               |  |
    |  |  Message: "Started project"               |  |
    |  |  Author: Tunde                            |  |
    |  |  Date: Monday, 10:00 AM                  |  |
    |  |  Files: index.html (new)                 |  |
    |  +--------------------------------------------+  |
    |           |                                       |
    |           V                                       |
    |  +--------------------------------------------+  |
    |  |  COMMIT 2                                  |  |
    |  |  ID: def456                               |  |
    |  |  Message: "Added CSS styles"              |  |
    |  |  Author: Tunde                            |  |
    |  |  Date: Monday, 11:30 AM                  |  |
    |  |  Files: style.css (new)                   |  |
    |  +--------------------------------------------+  |
    |           |                                       |
    |           V                                       |
    |  +--------------------------------------------+  |
    |  |  COMMIT 3                                  |  |
    |  |  ID: ghi789                               |  |
    |  |  Message: "Fixed homepage bug"            |  |
    |  |  Author: Ada                              |  |
    |  |  Date: Tuesday, 9:00 AM                   |  |
    |  |  Files: index.html (changed)              |  |
    |  +--------------------------------------------+  |
    |                                                   |
    |  πŸ”‘ Each commit is a saved checkpoint!            |
    |  You can go back to ANY commit.                  |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

A commit is a snapshot of your project at a specific time. Each commit has a unique ID, a message, an author, and a date. It is like saving your game in a video game.


Lesson 6: Git Branching

Definition

A branch is a separate line of development in Git. It allows you to work on new features or ideas without affecting the main code. It is like a separate path in a forest.

Why is it Important?

Branches are very important because they let you try new things safely. If your experiment does not work, you can just delete the branch and nothing happens to the main code. If it works, you can merge it into the main branch.

Simple Explanation

Imagine you are drawing a picture. The main drawing is on your paper. You want to try adding something new, but you are not sure if it will look good. Instead of drawing directly on the main picture, you use a tracing paper on top. You try your new idea on the tracing paper. If it looks good, you copy it to the main picture. If not, you just throw away the tracing paper.

In Git, the "tracing paper" is called a branch.

Common Branch Names

  • main (or master) — The main branch where the stable code lives.
  • feature/XYZ — A branch for a new feature.
  • bugfix/ABC — A branch for fixing a bug.
  • hotfix/XYZ — A branch for fixing an urgent problem.

Real-life Example

A team is building a shopping app. They have a "main" branch for the stable code. A developer creates a "feature/payment" branch to add a new payment system. They work on it, test it, and when it works, they merge it into "main."

School Example

Your class is writing a book. The main book is the "main" branch. Each student creates a "branch" to write their own chapter. When all chapters are done, they are merged into the main book.

Home Example

Your family is planning a party. The main plan is the "main" branch. Each person creates a "branch" to plan a different part (food, games, decorations). When everything is planned, all the branches are merged into the main plan.

Nigerian Example

A Nigerian startup has a main branch for their production code. A developer creates a branch to add a new feature called "Mobile Money Integration." After testing, they merge it into the main branch.

Illustration

    GIT BRANCHING

    +--------------------------------------------------+
    |                                                   |
    |  main  ──────────────────────────────────────     |
    |         (Stable, production-ready code)          |
    |                                                   |
    |     feature/login                                 |
    |     ──────────────────────────────────────         |
    |     (Working on login feature)                    |
    |                                                   |
    |        feature/payment                            |
    |        ──────────────────────────────────          |
    |        (Working on payment feature)               |
    |                                                   |
    |     bugfix/header                                  |
    |     ────────────────────────────                   |
    |     (Fixing header bug)                           |
    |                                                   |
    |  πŸ”‘ Each branch is a separate line of work!       |
    |  They can be merged back into main later.        |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

A branch is a separate line of development. It lets you try new ideas safely without affecting the main code. Branches can be merged back into the main branch when they are ready.


Lesson 7: Git Merging

Definition

Merging is the process of combining changes from one branch into another branch. It is how you bring your work back into the main branch.

Why is it Important?

Merging is how teams share their work. Without merging, everyone would have their own separate codebase. Merging brings everything together.

Simple Explanation

Imagine you and your friend are both working on the same puzzle. You are working on the left side, and your friend is working on the right side. When you both finish your parts, you put the puzzle together. That is exactly what merging is in Git!

Git is smart enough to combine the changes automatically. If both people changed the same line, Git asks you to decide which version to keep. This is called a "merge conflict," and it is easy to resolve.

Types of Merges

Type What It Is
Fast-forward Merge The branch is just ahead of main, so Git just moves the pointer
Three-way Merge Both branches have changes, so Git combines them
Merge Conflict Both branches changed the same lines, so Git asks you to decide

Real-life Example

A developer creates a branch to add a new feature. After finishing the feature, they merge the branch into "main." This brings the new feature into the main codebase.

School Example

Two students write different sections of a report. They merge their sections together to create the full report.

Home Example

Two family members create different parts of a photo album. They merge their photos together to create the complete album.

Nigerian Example

A Nigerian company has several developers working on different features. They merge all their branches into the main branch every week. This is called a "merge day."

Illustration

    GIT MERGING

    +--------------------------------------------------+
    |  BEFORE MERGING                                  |
    |                                                   |
    |  main  ──────────────────────────────────         |
    |                                                   |
    |  feature/payment                                  |
    |  ────────────────────────────────────              |
    |  (New payment code ready to be merged)            |
    |                                                   |
    |         ⬇️ MERGE!                                 |
    |                                                   |
    |  AFTER MERGING                                    |
    |                                                   |
    |  main  ──────────────────────────────────         |
    |         β”‚                                         |
    |         V                                         |
    |  feature/payment                                  |
    |  ────────────────────────────────────              |
    |  (Now part of main!)                              |
    |                                                   |
    |  πŸ”‘ Merging combines changes from two branches!   |
    |  The main branch now has the new payment code.    |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Merging is the process of combining changes from one branch into another. It is how teams share their work and bring everything together.


Lesson 8: Git Workflow

Definition

A Git workflow is a set of steps that developers follow when using Git. It is like a recipe that tells you what to do and when.

Why is it Important?

A workflow keeps everyone organized. When everyone follows the same steps, there is less confusion and fewer mistakes.

Simple Explanation

Imagine you are baking a cake. You follow a recipe: mix the ingredients, put it in the oven, let it cool, frost it. A Git workflow is just like a recipe for developers. It tells them the steps to follow when working with Git.

Basic Git Workflow

  1. Clone: Copy the repository to your computer.
  2. Branch: Create a new branch for your work.
  3. Make Changes: Edit the code, add new files, etc.
  4. Add: Tell Git which changes you want to save.
  5. Commit: Save your changes with a message.
  6. Push: Send your changes to the remote repository.
  7. Pull Request: Ask to merge your changes into main.
  8. Merge: Combine your changes with the main branch.

Real-life Example

A developer follows this workflow every day. They clone the repo, create a branch, make changes, commit, push, and create a pull request. Then their changes are reviewed and merged.

School Example

Your class follows a workflow for projects: plan, research, write, edit, submit. A Git workflow is similar but for coding.

Home Example

Your family follows a workflow for making dinner: plan the meal, buy ingredients, cook, serve, clean up. A Git workflow is like that but for software.

Nigerian Example

A Nigerian tech company follows a strict Git workflow. Every developer knows the steps. This keeps everything organized and helps them deliver software quickly.

Illustration

    BASIC GIT WORKFLOW

    +--------------------------------------------------+
    |                                                   |
    |  1. CLONE                                        |
    |     Copy repo to your computer                   |
    |           |                                       |
    |           V                                       |
    |  2. BRANCH                                       |
    |     Create a new branch for your work            |
    |           |                                       |
    |           V                                       |
    |  3. MAKE CHANGES                                 |
    |     Edit and create files                        |
    |           |                                       |
    |           V                                       |
    |  4. ADD                                          |
    |     Tell Git which changes to save               |
    |           |                                       |
    |           V                                       |
    |  5. COMMIT                                       |
    |     Save changes with a message                  |
    |           |                                       |
    |           V                                       |
    |  6. PUSH                                         |
    |     Send changes to remote repo                  |
    |           |                                       |
    |           V                                       |
    |  7. PULL REQUEST                                 |
    |     Ask to merge into main                       |
    |           |                                       |
    |           V                                       |
    |  8. MERGE                                        |
    |     Changes are merged into main!                |
    |                                                   |
    |  πŸ”‘ Follow these steps to work with Git!          |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

A Git workflow is a set of steps that developers follow. The basic steps are: clone, branch, make changes, add, commit, push, pull request, and merge.


Lesson 9: GitHub and GitLab

Definition

GitHub and GitLab are websites where you can store your Git repositories online. They are like a home for your code on the internet.

Why is it Important?

GitHub and GitLab make it easy for teams to share code. They also have many features like issue tracking, project management, and code review.

Simple Explanation

Imagine you have a school project. You have a folder with all your work. GitHub and GitLab are like a shared folder on the school network. You can put your project there, and your classmates can access it too.

The difference is that GitHub and GitLab are on the internet, so you can access them from anywhere in the world!

GitHub vs GitLab

Feature GitHub GitLab
Founded 2008 2014
Owned By Microsoft GitLab Inc.
Free Features Unlimited public repos, free private repos with limits Very generous free tier
CI/CD GitHub Actions Built-in CI/CD
Popularity Most popular Popular, especially for private projects

Real-life Example

A company hosts their code on GitHub. All developers push their changes to GitHub. They use GitHub's pull request feature to review each other's code.

School Example

Your class has a project on GitHub. Everyone can see the code, suggest changes, and work together.

Home Example

Your family creates a GitHub repository for a shared family website. Everyone can contribute photos and stories.

Nigerian Example

A Nigerian company uses GitLab for their projects. They like GitLab because it has built-in CI/CD. They host their code, run their tests, and deploy their app all from GitLab.

Illustration

    GITHUB AND GITLAB

    +--------------------------------------------------+
    |                                                   |
    |  GITHUB                                          |
    |  +-------------------------------------------+    |
    |  |  πŸ”‘ Where code goes to live on the internet | |
    |  |  βœ… Pull requests                           | |
    |  |  βœ… Issue tracking                         | |
    |  |  βœ… Project management                     | |
    |  |  βœ… GitHub Actions (CI/CD)                 | |
    |  +-------------------------------------------+    |
    |                                                   |
    |  GITLAB                                          |
    |  +-------------------------------------------+    |
    |  |  πŸ”‘ All-in-one DevOps platform             | |
    |  |  βœ… Built-in CI/CD                         | |
    |  |  βœ… Issue tracking                         | |
    |  |  βœ… Project management                     | |
    |  |  βœ… Self-hosted option                     | |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Both are great for hosting Git repositories!  |
    |  Choose the one that works best for you.         |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

GitHub and GitLab are websites where you can store Git repositories online. They help teams share code, track issues, and manage projects.


Lesson 10: Collaboration with Git

Definition

Collaboration with Git is the process of multiple people working together on the same project using Git. Everyone has their own copy, and they share changes.

Why is it Important?

Collaboration is one of the main reasons we use Git. Git makes it easy for teams to work together without overwriting each other's work.

Simple Explanation

Imagine you and your friends are working on a giant puzzle. Instead of all working on the same piece at the same time, each person works on a different piece. When everyone is done, you put all the pieces together.

Git is like that. Each developer works on their own "piece" (branch). When they are done, they put all the "pieces" (branches) together using merge.

Collaboration Steps

  1. Pull: Get the latest changes from the remote repo.
  2. Branch: Create a branch for your work.
  3. Work: Make your changes on your branch.
  4. Commit: Save your changes.
  5. Push: Send your branch to the remote repo.
  6. Pull Request: Ask your team to review your changes.
  7. Review: Team reviews and discusses changes.
  8. Merge: Changes are merged into the main branch.

Real-life Example

A team of 5 developers works on a project. Each developer creates branches for their features. They review each other's code through pull requests. Everyone works together smoothly.

School Example

A group of students works on a research project. Each student researches a different topic. They share their findings and combine them into one big report.

Home Example

A family plans a reunion. Each person is responsible for a different part (food, location, activities). They share updates and combine their plans.

Nigerian Example

A Nigerian company has developers in Lagos, Abuja, and Port Harcourt. They use Git to collaborate even though they are in different cities. They all work on the same project using GitHub.

Illustration

    COLLABORATION WITH GIT

    +--------------------------------------------------+
    |  TEAM WORKING TOGETHER                           |
    |                                                   |
    |  Developer 1 (Lagos)      Developer 2 (Abuja)    |
    |  +------------------+     +------------------+    |
    |  |  Branch: login   |     |  Branch: payment |    |
    |  |  Work on login   |     |  Work on payment |    |
    |  |  feature         |     |  feature         |    |
    |  +------------------+     +------------------+    |
    |         |                         |               |
    |         |      Developer 3 (PH)    |               |
    |         |     +------------------+ |               |
    |         |     |  Branch: reports | |               |
    |         |     |  Work on reports | |               |
    |         |     +------------------+ |               |
    |         |           |               |               |
    |         V           V               V               |
    |  +------------------------------------------+      |
    |  |           GITHUB (Remote Repo)           |      |
    |  |  All branches are pushed and reviewed    |      |
    |  |  βœ… Pull requests                        |      |
    |  |  βœ… Code review                         |      |
    |  |  βœ… Merge into main                    |      |
    |  +------------------------------------------+      |
    |                                                   |
    |  πŸ”‘ Git makes remote collaboration easy!          |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Git makes it easy for teams to collaborate. Everyone works on their own branches, and changes are merged together through pull requests and code review.


Lesson 11: Branching Strategies

Definition

A branching strategy is a plan for how a team uses branches in Git. It tells everyone when to create branches, what to name them, and how to merge them.

Why is it Important?

A branching strategy keeps everyone organized. Without a strategy, branches can become a mess. With a strategy, everything is clean and organized.

Simple Explanation

Imagine a library with no organization. Books are everywhere. You cannot find anything. Now imagine a library with a system: fiction books here, non-fiction there, children's books in another section. You can find everything easily. A branching strategy is like organizing the library.

Common Branching Strategies

Strategy What It Is When to Use
Git Flow Uses multiple types of branches: main, develop, feature, release, hotfix Large projects with regular releases
GitHub Flow Simple: just main and feature branches Continuous deployment projects
Trunk-Based Development Everyone works on main, short-lived feature branches Very fast-paced projects

Real-life Example

A company uses GitHub Flow. They have a "main" branch and feature branches. Developers create feature branches for new features. When done, they merge into main through pull requests.

School Example

Your class uses a simple strategy for projects: the "master" copy is the main branch. Each student creates a branch for their part. When done, they merge into the master copy.

Home Example

Your family uses a simple strategy for planning: the main plan is the "main" branch. Each person creates a branch for their part. When done, they merge into the main plan.

Nigerian Example

A Nigerian fintech uses Git Flow. They have "develop" for development, "main" for production, and feature branches for new features. This keeps their large project organized.

Illustration

    BRANCHING STRATEGIES

    GIT FLOW:
    +--------------------------------------------------+
    |                                                   |
    |  main  ────────────────────────────────────        |
    |         β”‚                                         |
    |         V                                         |
    |  develop ──────────────────────────────────────    |
    |         β”‚                                         |
    |         V                                         |
    |  feature/login ──────────────────────────────     |
    |  feature/payment ────────────────────────────     |
    |  release/1.0 ──────────────────────────────────    |
    |  hotfix/urgent ──────────────────────────────     |
    |                                                   |
    |  GITHUB FLOW:                                     |
    |  main  ────────────────────────────────────        |
    |         β”‚                                         |
    |         V                                         |
    |  feature/login ──────────────────────────────     |
    |  feature/payment ────────────────────────────     |
    |                                                   |
    |  πŸ”‘ Choose a strategy that fits your team!        |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

A branching strategy is a plan for using branches. Common strategies include Git Flow, GitHub Flow, and Trunk-Based Development. Choose one that works for your team.


Lesson 12: What We Have Learned So Far

Definition

In this lesson, we will review everything we have learned about version control and Git. This will help us remember the most important ideas.

Why is it Important?

Reviewing helps us remember what we have learned. When we keep information in our brains, we can use it later.

Simple Explanation

Let us think back to everything we have talked about in this module:

  • What is version control? A system that tracks changes to your files. Like a time machine!
  • Why do we need version control? To keep track of changes, work together, and fix mistakes easily.
  • What is Git? The most popular version control system.
  • What is a repository? A folder where Git tracks files and changes.
  • What is a commit? A snapshot of your project at a specific time.
  • What is a branch? A separate line of development.
  • What is merging? Combining changes from different branches.
  • What is a Git workflow? A set of steps to follow when using Git.
  • What are GitHub and GitLab? Websites to host Git repositories.
  • How does Git help with collaboration? It lets teams work together without overwriting each other's work.
  • What are branching strategies? Plans for using branches in Git.

Real-life Example

A team has learned all these concepts. They use Git every day. They create branches, commit changes, and merge pull requests. Their project is organized and successful.

School Example

Your class has learned about Git. They understand how to keep track of changes and work together on projects.

Home Example

Your family has learned about version control. They understand the importance of keeping track of changes and working together.

Nigerian Example

A Nigerian developer has learned all these Git concepts. They can now work effectively with their team and contribute to their company's success.

Illustration

    WHAT WE HAVE LEARNED

    +--------------------------------------------------+
    |                                                   |
    |  πŸ“Œ Version Control = Track changes              |
    |  πŸ“Œ Git = Popular version control system         |
    |  πŸ“Œ Repository = Where Git tracks files          |
    |  πŸ“Œ Commit = Snapshot of your project            |
    |  πŸ“Œ Branch = Separate line of development        |
    |  πŸ“Œ Merge = Combine changes from branches        |
    |  πŸ“Œ Workflow = Steps to follow                  |
    |  πŸ“Œ GitHub/GitLab = Host Git repos              |
    |  πŸ“Œ Collaboration = Work together using Git     |
    |  πŸ“Œ Branching Strategy = Plan for using branches |
    |                                                   |
    |  YOU ARE NOW A GIT BEGINNER! πŸŽ‰                  |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

We have learned many things about version control and Git. Git helps teams track changes, work together, and build better software.


6. Key Vocabulary

Here are the important words we learned in this module. Each word has a simple definition to help you remember it.

Word Simple Definition
Version Control A system that tracks changes to files, like a time machine
Git The most popular version control system in the world
Repository (Repo) A folder where Git tracks all your files and changes
Commit A snapshot of your project at a specific time
Branch A separate line of development in Git
Merge Combining changes from one branch into another
Clone Copying a repository to your computer
Push Sending your changes to the remote repository
Pull Getting the latest changes from the remote repository
GitHub A website for hosting Git repositories (owned by Microsoft)
GitLab A website for hosting Git repositories with built-in CI/CD
Pull Request A request to merge your changes into the main branch
Merge Conflict When two branches have changes to the same lines
Branching Strategy A plan for how a team uses branches
Collaboration Working together on the same project

7. Important Concepts

Here are the most important concepts from this module. These are the big ideas that will help you understand version control.

  1. Version control keeps track of every change. It is like a time machine for your project. You can go back to any version of your work anytime.

  2. Git is the most popular version control system. It is distributed, meaning everyone has a full copy of the project on their computer.

  3. Commits are snapshots of your project. Each commit has a message, author, date, and unique ID. They are like save points in a video game.

  4. Branches let you work on new ideas safely. You can create a branch, try something new, and if it does not work, delete the branch without affecting the main code.

  5. Merging combines changes from different branches. This is how teams share their work and bring everything together.

  6. GitHub and GitLab host Git repositories online. They help teams collaborate, review code, and manage projects.

  7. Git makes collaboration easy. Everyone works on their own copy and shares changes through push, pull, and pull requests.


8. Step-by-Step Explanations

Let us look at how to use Git in simple steps:

Step 1: Clone the Repository

You start by making a copy of the project on your computer. This is called "cloning." You use the command: git clone followed by the repository URL.

Step 2: Create a Branch

Before you make changes, create a new branch. This keeps your work separate from the main code. Use: git branch feature/name and then git checkout feature/name to switch to it.

Step 3: Make Your Changes

Edit the code, add new files, and make any changes you need. This is where you do your work.

Step 4: Add the Changes

Tell Git which changes you want to save. Use: git add . to add all changes, or git add filename to add specific files.

Step 5: Commit the Changes

Save your changes with a message. Use: git commit -m "Your message". The message should describe what you changed.

Step 6: Push to Remote

Send your branch to the remote repository (like GitHub). Use: git push origin feature/name.

Step 7: Create a Pull Request

On GitHub or GitLab, create a pull request. This tells your team that you are ready to merge your changes into the main branch.

Step 8: Review and Merge

Your team reviews your code. They might ask for changes. When everything is good, they merge your pull request into the main branch.

Illustration

    STEP-BY-STEP: USING GIT

    Step 1: CLONE
    +-------------------+
    |  git clone URL    |
    +-------------------+
           |
           V
    Step 2: BRANCH
    +-------------------+
    |  git branch feature|
    |  git checkout feat |
    +-------------------+
           |
           V
    Step 3: MAKE CHANGES
    +-------------------+
    |  Edit code        |
    |  Add new files    |
    +-------------------+
           |
           V
    Step 4: ADD
    +-------------------+
    |  git add .        |
    +-------------------+
           |
           V
    Step 5: COMMIT
    +-------------------+
    |  git commit -m    |
    |  "Message"        |
    +-------------------+
           |
           V
    Step 6: PUSH
    +-------------------+
    |  git push origin  |
    |  feature          |
    +-------------------+
           |
           V
    Step 7: PULL REQUEST
    +-------------------+
    |  Create PR on     |
    |  GitHub/GitLab    |
    +-------------------+
           |
           V
    Step 8: MERGE
    +-------------------+
    |  Review and merge |
    |  into main        |
    +-------------------+
    

9. Real-life Examples

Example 1: The E-commerce Company

An e-commerce company uses Git to manage their website code. They have a "main" branch for the live website. When developers want to add new features, they create branches. After testing, they merge into main through pull requests.

Example 2: The Mobile App Team

A mobile app development team uses Git. Each developer works on different features. They use GitHub for hosting. They review each other's code through pull requests before merging.

Example 3: The Open Source Project

An open source project on GitHub has contributors from all over the world. They use Git to collaborate. Anyone can contribute by creating a branch, making changes, and submitting a pull request.


10. Nigerian Examples

Example 1: Flutterwave

Flutterwave, a Nigerian fintech company, uses Git and GitHub. They have developers in multiple cities. Git helps them work together and track changes to their payment platform.

Example 2: Paystack

Paystack uses Git for their code. They have a strict workflow with branches and pull requests. This helps them maintain high quality code.

Example 3: Nigerian Tech Community

Many Nigerian developers use GitHub to share their projects. They contribute to open source projects and build their portfolios. Git helps them showcase their skills to employers.


11. Fun Examples Children Can Relate To

Example 1: The School Book

Your class is writing a book together. Each student writes a chapter. Git would be like a folder where all the chapters are saved. You can see who wrote what chapter and when.

Example 2: The Video Game

You are playing a video game with save points. Every time you save, you can go back to that point if you make a mistake. Git commits are exactly like save points in a game!

Example 3: The Art Project

You are drawing a picture with your friends. Each friend draws on their own paper. When you are done, you put all the papers together to make one big picture. Git branches are like each friend's paper, and merging is like putting them together.


12. Everyday Examples

Example 1: The Recipe Book

Your family has a recipe book. Every time someone adds a new recipe or changes an old one, it is saved. You can always see the original recipe and any changes made. That is like version control!

Example 2: The Photo Album

Your family has a photo album. You add photos, remove photos, and rearrange them. You can always go back to the original version. That is like version control.

Example 3: The Homework Folder

You have a folder for your homework. Every time you make changes to your homework, you save it. You can always go back to an older version. That is like version control.


13. Teacher Notes

For Teachers: This module is designed to be accessible for students of all ages. Here are some tips for teaching this module:

  • Use the story: The warm-up story about CodeVille is a great way to introduce the topic. Ask students what they would do if they lost their work.
  • Encourage discussion: Ask students if they have ever lost work or had trouble keeping track of changes. This helps them understand why version control is important.
  • Use the illustrations: The ASCII diagrams are simple and visual. They help students understand complex ideas easily.
  • Group activities: Have students role-play using Git with cards or sticky notes. One student is the "main branch," others create "branches" and "merge" them.
  • Relate to Nigerian examples: The Nigerian examples help students see how Git is relevant to their own country.
  • Review key vocabulary: Use the vocabulary table to help students remember important terms.
  • Use the exercises: The end-of-module exercises help reinforce learning. Use them for homework or classwork.

14. Parent Tips

For Parents: Your child is learning about version control and Git. Here are some tips to support their learning:

  • Discuss tracking changes: Talk to your child about how you keep track of changes in your own life. This could be at work, at home, or in your community.
  • Ask about Git: Ask your child what they learned about Git. This will help them remember and understand the material better.
  • Relate to everyday life: Point out examples of version control in everyday life. Saving different versions of a document, tracking changes in a recipe, etc.
  • Encourage curiosity: If your child asks questions about Git, take the time to answer them. There are many great resources online that can help.
  • Celebrate learning: Praise your child for completing this module. Learning about version control is an important skill for the future.

15. Interesting Facts

  • Fact 1: Git was created in 2005 by Linus Torvalds, who also created Linux. He created Git to help manage the development of the Linux operating system.
  • Fact 2: GitHub was created in 2008 and was later acquired by Microsoft in 2018 for $7.5 billion. That is a lot of money!
  • Fact 3: Git is used by over 90% of software developers worldwide. It is the most popular version control system by far.
  • Fact 4: The word "Git" is British slang for a person who is not very nice. But the name was chosen because Git is simple and straightforward.
  • Fact 5: Git has been used to track code for some of the largest projects in history, including the Linux kernel, the Android operating system, and many more.
  • Fact 6: Many Nigerian developers use Git and GitHub to build their portfolios and contribute to open source projects.

16. Did You Know?

  • Did you know? Git can track changes to any file, not just code. You can use Git to track changes to text documents, images, and even video files!
  • Did you know? Git is completely free and open source. Anyone can use it, modify it, and share it.
  • Did you know? GitHub has over 100 million users worldwide. That is more than the population of many countries!
  • Did you know? Git can be used without any hosting service. You can use Git just on your own computer to track changes to your own projects.
  • Did you know? Some Nigerian companies have their entire codebase on GitHub or GitLab. It is a safe and reliable way to store code.
  • Did you know? Git is a "distributed" version control system. This means every developer has a full copy of the entire project history on their computer.

17. Remember This

  • πŸ”Ή Version control tracks changes to your files like a time machine.
  • πŸ”Ή Git is the most popular version control system.
  • πŸ”Ή Repository is where Git tracks all your files.
  • πŸ”Ή Commit is a snapshot of your project at a specific time.
  • πŸ”Ή Branch is a separate line of development.
  • πŸ”Ή Merge combines changes from different branches.
  • πŸ”Ή GitHub and GitLab host Git repositories online.
  • πŸ”Ή Git helps teams collaborate without overwriting each other's work.
  • πŸ”Ή Branching strategies keep teams organized.
  • πŸ”Ή Git is used by millions of developers all over the world, including in Nigeria.

18. Common Mistakes

  1. Mistake 1: Not committing often enough.

    Some people make many changes and then do one big commit. This makes it hard to know what changed. It is better to commit frequently with clear messages.

  2. Mistake 2: Writing bad commit messages.

    A commit message like "fixed stuff" is not helpful. Write clear messages like "Fixed the login button bug" or "Added payment feature."

  3. Mistake 3: Working directly on the main branch.

    You should always create a branch for your work. Working directly on main can break the code for everyone.

  4. Mistake 4: Forgetting to pull before pushing.

    Always pull the latest changes before pushing your own. This helps avoid merge conflicts.

  5. Mistake 5: Not reviewing code before merging.

    Always have someone review your code before merging. This helps catch mistakes and improve quality.

  6. Mistake 6: Ignoring merge conflicts.

    Merge conflicts happen when two people change the same lines. Do not ignore them. Resolve them carefully.


19. Best Practices

  1. Commit frequently.

    Make small, frequent commits with clear messages. This makes it easier to understand the history and revert changes if needed.

  2. Write good commit messages.

    A good commit message describes what was changed and why. Example: "Fixed bug where login button did not work on mobile."

  3. Always branch for new work.

    Never work directly on the main branch. Always create a branch for your changes.

  4. Pull before you push.

    Before pushing your changes, pull the latest changes from the remote repository. This avoids merge conflicts.

  5. Review code before merging.

    Always have at least one person review your code before you merge it. This improves quality and catches mistakes.

  6. Resolve merge conflicts carefully.

    When you have a merge conflict, take time to resolve it carefully. Make sure you keep the correct changes.


20. ASCII Illustrations

Illustration 1: Git Basics

    GIT BASICS

    +--------------------------------------------------+
    |                                                   |
    |  REPOSITORY (Repo)                               |
    |  +-------------------------------------------+    |
    |  |  πŸ“‚ My Project                           |    |
    |  |  β”œβ”€β”€ index.html                          |    |
    |  |  β”œβ”€β”€ style.css                           |    |
    |  |  └── .git (Git tracking folder)          |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  COMMIT = Snapshot                               |
    |  +------------+  +------------+  +------------+  |
    |  |  Commit 1  |  |  Commit 2  |  |  Commit 3  |  |
    |  |  "Start"   |  |  "Add CSS" |  |  "Fix bug" |  |
    |  +------------+  +------------+  +------------+  |
    |                                                   |
    |  BRANCH = Separate Line of Work                   |
    |  main  ────────────────────────────────────        |
    |         β”‚                                         |
    |         V                                         |
    |  feature/login ────────────────────────────        |
    |                                                   |
    |  MERGE = Combine Branches                         |
    |  main  ────────────────────────────────────        |
    |         β”‚                                         |
    |         V                                         |
    |  feature/login ────────────────────────────        |
    |         (Merged into main!)                       |
    |                                                   |
    +--------------------------------------------------+
    

Illustration 2: Git Workflow

    GIT WORKFLOW

    +--------------------------------------------------+
    |                                                   |
    |  1. CLONE                                        |
    |     git clone URL                                |
    |           |                                       |
    |           V                                       |
    |  2. BRANCH                                       |
    |     git checkout -b feature/name                 |
    |           |                                       |
    |           V                                       |
    |  3. MAKE CHANGES                                 |
    |     Edit files                                   |
    |     Add new files                               |
    |           |                                       |
    |           V                                       |
    |  4. ADD                                          |
    |     git add .                                    |
    |           |                                       |
    |           V                                       |
    |  5. COMMIT                                       |
    |     git commit -m "Description"                  |
    |           |                                       |
    |           V                                       |
    |  6. PUSH                                         |
    |     git push origin feature/name                 |
    |           |                                       |
    |           V                                       |
    |  7. PULL REQUEST                                 |
    |     Create PR on GitHub/GitLab                   |
    |           |                                       |
    |           V                                       |
    |  8. MERGE                                        |
    |     Review and merge into main                   |
    |                                                   |
    +--------------------------------------------------+
    

Illustration 3: Branching Strategies

    BRANCHING STRATEGIES

    GIT FLOW:
    +--------------------------------------------------+
    |                                                   |
    |  main  ────────────────────────────────────        |
    |         β”‚                                         |
    |         V                                         |
    |  develop ──────────────────────────────────────    |
    |         β”‚                                         |
    |         V                                         |
    |  feature/login ──────────────────────────────     |
    |  feature/payment ────────────────────────────     |
    |  release/1.0 ──────────────────────────────────    |
    |  hotfix/urgent ──────────────────────────────     |
    |                                                   |
    +--------------------------------------------------+

    GITHUB FLOW:
    +--------------------------------------------------+
    |                                                   |
    |  main  ────────────────────────────────────        |
    |         β”‚                                         |
    |         V                                         |
    |  feature/login ──────────────────────────────     |
    |  feature/payment ────────────────────────────     |
    |                                                   |
    +--------------------------------------------------+
    

21. Comparison Tables

Table 1: Git vs Other Version Control

Feature Git SVN Mercurial
Type Distributed Centralized Distributed
Speed Very fast Slower Fast
Branching Very easy Harder Easy
Popularity Most popular Declining Less popular
Offline Work Yes Limited Yes
Platforms GitHub, GitLab, Bitbucket Apache, AWS Bitbucket, Heptapod

Table 2: GitHub vs GitLab

Feature GitHub GitLab
Founded 2008 2014
Owned By Microsoft GitLab Inc.
Free Tier Unlimited public repos, free private with limits Very generous free tier
Built-in CI/CD GitHub Actions Yes, built-in
Self-Hosted GitHub Enterprise (paid) Yes, free (CE) and paid (EE)
Most Popular For Open source, public projects Private projects, all-in-one DevOps

Table 3: Branching Strategies

Strategy Complexity Best For Key Branches
Git Flow High Large projects with regular releases main, develop, feature, release, hotfix
GitHub Flow Low Continuous deployment projects main, feature
Trunk-Based Low Very fast-paced projects main, short-lived feature

Note: Each lesson in this module already includes a "Mini Summary" section right after the lesson content. Please refer back to the lessons above to review each mini summary.


23. End-of-Module Summary

Congratulations! You have completed Module 2 of the "Certified DevOps Engineer" course. Let us review everything we have learned:

What is Version Control?

Version control is a system that keeps track of changes to your files. It is like a time machine for your project. You can go back to any previous version anytime.

What is Git?

Git is the most popular version control system in the world. It is distributed, meaning everyone has a full copy of the project on their computer. Git was created in 2005 by Linus Torvalds.

Key Git Concepts

We learned about repositories (folders where Git tracks files), commits (snapshots of your project), branches (separate lines of development), and merging (combining changes from different branches).

Git Workflow

The basic Git workflow is: clone, branch, make changes, add, commit, push, pull request, and merge. Following this workflow keeps everything organized.

GitHub and GitLab

GitHub and GitLab are websites for hosting Git repositories. They help teams collaborate, review code, and manage projects. GitHub is owned by Microsoft, and GitLab is an independent company.

Collaboration and Branching Strategies

Git makes it easy for teams to collaborate. Branching strategies like Git Flow, GitHub Flow, and Trunk-Based Development help keep branches organized.

You have now completed Module 2! You are ready to move on to Module 3, where you will learn about Continuous Integration (CI). Keep up the great work!


24. Frequently Asked Questions (10 Questions)

  1. Q1: What is version control?

    A: Version control is a system that keeps track of all the changes you make to your files. It is like a time machine for your project.

  2. Q2: What is Git?

    A: Git is the most popular version control system in the world. It was created in 2005 by Linus Torvalds.

  3. Q3: What is a repository (repo)?

    A: A repository is a folder where Git tracks all your files and their history. It is like a filing cabinet for your project.

  4. Q4: What is a commit?

    A: A commit is a snapshot of your project at a specific time. It has a message, author, date, and unique ID.

  5. Q5: What is a branch?

    A: A branch is a separate line of development in Git. It lets you try new ideas without affecting the main code.

  6. Q6: What is merging?

    A: Merging is the process of combining changes from one branch into another. It is how teams share their work.

  7. Q7: What is the difference between GitHub and GitLab?

    A: Both are websites for hosting Git repositories. GitHub is owned by Microsoft and is most popular for open source. GitLab has built-in CI/CD and can be self-hosted.

  8. Q8: What is a pull request?

    A: A pull request is a request to merge your changes into the main branch. It allows team members to review your code before it is merged.

  9. Q9: What is a branching strategy?

    A: A branching strategy is a plan for how a team uses branches in Git. Examples include Git Flow, GitHub Flow, and Trunk-Based Development.

  10. Q10: Is Git used in Nigeria?

    A: Yes! Many Nigerian developers and companies use Git and GitHub. It is an essential skill for software development in Nigeria.


25. Review Questions (15 Questions)

  1. What is version control?

    Answer: Version control is a system that keeps track of changes to files, like a time machine.

  2. What is Git?

    Answer: Git is the most popular version control system in the world.

  3. What is a repository?

    Answer: A repository is a folder where Git tracks all your files and changes.

  4. What is a commit?

    Answer: A commit is a snapshot of your project at a specific time.

  5. What is a branch?

    Answer: A branch is a separate line of development in Git.

  6. What is merging?

    Answer: Merging is combining changes from one branch into another.

  7. What does "git add" do?

    Answer: It tells Git which changes you want to save in the next commit.

  8. What does "git commit" do?

    Answer: It saves your changes with a message.

  9. What does "git push" do?

    Answer: It sends your changes to the remote repository.

  10. What does "git pull" do?

    Answer: It gets the latest changes from the remote repository.

  11. What is a pull request?

    Answer: A pull request is a request to merge your changes into the main branch.

  12. What is the difference between GitHub and GitLab?

    Answer: Both host Git repositories. GitHub is owned by Microsoft and is popular for open source. GitLab has built-in CI/CD and can be self-hosted.

  13. What is a branching strategy?

    Answer: A branching strategy is a plan for how a team uses branches in Git.

  14. Name one branching strategy.

    Answer: Git Flow, GitHub Flow, or Trunk-Based Development.

  15. Is Git used in Nigeria?

    Answer: Yes, many Nigerian developers and companies use Git.


26. Fill-in-the-Blank Exercises

Fill in the blanks with the correct words from the list:

Word list: version control, Git, repository, commit, branch, merge, clone, push, pull, GitHub, GitLab, pull request

  1. __________ is a system that tracks changes to your files.

    Answer: version control

  2. __________ is the most popular version control system.

    Answer: Git

  3. A __________ is a folder where Git tracks all your files.

    Answer: repository

  4. A __________ is a snapshot of your project at a specific time.

    Answer: commit

  5. A __________ is a separate line of development in Git.

    Answer: branch

  6. __________ is the process of combining changes from one branch into another.

    Answer: merge

  7. To copy a repository to your computer, you use the command __________.

    Answer: clone

  8. To send your changes to the remote repository, you use the command __________.

    Answer: push

  9. To get the latest changes from the remote repository, you use the command __________.

    Answer: pull

  10. A __________ is a request to merge your changes into the main branch.

    Answer: pull request

  11. __________ is a website for hosting Git repositories owned by Microsoft.

    Answer: GitHub

  12. __________ is a website for hosting Git repositories with built-in CI/CD.

    Answer: GitLab


27. True or False Exercises

Write True or False for each statement:

  1. Version control is like a time machine for your project.

    Answer: True

  2. Git was created in 2020.

    Answer: False (It was created in 2005)

  3. A repository is where Git tracks your files.

    Answer: True

  4. A commit is a snapshot of your project.

    Answer: True

  5. A branch is the main line of development in Git.

    Answer: False (A branch is a separate line of development)

  6. Merging combines changes from different branches.

    Answer: True

  7. "git add" saves your changes with a message.

    Answer: False (git commit saves changes with a message; git add stages changes)

  8. "git push" sends changes to the remote repository.

    Answer: True

  9. "git pull" gets the latest changes from the remote repository.

    Answer: True

  10. GitHub is owned by Google.

    Answer: False (GitHub is owned by Microsoft)

  11. GitLab has built-in CI/CD.

    Answer: True

  12. A pull request is a request to merge changes into the main branch.

    Answer: True

  13. Git is not used in Nigeria.

    Answer: False

  14. You should work directly on the main branch.

    Answer: False (You should create branches for your work)

  15. Git is a distributed version control system.

    Answer: True


28. Multiple Choice Questions (15 Questions)

Choose the correct answer for each question:

  1. What is version control?

    A) A type of computer
    B) A system that tracks changes to files
    C) A programming language
    D) A video game

    Answer: B

  2. When was Git created?

    A) 1995
    B) 2000
    C) 2005
    D) 2010

    Answer: C

  3. What is a repository?

    A) A type of branch
    B) A folder where Git tracks files
    C) A commit message
    D) A pull request

    Answer: B

  4. What is a commit?

    A) A separate line of development
    B) A snapshot of your project at a specific time
    C) A combination of branches
    D) A hosting platform

    Answer: B

  5. What is a branch?

    A) A separate line of development
    B) A snapshot of your project
    C) A hosting platform
    D) A commit message

    Answer: A

  6. What is merging?

    A) Creating a new branch
    B) Combining changes from one branch into another
    C) Deleting a branch
    D) Copying a repository

    Answer: B

  7. What does "git clone" do?

    A) Saves changes
    B) Copies a repository to your computer
    C) Sends changes to remote
    D) Gets changes from remote

    Answer: B

  8. What does "git push" do?

    A) Copies a repository
    B) Saves changes
    C) Sends changes to remote
    D) Gets changes from remote

    Answer: C

  9. What does "git pull" do?

    A) Copies a repository
    B) Saves changes
    C) Sends changes to remote
    D) Gets changes from remote

    Answer: D

  10. What is a pull request?

    A) A type of branch
    B) A request to merge changes into the main branch
    C) A commit message
    D) A hosting platform

    Answer: B

  11. Which company owns GitHub?

    A) Google
    B) Amazon
    C) Microsoft
    D) Apple

    Answer: C

  12. Which platform has built-in CI/CD?

    A) GitHub only
    B) GitLab only
    C) Both GitHub and GitLab
    D) Neither

    Answer: B (GitLab has built-in CI/CD; GitHub has GitHub Actions)

  13. What is a branching strategy?

    A) A plan for using branches in Git
    B) A type of commit
    C) A hosting platform
    D) A version control system

    Answer: A

  14. Which is a branching strategy?

    A) Git Flow
    B) Git Push
    C) Git Commit
    D) Git Clone

    Answer: A

  15. Is Git used in Nigeria?

    A) No
    B) Yes, by many developers
    C) Only in Lagos
    D) Only by the government

    Answer: B


29. Matching Exercises

Match the words in Column A with their correct meanings in Column B.

Column A Column B
1. Version Control A. A snapshot of your project at a specific time
2. Git B. A separate line of development
3. Repository C. A system that tracks changes to files
4. Commit D. The most popular version control system
5. Branch E. Combining changes from one branch into another
6. Merge F. A folder where Git tracks files
7. Clone G. Copying a repository to your computer
8. Push H. Getting the latest changes from remote
9. Pull I. Sending changes to the remote repository
10. Pull Request J. A request to merge changes into the main branch

Answers:

  1. C
  2. D
  3. F
  4. A
  5. B
  6. E
  7. G
  8. I
  9. H
  10. J

30. Short Answer Questions

  1. What is version control and why is it useful?

    Answer: Version control is a system that keeps track of changes to your files. It is useful because it lets you see who changed what, when, and why. You can also go back to any previous version of your work.

  2. Explain the difference between a branch and a merge.

    Answer: A branch is a separate line of development where you can work on new ideas without affecting the main code. Merging is the process of combining changes from one branch into another.

  3. Describe the basic Git workflow.

    Answer: The basic Git workflow is:

    • Clone the repository
    • Create a branch for your work
    • Make changes to the code
    • Add the changes (git add)
    • Commit the changes with a message (git commit)
    • Push the changes to the remote repository (git push)
    • Create a pull request for review
    • Merge the changes into the main branch
  4. What is the difference between GitHub and GitLab?

    Answer: Both are websites for hosting Git repositories. GitHub is owned by Microsoft and is very popular for open source projects. GitLab is an independent company and has built-in CI/CD. GitLab can also be self-hosted.

  5. Why is Git important for DevOps?

    Answer: Git is important for DevOps because it is how teams manage code changes. It helps teams collaborate, track changes, and maintain different versions of the code. Without Git, DevOps would be very difficult.


31. Scenario-based Exercises

Scenario 1: The Messy Code

A team of developers is working on a project. They do not use version control. They share code via email. Sometimes they overwrite each other's work. They often lose changes. They spend a lot of time trying to fix problems.

Question: How could Git help this team?

Answer: Git could help by providing a central place to store code (a repository). Every change would be tracked. Developers would work on their own branches and merge changes through pull requests. They would never lose work again and could easily go back to older versions if needed.

Scenario 2: The New Feature

A developer wants to add a new feature to an app. They are worried about breaking the existing code. They want to try the feature but need to make sure it works before sharing it.

Question: How can the developer use Git to safely try the new feature?

Answer: The developer can create a new branch for the feature (git branch feature/new-feature). They can work on the feature on this branch without affecting the main code. When the feature is ready, they can create a pull request. The team can review it, and when it works, they can merge it into the main branch.

Scenario 3: The Nigerian Startup

A Nigerian startup has 3 developers working on a mobile app. They want to work together efficiently. They need to keep track of changes and avoid overwriting each other's work.

Question: What should the startup use to manage their code?

Answer: The startup should use Git with a hosting platform like GitHub or GitLab. They would create a repository, each developer would clone it, and they would follow a Git workflow with branches and pull requests. This would keep their code organized and help them work together smoothly.


32. Group Activity

Activity: The Git Simulation

Instructions:

  1. Form groups of 4-5 students.
  2. Assign roles:
    • 1 Main Branch: Holds the "master" copy
    • 2-3 Developers: Create "branches" and work on "features"
    • 1 Reviewer: Reviews and "merges" changes
  3. Use cards or sticky notes for commits. Each card represents a commit with a message.
  4. Simulate a Git workflow:
    • Clone (copy the main branch)
    • Branch (create a new card stack)
    • Commit (add cards to the stack)
    • Push (move cards to the shared area)
    • Pull Request (ask to merge)
    • Merge (combine the cards into the main branch)
  5. Discuss: What was easy? What was challenging? How did Git help you work together?
  6. Share with the class.

33. Individual Activity

Activity: My Git Project

Instructions:

  1. Create a new folder on your computer. Name it "My_Git_Project".
  2. Initialize a Git repository. Open a terminal and run git init.
  3. Create a file. Create a text file called "hello.txt" and write "Hello, this is my first Git project!"
  4. Add and commit. Run git add hello.txt and then git commit -m "Added hello.txt".
  5. Make more changes. Edit the file, add new files, and commit with different messages.
  6. Create a branch. Run git branch new-feature and git checkout new-feature.
  7. Make changes on the branch. Edit files, commit, and switch back to main.
  8. Write a short reflection: What did you learn from this activity?
  9. Submit your reflection.

34. Classroom Discussion Questions

  1. Why do you think keeping track of changes is important?

    Discuss with your classmates and share your ideas.

  2. Have you ever lost work because you did not save it? How would version control help?

    Share your experiences and thoughts.

  3. What are some other situations where it is important to keep track of different versions?

    Think about school, home, and other activities.

  4. Why do you think GitHub is so popular?

    Share your opinions and listen to what others think.

  5. Can you think of a Nigerian company that might benefit from using Git?

    Share examples of companies in Nigeria.

  6. What do you think is the most important Git command for beginners?

    Explain why you think so.

  7. Do you think Git is easy to learn? Why or why not?

    Share your thoughts.

  8. What is the most important thing you learned about Git today?

    Share with the class.


35. Mini Project

Project: Create a "Git for Beginners" Guide

Goal: Create a simple guide to teach beginners about Git.

Instructions:

  1. Work individually or in small groups.
  2. Design a guide that includes:
    • A cover page with a title and a drawing
    • What is version control? (simple explanation)
    • What is Git? (simple explanation)
    • Key concepts: repository, commit, branch, merge
    • The basic Git workflow (steps with simple commands)
    • GitHub and GitLab (what they are and why they are used)
    • Common Git commands and what they do
    • Tips for beginners
    • Key vocabulary with definitions
    • A fun example or story
  3. Use simple language. Write as if you are teaching a 10-year-old.
  4. Include drawings or pictures. You can draw them by hand.
  5. Present your guide to the class.

36. Practical Assignment

Assignment: Hands-On with Git

Goal: Practice using Git commands.

Instructions:

  1. Create a GitHub account. Go to github.com and sign up for a free account.
  2. Create a new repository. Name it "my-first-repo".
  3. Clone the repository. Clone it to your computer using git clone.
  4. Create a README file. Add a README.md file with a description of the project.
  5. Add and commit. Add the file and commit with a message.
  6. Push to GitHub. Use git push to send your changes to GitHub.
  7. Write a short reflection: What did you learn from this assignment?
  8. Submit your repository URL and reflection.

37. Challenge Exercise

Challenge: The Git Master

Scenario:

You are a Git expert at a Nigerian tech company. The company has 10 developers working on a large project. They are new to Git and need your help setting up a good workflow.

The company has:

  • 10 developers
  • A project with multiple features
  • Need to release new versions every month
  • Want to avoid merge conflicts
  • Want to review code before merging

Challenge: Create a complete Git workflow plan for this company. Include:

  • Branching Strategy: Which strategy will you use and why? (Git Flow, GitHub Flow, or Trunk-Based)
  • Repository Structure: How will you organize the repository?
  • Workflow Steps: What steps will developers follow daily?
  • Pull Request Process: How will code reviews work?
  • Release Process: How will releases be managed?
  • Best Practices: What best practices will you recommend?
  • Training Plan: How will you train the developers?

BONUS CHALLENGE: Present your plan to the class as if you were presenting it to the company's development team.


38. Quiz Answers

Multiple Choice Questions (Section 28):

  1. B
  2. C
  3. B
  4. B
  5. A
  6. B
  7. B
  8. C
  9. D
  10. B
  11. C
  12. B
  13. A
  14. A
  15. B

True or False Exercises (Section 27):

  1. True
  2. False
  3. True
  4. True
  5. False
  6. True
  7. False
  8. True
  9. True
  10. False
  11. True
  12. True
  13. False
  14. False
  15. True

Fill-in-the-Blank Exercises (Section 26):

  1. version control
  2. Git
  3. repository
  4. commit
  5. branch
  6. merge
  7. clone
  8. push
  9. pull
  10. pull request
  11. GitHub
  12. GitLab

Matching Exercises (Section 29):

  1. C
  2. D
  3. F
  4. A
  5. B
  6. E
  7. G
  8. I
  9. H
  10. J

39. Key Takeaways

  • πŸ”Ή Version control is a system that tracks changes to your files — like a time machine for your work.
  • πŸ”Ή Git is the most popular version control system in the world, created by Linus Torvalds in 2005.
  • πŸ”Ή A repository is a folder where Git tracks all your files and their history.
  • πŸ”Ή A commit is a snapshot of your project at a specific time with a message, author, date, and unique ID.
  • πŸ”Ή A branch is a separate line of development that lets you try new ideas safely.
  • πŸ”Ή Merging is the process of combining changes from one branch into another.
  • πŸ”Ή GitHub and GitLab are websites for hosting Git repositories online.
  • πŸ”Ή The basic Git workflow is: clone, branch, make changes, add, commit, push, pull request, and merge.
  • πŸ”Ή Branching strategies like Git Flow and GitHub Flow help teams stay organized.
  • πŸ”Ή Git is used by millions of developers all over the world, including many in Nigeria.

40. Preparation for the Next Module

Congratulations! You have completed Module 2: "Version Control & Source Code Management." You now understand how Git helps teams keep track of changes and collaborate on code.

In Module 3, you will learn:

  • What is Continuous Integration (CI)? You will learn about automating the building and testing of code.
  • Why do we need CI? You will learn how CI helps teams catch problems early.
  • How does CI work? You will learn about the CI process and pipeline.
  • CI Tools: You will learn about popular CI tools like Jenkins, GitHub Actions, and GitLab CI.
  • Setting up a CI pipeline: You will learn how to configure a basic CI pipeline.
  • Testing in CI: You will learn how automated testing fits into the CI process.

Before you start Module 3, here are some things to think about:

  1. Think about how testing works. Have you ever tested something to make sure it works? Testing is important in CI.
  2. Think about automation. How do you automate tasks in your daily life? CI is about automating code building and testing.
  3. Review what you learned. Make sure you understand Git before moving on.

You are doing a fantastic job! Keep learning, keep growing, and we will see you in Module 3! πŸš€


© 2026 Certified DevOps Engineer Course • Module 2: Version Control & Source Code Management

4

Module Three

Module 3: Continuous Integration (CI)

βš™οΈ Module 3: Continuous Integration (CI)


1. Module Title

βš™οΈ Continuous Integration (CI): Building and Testing Code Automatically

Welcome to Module 3 of our Certified DevOps Engineer course! This module is called "Continuous Integration (CI): Building and Testing Code Automatically."

In this module, we will learn about Continuous Integration, which is a very important part of DevOps. CI is all about automatically building and testing code every time a developer makes a change. It helps teams catch mistakes early and make sure the code is always working.

Think of CI like having a robot helper that checks your homework every time you make a change. The robot makes sure everything is correct and tells you if there are any problems. This way, you can fix mistakes immediately before they become big problems.


2. Module Introduction

Hello and welcome back! In Module 1, we learned about DevOps and why it is important. In Module 2, we learned about Git and how teams track changes to their code. Now, in Module 3, we are going to learn about Continuous Integration (CI).

Imagine you are building a very tall tower with blocks. Every time you add a new block, you need to make sure the tower is still stable. You check to see if the blocks are balanced and the tower is not going to fall over. CI is exactly like that for code!

Every time a developer adds new code (like adding a new block to the tower), CI automatically checks to see if everything still works. It builds the code and runs tests to make sure nothing is broken. If something is wrong, the developer is told immediately so they can fix it.

In this module, we will learn all about CI — what it is, why it is important, how it works, and what tools we use to do it. We will use simple words, fun stories, and lots of examples.

So, are you ready? Let us dive in and discover the amazing world of Continuous Integration!


3. Learning Objectives

By the time you finish this module, you will be able to:

  • Explain what Continuous Integration (CI) is in your own simple words.
  • Understand why CI is important for software teams.
  • Describe the CI pipeline and its stages.
  • Identify popular CI tools (Jenkins, GitHub Actions, GitLab CI).
  • Explain how automated testing works in CI.
  • Understand the benefits of CI.
  • Recognize common CI mistakes and best practices.
  • Give examples of how CI is used in real projects.
  • Understand the role of CI in DevOps.
  • Feel excited to learn more about CI/CD!

4. Warm-up Story

The Broken Tower

Once upon a time, in a busy tech company in Nigeria called "BuildIt Solutions," there was a team of developers building a mobile app. The team was very talented, but they had a big problem.

Every day, the developers would write new code and add it to the main codebase. But they would only test their code on their own computers. They did not have a system to test everything together.

One day, a developer named Ada added some new code. It worked perfectly on her computer. But when she shared it with the team, it broke everything. The app would not start. Other developers could not work. The team spent two whole days trying to find and fix the problem.

The team was very frustrated. They knew they needed a way to catch problems before they broke everything. That is when they discovered Continuous Integration (CI).

With CI, every time a developer added new code, a special system would automatically build the code and run tests. If something was wrong, the developer would be told immediately. Problems were caught early, before they could break everything.

The team set up CI for their project. Now, every time Ada or any other developer added code, the CI system would check it. If something broke, they fixed it right away. The app never broke again, and the team became one of the most productive in Nigeria.

This story shows us how important it is to catch problems early. CI helps teams do exactly that. Let us learn more about this amazing tool!


5. Main Lessons

Lesson 1: What is Continuous Integration (CI)?

Definition

Continuous Integration (CI) is a practice where developers automatically build and test their code every time they make a change. "Continuous" means "all the time," and "Integration" means "putting things together."

Why is it Important?

CI is important because it catches problems early. Instead of finding bugs weeks later, CI finds them immediately. This saves time, money, and frustration.

Simple Explanation

Imagine you are building a puzzle. Every time you add a new piece, you check to make sure it fits perfectly. If it does not fit, you fix it before adding more pieces. CI is like that for code!

Every time a developer adds new code, CI automatically checks to see if everything still works. It builds the code and runs tests. If something is wrong, the developer is told immediately.

Real-life Example

A company building a banking app uses CI. Every time a developer changes the code, CI runs thousands of tests automatically. If any test fails, the developer fixes it before the code is shared with the rest of the team.

School Example

Your teacher gives you a big project to work on. Every time you finish a section, you show it to your teacher to make sure you are on the right track. CI is like showing your work to the teacher regularly.

Home Example

You are cooking a meal. Every time you add a new ingredient, you taste it to make sure it is good. If it is not, you can fix it before the meal is finished. CI is like tasting your food while cooking.

Nigerian Example

A Nigerian fintech company uses CI to test their payment system. Every time a developer adds code, the CI system runs thousands of tests to make sure the payment system works perfectly. This prevents problems that could affect customers.

Illustration

    WHAT IS CONTINUOUS INTEGRATION?

    +--------------------------------------------------+
    |                                                   |
    |  DEVELOPER MAKES A CHANGE                        |
    |  +-------------------------------------------+    |
    |  |  Developer adds new code                   |    |
    |  |  Developer pushes code to repository       |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  CI SYSTEM RUNS AUTOMATICALLY                    |
    |  +-------------------------------------------+    |
    |  |  1. Build the code                         |    |
    |  |  2. Run tests                              |    |
    |  |  3. Check for problems                     |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  RESULTS                                        |
    |  +-------------------------------------------+    |
    |  |  βœ… All tests pass = Code is good!         |    |
    |  |  ❌ Tests fail = Fix the problem!          |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ CI = Automatic building and testing of code!  |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Continuous Integration (CI) is a practice where developers automatically build and test their code every time they make a change. It catches problems early and saves time.


Lesson 2: Why Do We Need CI?

Definition

Why we need CI: We need CI because without it, problems can hide in the code for a long time. When problems are found late, they are much harder and more expensive to fix.

Why is it Important?

CI helps teams deliver better software faster. It reduces bugs, improves team productivity, and makes everyone happier.

Simple Explanation

Imagine you are building a house. If you find a problem with the foundation after you have built the whole house, it is very hard to fix. But if you check the foundation while you are building it, you can fix problems easily. CI is like checking the foundation regularly.

Problems Without CI

Problem What It Means CI Solution
Late Bug Discovery Bugs are found weeks after they were introduced CI finds bugs immediately
Hard to Fix Bugs are harder to fix when found late Bugs are easy to fix when found early
Slow Releases Releases are delayed because of bugs Releases are faster with fewer bugs
Developer Frustration Developers are frustrated fixing other people's bugs Developers fix their own bugs quickly
Unhappy Customers Customers get buggy software Customers get reliable software

Real-life Example

A company without CI once found a critical bug just before a big release. They had to delay the release by two weeks to fix it. After adopting CI, they caught bugs immediately and released on time.

School Example

Your class is working on a group project. Without regular check-ins, problems are found only at the end. With regular check-ins (like CI), problems are found and fixed early.

Home Example

Your family is planning a party. If you wait until the last day to check everything, you might find problems. If you check regularly (like CI), you can fix problems early.

Nigerian Example

A Nigerian e-commerce company used to have many bugs in their website. Customers would complain about items not adding to cart. After adopting CI, they caught bugs early and fixed them. Customer complaints dropped by 80%.

Illustration

    WHY WE NEED CI

    WITHOUT CI:
    +--------------------------------------------------+
    |  Developer adds code β†’ Code sits for weeks       |
    |  β†’ Code is tested β†’ Bug found β†’ Hard to fix     |
    |  β†’ Release delayed β†’ Customers unhappy           |
    |                                                   |
    |  😞 Lots of problems, slow releases               |
    +--------------------------------------------------+

    WITH CI:
    +--------------------------------------------------+
    |  Developer adds code β†’ CI tests immediately      |
    |  β†’ Bug found β†’ Easy to fix β†’ Code is good       |
    |  β†’ Release on time β†’ Customers happy             |
    |                                                   |
    |  😊 Fewer problems, faster releases               |
    +--------------------------------------------------+
    

Mini Summary

We need CI because it catches problems early. Without CI, bugs hide in the code and become harder and more expensive to fix. CI helps teams deliver better software faster.


Lesson 3: The CI Pipeline

Definition

A CI pipeline is the series of steps that CI follows to build and test the code. It is like a conveyor belt that moves the code through different stages.

Why is it Important?

The CI pipeline is important because it shows us exactly what happens to the code from the moment it is added to when it is ready. It makes the process clear and repeatable.

Simple Explanation

Imagine you are making a sandwich. You follow steps: get bread, add spread, add filling, add another bread. Each step is part of the sandwich-making pipeline. A CI pipeline is similar but for code.

The Stages of a CI Pipeline

Stage What Happens Simple Analogy
1. Code Checkout Get the latest code from the repository Getting all the ingredients
2. Build Turn the code into a working program Mixing the ingredients
3. Test Run tests to check the code works Tasting the food
4. Package Prepare the program for deployment Putting the food in a container
5. Report Tell the team the results Announcing that the food is ready

Real-life Example

A team uses a CI pipeline that starts automatically when a developer pushes code. The pipeline checks out the code, builds it, runs 500 tests, packages it, and sends a report. The whole process takes 10 minutes.

School Example

Your class has a project pipeline: research, write, edit, submit. Each step must be completed before the next. A CI pipeline is like that but for code.

Home Example

Your family has a dinner pipeline: plan the meal, buy ingredients, cook, serve, clean up. A CI pipeline is similar but for building software.

Nigerian Example

A Nigerian company has a CI pipeline that checks their code in 5 minutes. It runs tests on different devices and sends a report to the team. This helps them release new features quickly.

Illustration

    THE CI PIPELINE

    +--------------------------------------------------+
    |                                                   |
    |  STAGE 1: CODE CHECKOUT                          |
    |  +-------------------------------------------+    |
    |  |  Get latest code from repository          |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  STAGE 2: BUILD                                  |
    |  +-------------------------------------------+    |
    |  |  Turn code into a working program         |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  STAGE 3: TEST                                   |
    |  +-------------------------------------------+    |
    |  |  Run tests to check everything works      |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  STAGE 4: PACKAGE                                |
    |  +-------------------------------------------+    |
    |  |  Prepare program for deployment           |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  STAGE 5: REPORT                                 |
    |  +-------------------------------------------+    |
    |  |  Tell the team the results                |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ The CI pipeline automates everything!         |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

A CI pipeline is the series of steps that CI follows to build and test the code. The stages are: code checkout, build, test, package, and report.


Lesson 4: How Does CI Work?

Definition

How CI works: CI works by automatically running a pipeline every time code is pushed to a repository. The pipeline builds the code, runs tests, and reports the results.

Why is it Important?

Understanding how CI works helps us use it effectively. We know what happens behind the scenes and can trust the results.

Simple Explanation

Imagine you have a robot helper. Every time you put a new piece into a puzzle, the robot checks to see if it fits. The robot looks at the shape, the color, and the edges. If everything is perfect, the robot says "Good job!" If something is wrong, the robot says "Fix this!"

CI is like that robot. It checks every piece of code automatically.

The CI Process Step by Step

  1. Developer pushes code: A developer makes changes and pushes them to the repository (e.g., GitHub).
  2. CI tool detects change: The CI tool (like Jenkins or GitHub Actions) sees the change and starts the pipeline.
  3. Code is checked out: The latest code is copied to the CI server.
  4. Code is built: The code is compiled or built into a working program.
  5. Tests are run: Automated tests are run to check everything works.
  6. Results are reported: The CI tool tells the developer if the build passed or failed.
  7. Fix if needed: If tests fail, the developer fixes the problem and pushes again.

Real-life Example

A developer pushes code to GitHub. GitHub Actions automatically starts a CI pipeline. It builds the code, runs tests, and sends a Slack message with the results. The developer sees the message and knows if everything is okay.

School Example

Your teacher has a system where every time you submit homework, it is automatically checked for errors. The system tells you if you made any mistakes so you can fix them. CI is like that for code.

Home Example

Your family has a shopping list app. Every time someone adds an item, the app checks if the item is already on the list to avoid duplicates. CI is similar but for code.

Nigerian Example

A Nigerian company uses GitHub Actions for CI. Every time a developer pushes code, the CI pipeline runs. It builds the code, runs tests, and sends a report to the team's WhatsApp group. Everyone knows the status of the code instantly.

Illustration

    HOW CI WORKS

    +--------------------------------------------------+
    |                                                   |
    |  1. DEVELOPER PUSHES CODE                        |
    |     +----------------------------------------+    |
    |     |  git push origin main                  |    |
    |     +----------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  2. CI TOOL DETECTS CHANGE                       |
    |     +----------------------------------------+    |
    |     |  GitHub Actions detects push           |    |
    |     |  Jenkins detects change                |    |
    |     +----------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  3. CODE IS CHECKED OUT                          |
    |     +----------------------------------------+    |
    |     |  git clone the code                    |    |
    |     +----------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  4. CODE IS BUILT                                |
    |     +----------------------------------------+    |
    |     |  Compile or build the code             |    |
    |     +----------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  5. TESTS ARE RUN                                |
    |     +----------------------------------------+    |
    |     |  Run automated tests                   |    |
    |     +----------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  6. RESULTS ARE REPORTED                         |
    |     +----------------------------------------+    |
    |     |  βœ… PASSED or ❌ FAILED                |    |
    |     |  Send email, Slack, or WhatsApp        |    |
    |     +----------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  7. FIX IF NEEDED                                |
    |     +----------------------------------------+    |
    |     |  Fix the problem and push again        |    |
    |     +----------------------------------------+    |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

CI works by automatically running a pipeline every time code is pushed. The pipeline builds the code, runs tests, and reports the results. If tests fail, the developer fixes the problem.


Lesson 5: CI Tools — Jenkins

Definition

Jenkins is one of the most popular CI tools. It is an open-source tool that helps teams build, test, and deploy their code automatically.

Why is it Important?

Jenkins is important because it is free, powerful, and can be used for almost any project. Many companies around the world use Jenkins.

Simple Explanation

Imagine Jenkins as a super-smart factory worker. You tell Jenkins what to do (like "build this code and test it"), and Jenkins does it automatically every time there is new code. Jenkins never gets tired and never makes mistakes!

Key Features of Jenkins

  • Open Source: It is free to use. Anyone can download and use it.
  • Plugins: Jenkins has thousands of plugins that add extra features.
  • Pipeline as Code: You can define your pipeline using code (in a Jenkinsfile).
  • Extensible: You can make Jenkins do almost anything with plugins.
  • Supported: Many companies and developers use Jenkins, so there is lots of help available.

Real-life Example

A company uses Jenkins to build their mobile app. Every time a developer pushes code, Jenkins automatically builds the app, runs tests, and packages it for release. The team gets an email with the results.

School Example

Your school has a robot that automatically checks homework. Students submit their work, and the robot checks it. Jenkins is like that robot but for code.

Home Example

Your family has a smart assistant that automatically checks the shopping list and tells you if you are missing anything. Jenkins is like that but for code.

Nigerian Example

A Nigerian tech company uses Jenkins to test their web application. They have a Jenkins server running in Lagos. Every time a developer pushes code, Jenkins runs the tests and notifies the team.

Illustration

    JENKINS

    +--------------------------------------------------+
    |                                                   |
    |  JENKINS SERVER                                  |
    |  +-------------------------------------------+    |
    |  |  πŸ—οΈ Builds the code                       |    |
    |  |  βœ… Runs tests                            |    |
    |  |  πŸ“¦ Packages the program                  |    |
    |  |  πŸ“§ Sends results to the team            |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  +-------------------------------------------+    |
    |  |  DEVELOPERS                                |    |
    |  |  Push code β†’ Jenkins runs pipeline         |    |
    |  |  Get results β†’ Fix problems                |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Jenkins = Free, open-source CI tool!          |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Jenkins is a popular open-source CI tool. It helps teams build, test, and deploy code automatically. It is free, powerful, and has many plugins.


Lesson 6: CI Tools — GitHub Actions

Definition

GitHub Actions is a CI/CD tool that is built right into GitHub. It lets you automate your build, test, and deployment pipeline directly from your GitHub repository.

Why is it Important?

GitHub Actions is important because it is very easy to set up. If you already use GitHub, you can start using GitHub Actions in minutes.

Simple Explanation

Imagine you have a magic button on your GitHub repository. Every time you push code, you press the button, and it automatically builds and tests your code. GitHub Actions is like having that magic button!

Key Features of GitHub Actions

  • Built into GitHub: No extra tools needed. It is already there.
  • Workflows: You define your pipeline in a file called a "workflow."
  • Free for Public Repos: GitHub Actions is free for public repositories.
  • Many Actions: There are thousands of pre-built actions you can use.
  • Integration: It works perfectly with GitHub repositories.

Real-life Example

A team using GitHub has a workflow that runs every time code is pushed. The workflow builds the code, runs tests, and deploys to a staging environment. The team gets a notification on Slack when it is done.

School Example

Your class has a shared Google Doc for projects. Every time someone adds to the doc, it is automatically checked for errors. GitHub Actions is like that but for code.

Home Example

Your family has a shared shopping list. Every time someone adds an item, the app automatically checks if it is in stock. GitHub Actions is like that but for code.

Nigerian Example

A Nigerian startup uses GitHub Actions for CI. Their workflow runs tests on every pull request. If the tests pass, the code can be merged. This helps them maintain high quality code.

Illustration

    GITHUB ACTIONS

    +--------------------------------------------------+
    |                                                   |
    |  GITHUB REPOSITORY                               |
    |  +-------------------------------------------+    |
    |  |  πŸ“‚ Project                              |    |
    |  |  β”œβ”€β”€ src                                 |    |
    |  |  β”œβ”€β”€ tests                               |    |
    |  |  └── .github/workflows/                  |    |
    |  |       └── ci.yml  ← Workflow file       |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  GITHUB ACTIONS RUNS                             |
    |  +-------------------------------------------+    |
    |  |  πŸ”„ Checks out code                       |    |
    |  |  πŸ—οΈ Builds the code                       |    |
    |  |  βœ… Runs tests                            |    |
    |  |  πŸ“§ Sends notifications                   |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  RESULTS                                        |
    |  +-------------------------------------------+    |
    |  |  βœ… All tests passed!                     |    |
    |  |  ❌ Tests failed!                         |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ GitHub Actions = CI built into GitHub!        |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

GitHub Actions is a CI tool built right into GitHub. It lets you automate your build, test, and deployment pipeline directly from your GitHub repository. It is easy to set up and free for public repositories.


Lesson 7: CI Tools — GitLab CI

Definition

GitLab CI is a CI/CD tool that is built right into GitLab. It helps teams build, test, and deploy code automatically using GitLab's integrated DevOps platform.

Why is it Important?

GitLab CI is important because it is part of a complete DevOps platform. You can manage your code, run CI, and deploy your app all in one place.

Simple Explanation

Imagine you have a single app that does everything: stores your code, runs tests, and deploys your app. GitLab is like that. GitLab CI is the part that runs the tests and builds the code.

Key Features of GitLab CI

  • Built into GitLab: No extra tools needed. It is already there.
  • Complete Platform: Code hosting, CI, and deployment all in one place.
  • Free for Private Repos: GitLab CI is free for private repositories (with limits).
  • Pipeline as Code: Define your pipeline in a file called .gitlab-ci.yml.
  • Self-Hosted Option: You can run GitLab on your own servers.

Real-life Example

A company uses GitLab for everything. They store their code in GitLab, use GitLab CI for testing, and use GitLab for deployment. Everything is in one place.

School Example

Your school has a single portal for everything: assignments, grades, announcements, and communication. GitLab CI is like that but for building software.

Home Example

Your family has a single app for all home management: shopping lists, calendars, and chores. GitLab CI is like that but for code.

Nigerian Example

A Nigerian company uses GitLab for their entire DevOps pipeline. They store their code in GitLab, run tests with GitLab CI, and deploy with GitLab. Everything is integrated and efficient.

Illustration

    GITLAB CI

    +--------------------------------------------------+
    |                                                   |
    |  GITLAB PLATFORM                                 |
    |  +-------------------------------------------+    |
    |  |  πŸ“‚ Code Repository                      |    |
    |  |  πŸ—οΈ GitLab CI (Build & Test)            |    |
    |  |  πŸš€ GitLab Deploy (Deploy to servers)   |    |
    |  |  πŸ“Š GitLab Monitoring                   |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  GITLAB CI RUNS                                  |
    |  +-------------------------------------------+    |
    |  |  πŸ”„ Checks out code                       |    |
    |  |  πŸ—οΈ Builds the code                       |    |
    |  |  βœ… Runs tests                            |    |
    |  |  πŸ“§ Sends notifications                   |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  .gitlab-ci.yml FILE                             |
    |  +-------------------------------------------+    |
    |  |  stages:                                  |    |
    |  |    - build                                |    |
    |  |    - test                                 |    |
    |  |  build_job:                               |    |
    |  |    stage: build                           |    |
    |  |    script:                                |    |
    |  |      - npm install                        |    |
    |  |      - npm run build                      |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ GitLab CI = Integrated CI in GitLab!          |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

GitLab CI is a CI tool built right into GitLab. It is part of a complete DevOps platform. You can manage your code, run CI, and deploy your app all in one place.


Lesson 8: Automated Testing in CI

Definition

Automated testing is when you write code that tests your software automatically. These tests run without a human needing to do anything. In CI, automated tests are run every time code is pushed.

Why is it Important?

Automated testing is important because it catches problems immediately. Instead of a human testing the software manually, the computer does it automatically and much faster.

Simple Explanation

Imagine you have a robot that checks your homework. The robot looks at every question and checks your answers. It does this in seconds. The robot never gets tired and never makes mistakes. Automated testing is like having that robot for your code.

Types of Automated Tests

Type of Test What It Checks Analogy
Unit Tests Check small pieces of code (like a single function) Checking one ingredient in a recipe
Integration Tests Check if different parts of the code work together Checking if all ingredients combine well
End-to-End Tests Test the whole system like a real user Tasting the final dish

Real-life Example

A banking app has thousands of automated tests. Every time a developer makes a change, all the tests run. They check if you can log in, check your balance, transfer money, and more.

School Example

Your teacher gives you a practice test. You take the test and check your answers. Automated testing is like having a computer check your answers for you.

Home Example

Your family has a recipe. Every time you cook it, you check each ingredient. Automated testing is like having a machine check the ingredients for you.

Nigerian Example

A Nigerian e-commerce company has automated tests that run every time code is pushed. The tests check if the website loads, if you can add items to the cart, and if you can check out. This prevents problems for real customers.

Illustration

    AUTOMATED TESTING IN CI

    +--------------------------------------------------+
    |                                                   |
    |  UNIT TESTS                                      |
    |  +-------------------------------------------+    |
    |  |  βœ… checkUserLogin(user)                  |    |
    |  |  βœ… calculateTotal(items)                 |    |
    |  |  βœ… formatDate(date)                      |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  INTEGRATION TESTS                               |
    |  +-------------------------------------------+    |
    |  |  βœ… User can log in                       |    |
    |  |  βœ… Items add to cart                     |    |
    |  |  βœ… Payment processes correctly           |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  END-TO-END TESTS                                |
    |  +-------------------------------------------+    |
    |  |  βœ… User logs in, adds item, and buys     |    |
    |  |  βœ… User sees order confirmation          |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ All tests run automatically in CI!            |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Automated testing is when code tests your software automatically. In CI, automated tests run every time code is pushed. Types of tests include unit tests, integration tests, and end-to-end tests.


Lesson 9: Benefits of CI

Definition

The benefits of CI are all the good things that happen when a team uses CI. These include fewer bugs, faster releases, and happier developers.

Why is it Important?

Understanding the benefits helps us see why CI is so valuable. It helps us understand why so many teams use CI.

Simple Explanation

Imagine you have a magic machine that checks your work for you. The machine finds mistakes immediately, tells you how to fix them, and saves you hours of work. CI is like having that magic machine for code!

Key Benefits of CI

Benefit What It Means
Fewer Bugs Problems are caught and fixed early
Faster Releases Because there are fewer bugs, releases are faster
Happy Developers Developers spend less time fixing bugs and more time building
Happy Customers Customers get reliable software with fewer problems
Less Stress No more late-night bug fixes before a big release
Better Quality Code is always tested, leading to higher quality
Team Confidence Teams are confident that their code works

Real-life Example

A company adopted CI. Before CI, they had 100 bugs per release. After CI, they had only 5 bugs per release. Releases went from monthly to weekly. Everyone was happier.

School Example

Your class uses a system that checks homework automatically. You find and fix mistakes immediately. You learn faster and get better grades. CI is like that system.

Home Example

Your family uses a smart system for planning. It catches mistakes in the plan and suggests improvements. Everything runs smoothly. CI is like that system.

Nigerian Example

A Nigerian fintech adopted CI. They used to have many bugs in their payment system. After CI, bugs decreased by 90%. Their customers trust them more, and the company has grown.

Illustration

    THE BENEFITS OF CI

    +--------------------------------------------------+
    |                                                   |
    |  πŸ› FEWER BUGS                                   |
    |     Problems caught and fixed early              |
    |                                                   |
    |  πŸš€ FASTER RELEASES                              |
    |     Releases happen more frequently              |
    |                                                   |
    |  😊 HAPPY DEVELOPERS                             |
    |     Less time fixing bugs, more time building   |
    |                                                   |
    |  😊 HAPPY CUSTOMERS                              |
    |     Reliable software with fewer problems        |
    |                                                   |
    |  🧘 LESS STRESS                                  |
    |     No more late-night emergency fixes           |
    |                                                   |
    |  πŸ“ˆ BETTER QUALITY                               |
    |     Code is always tested and working            |
    |                                                   |
    |  πŸ’ͺ TEAM CONFIDENCE                              |
    |     Teams are confident their code works         |
    |                                                   |
    |  ALL BECAUSE OF CI! πŸŽ‰                           |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

CI has many benefits. It leads to fewer bugs, faster releases, happy developers, happy customers, less stress, better quality, and team confidence.


Lesson 10: CI and DevOps

Definition

CI and DevOps: CI is a very important part of DevOps. It is one of the core practices that makes DevOps work. CI helps teams build, test, and integrate code continuously.

Why is it Important?

CI and DevOps work together to help teams deliver software faster and better. CI provides the automation, and DevOps provides the culture and processes.

Simple Explanation

Imagine DevOps is a big toolbelt. CI is one of the most important tools on that belt. Without CI, DevOps would be much harder. With CI, DevOps becomes powerful and effective.

How CI Supports DevOps

  • Automation: CI automates building and testing, which is a core DevOps principle.
  • Fast Feedback: CI gives fast feedback to developers, which helps them learn and improve quickly.
  • Continuous Integration: CI integrates code frequently, which is a key part of DevOps.
  • Quality: CI helps maintain high quality, which is a goal of DevOps.
  • Collaboration: CI encourages collaboration between developers and operations.

Real-life Example

A company uses DevOps practices including CI. Their developers push code frequently. CI automatically builds and tests the code. This is a key part of their DevOps pipeline.

School Example

Your school has a system for managing projects. CI is like the quality check part of the system. DevOps is the whole system including planning, execution, and review.

Home Example

Your family has a system for managing the household. CI is like the weekly check that everything is in order. DevOps is the whole system including planning, budgeting, and chores.

Nigerian Example

A Nigerian company uses DevOps and CI. CI is the engine that drives their DevOps pipeline. Without CI, their DevOps would not work as well. Together, they deliver great software.

Illustration

    CI AND DEVOPS

    +--------------------------------------------------+
    |                                                   |
    |  DEVOPS = CULTURE + TOOLS + PROCESSES             |
    |  +-------------------------------------------+    |
    |  |  πŸ“‹ Plan                                 |    |
    |  |  πŸ’» Code                                 |    |
    |  |  πŸ—οΈ BUILD  ← CI is here!               |    |
    |  |  βœ… Test   ← CI is here!                |    |
    |  |  πŸš€ Release                             |    |
    |  |  πŸ”„ Deploy                              |    |
    |  |  πŸ“Š Operate                             |    |
    |  |  πŸ‘€ Monitor                             |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  CI IS A CORE PART OF DEVOPS                     |
    |  +-------------------------------------------+    |
    |  |  βœ… CI automates building and testing     |    |
    |  |  βœ… CI gives fast feedback                |    |
    |  |  βœ… CI helps maintain quality             |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ CI + DevOps = Powerful software delivery!     |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

CI is a very important part of DevOps. CI provides the automation for building and testing code. Together, CI and DevOps help teams deliver software faster and better.


Lesson 11: What We Have Learned So Far

Definition

In this lesson, we will review everything we have learned about Continuous Integration. This will help us remember the most important ideas.

Why is it Important?

Reviewing helps us remember what we have learned. When we keep information in our brains, we can use it later.

Simple Explanation

Let us think back to everything we have talked about in this module:

  • What is CI? Continuous Integration is a practice where developers automatically build and test their code every time they make a change.
  • Why do we need CI? We need CI because it catches problems early, making them easier and cheaper to fix.
  • What is a CI pipeline? It is the series of steps that CI follows to build and test the code.
  • How does CI work? It works by automatically running a pipeline every time code is pushed to a repository.
  • What are some CI tools? Jenkins, GitHub Actions, and GitLab CI are popular CI tools.
  • What is automated testing? It is when code tests your software automatically.
  • What are the benefits of CI? Fewer bugs, faster releases, happy developers, happy customers, less stress, better quality, and team confidence.
  • How does CI fit into DevOps? CI is a core part of DevOps. It provides the automation for building and testing code.

Real-life Example

A team has learned all these concepts. They use CI every day. They push code, CI builds and tests it, and they get immediate feedback. Their software is high quality and released frequently.

School Example

Your class has learned about CI. They understand the importance of checking work early and often.

Home Example

Your family has learned about CI. They understand the importance of checking plans and making adjustments early.

Nigerian Example

A Nigerian developer has learned all these CI concepts. They can now set up CI for their team and help their company deliver better software.

Illustration

    WHAT WE HAVE LEARNED

    +--------------------------------------------------+
    |                                                   |
    |  πŸ“Œ CI = Automatically build and test code       |
    |  πŸ“Œ CI catches problems early                     |
    |  πŸ“Œ CI pipeline has 5 stages                     |
    |  πŸ“Œ CI tools: Jenkins, GitHub Actions, GitLab    |
    |  πŸ“Œ Automated testing finds problems             |
    |  πŸ“Œ Benefits: fewer bugs, faster releases        |
    |  πŸ“Œ CI is a core part of DevOps                  |
    |                                                   |
    |  YOU ARE NOW A CI BEGINNER! πŸŽ‰                   |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

We have learned many things about Continuous Integration. CI helps teams build, test, and integrate code continuously. It is a core part of DevOps.


6. Key Vocabulary

Here are the important words we learned in this module. Each word has a simple definition to help you remember it.

Word Simple Definition
Continuous Integration (CI) A practice where developers automatically build and test code every time they make a change
CI Pipeline The series of steps that CI follows to build and test the code
Build Turning code into a working program
Automated Testing Code that tests your software automatically
Unit Test A test that checks a small piece of code
Integration Test A test that checks if different parts of code work together
End-to-End Test A test that checks the whole system like a real user
Jenkins A popular open-source CI tool
GitHub Actions A CI tool built right into GitHub
GitLab CI A CI tool built right into GitLab
Plugin An add-on that adds extra features to a tool
Pipeline as Code Defining your pipeline using code
Workflow A defined set of steps in a CI pipeline
Report A summary of the CI results
Automation Making a process run automatically without human intervention

7. Important Concepts

Here are the most important concepts from this module. These are the big ideas that will help you understand Continuous Integration.

  1. CI catches problems early. Instead of finding bugs weeks later, CI finds them immediately. This makes them easier and cheaper to fix.

  2. The CI pipeline automates everything. From code checkout to testing to reporting, the CI pipeline does everything automatically. This saves time and reduces errors.

  3. Automated testing is key. CI runs automated tests every time code is pushed. These tests check if the code works correctly.

  4. CI tools are powerful. Jenkins, GitHub Actions, and GitLab CI are popular tools that help teams implement CI.

  5. CI is part of DevOps. CI is a core practice in DevOps. It provides the automation for building and testing code.

  6. CI benefits everyone. Developers, operations teams, and customers all benefit from CI. It leads to better software, faster releases, and happier people.


8. Step-by-Step Explanations

Let us look at how to set up and use CI in simple steps:

Step 1: Choose a CI Tool

Decide which CI tool to use. Jenkins, GitHub Actions, and GitLab CI are all good choices. Pick the one that works best for your team.

Step 2: Set Up the CI Tool

Install and configure the CI tool. For GitHub Actions, this is very easy because it is already built into GitHub. For Jenkins, you need to download and install it.

Step 3: Define the Pipeline

Create a pipeline definition file. For Jenkins, this is a Jenkinsfile. For GitHub Actions, it is a workflow YAML file. For GitLab CI, it is a .gitlab-ci.yml file.

Step 4: Configure the Pipeline

Define the stages of your pipeline. Typically: code checkout, build, test, package, and report. Specify what commands to run in each stage.

Step 5: Run the Pipeline

Push code to the repository. The CI tool will automatically detect the change and run the pipeline.

Step 6: Review Results

Check the results of the pipeline. If it passes, the code is good. If it fails, fix the problem and push again.

Illustration

    STEP-BY-STEP: SETTING UP CI

    Step 1: CHOOSE A CI TOOL
    +-------------------+
    |  Jenkins, GitHub  |
    |  Actions, GitLab  |
    |  CI               |
    +-------------------+
           |
           V
    Step 2: SET UP THE TOOL
    +-------------------+
    |  Install and      |
    |  configure        |
    +-------------------+
           |
           V
    Step 3: DEFINE PIPELINE
    +-------------------+
    |  Create pipeline  |
    |  definition file  |
    +-------------------+
           |
           V
    Step 4: CONFIGURE PIPELINE
    +-------------------+
    |  Define stages    |
    |  (build, test,    |
    |   etc.)           |
    +-------------------+
           |
           V
    Step 5: RUN PIPELINE
    +-------------------+
    |  Push code        |
    |  CI runs          |
    |  automatically    |
    +-------------------+
           |
           V
    Step 6: REVIEW RESULTS
    +-------------------+
    |  βœ… PASSED        |
    |  ❌ FAILED        |
    +-------------------+
    

9. Real-life Examples

Example 1: The E-commerce Company

An e-commerce company uses GitHub Actions for CI. Every time a developer pushes code, the CI pipeline runs. It builds the website, runs 500 tests, and deploys to a staging environment. The team gets a Slack notification with the results.

Example 2: The Mobile App Team

A mobile app team uses Jenkins for CI. They have a Jenkins server that runs their pipeline. Every time code is pushed, Jenkins builds the app, runs tests on different devices, and packages it for release.

Example 3: The Banking System

A bank uses GitLab CI for their core banking system. They have a complex pipeline with multiple stages. Every change is tested thoroughly before it is deployed. This ensures the banking system is always reliable.


10. Nigerian Examples

Example 1: Flutterwave

Flutterwave, a Nigerian fintech company, uses CI to test their payment platform. Every time a developer adds code, CI runs thousands of tests. This helps them maintain high quality and prevent problems.

Example 2: Paystack

Paystack uses GitHub Actions for CI. Their pipeline builds the code, runs tests, and deploys to staging. If the tests pass, the code is ready for production. This helps them release new features quickly.

Example 3: Nigerian Tech Hub

A Nigerian tech hub has many developers working on different projects. They use GitLab CI for all their projects. Each project has its own pipeline. The CI system helps them maintain quality across all projects.


11. Fun Examples Children Can Relate To

Example 1: The Homework Checker

Your teacher has a magic machine that checks your homework. Every time you submit your homework, the machine checks it and tells you if you made any mistakes. You can fix them immediately and get a better grade. CI is like that magic machine!

Example 2: The Puzzle Checker

You are building a puzzle. Every time you add a new piece, a robot checks to see if it fits. If it does not fit, the robot tells you immediately. You can fix it before the puzzle gets too complicated. CI is like that robot!

Example 3: The Recipe Taster

You are cooking a meal. Every time you add a new ingredient, you taste it to make sure it is good. If it is not, you can fix it. CI is like tasting your food while cooking.


12. Everyday Examples

Example 1: The Shopping List

Your family has a shopping list. Every time someone adds an item, the app checks if it is already on the list to avoid duplicates. CI is similar but for code.

Example 2: The Calendar

Your family has a shared calendar. Every time someone adds an event, the calendar checks for conflicts. If there is a conflict, you are told immediately. CI is like that but for code.

Example 3: The Budget

Your family has a budget. Every time someone adds an expense, the budget is updated and checked. If you are overspending, you are told immediately. CI is like that but for code.


13. Teacher Notes

For Teachers: This module is designed to be accessible for students of all ages. Here are some tips for teaching this module:

  • Use the story: The warm-up story about BuildIt Solutions is a great way to introduce the topic. Ask students what they would do if they had a project that kept breaking.
  • Encourage discussion: Ask students if they have ever found a mistake late in a project. This helps them understand why CI is important.
  • Use the illustrations: The ASCII diagrams are simple and visual. They help students understand complex ideas easily.
  • Group activities: Have students simulate a CI pipeline with physical activities. Each stage is a different group.
  • Relate to Nigerian examples: The Nigerian examples help students see how CI is relevant to their own country.
  • Review key vocabulary: Use the vocabulary table to help students remember important terms.
  • Use the exercises: The end-of-module exercises help reinforce learning. Use them for homework or classwork.

14. Parent Tips

For Parents: Your child is learning about Continuous Integration and how it helps teams build software. Here are some tips to support their learning:

  • Discuss checking work: Talk to your child about how you check your work in your own life. This could be at work, at home, or in your community.
  • Ask about CI: Ask your child what they learned about CI. This will help them remember and understand the material better.
  • Relate to everyday life: Point out examples of checking and testing in everyday life. Testing food, checking the weather, etc.
  • Encourage curiosity: If your child asks questions about CI, take the time to answer them. There are many great resources online that can help.
  • Celebrate learning: Praise your child for completing this module. Learning about CI is an important skill for the future.

15. Interesting Facts

  • Fact 1: CI was first introduced in the 1990s, but it became really popular when DevOps started in the 2000s.
  • Fact 2: Companies that use CI release software 30 times more frequently than companies that do not use CI.
  • Fact 3: Jenkins was originally called "Hudson." It was renamed in 2011 when there was a disagreement between the developers.
  • Fact 4: GitHub Actions has over 10,000 pre-built actions that you can use in your workflows. That is a lot of ways to automate your pipeline!
  • Fact 5: Some companies run their CI pipeline hundreds of times per day. That means they are testing their code constantly.
  • Fact 6: Many Nigerian companies are now using CI. It is helping them deliver better software and compete globally.

16. Did You Know?

  • Did you know? CI is not just for code. It can also be used to test documentation, infrastructure, and even hardware!
  • Did you know? CI can be run on different operating systems. You can test your code on Windows, Linux, and Mac all at the same time.
  • Did you know? CI can automatically deploy your code to production if all tests pass. This is called "Continuous Deployment" (CD), which we will learn about in a future module.
  • Did you know? CI can run tests in parallel, meaning it runs multiple tests at the same time. This makes the pipeline much faster.
  • Did you know? CI can be integrated with chat tools like Slack, Teams, and WhatsApp. You can get CI results directly in your chat.
  • Did you know? CI is used by almost every modern software company. It is considered a standard practice in software development.

17. Remember This

  • πŸ”Ή CI stands for Continuous Integration.
  • πŸ”Ή CI automatically builds and tests code every time a change is made.
  • πŸ”Ή CI catches problems early making them easier and cheaper to fix.
  • πŸ”Ή The CI pipeline has stages: code checkout, build, test, package, and report.
  • πŸ”Ή Popular CI tools include Jenkins, GitHub Actions, and GitLab CI.
  • πŸ”Ή Automated testing is a key part of CI.
  • πŸ”Ή CI benefits include fewer bugs, faster releases, and happy teams.
  • πŸ”Ή CI is a core part of DevOps.

18. Common Mistakes

  1. Mistake 1: Not running tests locally first.

    Developers should run tests locally before pushing. If a test fails on the CI server, it wastes everyone's time. Running tests locally catches problems first.

  2. Mistake 2: Ignoring CI failures.

    If the CI pipeline fails, fix it immediately. Ignoring it means more bugs will be introduced.

  3. Mistake 3: Making the pipeline too slow.

    If the CI pipeline takes too long, developers will not want to use it. Keep the pipeline fast by running tests in parallel and optimizing.

  4. Mistake 4: Not testing enough.

    If you do not have enough tests, bugs will slip through. Write tests for all important parts of your code.

  5. Mistake 5: Having a fragile pipeline.

    If the pipeline breaks frequently, developers will lose confidence. Keep the pipeline stable and reliable.

  6. Mistake 6: Not using CI for all projects.

    CI should be used for all projects, big and small. Even small projects benefit from CI.


19. Best Practices

  1. Run tests locally first.

    Before pushing code, run tests on your own computer. This catches problems before they reach the CI server.

  2. Keep the pipeline fast.

    A fast pipeline encourages developers to use it. Run tests in parallel and use caching to speed things up.

  3. Write comprehensive tests.

    Write tests for all important parts of your code. This includes unit tests, integration tests, and end-to-end tests.

  4. Keep the pipeline stable.

    Make sure the pipeline is reliable. If it breaks often, developers will lose confidence in it.

  5. Use CI for all projects.

    CI is beneficial for all projects, not just large ones. Even small projects benefit from automated testing.

  6. Review CI results.

    Always review the CI results. If it passes, your code is good. If it fails, fix the problem immediately.

  7. Monitor CI usage.

    Keep track of how CI is used. Look for ways to improve the pipeline and make it even better.


20. ASCII Illustrations

Illustration 1: The CI Pipeline

    THE CI PIPELINE

    +--------------------------------------------------+
    |                                                   |
    |  CODE CHECKOUT                                   |
    |  +-------------------------------------------+    |
    |  |  Get latest code from repository         |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  BUILD                                           |
    |  +-------------------------------------------+    |
    |  |  Turn code into a working program         |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  TEST                                            |
    |  +-------------------------------------------+    |
    |  |  Run automated tests                     |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  PACKAGE                                        |
    |  +-------------------------------------------+    |
    |  |  Prepare program for deployment           |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  REPORT                                         |
    |  +-------------------------------------------+    |
    |  |  Tell the team the results                |    |
    |  +-------------------------------------------+    |
    |                                                   |
    +--------------------------------------------------+
    

Illustration 2: CI Tools

    CI TOOLS

    +--------------------------------------------------+
    |                                                   |
    |  JENKINS                                        |
    |  +-------------------------------------------+    |
    |  |  Open-source, free, powerful              |    |
    |  |  Thousands of plugins                     |    |
    |  |  Pipeline as Code                         |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  GITHUB ACTIONS                                  |
    |  +-------------------------------------------+    |
    |  |  Built into GitHub                        |    |
    |  |  Easy to set up                           |    |
    |  |  Free for public repos                    |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  GITLAB CI                                       |
    |  +-------------------------------------------+    |
    |  |  Built into GitLab                        |    |
    |  |  Complete DevOps platform                 |    |
    |  |  Free for private repos                   |    |
    |  +-------------------------------------------+    |
    |                                                   |
    +--------------------------------------------------+
    

Illustration 3: CI Benefits

    CI BENEFITS

    +--------------------------------------------------+
    |                                                   |
    |  πŸ› FEWER BUGS                                   |
    |     Problems caught and fixed early              |
    |                                                   |
    |  πŸš€ FASTER RELEASES                              |
    |     Releases happen more frequently              |
    |                                                   |
    |  😊 HAPPY DEVELOPERS                             |
    |     Less time fixing bugs, more time building   |
    |                                                   |
    |  😊 HAPPY CUSTOMERS                              |
    |     Reliable software with fewer problems        |
    |                                                   |
    |  🧘 LESS STRESS                                  |
    |     No more late-night emergency fixes           |
    |                                                   |
    |  πŸ“ˆ BETTER QUALITY                               |
    |     Code is always tested and working            |
    |                                                   |
    +--------------------------------------------------+
    

21. Comparison Tables

Table 1: Without CI vs. With CI

Aspect Without CI With CI
Bug Discovery Bugs found late (weeks or months later) Bugs found immediately
Bug Fixing Hard and expensive to fix Easy and cheap to fix
Release Speed Slow (months between releases) Fast (days or weeks between releases)
Developer Experience Frustrating, fixing others' bugs Happy, fixing their own bugs quickly
Quality Lower quality, more bugs Higher quality, fewer bugs
Customer Experience Unhappy, buggy software Happy, reliable software

Table 2: CI Tools Comparison

Feature Jenkins GitHub Actions GitLab CI
Cost Free (open-source) Free for public repos Free for private repos (with limits)
Setup Complexity Medium (requires installation) Very easy (built into GitHub) Easy (built into GitLab)
Pipeline as Code Jenkinsfile Workflow YAML .gitlab-ci.yml
Plugins/Extensions Thousands of plugins Thousands of actions Integrated features
Self-Hosted Option Yes No (GitHub Enterprise available) Yes
Popularity Very popular Rapidly growing Popular in DevOps teams

Table 3: Test Types

Test Type What It Checks Speed Analogy
Unit Test Small pieces of code (functions, methods) Very fast (milliseconds) Checking one ingredient
Integration Test How different parts work together Fast (seconds) Checking ingredients combine
End-to-End Test Complete system like a real user Slower (minutes) Tasting the final dish

Note: Each lesson in this module already includes a "Mini Summary" section right after the lesson content. Please refer back to the lessons above to review each mini summary.


23. End-of-Module Summary

Congratulations! You have completed Module 3 of the "Certified DevOps Engineer" course. Let us review everything we have learned:

What is Continuous Integration?

Continuous Integration (CI) is a practice where developers automatically build and test their code every time they make a change. It catches problems early, making them easier and cheaper to fix.

The CI Pipeline

The CI pipeline is the series of steps that CI follows to build and test the code. The stages are: code checkout, build, test, package, and report. The pipeline runs automatically every time code is pushed.

CI Tools

We learned about three popular CI tools: Jenkins (open-source, powerful), GitHub Actions (built into GitHub, easy to set up), and GitLab CI (integrated into GitLab, part of a complete DevOps platform).

Automated Testing

Automated testing is a key part of CI. Tests run automatically every time code is pushed. Types of tests include unit tests, integration tests, and end-to-end tests.

Benefits of CI

CI leads to fewer bugs, faster releases, happy developers, happy customers, less stress, better quality, and team confidence. It is a core practice in DevOps.

You have now completed Module 3! You are ready to move on to Module 4, where you will learn about Continuous Delivery and Deployment (CD). Keep up the great work!


24. Frequently Asked Questions (10 Questions)

  1. Q1: What is Continuous Integration?

    A: Continuous Integration (CI) is a practice where developers automatically build and test their code every time they make a change. It catches problems early.

  2. Q2: Why is CI important?

    A: CI is important because it catches problems early. Bugs are found immediately, making them easier and cheaper to fix.

  3. Q3: What is a CI pipeline?

    A: A CI pipeline is the series of steps that CI follows to build and test the code. It includes code checkout, build, test, package, and report.

  4. Q4: What are some popular CI tools?

    A: Popular CI tools include Jenkins, GitHub Actions, and GitLab CI.

  5. Q5: What is automated testing?

    A: Automated testing is when code tests your software automatically. In CI, automated tests run every time code is pushed.

  6. Q6: What are the benefits of CI?

    A: CI leads to fewer bugs, faster releases, happy developers, happy customers, less stress, better quality, and team confidence.

  7. Q7: Is CI part of DevOps?

    A: Yes, CI is a core part of DevOps. It provides the automation for building and testing code.

  8. Q8: Which CI tool should I use?

    A: It depends on your needs. Jenkins is good for complex projects. GitHub Actions is great if you use GitHub. GitLab CI is excellent if you use GitLab.

  9. Q9: Can CI run tests on different platforms?

    A: Yes, CI can run tests on different operating systems (Windows, Linux, Mac) and different environments.

  10. Q10: Is CI used in Nigeria?

    A: Yes, many Nigerian companies use CI. It is helping them deliver better software and compete globally.


25. Review Questions (15 Questions)

  1. What is Continuous Integration?

    Answer: Continuous Integration (CI) is a practice where developers automatically build and test their code every time they make a change.

  2. Why do we need CI?

    Answer: We need CI because it catches problems early, making them easier and cheaper to fix.

  3. What is the CI pipeline?

    Answer: The CI pipeline is the series of steps that CI follows to build and test the code.

  4. What are the stages of a CI pipeline?

    Answer: The stages are: code checkout, build, test, package, and report.

  5. What does "build" mean in CI?

    Answer: Build means turning the code into a working program.

  6. What is automated testing?

    Answer: Automated testing is when code tests your software automatically.

  7. Name three types of automated tests.

    Answer: Unit tests, integration tests, and end-to-end tests.

  8. What is a unit test?

    Answer: A unit test checks a small piece of code, like a single function.

  9. What is an end-to-end test?

    Answer: An end-to-end test checks the whole system like a real user.

  10. Name three popular CI tools.

    Answer: Jenkins, GitHub Actions, and GitLab CI.

  11. What is Jenkins?

    Answer: Jenkins is a popular open-source CI tool.

  12. What is GitHub Actions?

    Answer: GitHub Actions is a CI tool built right into GitHub.

  13. What is GitLab CI?

    Answer: GitLab CI is a CI tool built right into GitLab.

  14. What are two benefits of CI?

    Answer: Fewer bugs and faster releases. (Other answers: happy developers, happy customers, less stress, better quality, team confidence.)

  15. Is CI part of DevOps?

    Answer: Yes, CI is a core part of DevOps.


26. Fill-in-the-Blank Exercises

Fill in the blanks with the correct words from the list:

Word list: Continuous Integration, pipeline, build, automated testing, unit test, integration test, end-to-end test, Jenkins, GitHub Actions, GitLab CI, DevOps, report

  1. __________ is a practice where developers automatically build and test their code every time they make a change.

    Answer: Continuous Integration

  2. The CI __________ is the series of steps that CI follows to build and test the code.

    Answer: pipeline

  3. To __________ the code means to turn it into a working program.

    Answer: build

  4. __________ is when code tests your software automatically.

    Answer: automated testing

  5. A __________ checks a small piece of code, like a single function.

    Answer: unit test

  6. An __________ checks the whole system like a real user.

    Answer: end-to-end test

  7. __________ is a popular open-source CI tool.

    Answer: Jenkins

  8. __________ is a CI tool built right into GitHub.

    Answer: GitHub Actions

  9. __________ is a CI tool built right into GitLab.

    Answer: GitLab CI

  10. CI is a core part of __________.

    Answer: DevOps


27. True or False Exercises

Write True or False for each statement:

  1. CI stands for Continuous Integration.

    Answer: True

  2. CI catches problems late, making them harder to fix.

    Answer: False (CI catches problems early)

  3. The CI pipeline has 5 stages: code checkout, build, test, package, and report.

    Answer: True

  4. Jenkins is a CI tool built into GitHub.

    Answer: False (Jenkins is a separate tool. GitHub Actions is built into GitHub.)

  5. GitHub Actions is built into GitHub.

    Answer: True

  6. GitLab CI is built into GitLab.

    Answer: True

  7. Automated testing is not part of CI.

    Answer: False (Automated testing is a key part of CI)

  8. Unit tests check the whole system.

    Answer: False (Unit tests check small pieces of code)

  9. CI leads to faster releases.

    Answer: True

  10. CI is not part of DevOps.

    Answer: False (CI is a core part of DevOps)

  11. CI helps catch problems early.

    Answer: True

  12. The "report" stage of the CI pipeline tells the team the results.

    Answer: True

  13. CI is only useful for large projects.

    Answer: False (CI is useful for all projects)

  14. GitLab CI is a CI tool built into GitLab.

    Answer: True

  15. CI is used in Nigeria.

    Answer: True


28. Multiple Choice Questions (15 Questions)

Choose the correct answer for each question:

  1. What is Continuous Integration?

    A) A type of computer
    B) A practice where developers automatically build and test their code
    C) A programming language
    D) A video game

    Answer: B

  2. Why is CI important?

    A) It makes code slower
    B) It catches problems early
    C) It makes developers work harder
    D) It is not important

    Answer: B

  3. How many stages does the CI pipeline have?

    A) 3
    B) 4
    C) 5
    D) 6

    Answer: C

  4. Which is a stage in the CI pipeline?

    A) Play
    B) Build
    C) Sleep
    D) Eat

    Answer: B

  5. What does "build" mean in CI?

    A) Breaking the code
    B) Turning code into a working program
    C) Deleting the code
    D) Copying the code

    Answer: B

  6. What is automated testing?

    A) Testing done by humans
    B) Code that tests your software automatically
    C) Testing that is never done
    D) Testing that is done manually

    Answer: B

  7. Which is a type of automated test?

    A) Manual test
    B) Unit test
    C) Paper test
    D) Verbal test

    Answer: B

  8. What is a unit test?

    A) A test that checks the whole system
    B) A test that checks a small piece of code
    C) A test that is done manually
    D) A test that is never run

    Answer: B

  9. What is an end-to-end test?

    A) A test that checks the whole system like a real user
    B) A test that checks a small piece of code
    C) A test that is done manually
    D) A test that is never run

    Answer: A

  10. Which is a popular CI tool?

    A) Jenkins
    B) Microsoft Word
    C) Google Chrome
    D) WhatsApp

    Answer: A

  11. Which CI tool is built into GitHub?

    A) Jenkins
    B) GitHub Actions
    C) GitLab CI
    D) Travis CI

    Answer: B

  12. Which CI tool is built into GitLab?

    A) Jenkins
    B) GitHub Actions
    C) GitLab CI
    D) Travis CI

    Answer: C

  13. Is CI part of DevOps?

    A) No
    B) Yes, it is a core part
    C) Sometimes
    D) Only for large companies

    Answer: B

  14. What is a benefit of CI?

    A) More bugs
    B) Slower releases
    C) Fewer bugs
    D) Unhappy customers

    Answer: C

  15. Is CI used in Nigeria?

    A) No
    B) Yes, by many companies
    C) Only in Lagos
    D) Only by the government

    Answer: B


29. Matching Exercises

Match the words in Column A with their correct meanings in Column B.

Column A Column B
1. Continuous Integration A. A practice where developers automatically build and test code
2. CI Pipeline B. Turning code into a working program
3. Build C. The series of steps to build and test code
4. Automated Testing D. A test that checks a small piece of code
5. Unit Test E. Code that tests your software automatically
6. Integration Test F. A test that checks the whole system like a user
7. End-to-End Test G. A test that checks if parts work together
8. Jenkins H. A CI tool built into GitHub
9. GitHub Actions I. A CI tool built into GitLab
10. GitLab CI J. A popular open-source CI tool

Answers:

  1. A
  2. C
  3. B
  4. E
  5. D
  6. G
  7. F
  8. J
  9. H
  10. I

30. Short Answer Questions

  1. What is Continuous Integration and why is it useful?

    Answer: Continuous Integration (CI) is a practice where developers automatically build and test their code every time they make a change. It is useful because it catches problems early, making them easier and cheaper to fix. It leads to fewer bugs and faster releases.

  2. Explain the stages of a CI pipeline.

    Answer: The CI pipeline has five stages:

    • Code Checkout: Get the latest code from the repository
    • Build: Turn the code into a working program
    • Test: Run automated tests to check the code
    • Package: Prepare the program for deployment
    • Report: Tell the team the results
  3. What are the differences between unit tests, integration tests, and end-to-end tests?

    Answer: Unit tests check small pieces of code (like a single function). Integration tests check if different parts of the code work together. End-to-end tests check the whole system like a real user. Unit tests are the fastest, and end-to-end tests are the slowest.

  4. Compare Jenkins, GitHub Actions, and GitLab CI.

    Answer: Jenkins is a popular open-source CI tool with many plugins. GitHub Actions is built into GitHub and is very easy to set up. GitLab CI is built into GitLab and is part of a complete DevOps platform. Jenkins requires installation, while GitHub Actions and GitLab CI are already integrated.

  5. How does CI support DevOps?

    Answer: CI is a core part of DevOps. It provides the automation for building and testing code. CI gives fast feedback to developers, helps maintain quality, and encourages collaboration between developers and operations. CI is the engine that drives the DevOps pipeline.


31. Scenario-based Exercises

Scenario 1: The Buggy App

A company has an app that keeps crashing. Developers find bugs late, and fixing them takes a long time. Customers are frustrated. The company wants to improve.

Question: How could CI help this company?

Answer: CI could help by automatically building and testing the code every time a developer makes a change. Bugs would be found immediately, not weeks later. Developers would fix problems early when they are easy to fix. The app would become more stable, and customers would be happier.

Scenario 2: The Slow Releases

A Nigerian company takes 3 months to release each new version of their software. They spend most of that time fixing bugs. They want to release faster.

Question: How would CI help them release faster?

Answer: CI would help by catching bugs early. Developers would fix them immediately, reducing the time spent fixing bugs. The company could release software more frequently — perhaps every week instead of every 3 months. CI would also give the team confidence that the code is working.

Scenario 3: The Nigerian Startup

A Nigerian startup has 3 developers. They use GitHub for their code but do not use any CI. They often discover problems after merging code. They want to improve their process.

Question: What should the startup do to implement CI?

Answer: The startup should set up GitHub Actions, which is built into GitHub. They would create a workflow file that defines their CI pipeline. Every time a developer pushes code, GitHub Actions would automatically build and test it. This would catch problems immediately and help them deliver better software.


32. Group Activity

Activity: The CI Simulation

Instructions:

  1. Form groups of 5-6 students.
  2. Assign roles:
    • 1 Developer: Writes code (draws a picture)
    • 1 CI System: Runs the pipeline (checks the picture)
    • 1 Tester: Runs tests (looks for errors)
    • 1 Reporter: Reports results (tells if it passed)
    • 1-2 Observers: Watch and give feedback
  3. Simulate a CI pipeline:
    • The Developer "pushes code" (draws a new part of the picture)
    • The CI System "checks out code" (looks at the picture)
    • The CI System "builds" (copies the picture)
    • The Tester "runs tests" (checks for errors)
    • The Reporter "reports results" (says if it passed)
    • If it fails, the Developer fixes it and tries again
  4. Discuss: What was easy? What was challenging? How does this simulate CI?
  5. Share with the class.

33. Individual Activity

Activity: My CI Plan

Instructions:

  1. Imagine you are a DevOps engineer. You are going to set up CI for a new project.
  2. Write a CI plan. Include:
    • Which CI tool you will use (Jenkins, GitHub Actions, GitLab CI) and why
    • The stages of your CI pipeline
    • What types of tests you will run
    • How you will handle test failures
    • How you will report results
    • Benefits you expect from CI
  3. Write a short reflection: What did you learn from this activity?
  4. Submit your plan and reflection.

34. Classroom Discussion Questions

  1. Why do you think catching problems early is important?

    Discuss with your classmates and share your ideas.

  2. Have you ever found a problem late in a project? How did it make you feel?

    Share your experiences and thoughts.

  3. What are some other situations where automation is helpful?

    Think about school, home, and other activities.

  4. Why do you think GitHub Actions is becoming so popular?

    Share your opinions and listen to what others think.

  5. Can you think of a Nigerian company that might benefit from CI?

    Share examples of companies in Nigeria.

  6. What do you think is the most important part of the CI pipeline?

    Explain why you think so.

  7. Do you think CI is easy to set up? Why or why not?

    Share your thoughts.

  8. What is the most important thing you learned about CI today?

    Share with the class.


35. Mini Project

Project: Create a "CI for Beginners" Guide

Goal: Create a simple guide to teach beginners about Continuous Integration.

Instructions:

  1. Work individually or in small groups.
  2. Design a guide that includes:
    • A cover page with a title and a drawing
    • What is Continuous Integration? (simple explanation)
    • Why is CI important? (simple explanation)
    • The CI pipeline (stages and what they do)
    • Popular CI tools (Jenkins, GitHub Actions, GitLab CI)
    • Automated testing (unit, integration, end-to-end)
    • Benefits of CI
    • Tips for getting started
    • Key vocabulary with definitions
    • A fun example or story
  3. Use simple language. Write as if you are teaching a 10-year-old.
  4. Include drawings or pictures. You can draw them by hand.
  5. Present your guide to the class.

36. Practical Assignment

Assignment: Set Up a Simple CI Pipeline

Goal: Practice setting up a simple CI pipeline.

Instructions:

  1. Create a GitHub account. If you do not have one, sign up at github.com.
  2. Create a new repository. Name it "ci-practice".
  3. Add a simple HTML file. Create an index.html file with some content.
  4. Create a GitHub Actions workflow. Create a .github/workflows/ci.yml file that runs a simple test.
  5. Push the code. Push the code to GitHub and watch the CI pipeline run.
  6. Check the results. Look at the Actions tab to see if the pipeline passed.
  7. Write a short reflection: What did you learn from this assignment?
  8. Submit your repository URL and reflection.

37. Challenge Exercise

Challenge: The CI Architect

Scenario:

You are a CI architect at a Nigerian company. The company has 20 developers working on a large web application. They want to implement CI to improve their development process.

The company has:

  • 20 developers
  • A large web application
  • Hundreds of features
  • Need to test on multiple browsers and devices
  • Want to catch problems early
  • Want to release faster

Challenge: Create a complete CI implementation plan for this company. Include:

  • CI Tool Selection: Which tool will you use and why? (Jenkins, GitHub Actions, GitLab CI, or a combination)
  • Pipeline Design: What stages will your pipeline have and what will each stage do?
  • Testing Strategy: What types of tests will you run? (Unit, integration, end-to-end)
  • Infrastructure: What infrastructure will you need? (CI servers, test environments, etc.)
  • Team Training: How will you train the team to use CI?
  • Success Metrics: How will you measure success?
  • Timeline: When will you implement each part?

BONUS CHALLENGE: Present your plan to the class as if you were presenting it to the company's management.


38. Quiz Answers

Multiple Choice Questions (Section 28):

  1. B
  2. B
  3. C
  4. B
  5. B
  6. B
  7. B
  8. B
  9. A
  10. A
  11. B
  12. C
  13. B
  14. C
  15. B

True or False Exercises (Section 27):

  1. True
  2. False
  3. True
  4. False
  5. True
  6. True
  7. False
  8. False
  9. True
  10. False
  11. True
  12. True
  13. False
  14. True
  15. True

Fill-in-the-Blank Exercises (Section 26):

  1. Continuous Integration
  2. pipeline
  3. build
  4. automated testing
  5. unit test
  6. end-to-end test
  7. Jenkins
  8. GitHub Actions
  9. GitLab CI
  10. DevOps

Matching Exercises (Section 29):

  1. A
  2. C
  3. B
  4. E
  5. D
  6. G
  7. F
  8. J
  9. H
  10. I

39. Key Takeaways

  • πŸ”Ή CI stands for Continuous Integration.
  • πŸ”Ή CI automatically builds and tests code every time a change is made.
  • πŸ”Ή CI catches problems early making them easier and cheaper to fix.
  • πŸ”Ή The CI pipeline has five stages: code checkout, build, test, package, and report.
  • πŸ”Ή Popular CI tools include Jenkins, GitHub Actions, and GitLab CI.
  • πŸ”Ή Automated testing is a key part of CI. Types include unit tests, integration tests, and end-to-end tests.
  • πŸ”Ή CI benefits include fewer bugs, faster releases, happy developers, happy customers, less stress, better quality, and team confidence.
  • πŸ”Ή CI is a core part of DevOps. It provides the automation for building and testing code.
  • πŸ”Ή CI is used by many companies in Nigeria to deliver better software.
  • πŸ”Ή CI is for everyone — it helps teams of all sizes build better software faster.

40. Preparation for the Next Module

Congratulations! You have completed Module 3: "Continuous Integration (CI)." You now understand how CI helps teams automatically build and test their code every time they make a change.

In Module 4, you will learn:

  • What is Continuous Delivery and Deployment (CD)? You will learn how CD takes CI to the next level by automatically deploying code.
  • What is the difference between Continuous Delivery and Continuous Deployment? You will learn the difference between automatically preparing code for release and automatically releasing it.
  • Deployment strategies: You will learn about different ways to deploy code safely (rolling updates, blue-green deployments, canary releases).
  • Artifact management: You will learn how to store and version build artifacts.
  • Release governance: You will learn about approval workflows and deployment gates.
  • CI/CD pipelines: You will learn how to design and implement end-to-end CI/CD pipelines.

Before you start Module 4, here are some things to think about:

  1. Think about how you release things. How do you make something available to others? CD is about making code available to users automatically.
  2. Think about safety. When releasing something, it is important to do it safely. You will learn about safe deployment strategies.
  3. Review what you learned. Make sure you understand CI before moving on to CD.

You are doing a fantastic job! Keep learning, keep growing, and we will see you in Module 4! πŸš€


© 2026 Certified DevOps Engineer Course • Module 3: Continuous Integration (CI)

5

Module Four

Module 4: Continuous Delivery & Deployment (CD)

πŸš€ Module 4: Continuous Delivery & Deployment (CD)


1. Module Title

πŸš€ Continuous Delivery & Deployment (CD): Releasing Software Automatically

Welcome to Module 4 of our Certified DevOps Engineer course! This module is called "Continuous Delivery & Deployment (CD): Releasing Software Automatically."

In this module, we will learn about Continuous Delivery and Continuous Deployment — two practices that help teams release software quickly, safely, and automatically.

Think of CD like having a magic conveyor belt that takes your finished product and delivers it to your customers automatically. Every time you finish something, it goes straight to the people who need it, without any delays!


2. Module Introduction

Hello and welcome back! In Module 1, we learned about DevOps. In Module 2, we learned about Git. In Module 3, we learned about Continuous Integration (CI). Now, in Module 4, we are going to learn about Continuous Delivery (CD) and Continuous Deployment (CD).

Imagine you are baking cookies. You mix the dough, bake them, and they come out of the oven. Now you need to get them to your customers. You could wait and deliver them all at once, or you could have a system that automatically packages and sends them as soon as they are ready. That is what CD does for software!

In this module, we will learn all about CD — what it is, why it is important, how it works, and what strategies teams use to deploy software safely. We will use simple words, fun stories, and lots of examples.

So, are you ready? Let us dive in and discover how software gets from developers to users automatically!


3. Learning Objectives

By the time you finish this module, you will be able to:

  • Explain what Continuous Delivery is in your own simple words.
  • Explain what Continuous Deployment is.
  • Understand the difference between CI, CD, and Continuous Deployment.
  • Describe different deployment strategies.
  • Understand what artifacts are and why they matter.
  • Explain release governance and approval workflows.
  • Identify the benefits of CD.
  • Give examples of how CD is used in real projects.
  • Understand the role of CD in DevOps.
  • Feel excited to learn more about CI/CD!

4. Warm-up Story

The Automatic Delivery System

Once upon a time, in a busy city in Nigeria called Lagos, there was a company called "QuickDeliver" that delivered food to people's homes. They were very good at cooking, but they had a big problem with delivery.

Every time the kitchen finished cooking a meal, someone had to manually pack it, find a driver, and send it out. This took a long time. Sometimes meals got cold. Sometimes drivers got lost. Customers were not happy.

One day, the owner of QuickDeliver, a woman named Mrs. Bola, decided to build an automatic delivery system. The system would:

  • Automatically pack meals as soon as they were cooked
  • Find the nearest available driver
  • Give the driver the best route
  • Track the delivery in real-time
  • Send customers updates

With this system, every meal was delivered immediately. Customers got fresh, hot food. The company grew and became the most popular food delivery service in Lagos.

This story shows us how automatic delivery can make a huge difference. Continuous Delivery and Continuous Deployment are exactly like that for software — they automatically deliver new features to users as soon as they are ready.

Let us learn more about how this works!


5. Main Lessons

Lesson 1: What is Continuous Delivery?

Definition

Continuous Delivery (CD) is a practice where software is always ready to be released to users. Every change that passes all tests is automatically prepared for release. A human still decides when to actually release it.

Why is it Important?

Continuous Delivery is important because it makes releasing software easy and safe. Instead of spending days preparing for a release, the software is always ready. You can release anytime you want.

Simple Explanation

Imagine you are baking cookies. You bake a batch, and they are perfect. You put them in a special box that keeps them fresh. They are ready to be given to customers anytime. You just need to decide when to hand them over. Continuous Delivery is like having your cookies always ready in that special box!

Real-life Example

A company builds a mobile app. Every time a developer fixes a bug or adds a feature, the code is automatically built, tested, and packaged. It is always ready to be released to the app store. The team decides when to release it.

School Example

Your class is working on a newspaper. Every time an article is finished and edited, it is placed in a "ready to publish" folder. The teacher decides when to print the newspaper. Continuous Delivery is like having everything ready to print at any time.

Home Example

Your family is planning a party. Everything is prepared — the food is cooked, the decorations are up, and the music is ready. The party can start anytime you decide. Continuous Delivery is like having the party always ready to start.

Nigerian Example

A Nigerian fintech company uses Continuous Delivery. Every change to their payment system is automatically built and tested. It is always ready to be released. The team decides when to release new features, often after they have been tested by a small group of users.

Illustration

    CONTINUOUS DELIVERY

    +--------------------------------------------------+
    |                                                   |
    |  DEVELOPER MAKES A CHANGE                        |
    |  +-------------------------------------------+    |
    |  |  Code is pushed                           |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  CI RUNS                                        |
    |  +-------------------------------------------+    |
    |  |  Build and test the code                  |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  PACKAGE FOR RELEASE                             |
    |  +-------------------------------------------+    |
    |  |  Code is packaged and ready               |    |
    |  |  Always ready to be released!             |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  HUMAN DECIDES WHEN TO RELEASE                   |
    |  +-------------------------------------------+    |
    |  |  βœ… "Release now!"  or  ⏳ "Wait"        |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  RELEASE                                         |
    |  +-------------------------------------------+    |
    |  |  Software is released to users            |    |
    |  +-------------------------------------------+    |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Continuous Delivery (CD) is a practice where software is always ready to be released. Every change is automatically built and tested, but a human decides when to actually release it.


Lesson 2: What is Continuous Deployment?

Definition

Continuous Deployment is a practice where every change that passes all tests is automatically released to users. No human approval is needed — it happens automatically!

Why is it Important?

Continuous Deployment takes automation to the next level. It means that new features and fixes reach users as soon as they are ready. This is the fastest way to deliver value to customers.

Simple Explanation

Imagine you are baking cookies. Every time a batch comes out of the oven and is perfect, a robot automatically puts them in a box and delivers them to a customer. You do not need to do anything — it all happens automatically. Continuous Deployment is like having that robot!

Real-life Example

A company uses Continuous Deployment for their website. Every time a developer pushes code and all tests pass, the new code is automatically deployed to the live website. Users see the changes within minutes.

School Example

Your class has a blog. Every time you finish writing and editing a post, it is automatically published on the blog. No one has to click "publish" — it just happens. Continuous Deployment is like that!

Home Example

Your family has a smart home system. Every time you add a new device, it is automatically configured and connected. Continuous Deployment is like that — everything happens automatically.

Nigerian Example

A Nigerian startup uses Continuous Deployment for their mobile app. Every time a developer fixes a bug, the fix is automatically sent to all users. Users always have the latest version.

Illustration

    CONTINUOUS DEPLOYMENT

    +--------------------------------------------------+
    |                                                   |
    |  DEVELOPER MAKES A CHANGE                        |
    |  +-------------------------------------------+    |
    |  |  Code is pushed                           |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  CI RUNS                                        |
    |  +-------------------------------------------+    |
    |  |  Build and test the code                  |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  DOES IT PASS ALL TESTS?                         |
    |  +-------------------------------------------+    |
    |  |  βœ… YES β†’ Go to deployment               |    |
    |  |  ❌ NO  β†’ Fix the code                   |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  AUTOMATIC DEPLOYMENT                            |
    |  +-------------------------------------------+    |
    |  |  πŸš€ Code is deployed to users             |    |
    |  |  Automatically! No human needed!          |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  USERS GET NEW FEATURES INSTANTLY                |
    |  +-------------------------------------------+    |
    |  |  😊 Happy users!                         |    |
    |  +-------------------------------------------+    |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Continuous Deployment is a practice where every change that passes all tests is automatically released to users. No human approval is needed. It is the fastest way to deliver value to customers.


Lesson 3: CI vs CD vs Continuous Deployment

Definition

CI (Continuous Integration) is about automatically building and testing code. CD (Continuous Delivery) is about keeping code ready to release. Continuous Deployment is about automatically releasing code to users.

Why is it Important?

Understanding the difference helps us know which practice to use in different situations. Some teams use CI and CD, while others use Continuous Deployment.

Simple Explanation

Imagine you are building a toy. CI is like checking each piece as you put it together to make sure it fits. CD is like having the finished toy ready in a box, waiting to be given to a child. Continuous Deployment is like giving the toy to the child as soon as it is finished.

Comparison Table

Practice What It Does Human Involved?
Continuous Integration (CI) Automatically builds and tests code No
Continuous Delivery (CD) Keeps code ready to release Yes (decides when to release)
Continuous Deployment Automatically releases code to users No

Real-life Example

A company uses CI, Continuous Delivery, and sometimes Continuous Deployment. They use CI to test all changes. They use Continuous Delivery to keep everything ready. For some projects, they use Continuous Deployment to automatically release updates.

School Example

Your class has a project workflow:

  • CI: Checking each section of the project as you finish it
  • Continuous Delivery: Having the whole project ready to submit anytime
  • Continuous Deployment: Automatically submitting the project when it is complete

Home Example

Your family plans a vacation:

  • CI: Checking each part of the plan (flights, hotel, activities)
  • Continuous Delivery: Having the full plan ready to go anytime
  • Continuous Deployment: Automatically booking everything as soon as it is planned

Nigerian Example

A Nigerian company uses CI and Continuous Delivery for their banking app. They want human approval before releasing because it is a critical system. For their marketing website, they use Continuous Deployment because it is less risky.

Illustration

    CI VS CD VS CONTINUOUS DEPLOYMENT

    +--------------------------------------------------+
    |                                                   |
    |  CI (Continuous Integration)                     |
    |  +-------------------------------------------+    |
    |  |  Automatically build and test code       |    |
    |  |  "Make sure it works!"                   |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  CD (Continuous Delivery)                        |
    |  +-------------------------------------------+    |
    |  |  Keep code ready to release               |    |
    |  |  "Always ready to go!"                    |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  Continuous Deployment                           |
    |  +-------------------------------------------+    |
    |  |  Automatically release to users          |    |
    |  |  "Deploy automatically!"                  |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  CI + CD + Continuous Deployment = CI/CD!        |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

CI is about building and testing code. Continuous Delivery is about keeping code ready to release. Continuous Deployment is about automatically releasing code to users.


Lesson 4: The CI/CD Pipeline

Definition

A CI/CD pipeline is the complete series of steps that code goes through from the moment it is written to the moment it is released to users. It combines CI, CD, and sometimes Continuous Deployment into one continuous flow.

Why is it Important?

The CI/CD pipeline is important because it shows the entire journey of the code. It makes the process clear and automated, from writing code to delivering it to users.

Simple Explanation

Imagine you are making a toy. The CI/CD pipeline is the whole process from designing the toy to putting it in a box to giving it to a child. Each step happens automatically in the right order.

The CI/CD Pipeline Stages

Stage What Happens Analogy
1. Code Developer writes and pushes code Designing the toy
2. Build Code is compiled or built Making the toy parts
3. Test Automated tests run Checking the toy works
4. Package Code is packaged for release Putting the toy in a box
5. Release Code is prepared for release Ready to give the toy
6. Deploy Code is deployed to servers Giving the toy to the child
7. Monitor Code is monitored for problems Checking if the child likes it

Real-life Example

A company has a CI/CD pipeline that runs every time code is pushed. The pipeline builds the code, runs tests, packages it, and deploys it to staging. After approval, it deploys to production. The whole pipeline takes 15 minutes.

School Example

Your school has a project pipeline: research, write, edit, submit, and receive feedback. Each step must be completed before the next. A CI/CD pipeline is like that but for code.

Home Example

Your family has a dinner pipeline: plan, shop, cook, serve, eat, clean. A CI/CD pipeline is similar but for building and releasing software.

Nigerian Example

A Nigerian company has a CI/CD pipeline that runs on GitLab. It starts when a developer pushes code, runs tests, builds the app, and deploys to their servers in Lagos. The whole process is automated.

Illustration

    THE CI/CD PIPELINE

    +--------------------------------------------------+
    |                                                   |
    |  CODE                                            |
    |  +-------------------------------------------+    |
    |  |  Developer writes and pushes code        |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  BUILD                                           |
    |  +-------------------------------------------+    |
    |  |  Code is compiled or built                |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  TEST                                            |
    |  +-------------------------------------------+    |
    |  |  Automated tests run                      |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  PACKAGE                                        |
    |  +-------------------------------------------+    |
    |  |  Code is packaged for release             |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  RELEASE                                         |
    |  +-------------------------------------------+    |
    |  |  Code is prepared for release             |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  DEPLOY                                         |
    |  +-------------------------------------------+    |
    |  |  Code is deployed to servers              |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  MONITOR                                        |
    |  +-------------------------------------------+    |
    |  |  Code is monitored for problems           |    |
    |  +-------------------------------------------+    |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

A CI/CD pipeline is the complete series of steps from writing code to releasing it to users. It combines CI, CD, and monitoring into one automated flow.


Lesson 5: Deployment Strategies

Definition

A deployment strategy is a plan for how software is released to users. Different strategies are used depending on how important it is to avoid problems.

Why is it Important?

Deployment strategies are important because they help teams release software safely. If something goes wrong, a good strategy makes sure fewer users are affected and the problem can be fixed quickly.

Simple Explanation

Imagine you are giving out new toys to children. You could give one toy to one child first to see if they like it. If they do, you give toys to more children. If they do not, you fix the toy first. Deployment strategies are like that — they let you test new software safely.

Common Deployment Strategies

Strategy What It Is Analogy Risk
Rolling Update Updates servers one at a time Fixing tires one at a time while driving Low
Blue-Green Deployment Switches from old to new version at once Switching tracks on a train Medium
Canary Release Updates a small group of users first Testing a new food on a small group first Very low
Rollback Goes back to the old version if problems Undoing a change Safe

Real-life Example

A company uses a canary release for their new feature. They deploy it to 1% of users first. If there are no problems, they increase to 10%, then 50%, then 100%. This way, if there is a problem, only a few users are affected.

School Example

Your school is trying a new schedule. They test it with one class first (canary). If it works, they roll it out to all classes (rolling update).

Home Example

Your family is trying a new recipe. You make a small portion first (canary). If it tastes good, you make a larger portion (rolling update).

Nigerian Example

A Nigerian bank uses blue-green deployment for their mobile app. They have two identical environments: "blue" (live) and "green" (new). They deploy the new version to green, test it, and then switch users from blue to green. If there is a problem, they switch back instantly.

Illustration

    DEPLOYMENT STRATEGIES

    ROLLING UPDATE:
    +--------------------------------------------------+
    |  Server 1: Old β†’ New                             |
    |  Server 2: Old β†’ New                             |
    |  Server 3: Old β†’ New                             |
    |  (One at a time, like changing tires)            |
    +--------------------------------------------------+

    BLUE-GREEN DEPLOYMENT:
    +--------------------------------------------------+
    |  Blue (Live): Old version                        |
    |  Green (New): New version                        |
    |  Switch users from Blue to Green instantly!      |
    +--------------------------------------------------+

    CANARY RELEASE:
    +--------------------------------------------------+
    |  1% Users β†’ New version                          |
    |  βœ… If good β†’ 10% Users                         |
    |  βœ… If good β†’ 50% Users                         |
    |  βœ… If good β†’ 100% Users                        |
    +--------------------------------------------------+
    

Mini Summary

Deployment strategies are plans for releasing software safely. Common strategies include rolling updates, blue-green deployments, and canary releases. They help teams avoid problems and fix issues quickly.


Lesson 6: Artifact Management

Definition

An artifact is the packaged version of your code that is ready to be deployed. It is like the final product that comes out of the build process.

Why is it Important?

Artifacts are important because they are what actually gets deployed. Managing artifacts well means you always know which version is running and can go back to older versions if needed.

Simple Explanation

Imagine you are baking cookies. The final, baked cookies are the "artifacts." You package them in a box. Each batch has a date and a number so you know which batch is which. Artifact management is like keeping track of all your cookie batches!

What Artifacts Contain

  • Compiled code: The code turned into a working program.
  • Version number: A unique number for this version.
  • Build date: When it was built.
  • Build ID: A unique ID for this build.
  • Dependencies: Other pieces of software needed.
  • Metadata: Information about the artifact.

Real-life Example

A company uses an artifact repository called JFrog Artifactory. Every time their CI pipeline runs, it produces an artifact with a version number. The deployment process uses this artifact to deploy to servers.

School Example

Your class has a final project submission. Each version of the project is saved with a date and version number. This is like managing artifacts.

Home Example

Your family saves photos from each vacation. Each folder has the date and location. This is like managing artifacts.

Nigerian Example

A Nigerian company stores all their artifacts in a repository. They can deploy any previous version anytime. This helps them quickly fix problems by going back to a working version.

Illustration

    ARTIFACT MANAGEMENT

    +--------------------------------------------------+
    |                                                   |
    |  ARTIFACT REPOSITORY                             |
    |  +-------------------------------------------+    |
    |  |  πŸ“¦ my-app-v1.0.0.zip                    |    |
    |  |  πŸ“¦ my-app-v1.0.1.zip                    |    |
    |  |  πŸ“¦ my-app-v1.1.0.zip                    |    |
    |  |  πŸ“¦ my-app-v2.0.0.zip                    |    |
    |  |  πŸ“¦ my-app-v2.0.1.zip                    |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  Each artifact has:                               |
    |  +-------------------------------------------+    |
    |  |  βœ… Version number                        |    |
    |  |  βœ… Build date                            |    |
    |  |  βœ… Build ID                              |    |
    |  |  βœ… Size and checksum                     |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Artifacts are versioned and stored!          |
    |  You can deploy any version anytime.             |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

An artifact is the packaged version of your code ready to be deployed. Artifact management is the practice of storing and versioning these packages so you can deploy any version anytime.


Lesson 7: Release Governance

Definition

Release governance is the set of rules and approvals that must be followed before software can be released. It is like a checklist that must be completed before a release.

Why is it Important?

Release governance is important because it makes sure releases are safe and follow the rules. It helps prevent problems by making sure everything is checked before release.

Simple Explanation

Imagine you are a pilot getting ready to fly a plane. Before you take off, you have a checklist: check the fuel, check the weather, check the engines, and get approval from the control tower. Release governance is like that checklist for software releases.

Common Release Governance Steps

  • Testing: All tests must pass.
  • Review: Someone must review the changes.
  • Approval: A manager or team must approve.
  • Compliance: The release must follow rules and regulations.
  • Documentation: The release must be documented.
  • Rollback plan: There must be a plan to go back if something goes wrong.

Real-life Example

A company has a release governance policy. Before any release, a senior developer must approve, all tests must pass, and there must be a rollback plan. This ensures the release is safe.

School Example

Your school has a policy for submitting projects. You must have your work reviewed by a teacher, have a cover page, and submit it on time. This is like release governance.

Home Example

Your family has rules for planning a party. You must get approval from everyone, have enough food, and have a backup plan. This is like release governance.

Nigerian Example

A Nigerian bank has strict release governance. Every release must be approved by the security team, the compliance team, and a senior manager. This ensures the bank's systems are secure and follow regulations.

Illustration

    RELEASE GOVERNANCE

    +--------------------------------------------------+
    |  RELEASE CHECKLIST                               |
    |                                                   |
    |  β˜‘  All tests pass                               |
    |  β˜‘  Code reviewed by another developer           |
    |  β˜‘  Manager approval                             |
    |  β˜‘  Compliance team approval                     |
    |  β˜‘  Documentation updated                        |
    |  β˜‘  Rollback plan is ready                      |
    |  β˜‘  Release notes are written                    |
    |  β˜‘  Security checks pass                         |
    |                                                   |
    |  βœ… ALL CLEAR: READY TO RELEASE!                  |
    |                                                   |
    |  πŸ”‘ Governance makes releases safe and compliant! |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Release governance is the set of rules and approvals that must be followed before a release. It ensures releases are safe, compliant, and well-prepared.


Lesson 8: Benefits of CD

Definition

The benefits of CD are all the good things that happen when a team uses Continuous Delivery and Continuous Deployment.

Why is it Important?

Understanding the benefits helps us see why CD is so valuable. It helps us understand why so many teams are adopting CD.

Simple Explanation

Imagine you have a magic machine that delivers your finished work to customers instantly. You never have to worry about delivery. You just focus on making great things. CD is like having that magic machine!

Key Benefits of CD

Benefit What It Means
Faster Releases New features reach users much faster
Less Risk Small releases are safer than big releases
Quick Fixes Bugs can be fixed and released in minutes
Happy Users Users get new features and fixes quickly
Less Stress No more stressful big release days
Better Quality Frequent releases mean faster feedback
Team Confidence Teams are confident they can release anytime

Real-life Example

A company adopted Continuous Deployment. Before, they released updates once a month. Now, they release updates several times a day. Bugs are fixed in minutes, not weeks. Customers are much happier.

School Example

Your class uses CD for a group project. Instead of waiting until the end to submit, you submit sections as they are finished. You get feedback faster and can improve more quickly.

Home Example

Your family uses CD for planning. Instead of waiting until the last minute to book everything, you book things as soon as you decide. This reduces stress and ensures everything is done on time.

Nigerian Example

A Nigerian e-commerce company adopted Continuous Delivery. They used to release updates once a month. Now they release updates multiple times a week. New features reach customers faster, and their sales have increased.

Illustration

    THE BENEFITS OF CD

    +--------------------------------------------------+
    |                                                   |
    |  πŸš€ FASTER RELEASES                              |
    |     New features reach users quickly             |
    |                                                   |
    |  πŸ›‘οΈ LESS RISK                                   |
    |     Small releases are safer                     |
    |                                                   |
    |  πŸ”§ QUICK FIXES                                  |
    |     Bugs are fixed in minutes                    |
    |                                                   |
    |  😊 HAPPY USERS                                  |
    |     Users get new features fast                  |
    |                                                   |
    |  🧘 LESS STRESS                                  |
    |     No more stressful release days               |
    |                                                   |
    |  πŸ“ˆ BETTER QUALITY                               |
    |     Faster feedback means better software        |
    |                                                   |
    |  πŸ’ͺ TEAM CONFIDENCE                              |
    |     Teams can release anytime                    |
    |                                                   |
    |  ALL BECAUSE OF CD! πŸŽ‰                           |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

CD has many benefits. It leads to faster releases, less risk, quick fixes, happy users, less stress, better quality, and team confidence.


Lesson 9: CD and DevOps

Definition

CD and DevOps: CD is a core part of DevOps. Together with CI, it forms the automation backbone of DevOps. CD helps teams deliver software continuously and reliably.

Why is it Important?

CD and DevOps work together to help teams deliver software faster and better. CD provides the automation for releasing software, and DevOps provides the culture and processes.

Simple Explanation

Imagine DevOps is a car. CI is the engine that builds and tests the code. CD is the wheels that deliver the code to users. Without CD, the car would not go anywhere. With CD, the car moves smoothly and quickly.

How CD Supports DevOps

  • Automation: CD automates the release process, a key DevOps principle.
  • Fast Feedback: CD gives fast feedback to users, helping teams learn and improve quickly.
  • Continuous Flow: CD makes the flow of work from development to users continuous.
  • Quality: CD helps maintain high quality by ensuring releases are tested and ready.
  • Collaboration: CD encourages collaboration between development, operations, and business teams.

Real-life Example

A company uses DevOps practices including CI and CD. Their developers push code frequently. CI builds and tests it. CD delivers it to users. Together, they deliver software fast and reliably.

School Example

Your school has a system for managing projects. CI is like the quality check. CD is like the delivery system. DevOps is the whole system including planning, execution, delivery, and review.

Home Example

Your family has a system for managing the household. CI is like checking the plan. CD is like executing the plan. DevOps is the whole system including planning, execution, and improvement.

Nigerian Example

A Nigerian company uses DevOps and CD. CD is the delivery engine of their DevOps pipeline. Without CD, their DevOps would be incomplete. Together, they deliver great software.

Illustration

    CD AND DEVOPS

    +--------------------------------------------------+
    |                                                   |
    |  DEVOPS = CULTURE + TOOLS + PROCESSES             |
    |  +-------------------------------------------+    |
    |  |  πŸ“‹ Plan                                 |    |
    |  |  πŸ’» Code                                 |    |
    |  |  πŸ—οΈ Build  ← CI is here!               |    |
    |  |  βœ… Test   ← CI is here!                |    |
    |  |  πŸš€ Release ← CD is here!               |    |
    |  |  πŸ”„ Deploy  ← CD is here!               |    |
    |  |  πŸ“Š Operate                             |    |
    |  |  πŸ‘€ Monitor                             |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  CD IS A CORE PART OF DEVOPS                     |
    |  +-------------------------------------------+    |
    |  |  βœ… CD automates release and deployment  |    |
    |  |  βœ… CD gives fast feedback to users      |    |
    |  |  βœ… CD helps maintain quality             |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ CD + DevOps = Powerful software delivery!     |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

CD is a core part of DevOps. It provides the automation for releasing and deploying software. Together with CI, CD helps teams deliver software fast and reliably.


Lesson 10: What We Have Learned So Far

Definition

In this lesson, we will review everything we have learned about Continuous Delivery and Deployment. This will help us remember the most important ideas.

Why is it Important?

Reviewing helps us remember what we have learned. When we keep information in our brains, we can use it later.

Simple Explanation

Let us think back to everything we have talked about in this module:

  • What is Continuous Delivery? A practice where software is always ready to be released.
  • What is Continuous Deployment? A practice where software is automatically released to users.
  • What is the difference? Continuous Delivery has human approval before release. Continuous Deployment does not.
  • What is the CI/CD pipeline? The complete series of steps from writing code to releasing it to users.
  • What are deployment strategies? Plans for releasing software safely (rolling update, blue-green, canary).
  • What is artifact management? Storing and versioning packaged code for deployment.
  • What is release governance? Rules and approvals before a release.
  • What are the benefits of CD? Faster releases, less risk, quick fixes, happy users, less stress, better quality, and team confidence.
  • How does CD fit into DevOps? CD is a core part of DevOps, providing automation for releasing software.

Real-life Example

A team has learned all these concepts. They use CI/CD every day. They push code, CI builds and tests it, CD deploys it. Their software is always up to date and customers are happy.

School Example

Your class has learned about CD. They understand the importance of delivering work quickly and safely.

Home Example

Your family has learned about CD. They understand the importance of planning and delivering things efficiently.

Nigerian Example

A Nigerian developer has learned all these CD concepts. They can now set up CI/CD for their team and help their company deliver better software faster.

Illustration

    WHAT WE HAVE LEARNED

    +--------------------------------------------------+
    |                                                   |
    |  πŸ“Œ Continuous Delivery = Always ready to release |
    |  πŸ“Œ Continuous Deployment = Automatically release |
    |  πŸ“Œ CI/CD pipeline = Full automation flow        |
    |  πŸ“Œ Deployment strategies = Safe release plans   |
    |  πŸ“Œ Artifact management = Versioned packages     |
    |  πŸ“Œ Release governance = Rules and approvals     |
    |  πŸ“Œ Benefits: faster, safer, happier             |
    |  πŸ“Œ CD is a core part of DevOps                  |
    |                                                   |
    |  YOU ARE NOW A CD BEGINNER! πŸŽ‰                   |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

We have learned many things about Continuous Delivery and Deployment. CD helps teams release software quickly and safely. It is a core part of DevOps.


6. Key Vocabulary

Here are the important words we learned in this module. Each word has a simple definition to help you remember it.

Word Simple Definition
Continuous Delivery (CD) A practice where software is always ready to be released
Continuous Deployment A practice where software is automatically released to users
CI/CD Pipeline The complete series of steps from writing code to releasing it
Deployment Strategy A plan for releasing software safely
Rolling Update Updating servers one at a time
Blue-Green Deployment Switching from old to new version at once
Canary Release Releasing to a small group of users first
Artifact The packaged version of code ready for deployment
Artifact Management Storing and versioning packaged code
Release Governance Rules and approvals before a release
Rollback Going back to an older version
Production The live environment where users access the software
Staging A test environment that mimics production
Monitor Watching the software for problems
CI/CD The combination of CI, CD, and Continuous Deployment

7. Important Concepts

Here are the most important concepts from this module. These are the big ideas that will help you understand Continuous Delivery and Deployment.

  1. CD makes software always ready to release. Continuous Delivery ensures that every change that passes tests is prepared for release. This means you can release anytime.

  2. Continuous Deployment releases automatically. Continuous Deployment takes it a step further by automatically releasing to users. No human approval needed.

  3. The CI/CD pipeline automates everything. From writing code to releasing it, the CI/CD pipeline is fully automated. This saves time and reduces errors.

  4. Deployment strategies keep releases safe. Strategies like rolling updates, blue-green, and canary releases help teams release software safely.

  5. Artifacts are versioned packages. Artifacts are the packaged code that gets deployed. Managing them well means you can deploy any version anytime.

  6. Release governance ensures quality. Rules and approvals before release make sure releases are safe and compliant.

  7. CD is a core part of DevOps. CD provides the automation for releasing software. Together with CI, it forms the CI/CD backbone of DevOps.


8. Step-by-Step Explanations

Let us look at how to set up a CI/CD pipeline in simple steps:

Step 1: Choose Your Tools

Decide which CI/CD tools to use. GitHub Actions, GitLab CI, and Jenkins are all good choices. Choose the one that works best for your team.

Step 2: Set Up CI

First, set up Continuous Integration. This automatically builds and tests your code every time it is pushed.

Step 3: Add Artifact Storage

Set up a place to store your artifacts. This could be a package registry like JFrog Artifactory, GitHub Packages, or GitLab's package registry.

Step 4: Set Up CD

Set up Continuous Delivery. Configure your pipeline to automatically package code into artifacts and make them ready for release.

Step 5: Add Deployment

Add deployment to your pipeline. This could be Continuous Deployment (automatic) or require a manual approval step.

Step 6: Choose a Deployment Strategy

Decide how you will deploy. Rolling updates, blue-green, or canary releases are common choices.

Step 7: Add Monitoring

Add monitoring to your pipeline. Watch the deployed software for any problems. If something goes wrong, you can roll back.

Illustration

    STEP-BY-STEP: SETTING UP CI/CD

    Step 1: CHOOSE TOOLS
    +-------------------+
    |  GitHub Actions,  |
    |  GitLab CI,       |
    |  Jenkins          |
    +-------------------+
           |
           V
    Step 2: SET UP CI
    +-------------------+
    |  Build and test   |
    |  automatically    |
    +-------------------+
           |
           V
    Step 3: ADD ARTIFACT STORAGE
    +-------------------+
    |  Store packaged   |
    |  code             |
    +-------------------+
           |
           V
    Step 4: SET UP CD
    +-------------------+
    |  Prepare code     |
    |  for release      |
    +-------------------+
           |
           V
    Step 5: ADD DEPLOYMENT
    +-------------------+
    |  Deploy to        |
    |  servers          |
    +-------------------+
           |
           V
    Step 6: CHOOSE STRATEGY
    +-------------------+
    |  Rolling, Blue-   |
    |  Green, Canary    |
    +-------------------+
           |
           V
    Step 7: ADD MONITORING
    +-------------------+
    |  Watch for        |
    |  problems         |
    +-------------------+
    

9. Real-life Examples

Example 1: The E-commerce Company

An e-commerce company uses a CI/CD pipeline on GitHub Actions. Every time code is pushed, the pipeline builds, tests, and deploys to staging. After approval, it deploys to production using a blue-green deployment. The whole process takes 20 minutes.

Example 2: The Mobile App Team

A mobile app team uses Continuous Deployment. Every time a developer fixes a bug or adds a feature, the app is automatically built, tested, and submitted to the app store. Users get updates daily.

Example 3: The Banking System

A bank uses Continuous Delivery but not Continuous Deployment. They use CI/CD to prepare releases, but every release must be approved by the security team and a senior manager before deployment.


10. Nigerian Examples

Example 1: Flutterwave

Flutterwave uses a CI/CD pipeline to release their payment platform. They use canary releases to test new features with a small group of users before rolling out to everyone.

Example 2: Paystack

Paystack uses GitHub Actions for their CI/CD pipeline. Every change is automatically built, tested, and deployed to staging. After testing, it is deployed to production using a blue-green deployment strategy.

Example 3: Nigerian Tech Startup

A Nigerian tech startup uses Continuous Deployment for their website. Every time a developer pushes code that passes all tests, it is automatically deployed to production. This means they can release new features several times a day.


11. Fun Examples Children Can Relate To

Example 1: The Lemonade Stand

You have a lemonade stand. Every time you make a new batch of lemonade, you automatically put it in a pitcher and put it on the counter for customers. Continuous Deployment is like automatically putting the lemonade on the counter as soon as it is made.

Example 2: The Birthday Gifts

You are wrapping birthday gifts. Instead of waiting until the party to give them, you give them as soon as they are wrapped. Continuous Deployment is like giving gifts as soon as they are wrapped.

Example 3: The Homework Submission

You are doing homework. Every time you finish a question, you submit it automatically. Your teacher gets each question as soon as it is done. Continuous Deployment is like submitting homework question by question.


12. Everyday Examples

Example 1: The Shopping List

Your family uses a shared shopping list. Every time someone adds an item, the list automatically updates on everyone's phones. This is like Continuous Deployment.

Example 2: The Calendar

Your family uses a shared calendar. Every time someone adds an event, it automatically appears on everyone's calendar. This is like Continuous Deployment.

Example 3: The Photo Album

Your family has a shared photo album. Every time someone adds a photo, it automatically appears in the album for everyone to see. This is like Continuous Deployment.


13. Teacher Notes

For Teachers: This module is designed to be accessible for students of all ages. Here are some tips for teaching this module:

  • Use the story: The warm-up story about QuickDeliver is a great way to introduce the topic. Ask students what they would do if they had a delivery system that was slow.
  • Encourage discussion: Ask students if they have ever waited a long time for something to be delivered. This helps them understand why CD is important.
  • Use the illustrations: The ASCII diagrams are simple and visual. They help students understand complex ideas easily.
  • Group activities: Have students simulate a CI/CD pipeline with different groups for each stage.
  • Relate to Nigerian examples: The Nigerian examples help students see how CD is relevant to their own country.
  • Review key vocabulary: Use the vocabulary table to help students remember important terms.
  • Use the exercises: The end-of-module exercises help reinforce learning.

14. Parent Tips

For Parents: Your child is learning about Continuous Delivery and Deployment. Here are some tips to support their learning:

  • Discuss delivery systems: Talk to your child about how things get delivered in your own life. This could be food delivery, package delivery, or even information delivery.
  • Ask about CD: Ask your child what they learned about CD. This will help them remember and understand the material better.
  • Relate to everyday life: Point out examples of automatic delivery in everyday life. Apps that update automatically, websites that change, etc.
  • Encourage curiosity: If your child asks questions about CD, take the time to answer them.
  • Celebrate learning: Praise your child for completing this module. Learning about CD is an important skill for the future.

15. Interesting Facts

  • Fact 1: Companies that use Continuous Deployment release software 30 times more frequently than companies that do not.
  • Fact 2: Amazon deploys code every 11.7 seconds on average. That is thousands of times per day!
  • Fact 3: Netflix uses canary releases to test new features. They release to a small group of users first, then slowly roll out to everyone.
  • Fact 4: Blue-green deployment was named because the two environments are often color-coded blue and green.
  • Fact 5: The term "CI/CD" was first used around 2010. Since then, it has become a standard practice in software development.
  • Fact 6: Many Nigerian companies are now adopting CI/CD. It is helping them compete with international companies.

16. Did You Know?

  • Did you know? CI/CD is not just for code. It can also be used to deploy infrastructure, configurations, and even databases!
  • Did you know? Some companies have CI/CD pipelines that take only a few minutes from code commit to deployment.
  • Did you know? The canary release strategy gets its name from "canary in a coal mine." Miners used canaries to detect dangerous gases.
  • Did you know? CI/CD can be used for mobile apps, web apps, desktop apps, and even hardware.
  • Did you know? CI/CD is a key part of "DevOps maturity." Companies that are mature in DevOps use CI/CD extensively.
  • Did you know? CI/CD can save companies millions of naira by reducing downtime and improving productivity.

17. Remember This

  • πŸ”Ή Continuous Delivery keeps software always ready to release.
  • πŸ”Ή Continuous Deployment automatically releases software to users.
  • πŸ”Ή The CI/CD pipeline automates everything from code to release.
  • πŸ”Ή Deployment strategies include rolling updates, blue-green, and canary releases.
  • πŸ”Ή Artifacts are versioned packages ready for deployment.
  • πŸ”Ή Release governance ensures releases are safe and compliant.
  • πŸ”Ή Benefits of CD include faster releases, less risk, and happy users.
  • πŸ”Ή CD is a core part of DevOps.

18. Common Mistakes

  1. Mistake 1: Deploying without testing.

    Always test before deploying. Deploying without testing can break the system for all users. CI should catch these problems.

  2. Mistake 2: Not having a rollback plan.

    Always have a plan to go back to the previous version if something goes wrong. A good CI/CD pipeline includes rollback capability.

  3. Mistake 3: Deploying during peak hours.

    Deploy during low-traffic times if possible. This reduces the impact if something goes wrong.

  4. Mistake 4: Not monitoring after deployment.

    Always monitor after deployment. Watch for errors, slow performance, or other problems.

  5. Mistake 5: Skipping governance.

    Release governance is important for safety. Do not skip approvals and compliance checks.

  6. Mistake 6: Using Continuous Deployment for critical systems without testing.

    For critical systems (banking, healthcare), use Continuous Delivery with approvals instead of Continuous Deployment.


19. Best Practices

  1. Test everything before deployment.

    Make sure all tests pass before deploying. This includes unit tests, integration tests, and end-to-end tests.

  2. Always have a rollback plan.

    Be able to go back to the previous version within minutes if something goes wrong.

  3. Use a deployment strategy.

    Choose a strategy that fits your needs. Rolling updates for general use, blue-green for zero downtime, canary for testing with real users.

  4. Monitor after deployment.

    Watch your logs, metrics, and user feedback after deployment. This helps you catch problems quickly.

  5. Start small.

    If you are new to CD, start with a simple project. Learn from that experience and then expand.

  6. Use artifacts.

    Always store versioned artifacts. This lets you deploy any version anytime.

  7. Keep governance lightweight.

    Have governance, but keep it lightweight. Too many approvals can slow down releases.


20. ASCII Illustrations

Illustration 1: The CI/CD Pipeline

    THE CI/CD PIPELINE

    +--------------------------------------------------+
    |                                                   |
    |  CODE                                            |
    |  +-------------------------------------------+    |
    |  |  Developer writes and pushes code        |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  BUILD                                           |
    |  +-------------------------------------------+    |
    |  |  Code is compiled or built                |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  TEST                                            |
    |  +-------------------------------------------+    |
    |  |  Automated tests run                      |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  PACKAGE                                        |
    |  +-------------------------------------------+    |
    |  |  Code is packaged (artifact)              |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  RELEASE                                         |
    |  +-------------------------------------------+    |
    |  |  Code is prepared for release             |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  DEPLOY                                         |
    |  +-------------------------------------------+    |
    |  |  Code is deployed to servers              |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  MONITOR                                        |
    |  +-------------------------------------------+    |
    |  |  Code is monitored for problems           |    |
    |  +-------------------------------------------+    |
    |                                                   |
    +--------------------------------------------------+
    

Illustration 2: Deployment Strategies

    DEPLOYMENT STRATEGIES

    ROLLING UPDATE:
    +--------------------------------------------------+
    |  Server 1: Old β†’ New                             |
    |  Server 2: Old β†’ New                             |
    |  Server 3: Old β†’ New                             |
    |  (One at a time)                                |
    +--------------------------------------------------+

    BLUE-GREEN:
    +--------------------------------------------------+
    |  Blue (Live): Old version                        |
    |  Green (New): New version                        |
    |  Switch users from Blue to Green instantly!      |
    +--------------------------------------------------+

    CANARY:
    +--------------------------------------------------+
    |  1% Users β†’ New version                          |
    |  βœ… If good β†’ 10% Users                         |
    |  βœ… If good β†’ 50% Users                         |
    |  βœ… If good β†’ 100% Users                        |
    +--------------------------------------------------+
    

Illustration 3: CI vs CD vs Continuous Deployment

    CI VS CD VS CONTINUOUS DEPLOYMENT

    CI:
    +--------------------------------------------------+
    |  Build + Test automatically                     |
    |  "Does it work?"                                |
    +--------------------------------------------------+

    CD (Continuous Delivery):
    +--------------------------------------------------+
    |  Build + Test + Package automatically           |
    |  "Ready to release!"                            |
    |  Human decides when to release                  |
    +--------------------------------------------------+

    Continuous Deployment:
    +--------------------------------------------------+
    |  Build + Test + Package + Deploy automatically  |
    |  "Released to users!"                           |
    |  No human needed!                               |
    +--------------------------------------------------+
    

21. Comparison Tables

Table 1: Continuous Delivery vs Continuous Deployment

Aspect Continuous Delivery Continuous Deployment
Automation Build, test, package Build, test, package, deploy
Human Approval Yes (decides when to release) No (releases automatically)
Release Speed Fast (when approved) Very fast (immediate)
Risk Low (human oversight) Low (with good testing)
Best For Critical systems (banking, healthcare) Low-risk systems (websites, apps)

Table 2: Deployment Strategies

Strategy Risk Downtime Best For
Rolling Update Low None General use
Blue-Green Low None Zero downtime required
Canary Very low None Testing with real users

Table 3: CI/CD Pipeline Stages

Stage Purpose Automated?
Code Write and push code No (developer does it)
Build Compile or build the code Yes
Test Run automated tests Yes
Package Package for release (artifact) Yes
Release Prepare for release (with approval) Partially (approval is manual)
Deploy Deploy to servers Yes
Monitor Watch for problems Yes

Note: Each lesson in this module already includes a "Mini Summary" section right after the lesson content. Please refer back to the lessons above to review each mini summary.


23. End-of-Module Summary

Congratulations! You have completed Module 4 of the "Certified DevOps Engineer" course. Let us review everything we have learned:

What is Continuous Delivery?

Continuous Delivery (CD) is a practice where software is always ready to be released. Every change that passes all tests is automatically prepared for release. A human decides when to actually release it.

What is Continuous Deployment?

Continuous Deployment is a practice where every change that passes all tests is automatically released to users. No human approval is needed.

The CI/CD Pipeline

The CI/CD pipeline is the complete series of steps from writing code to releasing it to users. It combines CI, CD, and monitoring into one automated flow.

Deployment Strategies

Deployment strategies are plans for releasing software safely. Common strategies include rolling updates (one server at a time), blue-green deployments (switching versions), and canary releases (small groups first).

Artifact Management

Artifacts are packaged versions of code ready for deployment. Artifact management is the practice of storing and versioning these packages.

Release Governance

Release governance is the set of rules and approvals that must be followed before a release. It ensures releases are safe and compliant.

Benefits of CD

CD leads to faster releases, less risk, quick fixes, happy users, less stress, better quality, and team confidence. It is a core part of DevOps.

You have now completed Module 4! You are ready to move on to Module 5, where you will learn about Infrastructure as Code (IaC). Keep up the great work!


24. Frequently Asked Questions (10 Questions)

  1. Q1: What is Continuous Delivery?

    A: Continuous Delivery is a practice where software is always ready to be released. Every change is automatically prepared for release, but a human decides when to release it.

  2. Q2: What is Continuous Deployment?

    A: Continuous Deployment is a practice where every change that passes all tests is automatically released to users. No human approval is needed.

  3. Q3: What is the difference between Continuous Delivery and Continuous Deployment?

    A: Continuous Delivery has human approval before release. Continuous Deployment does not — it is fully automatic.

  4. Q4: What is a CI/CD pipeline?

    A: A CI/CD pipeline is the complete series of steps from writing code to releasing it to users. It combines CI, CD, and monitoring into one automated flow.

  5. Q5: What is a deployment strategy?

    A: A deployment strategy is a plan for how software is released to users. It helps teams release software safely.

  6. Q6: What is blue-green deployment?

    A: Blue-green deployment is a strategy where you have two identical environments. You deploy the new version to the "green" environment, test it, and then switch users from "blue" to "green."

  7. Q7: What is an artifact?

    A: An artifact is the packaged version of your code that is ready to be deployed. It is like the final product of the build process.

  8. Q8: What is release governance?

    A: Release governance is the set of rules and approvals that must be followed before a release. It ensures releases are safe and compliant.

  9. Q9: What are the benefits of CD?

    A: CD leads to faster releases, less risk, quick fixes, happy users, less stress, better quality, and team confidence.

  10. Q10: Is CD used in Nigeria?

    A: Yes, many Nigerian companies use CD. It is helping them deliver software faster and compete globally.


25. Review Questions (15 Questions)

  1. What is Continuous Delivery?

    Answer: Continuous Delivery is a practice where software is always ready to be released. A human decides when to release it.

  2. What is Continuous Deployment?

    Answer: Continuous Deployment is a practice where every change that passes tests is automatically released to users.

  3. What is the difference between Continuous Delivery and Continuous Deployment?

    Answer: Continuous Delivery requires human approval. Continuous Deployment is fully automatic.

  4. What is the CI/CD pipeline?

    Answer: The complete series of steps from writing code to releasing it to users.

  5. Name three deployment strategies.

    Answer: Rolling update, blue-green deployment, and canary release.

  6. What is a rolling update?

    Answer: Updating servers one at a time.

  7. What is blue-green deployment?

    Answer: Switching from the old version to the new version at once using two environments.

  8. What is a canary release?

    Answer: Releasing to a small group of users first, then gradually to everyone.

  9. What is an artifact?

    Answer: The packaged version of code ready for deployment.

  10. What is artifact management?

    Answer: Storing and versioning packaged code for deployment.

  11. What is release governance?

    Answer: Rules and approvals that must be followed before a release.

  12. Name two benefits of CD.

    Answer: Faster releases and less risk. (Other answers: quick fixes, happy users, less stress, better quality, team confidence.)

  13. Is CD part of DevOps?

    Answer: Yes, CD is a core part of DevOps.

  14. What is a rollback?

    Answer: Going back to an older version if something goes wrong.

  15. Is CD used in Nigeria?

    Answer: Yes, many Nigerian companies use CD.


26. Fill-in-the-Blank Exercises

Fill in the blanks with the correct words from the list:

Word list: Continuous Delivery, Continuous Deployment, pipeline, rolling update, blue-green, canary, artifact, governance, rollback, DevOps, artifact management

  1. __________ is a practice where software is always ready to be released.

    Answer: Continuous Delivery

  2. __________ is a practice where software is automatically released to users.

    Answer: Continuous Deployment

  3. The CI/CD __________ is the complete series of steps from writing code to releasing it.

    Answer: pipeline

  4. A __________ updates servers one at a time.

    Answer: rolling update

  5. __________ deployment switches from the old version to the new version at once.

    Answer: blue-green

  6. A __________ release deploys to a small group of users first.

    Answer: canary

  7. An __________ is the packaged version of code ready for deployment.

    Answer: artifact

  8. __________ is the practice of storing and versioning packaged code.

    Answer: artifact management

  9. Release __________ is the set of rules and approvals before a release.

    Answer: governance

  10. A __________ is going back to an older version if something goes wrong.

    Answer: rollback

  11. CD is a core part of __________.

    Answer: DevOps


27. True or False Exercises

Write True or False for each statement:

  1. Continuous Delivery requires human approval before release.

    Answer: True

  2. Continuous Deployment requires human approval before release.

    Answer: False (Continuous Deployment is fully automatic)

  3. The CI/CD pipeline includes monitoring.

    Answer: True

  4. A rolling update deploys to all servers at the same time.

    Answer: False (It updates one server at a time)

  5. Blue-green deployment uses two identical environments.

    Answer: True

  6. A canary release tests with all users at once.

    Answer: False (It tests with a small group first)

  7. An artifact is the packaged version of code ready for deployment.

    Answer: True

  8. Artifact management is not important in CD.

    Answer: False (It is very important)

  9. Release governance ensures releases are safe and compliant.

    Answer: True

  10. CD leads to slower releases.

    Answer: False (CD leads to faster releases)

  11. CD is a core part of DevOps.

    Answer: True

  12. A rollback means going back to an older version.

    Answer: True

  13. CD is not used in Nigeria.

    Answer: False

  14. Continuous Deployment is riskier than Continuous Delivery.

    Answer: True (without proper testing)

  15. Monitoring is optional in CI/CD pipelines.

    Answer: False (It is essential)


28. Multiple Choice Questions (15 Questions)

Choose the correct answer for each question:

  1. What is Continuous Delivery?

    A) Software is automatically released to users
    B) Software is always ready to be released
    C) Software is never released
    D) Software is released once a year

    Answer: B

  2. What is Continuous Deployment?

    A) Software is automatically released to users
    B) Software is always ready to be released
    C) Software is never released
    D) Software is released once a year

    Answer: A

  3. What is the difference between Continuous Delivery and Continuous Deployment?

    A) Continuous Delivery is faster
    B) Continuous Delivery has human approval; Continuous Deployment does not
    C) There is no difference
    D) Continuous Deployment is slower

    Answer: B

  4. What is the CI/CD pipeline?

    A) A series of steps from code to release
    B) A type of computer
    C) A programming language
    D) A video game

    Answer: A

  5. Which deployment strategy updates servers one at a time?

    A) Blue-green
    B) Canary
    C) Rolling update
    D) Big bang

    Answer: C

  6. Which deployment strategy uses two identical environments?

    A) Blue-green
    B) Canary
    C) Rolling update
    D) Big bang

    Answer: A

  7. Which deployment strategy tests with a small group of users first?

    A) Blue-green
    B) Canary
    C) Rolling update
    D) Big bang

    Answer: B

  8. What is an artifact?

    A) A type of computer
    B) A packaged version of code ready for deployment
    C) A deployment strategy
    D) A programming language

    Answer: B

  9. What is release governance?

    A) A type of computer
    B) Rules and approvals before a release
    C) A deployment strategy
    D) A programming language

    Answer: B

  10. What is a rollback?

    A) Going back to an older version
    B) Releasing a new version
    C) Testing a new version
    D) Deleting a version

    Answer: A

  11. Which is a benefit of CD?

    A) Slower releases
    B) More bugs
    C) Faster releases
    D) Unhappy users

    Answer: C

  12. Is CD part of DevOps?

    A) No
    B) Yes, it is a core part
    C) Sometimes
    D) Only for large companies

    Answer: B

  13. What should you do after deployment?

    A) Ignore the system
    B) Monitor for problems
    C) Delete the system
    D) Go home

    Answer: B

  14. Is CD used in Nigeria?

    A) No
    B) Yes, by many companies
    C) Only in Lagos
    D) Only by the government

    Answer: B

  15. What is the purpose of artifact management?

    A) To delete artifacts
    B) To store and version packaged code
    C) To write code
    D) To deploy code

    Answer: B


29. Matching Exercises

Match the words in Column A with their correct meanings in Column B.

Column A Column B
1. Continuous Delivery A. Automatically releases software to users
2. Continuous Deployment B. Software is always ready to be released
3. Rolling Update C. Switching from old to new version at once
4. Blue-Green D. Updating servers one at a time
5. Canary Release E. The packaged version of code ready for deployment
6. Artifact F. Rules and approvals before a release
7. Release Governance G. Releasing to a small group of users first
8. Rollback H. Going back to an older version
9. CI/CD Pipeline I. The complete series of steps from code to release
10. Artifact Management J. Storing and versioning packaged code

Answers:

  1. B
  2. A
  3. D
  4. C
  5. G
  6. E
  7. F
  8. H
  9. I
  10. J

30. Short Answer Questions

  1. What is Continuous Delivery and why is it useful?

    Answer: Continuous Delivery is a practice where software is always ready to be released. It is useful because it makes releasing software easy and safe. You can release anytime you want without spending days preparing.

  2. Explain the difference between Continuous Delivery and Continuous Deployment.

    Answer: Continuous Delivery requires human approval before release. The software is always ready, but a human decides when to release it. Continuous Deployment is fully automatic — every change that passes tests is automatically released to users.

  3. Describe three deployment strategies.

    Answer:

    • Rolling Update: Updates servers one at a time
    • Blue-Green: Uses two environments; switches from old to new at once
    • Canary Release: Releases to a small group of users first, then gradually to everyone
  4. What is artifact management and why is it important?

    Answer: Artifact management is the practice of storing and versioning packaged code (artifacts). It is important because it lets you deploy any version anytime. If a new version has a problem, you can quickly roll back to a previous version.

  5. How does CD support DevOps?

    Answer: CD is a core part of DevOps. It provides the automation for releasing and deploying software. CD gives fast feedback to users, helps maintain quality, and supports the continuous flow of value to customers. Together with CI, CD forms the automation backbone of DevOps.


31. Scenario-based Exercises

Scenario 1: The Slow Release Company

A company takes 3 months to release each new version of their software. They spend most of that time preparing for the release. They want to release faster.

Question: How could CD help this company?

Answer: CD could help by making the software always ready to release. With CD, they would not need to spend weeks preparing for each release. They could release anytime. They could use Continuous Delivery to keep code ready and release weekly instead of every 3 months.

Scenario 2: The Risky Release

A company had a big release that broke the system for all users. It took hours to fix. They want to avoid this in the future.

Question: What deployment strategy could help them?

Answer: A canary release strategy could help. They would release to a small group of users first (like 1%). If there are no problems, they would gradually increase the percentage to 10%, 50%, and finally 100%. This way, if something goes wrong, only a few users are affected and they can fix it quickly.

Scenario 3: The Nigerian Startup

A Nigerian startup has built a new app. They want to release updates daily but are worried about breaking things. They are using CI but have not set up CD yet.

Question: What should the startup do to implement CD?

Answer: The startup should start with Continuous Delivery. They would set up a CI/CD pipeline that builds, tests, and packages the code. They could use a canary release strategy to test with a small group of users first. After they are comfortable, they could move to Continuous Deployment for less risky parts of the app.


32. Group Activity

Activity: The CD Simulation

Instructions:

  1. Form groups of 5-6 students.
  2. Assign roles:
    • 1 Developer: Writes code (draws a picture)
    • 1 CI System: Builds and tests the code
    • 1 CD System: Prepares for release
    • 1 Deployer: Deploys the code (rolls out to users)
    • 1 User: Receives the deployed code
    • 1 Observer: Watches and gives feedback
  3. Simulate a CI/CD pipeline:
    • Developer "pushes code" (draws a new part of the picture)
    • CI System "builds and tests" (checks the picture)
    • CD System "packages" (puts it in a box)
    • Deployer "deploys" (gives it to the user)
    • User "receives" and gives feedback
  4. Try different deployment strategies: rolling update (one part at a time), blue-green (switch between two versions), and canary (give to one user first).
  5. Discuss: Which strategy was safest? Which was fastest?
  6. Share with the class.

33. Individual Activity

Activity: My CD Plan

Instructions:

  1. Imagine you are a DevOps engineer. You are going to implement CD for a new project.
  2. Write a CD plan. Include:
    • Will you use Continuous Delivery or Continuous Deployment? Why?
    • What deployment strategy will you use?
    • How will you manage artifacts?
    • What governance will you have?
    • How will you monitor after deployment?
    • What is your rollback plan?
  3. Write a short reflection: What did you learn from this activity?
  4. Submit your plan and reflection.

34. Classroom Discussion Questions

  1. Why do you think releasing software frequently is better than releasing rarely?

    Discuss with your classmates and share your ideas.

  2. Have you ever experienced a problem after an update? How did it make you feel?

    Share your experiences and thoughts.

  3. What are some other situations where automatic delivery is helpful?

    Think about school, home, and other activities.

  4. Do you think Continuous Deployment is always better than Continuous Delivery? Why or why not?

    Share your opinions and listen to what others think.

  5. Can you think of a Nigerian company that might benefit from CD?

    Share examples of companies in Nigeria.

  6. What do you think is the most important part of the CI/CD pipeline?

    Explain why you think so.

  7. Do you think CD is easy to implement? Why or why not?

    Share your thoughts.

  8. What is the most important thing you learned about CD today?

    Share with the class.


35. Mini Project

Project: Create a "CD for Beginners" Guide

Goal: Create a simple guide to teach beginners about Continuous Delivery and Deployment.

Instructions:

  1. Work individually or in small groups.
  2. Design a guide that includes:
    • A cover page with a title and a drawing
    • What is Continuous Delivery? (simple explanation)
    • What is Continuous Deployment? (simple explanation)
    • The difference between them
    • The CI/CD pipeline (with stages)
    • Deployment strategies (rolling update, blue-green, canary)
    • Artifacts and artifact management
    • Release governance
    • Benefits of CD
    • Key vocabulary with definitions
    • A fun example or story
  3. Use simple language. Write as if you are teaching a 10-year-old.
  4. Include drawings or pictures.
  5. Present your guide to the class.

36. Practical Assignment

Assignment: Observe CI/CD in Practice

Goal: Learn about real-world CI/CD practice.

Instructions:

  1. Research a company. Choose a company that uses CI/CD (like a tech company, a bank, or an e-commerce company).
  2. Find out:
    • What CI/CD tools they use
    • What deployment strategy they use
    • How often they release
    • How they handle problems
  3. Write a report. Include:
    • The company name and what they do
    • How they use CI/CD
    • What you learned from this research
  4. Submit your report.

37. Challenge Exercise

Challenge: The CD Architect

Scenario:

You are a CD architect at a Nigerian company. The company builds a mobile app for banking. They have 15 developers. They want to release new features faster but are worried about breaking things.

The company has:

  • 15 developers
  • A mobile banking app
  • Concerns about security and reliability
  • Want to release weekly instead of monthly
  • Need to comply with banking regulations

Challenge: Create a complete CD implementation plan for this company. Include:

  • Strategy Choice: Will you use Continuous Delivery or Continuous Deployment? Why?
  • Deployment Strategy: Which deployment strategy will you use?
  • Pipeline Design: What stages will your CI/CD pipeline have?
  • Artifact Management: How will you manage artifacts?
  • Release Governance: What approvals will be required?
  • Monitoring: How will you monitor after deployment?
  • Rollback Plan: What is your rollback plan?
  • Timeline: When will you implement each part?

BONUS CHALLENGE: Present your plan to the class as if you were presenting it to the company's management.


38. Quiz Answers

Multiple Choice Questions (Section 28):

  1. B
  2. A
  3. B
  4. A
  5. C
  6. A
  7. B
  8. B
  9. B
  10. A
  11. C
  12. B
  13. B
  14. B
  15. B

True or False Exercises (Section 27):

  1. True
  2. False
  3. True
  4. False
  5. True
  6. False
  7. True
  8. False
  9. True
  10. False
  11. True
  12. True
  13. False
  14. True
  15. False

Fill-in-the-Blank Exercises (Section 26):

  1. Continuous Delivery
  2. Continuous Deployment
  3. pipeline
  4. rolling update
  5. blue-green
  6. canary
  7. artifact
  8. artifact management
  9. governance
  10. rollback
  11. DevOps

Matching Exercises (Section 29):

  1. B
  2. A
  3. D
  4. C
  5. G
  6. E
  7. F
  8. H
  9. I
  10. J

39. Key Takeaways

  • πŸ”Ή Continuous Delivery keeps software always ready to release. A human decides when to release.
  • πŸ”Ή Continuous Deployment automatically releases software to users. No human approval needed.
  • πŸ”Ή The CI/CD pipeline automates everything from code to release.
  • πŸ”Ή Deployment strategies include rolling updates, blue-green deployments, and canary releases.
  • πŸ”Ή Artifacts are versioned packages ready for deployment.
  • πŸ”Ή Release governance ensures releases are safe and compliant.
  • πŸ”Ή Benefits of CD include faster releases, less risk, quick fixes, happy users, less stress, better quality, and team confidence.
  • πŸ”Ή CD is a core part of DevOps. It provides the automation for releasing software.
  • πŸ”Ή CD is used by many companies in Nigeria to deliver better software faster.
  • πŸ”Ή CI/CD is for everyone — it helps teams of all sizes deliver value to customers continuously.

40. Preparation for the Next Module

Congratulations! You have completed Module 4: "Continuous Delivery & Deployment (CD)." You now understand how CD helps teams release software quickly, safely, and automatically.

In Module 5, you will learn:

  • What is Infrastructure as Code (IaC)? You will learn how teams manage infrastructure using code.
  • Why do we need IaC? You will learn the benefits of managing infrastructure like software.
  • Declarative vs Imperative: You will learn the difference between these two approaches.
  • Immutable Infrastructure: You will learn about infrastructure that is never changed, only replaced.
  • Terraform: You will learn about a popular IaC tool called Terraform.
  • Configuration Management: You will learn about Ansible and other configuration management tools.
  • State Management: You will learn how to manage infrastructure state and detect drift.

Before you start Module 5, here are some things to think about:

  1. Think about how you manage things. How do you keep track of your belongings? IaC is about keeping track of infrastructure.
  2. Think about automation. How can you automate the creation of things? IaC automates infrastructure creation.
  3. Review what you learned. Make sure you understand CI/CD before moving on.

You are doing a fantastic job! Keep learning, keep growing, and we will see you in Module 5! πŸš€


© 2026 Certified DevOps Engineer Course • Module 4: Continuous Delivery & Deployment (CD)

6

Module Five

Module 5: Infrastructure as Code (IaC)

πŸ—οΈ Module 5: Infrastructure as Code (IaC)


1. Module Title

πŸ—οΈ Infrastructure as Code (IaC): Managing Infrastructure Like Software

Welcome to Module 5 of our Certified DevOps Engineer course! This module is called "Infrastructure as Code (IaC): Managing Infrastructure Like Software."

In this module, we will learn about Infrastructure as Code (IaC) — a practice where we manage servers, networks, and other infrastructure using code instead of manual processes. It is like writing instructions for a robot to build your infrastructure for you!

Think of IaC like having a magical recipe book. Instead of building things by hand every time, you write down the recipe. Then, whenever you need to build something, you just follow the recipe. The result is always exactly the same, every time!


2. Module Introduction

Hello and welcome back! In Module 1, we learned about DevOps. In Module 2, we learned about Git. In Module 3, we learned about Continuous Integration. In Module 4, we learned about Continuous Delivery and Deployment. Now, in Module 5, we are going to learn about Infrastructure as Code (IaC).

Imagine you are building a LEGO castle. You build it once, and it is amazing. But then you need to build it again in a different place. You have to remember all the steps. You might forget some pieces. The second castle might not look exactly the same.

Now imagine you have a set of instructions that tell you exactly how to build the castle. Every time you follow the instructions, the castle looks exactly the same. That is what Infrastructure as Code does for servers and networks!

In this module, we will learn all about IaC — what it is, why it is important, how it works, and what tools teams use to implement it. We will use simple words, fun stories, and lots of examples.

So, are you ready? Let us dive in and discover how teams manage infrastructure with code!


3. Learning Objectives

By the time you finish this module, you will be able to:

  • Explain what Infrastructure as Code (IaC) is in your own simple words.
  • Understand why IaC is important for DevOps.
  • Describe the difference between declarative and imperative approaches.
  • Explain what immutable infrastructure means.
  • Understand what Terraform is and how it works.
  • Explain what configuration management is and how Ansible works.
  • Understand state management and drift detection.
  • Identify the benefits of IaC.
  • Give examples of how IaC is used in real projects.
  • Feel excited to learn more about IaC!

4. Warm-up Story

The Magic Recipe Book

Once upon a time, in a busy city in Nigeria called Lagos, there was a company called "TechBuild Solutions." They built websites and apps for other companies. Every time they got a new customer, they had to set up servers, install software, and configure networks.

The problem was that every setup was done manually. A person would sit at a computer and type commands, click buttons, and configure everything by hand. This took a long time. Sometimes they made mistakes. Different people set things up differently. It was like building a LEGO castle without instructions — every castle looked a little bit different.

One day, a clever engineer named Mr. Ade had an idea. He said, "What if we write down all the steps for setting up a server? What if we save it in a file and run it whenever we need a new server?"

Mr. Ade created a magic recipe book — a set of files that described exactly how to set up a server. When they needed a new server, they just ran the recipe. The computer would read the instructions and set everything up automatically.

Now, every server was exactly the same. Setting up a new server took minutes instead of hours. They never made mistakes. TechBuild Solutions grew and became one of the most successful companies in Nigeria.

This story shows us how powerful it is to manage infrastructure with code. That is exactly what Infrastructure as Code (IaC) does! Let us learn more.


5. Main Lessons

Lesson 1: What is Infrastructure as Code (IaC)?

Definition

Infrastructure as Code (IaC) is a practice where you manage your servers, networks, and other infrastructure using code instead of manual processes. You write instructions in a file, and a computer follows those instructions to build your infrastructure.

Why is it Important?

IaC is important because it makes infrastructure setup fast, consistent, and repeatable. Instead of doing things by hand, you automate everything. This saves time, reduces mistakes, and makes everything predictable.

Simple Explanation

Imagine you are baking a cake. You have two ways to do it:

  • Manual Way: You try to remember all the ingredients and steps. You might forget something. The cake might not turn out the same every time.
  • IaC Way: You write down the recipe. Every time you bake, you follow the recipe. The cake is always perfect and exactly the same.

IaC is like having a written recipe for your infrastructure!

Real-life Example

A company uses IaC to set up their servers. They have a file that describes exactly what each server should look like. When they need a new server, they run the file, and the server is created automatically.

School Example

Your class has a science experiment. The teacher gives you written instructions. Every time you do the experiment, you follow the instructions and get the same result. IaC is like having those written instructions.

Home Example

Your family has a recipe for your favorite meal. Every time you cook it, you follow the recipe and it tastes great. IaC is like that recipe but for servers.

Nigerian Example

A Nigerian company uses IaC to set up their cloud infrastructure. They have code that creates servers, databases, and networks automatically. They can set up a complete environment in minutes.

Illustration

    INFRASTRUCTURE AS CODE (IaC)

    MANUAL WAY:
    +--------------------------------------------------+
    |  Person types commands                           |
    |  Person configures servers                      |
    |  Person installs software                       |
    |  Slow, error-prone, inconsistent                |
    +--------------------------------------------------+

    IaC WAY:
    +--------------------------------------------------+
    |  Code File (Recipe)                              |
    |  +-------------------------------------------+    |
    |  |  server {                                |    |
    |  |    type = "web"                          |    |
    |  |    size = "medium"                       |    |
    |  |    software = ["nginx", "php"]          |    |
    |  |  }                                      |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  Computer reads code and builds infrastructure    |
    |  +-------------------------------------------+    |
    |  |  Fast, consistent, repeatable              |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ IaC = Infrastructure managed like software!   |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Infrastructure as Code (IaC) is a practice where you manage infrastructure using code. It makes setup fast, consistent, and repeatable. It is like having a recipe for your servers.


Lesson 2: Why Do We Need IaC?

Definition

Why we need IaC: We need IaC because the manual way of managing infrastructure has many problems. It is slow, error-prone, and inconsistent. IaC solves all these problems.

Why is it Important?

Understanding why we need IaC helps us appreciate how much better it is to manage infrastructure with code. It shows us the problems that IaC solves.

Simple Explanation

Imagine you are trying to build a treehouse. You have two ways:

  • Manual Way: You build it without any plans. You guess where to put the nails. You forget some steps. It takes a long time. It might not be safe.
  • IaC Way: You have a set of instructions. You follow them step by step. The treehouse is built perfectly every time.

IaC is like having those instructions!

Problems Without IaC

Problem What It Means IaC Solution
Slow Setup Setting up servers takes hours or days IaC does it in minutes
Human Errors People make mistakes when typing commands Code is consistent and error-free
Inconsistency Servers are set up differently each time Every server is exactly the same
Hard to Reproduce If a server breaks, it is hard to rebuild it Run the code and rebuild instantly
No History No one knows what changes were made Changes are tracked in code (Git)

Real-life Example

A company used to take 3 days to set up a new server. They made mistakes all the time. After adopting IaC, they set up a server in 5 minutes with no mistakes.

School Example

Your class is doing a group project. Without a plan, everyone does things differently. With a plan (like IaC), everyone follows the same instructions and the project is consistent.

Home Example

Your family is planning a party. Without a checklist, you might forget something. With a checklist (like IaC), you do everything correctly every time.

Nigerian Example

A Nigerian company used to spend days setting up infrastructure for new clients. With IaC, they now do it in minutes. They can serve more clients and grow faster.

Illustration

    WHY WE NEED IAC

    WITHOUT IAC:
    +--------------------------------------------------+
    |  ❌ Slow setup (hours or days)                   |
    |  ❌ Human errors                                |
    |  ❌ Inconsistent servers                        |
    |  ❌ Hard to reproduce                          |
    |  ❌ No history of changes                      |
    +--------------------------------------------------+

    WITH IAC:
    +--------------------------------------------------+
    |  βœ… Fast setup (minutes)                        |
    |  βœ… No human errors                            |
    |  βœ… Consistent servers                         |
    |  βœ… Easy to reproduce                          |
    |  βœ… Full history of changes                     |
    +--------------------------------------------------+
    

Mini Summary

We need IaC because manual infrastructure management is slow, error-prone, and inconsistent. IaC solves all these problems by automating everything with code.


Lesson 3: Declarative vs Imperative

Definition

Declarative and Imperative are two ways of writing IaC code. They describe how you tell the computer what to do.

Why is it Important?

Understanding the difference helps you choose the right approach for your project. Each approach has its own strengths and weaknesses.

Simple Explanation

Imagine you are ordering food at a restaurant:

  • Declarative: You say "I want a pizza." You don't care how the chef makes it. You just want the pizza.
  • Imperative: You say "Take the dough, roll it, add sauce, add cheese, and bake it for 10 minutes." You tell the chef exactly how to do it.

Declarative vs Imperative Comparison

Aspect Declarative Imperative
What You Do Say what you want, not how to do it Say exactly how to do it
Example "I want a server with 4GB RAM and Ubuntu." "Install Ubuntu, create a user, set up networking..."
Focus On the final result (what) On the steps (how)
Complexity Easier to read and understand More detailed and complex
Tools Terraform, CloudFormation Ansible (can be both), scripts

Real-life Example

A company uses Terraform (declarative) to set up servers. They write: "I want 3 web servers, 2 databases, and 1 load balancer." Terraform figures out the steps to make it happen.

School Example

Your teacher gives you a project. Declarative is like the teacher saying "I want a report on the environment" without telling you how to write it. Imperative is like the teacher saying "Write an introduction, then three paragraphs, then a conclusion."

Home Example

Your parents say "Please clean the living room." That is declarative. They do not tell you exactly how to clean it. They just want it clean.

Nigerian Example

A Nigerian company uses Terraform (declarative) for their infrastructure. They describe what they want, and Terraform makes it happen. This is simpler and easier to maintain.

Illustration

    DECLARATIVE VS IMPERATIVE

    DECLARATIVE (What):
    +--------------------------------------------------+
    |  "I want a server with:                          |
    |    - 4GB RAM                                    |
    |    - Ubuntu OS                                  |
    |    - Nginx installed"                           |
    |                                                   |
    |  βœ… Focus on the final result                    |
    |  βœ… Easier to read and understand                |
    +--------------------------------------------------+

    IMPERATIVE (How):
    +--------------------------------------------------+
    |  Step 1: Download Ubuntu                         |
    |  Step 2: Install Ubuntu                          |
    |  Step 3: Install Nginx                          |
    |  Step 4: Configure Nginx                       |
    |  Step 5: Start Nginx                           |
    |                                                   |
    |  βœ… Gives exact instructions                      |
    |  βœ… More control                                 |
    +--------------------------------------------------+
    

Mini Summary

Declarative says what you want; Imperative says how to do it. Declarative is easier to read and maintain. Imperative gives more control.


Lesson 4: Immutable Infrastructure

Definition

Immutable infrastructure means that infrastructure is never changed after it is created. Instead of making changes to a server, you create a new server with the changes and replace the old one.

Why is it Important?

Immutable infrastructure is important because it prevents "configuration drift." When you make changes to a server over time, it becomes different from other servers. Immutable infrastructure keeps everything exactly the same.

Simple Explanation

Imagine you have a toy car. Instead of fixing it when it breaks, you build a new one and throw the old one away. You never change the car — you always start fresh. Immutable infrastructure is like that for servers!

Mutable vs Immutable

Aspect Mutable Infrastructure Immutable Infrastructure
Changes Changes are made to existing servers New servers are created for changes
Consistency Servers drift apart over time Servers are always identical
Fixing Problems Fix the problem on the server Create a new server and replace it
Risk Changes can break things Always start from a known good state
Example Updating a server with new software Creating a new server with the new software

Real-life Example

A company uses immutable infrastructure. When they need to update software, they create a new server with the updated software, test it, and then switch traffic to the new server. The old server is turned off.

School Example

Instead of fixing a broken pencil, you get a new one. Immutable infrastructure is like getting a new pencil instead of fixing the old one.

Home Example

Instead of trying to fix a broken plate, you buy a new one. Immutable infrastructure is like buying a new plate instead of fixing the broken one.

Nigerian Example

A Nigerian company uses immutable infrastructure. When they need to update their website, they create new servers with the new code, test them, and switch traffic. This makes their website very reliable.

Illustration

    IMMUTABLE INFRASTRUCTURE

    MUTABLE (Changes on existing server):
    +--------------------------------------------------+
    |  Server 1: Original                              |
    |  Update β†’ Server 1: Changed                     |
    |  Update β†’ Server 1: Changed again               |
    |  Result: Server is different from others        |
    +--------------------------------------------------+

    IMMUTABLE (Create new server for changes):
    +--------------------------------------------------+
    |  Server 1: Original                              |
    |  Update β†’ Create Server 2: Changed              |
    |  Update β†’ Create Server 3: Changed again        |
    |  Result: All servers are identical              |
    +--------------------------------------------------+

    πŸ”‘ Immutable = Never change, always replace!
    

Mini Summary

Immutable infrastructure means never changing servers after they are created. Instead, you create new servers with changes and replace the old ones. This keeps everything consistent and reliable.


Lesson 5: Introduction to Terraform

Definition

Terraform is a popular IaC tool created by HashiCorp. It lets you define your infrastructure in code and create, update, and delete it automatically. Terraform is declarative — you say what you want, and Terraform figures out how to do it.

Why is it Important?

Terraform is important because it works with almost any cloud provider (AWS, Azure, Google Cloud) and many other services. It is one of the most popular IaC tools in the world.

Simple Explanation

Imagine Terraform as a magical building machine. You give it a blueprint (your code), and it builds exactly what you asked for. If you change the blueprint, Terraform figures out what changed and updates only those parts.

Key Features of Terraform

  • Declarative: You say what you want, not how to do it.
  • Multi-Cloud: Works with AWS, Azure, Google Cloud, and many others.
  • State Management: Terraform keeps track of what it has created.
  • Plan: Terraform shows you what it will do before it does it.
  • Apply: Terraform creates or updates the infrastructure.
  • Destroy: Terraform deletes the infrastructure.

Real-life Example

A company uses Terraform to manage their AWS infrastructure. They have a file that describes their servers, databases, and networks. When they need to make a change, they update the file and run Terraform. Terraform makes the changes automatically.

School Example

Your class has a robot that builds dioramas. You give the robot a drawing of what you want, and it builds it. Terraform is like that robot but for servers.

Home Example

You have a 3D printer. You give it a design file, and it prints the object. Terraform is like a 3D printer for infrastructure.

Nigerian Example

A Nigerian company uses Terraform to manage their cloud infrastructure on AWS. They have all their infrastructure defined in code. They can create, update, and delete infrastructure with a single command.

Illustration

    TERRAFORM

    +--------------------------------------------------+
    |  Terraform Code (main.tf)                        |
    |  +-------------------------------------------+    |
    |  |  resource "aws_instance" "web" {          |    |
    |  |    ami = "ami-12345"                     |    |
    |  |    instance_type = "t2.micro"            |    |
    |  |  }                                      |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  Terraform Commands:                              |
    |  +-------------------------------------------+    |
    |  |  terraform init    β†’ Sets up Terraform    |    |
    |  |  terraform plan    β†’ Shows what will change |    |
    |  |  terraform apply   β†’ Creates infrastructure|    |
    |  |  terraform destroy β†’ Deletes infrastructure|    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  Infrastructure Created!                         |
    |  +-------------------------------------------+    |
    |  |  ☁️ AWS: 1 web server running!             |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Terraform = Infrastructure as Code tool!      |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Terraform is a popular IaC tool that lets you define infrastructure in code. It is declarative, works with multiple clouds, and has commands to plan, apply, and destroy infrastructure.


Lesson 6: Terraform State Management

Definition

Terraform state is a file that keeps track of all the infrastructure Terraform has created. It is like a map that tells Terraform what resources exist.

Why is it Important?

State is important because Terraform needs to know what it has created. Without state, Terraform would not know what to update or delete. State makes Terraform smart and efficient.

Simple Explanation

Imagine you are building a LEGO castle. You have a list of all the pieces you used. When you want to change something, you look at the list to know what to change. Terraform state is like that list for your infrastructure.

State Management Options

Option Description Best For
Local State State is stored on your computer Learning and testing
Remote State State is stored in the cloud (S3, Azure Storage, etc.) Teams and production
State Locking Prevents two people from changing state at the same time Teams working together

Real-life Example

A company stores their Terraform state in an AWS S3 bucket. This way, all team members can access the state. They also use state locking so two people do not make changes at the same time.

School Example

Your class has a shared project folder. Everyone can see it, and only one person can edit at a time. Terraform state is like that shared folder.

Home Example

Your family has a shared shopping list. Everyone can see it, and only one person can add to it at a time. Terraform state is like that shopping list.

Nigerian Example

A Nigerian company stores their Terraform state in the cloud. This means their team in Lagos and their team in Abuja can both work on the same infrastructure. State locking prevents conflicts.

Illustration

    TERRAFORM STATE

    +--------------------------------------------------+
    |  TERRAFORM STATE FILE                            |
    |  +-------------------------------------------+    |
    |  |  {                                       |    |
    |  |    "resources": [                        |    |
    |  |      {                                  |    |
    |  |        "type": "aws_instance",          |    |
    |  |        "id": "i-12345",                |    |
    |  |        "name": "web-server"            |    |
    |  |      }                                  |    |
    |  |    ]                                    |    |
    |  |  }                                      |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  Local State:                                    |
    |  +-------------------------------------------+    |
    |  |  Stored on your computer                  |    |
    |  |  Good for learning                         |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  Remote State:                                    |
    |  +-------------------------------------------+    |
    |  |  Stored in the cloud (S3, Azure)          |    |
    |  |  Shared by team                           |    |
    |  |  State locking prevents conflicts         |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ State is Terraform's memory!                  |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Terraform state is a file that keeps track of what Terraform has created. It can be stored locally or remotely. Remote state is best for teams.


Lesson 7: Configuration Management with Ansible

Definition

Configuration Management is the practice of managing the configuration of servers and software. Ansible is a popular tool for configuration management that is simple and powerful.

Why is it Important?

Configuration management is important because it ensures that all servers are configured correctly and consistently. Without it, servers can drift apart and cause problems.

Simple Explanation

Imagine you have 100 computers that all need to have the same software installed. Doing it manually would take forever. Ansible is like a robot that installs the software on all 100 computers at the same time!

Key Features of Ansible

  • Agentless: You do not need to install anything on the target servers.
  • Simple: Uses YAML, which is easy to read and write.
  • Idempotent: Running the same playbook multiple times does not cause problems.
  • Powerful: Can manage thousands of servers.
  • Push-based: You push changes to the servers from your control machine.

Real-life Example

A company uses Ansible to install Nginx, PHP, and other software on all their web servers. They have a playbook that describes what to install, and Ansible does it automatically.

School Example

Your teacher uses a checklist to make sure every student has the same supplies. Ansible is like that checklist but for servers.

Home Example

Your family has a checklist for packing for a trip. Everyone follows the checklist so nothing is forgotten. Ansible is like that checklist but for servers.

Nigerian Example

A Nigerian company uses Ansible to configure their servers. They have a playbook that sets up all the software they need. They can configure a new server in minutes.

Illustration

    ANSIBLE

    +--------------------------------------------------+
    |  Ansible Control Machine                         |
    |  +-------------------------------------------+    |
    |  |  Inventory (list of servers)             |    |
    |  |  Playbook (what to do)                   |    |
    |  |  ─────────────────────────────────────     |    |
    |  |  - name: Install Nginx                   |    |
    |  |    apt:                                  |    |
    |  |      name: nginx                         |    |
    |  |      state: present                      |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  Servers (No agent needed!)                      |
    |  +-------------------------------------------+    |
    |  |  Server 1: Nginx installed                |    |
    |  |  Server 2: Nginx installed                |    |
    |  |  Server 3: Nginx installed                |    |
    |  |  ...                                      |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Ansible = Simple, agentless configuration!    |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Ansible is a configuration management tool that installs and configures software on servers. It is agentless, simple, and powerful.


Lesson 8: Terraform vs Ansible

Definition

Terraform and Ansible are both IaC tools, but they do different things. Terraform is for provisioning infrastructure (creating servers, networks, etc.). Ansible is for configuring infrastructure (installing software, setting up files, etc.).

Why is it Important?

Understanding the difference helps you choose the right tool for the right job. Many teams use both tools together.

Simple Explanation

Imagine you are building a house. Terraform is like the construction company that builds the house. Ansible is like the interior designer that furnishes and decorates the house. Both are needed for a complete home.

Terraform vs Ansible Comparison

Aspect Terraform Ansible
Primary Use Provisioning infrastructure Configuring infrastructure
What It Creates Servers, networks, databases Software, files, users
Approach Declarative Declarative or Imperative
State Uses state files Does not use state files
Agent No agent needed No agent needed
Best For Creating infrastructure Configuring servers

Real-life Example

A company uses Terraform to create AWS servers and Ansible to configure those servers with the right software. They work together perfectly.

School Example

Terraform is like building the classroom. Ansible is like putting up the posters and arranging the desks.

Home Example

Terraform is like building a house. Ansible is like moving in the furniture and decorating.

Nigerian Example

A Nigerian company uses Terraform to create servers on AWS. Then they use Ansible to install their application on those servers. This gives them complete automation.

Illustration

    TERRAFORM VS ANSIBLE

    TERRAFORM:
    +--------------------------------------------------+
    |  Provisions infrastructure                        |
    |  Creates servers, networks, databases            |
    |  "Build the house"                              |
    |                                                   |
    |  Example:                                        |
    |  resource "aws_instance" "web" {                 |
    |    ami = "ami-12345"                             |
    |    instance_type = "t2.micro"                    |
    |  }                                              |
    +--------------------------------------------------+

    ANSIBLE:
    +--------------------------------------------------+
    |  Configures infrastructure                        |
    |  Installs software, configures files             |
    |  "Furnish the house"                             |
    |                                                   |
    |  Example:                                        |
    |  - name: Install Nginx                           |
    |    apt:                                          |
    |      name: nginx                                 |
    |      state: present                              |
    +--------------------------------------------------+

    πŸ”‘ Terraform builds, Ansible configures!
    

Mini Summary

Terraform provisions infrastructure; Ansible configures it. Terraform builds the servers, and Ansible sets up the software. Many teams use both together.


Lesson 9: Benefits of IaC

Definition

The benefits of IaC are all the good things that happen when a team uses Infrastructure as Code. These include faster setup, fewer errors, and more consistency.

Why is it Important?

Understanding the benefits helps us see why IaC is so valuable. It helps us understand why so many teams are adopting IaC.

Simple Explanation

Imagine you have a magic wand that builds servers instantly, perfectly, and exactly the same every time. IaC is like having that magic wand!

Key Benefits of IaC

Benefit What It Means
Speed Infrastructure is created in minutes, not hours or days
Consistency Every server is exactly the same
Reliability Fewer errors because everything is automated
Reproducibility Can rebuild infrastructure anytime
Version Control Changes are tracked in Git
Cost Savings Less time spent on manual tasks
Team Collaboration Everyone works from the same code

Real-life Example

A company adopted IaC. Before, setting up a new environment took 2 days. After IaC, it took 5 minutes. They saved thousands of hours per year.

School Example

Your class uses a template for assignments. Everyone follows the same format, so grading is easier. IaC is like that template but for infrastructure.

Home Example

Your family has a checklist for guests. Everyone follows the checklist so nothing is forgotten. IaC is like that checklist but for servers.

Nigerian Example

A Nigerian company adopted IaC. They went from spending days setting up servers to minutes. They saved money and could serve more customers.

Illustration

    THE BENEFITS OF IAC

    +--------------------------------------------------+
    |                                                   |
    |  ⚑ SPEED                                        |
    |     Infrastructure in minutes                     |
    |                                                   |
    |  βœ… CONSISTENCY                                   |
    |     Every server is identical                     |
    |                                                   |
    |  πŸ”’ RELIABILITY                                   |
    |     Fewer errors                                 |
    |                                                   |
    |  πŸ”„ REPRODUCIBILITY                              |
    |     Rebuild anytime                              |
    |                                                   |
    |  πŸ“ VERSION CONTROL                               |
    |     Changes tracked in Git                       |
    |                                                   |
    |  πŸ’° COST SAVINGS                                  |
    |     Less manual work                             |
    |                                                   |
    |  🀝 TEAM COLLABORATION                           |
    |     Everyone works from the same code            |
    |                                                   |
    |  ALL BECAUSE OF IAC! πŸŽ‰                          |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

IaC has many benefits. It leads to speed, consistency, reliability, reproducibility, version control, cost savings, and team collaboration.


Lesson 10: IaC and DevOps

Definition

IaC and DevOps: IaC is a core part of DevOps. It provides the automation for managing infrastructure, which is essential for the fast delivery of software.

Why is it Important?

IaC and DevOps work together to help teams deliver software faster and more reliably. IaC provides the automation, and DevOps provides the culture and processes.

Simple Explanation

Imagine DevOps is a car. IaC is the engine that powers the car. Without IaC, DevOps would be slow and inefficient. With IaC, DevOps moves quickly and smoothly.

How IaC Supports DevOps

  • Automation: IaC automates infrastructure management, a key DevOps principle.
  • Consistency: IaC ensures all environments are the same, reducing "works on my machine" problems.
  • Speed: IaC enables fast provisioning, supporting rapid delivery.
  • Collaboration: IaC code is stored in Git, enabling collaboration between teams.
  • Quality: IaC reduces errors and improves reliability.

Real-life Example

A company uses DevOps practices including IaC. Their infrastructure is defined in code, managed in Git, and deployed automatically. This allows them to deliver software quickly and reliably.

School Example

Your school has a system for managing resources. IaC is like the part that automatically allocates resources. DevOps is the whole system including planning, execution, and review.

Home Example

Your family has a system for managing the household. IaC is like the automated system that orders supplies. DevOps is the whole system including planning, budgeting, and chores.

Nigerian Example

A Nigerian company uses DevOps and IaC. IaC is the engine that powers their DevOps pipeline. Without IaC, their DevOps would be slower and less reliable.

Illustration

    IAC AND DEVOPS

    +--------------------------------------------------+
    |                                                   |
    |  DEVOPS = CULTURE + TOOLS + PROCESSES             |
    |  +-------------------------------------------+    |
    |  |  πŸ“‹ Plan                                 |    |
    |  |  πŸ’» Code                                 |    |
    |  |  πŸ—οΈ Build                               |    |
    |  |  βœ… Test                                 |    |
    |  |  πŸš€ Release                             |    |
    |  |  πŸ”„ Deploy ← IaC is here!               |    |
    |  |  πŸ“Š Operate ← IaC is here!              |    |
    |  |  πŸ‘€ Monitor                             |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  IAC IS A CORE PART OF DEVOPS                     |
    |  +-------------------------------------------+    |
    |  |  βœ… IaC automates infrastructure          |    |
    |  |  βœ… IaC ensures consistency               |    |
    |  |  βœ… IaC enables speed                     |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ IaC + DevOps = Powerful infrastructure!       |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

IaC is a core part of DevOps. It provides the automation for managing infrastructure. Together, IaC and DevOps help teams deliver software quickly and reliably.


Lesson 11: What We Have Learned So Far

Definition

In this lesson, we will review everything we have learned about Infrastructure as Code. This will help us remember the most important ideas.

Why is it Important?

Reviewing helps us remember what we have learned. When we keep information in our brains, we can use it later.

Simple Explanation

Let us think back to everything we have talked about in this module:

  • What is IaC? Infrastructure as Code is a practice where you manage infrastructure using code.
  • Why do we need IaC? Because manual infrastructure management is slow, error-prone, and inconsistent.
  • Declarative vs Imperative: Declarative says what you want; Imperative says how to do it.
  • Immutable Infrastructure: Never change servers; always create new ones.
  • Terraform: A tool that provisions infrastructure.
  • Terraform State: A file that tracks what Terraform has created.
  • Configuration Management: Managing server configuration with tools like Ansible.
  • Terraform vs Ansible: Terraform builds servers; Ansible configures them.
  • Benefits of IaC: Speed, consistency, reliability, reproducibility, version control, cost savings, and collaboration.
  • IaC and DevOps: IaC is a core part of DevOps.

Real-life Example

A team has learned all these concepts. They use Terraform to provision servers and Ansible to configure them. Their infrastructure is managed entirely in code.

School Example

Your class has learned about IaC. They understand the importance of having a plan (code) for building things.

Home Example

Your family has learned about IaC. They understand the importance of having checklists and recipes for consistency.

Nigerian Example

A Nigerian developer has learned all these IaC concepts. They can now manage infrastructure with code and help their company deliver better software.

Illustration

    WHAT WE HAVE LEARNED

    +--------------------------------------------------+
    |                                                   |
    |  πŸ“Œ IaC = Infrastructure managed with code       |
    |  πŸ“Œ IaC is faster, consistent, and reliable      |
    |  πŸ“Œ Declarative = What; Imperative = How         |
    |  πŸ“Œ Immutable = Never change, always replace     |
    |  πŸ“Œ Terraform = Provision infrastructure         |
    |  πŸ“Œ Terraform state = Track what is created      |
    |  πŸ“Œ Ansible = Configure servers                  |
    |  πŸ“Œ Benefits: speed, consistency, reliability    |
    |  πŸ“Œ IaC is a core part of DevOps                 |
    |                                                   |
    |  YOU ARE NOW AN IAC BEGINNER! πŸŽ‰                 |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

We have learned many things about Infrastructure as Code. IaC helps teams manage infrastructure quickly, consistently, and reliably. It is a core part of DevOps.


6. Key Vocabulary

Here are the important words we learned in this module. Each word has a simple definition to help you remember it.

Word Simple Definition
Infrastructure as Code (IaC) Managing infrastructure using code instead of manual processes
Declarative Saying what you want, not how to do it
Imperative Saying exactly how to do something
Immutable Infrastructure Never changing servers; always creating new ones
Mutable Infrastructure Making changes to existing servers
Terraform A tool that provisions infrastructure (creates servers, etc.)
Terraform State A file that tracks what Terraform has created
Configuration Management Managing server configuration and software
Ansible A configuration management tool
Playbook An Ansible file that describes what to configure
Provisioning Creating infrastructure (servers, networks, etc.)
Configuration Setting up software and files on servers
Drift When servers become different from each other
State Locking Preventing two people from changing state at the same time
Idempotent Running the same code multiple times does not cause problems

7. Important Concepts

Here are the most important concepts from this module. These are the big ideas that will help you understand Infrastructure as Code.

  1. IaC manages infrastructure with code. Instead of manual processes, you write code to create, update, and delete infrastructure. This makes everything faster and more reliable.

  2. Declarative is easier to maintain. Declarative says what you want, not how to do it. This is simpler and easier to understand.

  3. Immutable infrastructure is more reliable. By never changing servers, you avoid configuration drift. Everything is consistent.

  4. Terraform provisions infrastructure. Terraform creates servers, networks, and other infrastructure. It is declarative and works with many cloud providers.

  5. Ansible configures infrastructure. Ansible installs software and sets up configurations on servers. It is simple and agentless.

  6. IaC is a core part of DevOps. IaC provides the automation for managing infrastructure, which is essential for fast and reliable software delivery.


8. Step-by-Step Explanations

Let us look at how to set up IaC in simple steps:

Step 1: Choose Your IaC Tools

Decide which tools to use. Terraform for provisioning and Ansible for configuration are a common combination.

Step 2: Write Your Code

Write your IaC code. For Terraform, you create .tf files. For Ansible, you create playbooks (YAML files).

Step 3: Store Code in Git

Store your IaC code in a Git repository. This gives you version control and collaboration.

Step 4: Run Terraform to Provision

Run Terraform commands: terraform init (setup), terraform plan (preview), terraform apply (create infrastructure).

Step 5: Run Ansible to Configure

Run Ansible to configure your servers. Use ansible-playbook to run your playbooks.

Step 6: Maintain and Update

When you need to make changes, update your code and run the tools again. Terraform will update infrastructure, and Ansible will update configurations.

Illustration

    STEP-BY-STEP: SETTING UP IAC

    Step 1: CHOOSE TOOLS
    +-------------------+
    |  Terraform +      |
    |  Ansible          |
    +-------------------+
           |
           V
    Step 2: WRITE CODE
    +-------------------+
    |  .tf files for    |
    |  Terraform        |
    |  Playbooks for    |
    |  Ansible          |
    +-------------------+
           |
           V
    Step 3: STORE IN GIT
    +-------------------+
    |  Push code to     |
    |  Git repository   |
    +-------------------+
           |
           V
    Step 4: RUN TERRAFORM
    +-------------------+
    |  terraform init   |
    |  terraform plan   |
    |  terraform apply  |
    +-------------------+
           |
           V
    Step 5: RUN ANSIBLE
    +-------------------+
    |  ansible-playbook |
    |  playbook.yml     |
    +-------------------+
           |
           V
    Step 6: MAINTAIN
    +-------------------+
    |  Update code,     |
    |  re-run tools     |
    +-------------------+
    

9. Real-life Examples

Example 1: The E-commerce Company

An e-commerce company uses Terraform to manage their AWS infrastructure. They have code that defines their servers, databases, and load balancers. When they need to scale, they just update the code and run Terraform.

Example 2: The Mobile App Team

A mobile app team uses Ansible to configure their servers. They have playbooks that install the app, set up the database, and configure monitoring. New servers are configured automatically.

Example 3: The Banking System

A bank uses immutable infrastructure. When they need to update their system, they create new servers with the updates and switch traffic. This makes their system very reliable.


10. Nigerian Examples

Example 1: Flutterwave

Flutterwave uses Terraform to manage their cloud infrastructure. They have their entire infrastructure defined in code. This helps them scale quickly and reliably.

Example 2: Paystack

Paystack uses Ansible to configure their servers. They have playbooks that set up their payment processing software. This ensures every server is configured correctly.

Example 3: Nigerian Tech Startup

A Nigerian tech startup uses both Terraform and Ansible. Terraform creates their servers on AWS, and Ansible configures them. This gives them complete automation from scratch to running application.


11. Fun Examples Children Can Relate To

Example 1: The LEGO Castle

You are building a LEGO castle. Instead of guessing, you have instructions. Every time you build it, it looks exactly the same. IaC is like having those instructions.

Example 2: The Recipe Book

You are baking cookies. You have a recipe book. Every time you bake, you follow the recipe and the cookies are perfect. IaC is like having that recipe book.

Example 3: The Checklist

You are packing for a trip. You have a checklist. Every time you pack, you follow the checklist and never forget anything. IaC is like having that checklist.


12. Everyday Examples

Example 1: The Grocery List

Your family has a grocery list. Every time you go shopping, you follow the list. IaC is like that list but for servers.

Example 2: The School Timetable

Your school has a timetable. Every day follows the same schedule. IaC is like that timetable but for infrastructure.

Example 3: The Family Budget

Your family has a budget. Every month, you follow the budget. IaC is like that budget but for infrastructure.


13. Teacher Notes

For Teachers: This module is designed to be accessible for students of all ages. Here are some tips for teaching this module:

  • Use the story: The warm-up story about TechBuild Solutions is a great way to introduce the topic. Ask students how they would feel if they had to build the same thing over and over.
  • Encourage discussion: Ask students if they have ever had to repeat the same task multiple times. This helps them understand why automation is important.
  • Use the illustrations: The ASCII diagrams are simple and visual. They help students understand complex ideas easily.
  • Group activities: Have students simulate IaC with physical activities. One group writes "code" (instructions) and another group follows it.
  • Relate to Nigerian examples: The Nigerian examples help students see how IaC is relevant to their own country.
  • Review key vocabulary: Use the vocabulary table to help students remember important terms.
  • Use the exercises: The end-of-module exercises help reinforce learning.

14. Parent Tips

For Parents: Your child is learning about Infrastructure as Code. Here are some tips to support their learning:

  • Discuss instructions: Talk to your child about how you follow instructions in your own life. This could be recipes, assembly instructions, or checklists.
  • Ask about IaC: Ask your child what they learned about IaC. This will help them remember and understand the material better.
  • Relate to everyday life: Point out examples of using instructions in everyday life. Recipes, assembly instructions, checklists, etc.
  • Encourage curiosity: If your child asks questions about IaC, take the time to answer them.
  • Celebrate learning: Praise your child for completing this module. Learning about IaC is an important skill for the future.

15. Interesting Facts

  • Fact 1: The term "Infrastructure as Code" was first used in 2009 by a man named Jesse Robbins. It has become one of the most important practices in DevOps.
  • Fact 2: Terraform was created by HashiCorp in 2014. It has become one of the most popular IaC tools in the world.
  • Fact 3: Ansible was created in 2012 and was acquired by Red Hat in 2015. It is used by thousands of companies worldwide.
  • Fact 4: Companies that use IaC can provision infrastructure 100 times faster than companies that do not use IaC.
  • Fact 5: Netflix uses immutable infrastructure extensively. They create new servers for every change, making their system incredibly reliable.
  • Fact 6: Many Nigerian companies are now adopting IaC. It is helping them compete with international companies.

16. Did You Know?

  • Did you know? IaC can be used for more than just servers. It can also manage networks, databases, and even security settings.
  • Did you know? Terraform can work with over 1,000 different providers, including AWS, Azure, Google Cloud, and many more.
  • Did you know? Ansible uses a language called YAML, which is very easy to read. It looks almost like a simple checklist.
  • Did you know? IaC code can be tested just like software code. You can run tests to make sure your infrastructure code works correctly.
  • Did you know? Some companies use IaC to manage their entire infrastructure. They have no manual processes at all. Everything is done with code.
  • Did you know? IaC can save companies millions of naira by reducing errors and speeding up processes.

17. Remember This

  • πŸ”Ή IaC manages infrastructure with code.
  • πŸ”Ή IaC is faster, consistent, and reliable than manual processes.
  • πŸ”Ή Declarative says what you want. Imperative says how to do it.
  • πŸ”Ή Immutable infrastructure means never changing servers; always creating new ones.
  • πŸ”Ή Terraform provisions infrastructure.
  • πŸ”Ή Ansible configures infrastructure.
  • πŸ”Ή Benefits of IaC include speed, consistency, reliability, reproducibility, version control, cost savings, and collaboration.
  • πŸ”Ή IaC is a core part of DevOps.

18. Common Mistakes

  1. Mistake 1: Not using version control.

    IaC code should be stored in Git. Without version control, you lose history and collaboration.

  2. Mistake 2: Hard-coding values.

    Hard-coding values (like IP addresses) makes your code brittle. Use variables and configuration files instead.

  3. Mistake 3: Not using state locking.

    When using remote state, always use state locking. This prevents conflicts when multiple people are working.

  4. Mistake 4: Not testing your code.

    IaC code should be tested. Use tools like Terratest to test your Terraform code.

  5. Mistake 5: Using mutable infrastructure for everything.

    Immutable infrastructure is better for most use cases. Only use mutable when you have a specific reason.

  6. Mistake 6: Not planning before applying.

    Always run terraform plan before terraform apply. This shows you what will change before you actually do it.


19. Best Practices

  1. Use version control.

    Store all your IaC code in Git. This gives you history, collaboration, and rollback capabilities.

  2. Use variables.

    Avoid hard-coding values. Use variables and configuration files to make your code reusable.

  3. Use remote state with locking.

    Store your Terraform state remotely and use state locking. This enables team collaboration and prevents conflicts.

  4. Plan before applying.

    Always run terraform plan first to see what will change. This helps you avoid surprises.

  5. Use immutable infrastructure.

    Prefer immutable infrastructure for most use cases. It is more reliable and consistent.

  6. Test your code.

    Test your IaC code just like you test application code. This helps you catch problems early.

  7. Document your code.

    Add comments and documentation to your IaC code. This helps others understand what it does.


20. ASCII Illustrations

Illustration 1: IaC Pipeline

    IAC PIPELINE

    +--------------------------------------------------+
    |                                                   |
    |  CODE                                            |
    |  +-------------------------------------------+    |
    |  |  Write Terraform and Ansible code        |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  VERSION CONTROL                                |
    |  +-------------------------------------------+    |
    |  |  Store code in Git                        |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  TERRAFORM PROVISION                             |
    |  +-------------------------------------------+    |
    |  |  Create servers, networks, databases      |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  ANSIBLE CONFIGURATION                           |
    |  +-------------------------------------------+    |
    |  |  Install software, configure files        |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  INFRASTRUCTURE READY!                          |
    |  +-------------------------------------------+    |
    |  |  πŸš€ Everything is set up!                 |    |
    |  +-------------------------------------------+    |
    |                                                   |
    +--------------------------------------------------+
    

Illustration 2: Declarative vs Imperative

    DECLARATIVE VS IMPERATIVE

    DECLARATIVE:
    +--------------------------------------------------+
    |  "I want a server with:                          |
    |    - 4GB RAM                                    |
    |    - Ubuntu OS                                  |
    |    - Nginx installed"                           |
    |                                                   |
    |  βœ… Focus on result, not steps                   |
    +--------------------------------------------------+

    IMPERATIVE:
    +--------------------------------------------------+
    |  Step 1: Download Ubuntu                         |
    |  Step 2: Install Ubuntu                          |
    |  Step 3: Install Nginx                          |
    |  Step 4: Configure Nginx                       |
    |  Step 5: Start Nginx                           |
    |                                                   |
    |  βœ… Focus on exact steps                         |
    +--------------------------------------------------+
    

Illustration 3: Immutable Infrastructure

    IMMUTABLE INFRASTRUCTURE

    MUTABLE:
    +--------------------------------------------------+
    |  Server 1: Original                              |
    |  Update β†’ Server 1: Changed                     |
    |  Update β†’ Server 1: Changed again               |
    |  Result: Server is different from others        |
    +--------------------------------------------------+

    IMMUTABLE:
    +--------------------------------------------------+
    |  Server 1: Original                              |
    |  Update β†’ Create Server 2: Changed              |
    |  Update β†’ Create Server 3: Changed again        |
    |  Result: All servers are identical              |
    +--------------------------------------------------+
    

21. Comparison Tables

Table 1: Manual vs IaC

Aspect Manual IaC
Speed Slow (hours or days) Fast (minutes)
Consistency Inconsistent Consistent
Errors Many human errors Fewer errors
Reproducibility Hard to reproduce Easy to reproduce
History No history Full history in Git
Collaboration Hard to collaborate Easy to collaborate

Table 2: Terraform vs Ansible

Aspect Terraform Ansible
Primary Use Provisioning infrastructure Configuring infrastructure
What It Creates Servers, networks, databases Software, files, users
Approach Declarative Declarative or Imperative
State Uses state files Does not use state files
Agent No agent needed No agent needed

Table 3: Mutable vs Immutable

Aspect Mutable Immutable
Changes Changes made to existing servers New servers created for changes
Consistency Servers drift apart Servers are always identical
Fixing Problems Fix the problem Create new server and replace
Risk Changes can break things Always start from known good state
Example Updating a server Creating a new server

Note: Each lesson in this module already includes a "Mini Summary" section right after the lesson content. Please refer back to the lessons above to review each mini summary.


23. End-of-Module Summary

Congratulations! You have completed Module 5 of the "Certified DevOps Engineer" course. Let us review everything we have learned:

What is Infrastructure as Code?

Infrastructure as Code (IaC) is a practice where you manage infrastructure using code instead of manual processes. It makes setup fast, consistent, and repeatable.

Declarative vs Imperative

Declarative says what you want. Imperative says how to do it. Declarative is easier to read and maintain. Imperative gives more control.

Immutable Infrastructure

Immutable infrastructure means never changing servers after they are created. Instead, you create new servers with changes and replace the old ones. This keeps everything consistent and reliable.

Terraform and Ansible

Terraform provisions infrastructure (creates servers, networks, etc.). Ansible configures infrastructure (installs software, sets up files). Many teams use both together.

Benefits of IaC

IaC leads to speed, consistency, reliability, reproducibility, version control, cost savings, and team collaboration. It is a core part of DevOps.

You have now completed Module 5! You are ready to move on to Module 6, where you will learn about Containerization and Orchestration with Docker and Kubernetes. Keep up the great work!


24. Frequently Asked Questions (10 Questions)

  1. Q1: What is Infrastructure as Code?

    A: Infrastructure as Code (IaC) is a practice where you manage infrastructure using code instead of manual processes.

  2. Q2: Why is IaC important?

    A: IaC is important because it makes infrastructure setup fast, consistent, and repeatable. It saves time and reduces errors.

  3. Q3: What is the difference between declarative and imperative?

    A: Declarative says what you want. Imperative says how to do it. Declarative is easier to read and maintain.

  4. Q4: What is immutable infrastructure?

    A: Immutable infrastructure means never changing servers after they are created. You create new servers with changes and replace the old ones.

  5. Q5: What is Terraform?

    A: Terraform is a popular IaC tool that provisions infrastructure (creates servers, networks, etc.).

  6. Q6: What is Ansible?

    A: Ansible is a configuration management tool that installs software and configures servers.

  7. Q7: What is Terraform state?

    A: Terraform state is a file that keeps track of what Terraform has created. It is like Terraform's memory.

  8. Q8: What are the benefits of IaC?

    A: IaC leads to speed, consistency, reliability, reproducibility, version control, cost savings, and team collaboration.

  9. Q9: Is IaC part of DevOps?

    A: Yes, IaC is a core part of DevOps. It provides the automation for managing infrastructure.

  10. Q10: Is IaC used in Nigeria?

    A: Yes, many Nigerian companies use IaC. It is helping them deliver better software and compete globally.


25. Review Questions (15 Questions)

  1. What is Infrastructure as Code?

    Answer: Infrastructure as Code (IaC) is a practice where you manage infrastructure using code.

  2. Why do we need IaC?

    Answer: We need IaC because manual infrastructure management is slow, error-prone, and inconsistent.

  3. What is declarative?

    Answer: Declarative says what you want, not how to do it.

  4. What is imperative?

    Answer: Imperative says exactly how to do something.

  5. What is immutable infrastructure?

    Answer: Immutable infrastructure means never changing servers; always creating new ones.

  6. What is Terraform?

    Answer: Terraform is a tool that provisions infrastructure.

  7. What is Ansible?

    Answer: Ansible is a configuration management tool that configures servers.

  8. What is Terraform state?

    Answer: Terraform state is a file that tracks what Terraform has created.

  9. What is the difference between Terraform and Ansible?

    Answer: Terraform provisions infrastructure (builds servers). Ansible configures infrastructure (installs software).

  10. Name two benefits of IaC.

    Answer: Speed and consistency. (Other answers: reliability, reproducibility, version control, cost savings, collaboration.)

  11. Is IaC part of DevOps?

    Answer: Yes, IaC is a core part of DevOps.

  12. What is state locking?

    Answer: State locking prevents two people from changing state at the same time.

  13. What is a playbook?

    Answer: A playbook is an Ansible file that describes what to configure.

  14. What is provisioning?

    Answer: Provisioning is creating infrastructure (servers, networks, etc.).

  15. Is IaC used in Nigeria?

    Answer: Yes, many Nigerian companies use IaC.


26. Fill-in-the-Blank Exercises

Fill in the blanks with the correct words from the list:

Word list: Infrastructure as Code, declarative, imperative, immutable, Terraform, Ansible, state, provisioning, configuration, DevOps, playbook, drift

  1. __________ is a practice where you manage infrastructure using code.

    Answer: Infrastructure as Code

  2. __________ says what you want, not how to do it.

    Answer: declarative

  3. __________ says exactly how to do something.

    Answer: imperative

  4. __________ infrastructure means never changing servers; always creating new ones.

    Answer: immutable

  5. __________ is a tool that provisions infrastructure.

    Answer: Terraform

  6. __________ is a configuration management tool.

    Answer: Ansible

  7. Terraform __________ is a file that tracks what Terraform has created.

    Answer: state

  8. __________ is creating infrastructure (servers, networks, etc.).

    Answer: provisioning

  9. __________ is setting up software and files on servers.

    Answer: configuration

  10. IaC is a core part of __________.

    Answer: DevOps

  11. An __________ file is called a playbook.

    Answer: Ansible

  12. When servers become different from each other, it is called __________.

    Answer: drift


27. True or False Exercises

Write True or False for each statement:

  1. IaC means managing infrastructure with code.

    Answer: True

  2. Manual infrastructure management is faster than IaC.

    Answer: False (IaC is faster)

  3. Declarative says what you want.

    Answer: True

  4. Imperative says what you want.

    Answer: False (Imperative says how to do it)

  5. Immutable infrastructure means never changing servers.

    Answer: True

  6. Terraform configures infrastructure.

    Answer: False (Terraform provisions infrastructure)

  7. Ansible provisions infrastructure.

    Answer: False (Ansible configures infrastructure)

  8. Terraform state tracks what Terraform has created.

    Answer: True

  9. IaC leads to more errors.

    Answer: False (IaC leads to fewer errors)

  10. IaC is a core part of DevOps.

    Answer: True

  11. State locking prevents conflicts.

    Answer: True

  12. Ansible uses a language called YAML.

    Answer: True

  13. IaC is only used by large companies.

    Answer: False (It is used by companies of all sizes)

  14. Immutable infrastructure is more reliable than mutable.

    Answer: True

  15. IaC is not used in Nigeria.

    Answer: False


28. Multiple Choice Questions (15 Questions)

Choose the correct answer for each question:

  1. What is Infrastructure as Code?

    A) A type of computer
    B) Managing infrastructure with code
    C) A programming language
    D) A video game

    Answer: B

  2. What is declarative?

    A) Saying how to do something
    B) Saying what you want
    C) A type of server
    D) A programming language

    Answer: B

  3. What is imperative?

    A) Saying how to do something
    B) Saying what you want
    C) A type of server
    D) A programming language

    Answer: A

  4. What is immutable infrastructure?

    A) Changing servers frequently
    B) Never changing servers; always creating new ones
    C) A type of server
    D) A programming language

    Answer: B

  5. What does Terraform do?

    A) Configures servers
    B) Provisions infrastructure
    C) Installs software
    D) Manages users

    Answer: B

  6. What does Ansible do?

    A) Provisions infrastructure
    B) Configures servers
    C) Creates networks
    D) Manages databases

    Answer: B

  7. What is Terraform state?

    A) A programming language
    B) A file that tracks what Terraform has created
    C) A type of server
    D) A configuration file

    Answer: B

  8. What is state locking?

    A) Locking files
    B) Preventing two people from changing state at the same time
    C) A type of server
    D) A programming language

    Answer: B

  9. What is a playbook?

    A) A Terraform file
    B) An Ansible file that describes what to configure
    C) A type of server
    D) A programming language

    Answer: B

  10. What is provisioning?

    A) Installing software
    B) Creating infrastructure
    C) Configuring servers
    D) Managing users

    Answer: B

  11. What is configuration?

    A) Creating infrastructure
    B) Setting up software and files
    C) A type of server
    D) A programming language

    Answer: B

  12. Is IaC part of DevOps?

    A) No
    B) Yes, it is a core part
    C) Sometimes
    D) Only for large companies

    Answer: B

  13. What is a benefit of IaC?

    A) Slower setup
    B) More errors
    C) Consistency
    D) Less collaboration

    Answer: C

  14. Is IaC used in Nigeria?

    A) No
    B) Yes, by many companies
    C) Only in Lagos
    D) Only by the government

    Answer: B

  15. What is drift?

    A) When servers are identical
    B) When servers become different from each other
    C) When servers are created
    D) When servers are deleted

    Answer: B


29. Matching Exercises

Match the words in Column A with their correct meanings in Column B.

Column A Column B
1. Infrastructure as Code A. Saying what you want
2. Declarative B. Never changing servers; always creating new ones
3. Imperative C. A tool that provisions infrastructure
4. Immutable D. A configuration management tool
5. Terraform E. Managing infrastructure with code
6. Ansible F. Saying how to do something
7. State G. Preventing conflicts when multiple people work
8. Provisioning H. Creating infrastructure
9. Configuration I. Setting up software and files
10. State Locking J. A file that tracks what Terraform has created

Answers:

  1. E
  2. A
  3. F
  4. B
  5. C
  6. D
  7. J
  8. H
  9. I
  10. G

30. Short Answer Questions

  1. What is Infrastructure as Code and why is it useful?

    Answer: Infrastructure as Code (IaC) is a practice where you manage infrastructure using code. It is useful because it makes infrastructure setup fast, consistent, and repeatable. It saves time and reduces errors.

  2. Explain the difference between declarative and imperative.

    Answer: Declarative says what you want, not how to do it. It focuses on the final result. Imperative says exactly how to do something. It focuses on the exact steps.

  3. What is immutable infrastructure and why is it better?

    Answer: Immutable infrastructure means never changing servers after they are created. Instead, you create new servers with changes and replace the old ones. It is better because it keeps everything consistent and prevents configuration drift.

  4. Compare Terraform and Ansible.

    Answer: Terraform provisions infrastructure (creates servers, networks, etc.). Ansible configures infrastructure (installs software, sets up files). Terraform is declarative. Ansible can be declarative or imperative. Many teams use both together.

  5. How does IaC support DevOps?

    Answer: IaC is a core part of DevOps. It provides the automation for managing infrastructure. IaC enables speed, consistency, and reliability. It supports collaboration by storing code in Git. Together, IaC and DevOps help teams deliver software quickly and reliably.


31. Scenario-based Exercises

Scenario 1: The Slow Setup

A company takes 2 days to set up a new server. They do everything manually. They often make mistakes. They want to speed things up.

Question: How could IaC help this company?

Answer: IaC could help by automating the entire setup process. They would write code that describes the server. Then they would run the code to create the server automatically. This would take minutes instead of days and eliminate human errors.

Scenario 2: The Inconsistent Servers

A company has 20 servers. They are all configured differently. Some have different software versions. Some have different settings. This causes problems.

Question: How could IaC fix this problem?

Answer: IaC could fix this by ensuring all servers are created from the same code. Every server would be exactly the same. They could use Terraform to create the servers and Ansible to configure them. This would eliminate inconsistency.

Scenario 3: The Nigerian Startup

A Nigerian startup wants to use IaC. They are building their infrastructure on AWS. They have 3 developers. They want to manage everything with code.

Question: What should the startup do to implement IaC?

Answer: The startup should use Terraform to provision their AWS infrastructure. They should write Terraform code that defines their servers, databases, and networks. They should store the code in Git. They could also use Ansible to configure their servers. This would give them complete automation.


32. Group Activity

Activity: The IaC Simulation

Instructions:

  1. Form groups of 4-5 students.
  2. Assign roles:
    • 1 Architect: Writes the "code" (instructions)
    • 1 Terraform (Provisioner): Creates the "infrastructure" (draws the server)
    • 1 Ansible (Configurer): Configures the "server" (adds software drawings)
    • 1 Operator: Checks the results
    • 1 Observer: Watches and gives feedback
  3. Simulate IaC:
    • Architect writes instructions (code) for a server
    • Terraform "provisions" the server (draws a server box)
    • Ansible "configures" the server (adds software drawings)
    • Operator checks if everything is correct
    • Try it with different "code" and see how it changes
  4. Discuss: How did the instructions help? What would happen without them?
  5. Share with the class.

33. Individual Activity

Activity: My IaC Plan

Instructions:

  1. Imagine you are a DevOps engineer. You are going to implement IaC for a new project.
  2. Write an IaC plan. Include:
    • What tools will you use? (Terraform, Ansible, or both?)
    • How will you provision infrastructure?
    • How will you configure servers?
    • Will you use immutable infrastructure?
    • Where will you store your code?
    • How will you manage state?
    • What benefits do you expect?
  3. Write a short reflection: What did you learn from this activity?
  4. Submit your plan and reflection.

34. Classroom Discussion Questions

  1. Why do you think using code to manage infrastructure is better than doing it manually?

    Discuss with your classmates and share your ideas.

  2. Have you ever had to repeat the same task over and over? How did it make you feel?

    Share your experiences and thoughts.

  3. What are some other situations where having a recipe or checklist is helpful?

    Think about school, home, and other activities.

  4. Do you think immutable infrastructure is always better than mutable? Why or why not?

    Share your opinions and listen to what others think.

  5. Can you think of a Nigerian company that might benefit from IaC?

    Share examples of companies in Nigeria.

  6. What do you think is the most important part of IaC?

    Explain why you think so.

  7. Do you think IaC is easy to learn? Why or why not?

    Share your thoughts.

  8. What is the most important thing you learned about IaC today?

    Share with the class.


35. Mini Project

Project: Create an "IaC for Beginners" Guide

Goal: Create a simple guide to teach beginners about Infrastructure as Code.

Instructions:

  1. Work individually or in small groups.
  2. Design a guide that includes:
    • A cover page with a title and a drawing
    • What is Infrastructure as Code? (simple explanation)
    • Why is IaC important? (simple explanation)
    • Declarative vs Imperative (with examples)
    • Immutable Infrastructure (with examples)
    • Terraform (what it does and how it works)
    • Ansible (what it does and how it works)
    • Terraform vs Ansible (comparison)
    • Benefits of IaC
    • Key vocabulary with definitions
    • A fun example or story
  3. Use simple language. Write as if you are teaching a 10-year-old.
  4. Include drawings or pictures.
  5. Present your guide to the class.

36. Practical Assignment

Assignment: Research IaC in Practice

Goal: Learn about real-world IaC practice.

Instructions:

  1. Research a company. Choose a company that uses IaC (like a tech company, a bank, or an e-commerce company).
  2. Find out:
    • What IaC tools they use
    • Whether they use immutable infrastructure
    • What benefits they have seen
    • How they manage state
  3. Write a report. Include:
    • The company name and what they do
    • How they use IaC
    • What you learned from this research
  4. Submit your report.

37. Challenge Exercise

Challenge: The IaC Architect

Scenario:

You are an IaC architect at a Nigerian company. The company has 20 developers working on a large web application. They want to implement IaC to manage their infrastructure on AWS.

The company has:

  • 20 developers
  • A large web application on AWS
  • Need to manage servers, databases, and networks
  • Want to automate everything
  • Want to be able to recreate infrastructure easily
  • Want to avoid configuration drift

Challenge: Create a complete IaC implementation plan for this company. Include:

  • Tool Selection: Which tools will you use? (Terraform, Ansible, or both?)
  • Provisioning Strategy: How will you provision infrastructure?
  • Configuration Strategy: How will you configure servers?
  • Immutable vs Mutable: Which approach will you use? Why?
  • State Management: How will you manage Terraform state?
  • Version Control: Where will you store your code?
  • Team Training: How will you train the team?
  • Success Metrics: How will you measure success?
  • Timeline: When will you implement each part?

BONUS CHALLENGE: Present your plan to the class as if you were presenting it to the company's management.


38. Quiz Answers

Multiple Choice Questions (Section 28):

  1. B
  2. B
  3. A
  4. B
  5. B
  6. B
  7. B
  8. B
  9. B
  10. B
  11. B
  12. B
  13. C
  14. B
  15. B

True or False Exercises (Section 27):

  1. True
  2. False
  3. True
  4. False
  5. True
  6. False
  7. False
  8. True
  9. False
  10. True
  11. True
  12. True
  13. False
  14. True
  15. False

Fill-in-the-Blank Exercises (Section 26):

  1. Infrastructure as Code
  2. declarative
  3. imperative
  4. immutable
  5. Terraform
  6. Ansible
  7. state
  8. provisioning
  9. configuration
  10. DevOps
  11. Ansible
  12. drift

Matching Exercises (Section 29):

  1. E
  2. A
  3. F
  4. B
  5. C
  6. D
  7. J
  8. H
  9. I
  10. G

39. Key Takeaways

  • πŸ”Ή IaC manages infrastructure with code, making everything faster and more reliable.
  • πŸ”Ή Declarative says what you want. Imperative says how to do it.
  • πŸ”Ή Immutable infrastructure means never changing servers; always creating new ones. This prevents drift.
  • πŸ”Ή Terraform provisions infrastructure (creates servers, networks, etc.).
  • πŸ”Ή Ansible configures infrastructure (installs software, sets up files).
  • πŸ”Ή Terraform state tracks what Terraform has created. Store it remotely with locking.
  • πŸ”Ή Benefits of IaC include speed, consistency, reliability, reproducibility, version control, cost savings, and collaboration.
  • πŸ”Ή IaC is a core part of DevOps. It provides the automation for managing infrastructure.
  • πŸ”Ή IaC is used by many companies in Nigeria to deliver better software faster.
  • πŸ”Ή IaC is for everyone — it helps teams of all sizes manage infrastructure efficiently.

40. Preparation for the Next Module

Congratulations! You have completed Module 5: "Infrastructure as Code (IaC)." You now understand how teams manage infrastructure with code, using tools like Terraform and Ansible.

In Module 6, you will learn:

  • What are Containers? You will learn what containers are and why they are important.
  • Docker Fundamentals: You will learn about Docker images, containers, and Dockerfiles.
  • Container Lifecycle: You will learn how to build, run, and manage containers.
  • What is Kubernetes? You will learn about Kubernetes and how it orchestrates containers.
  • Kubernetes Architecture: You will learn about pods, services, deployments, and namespaces.
  • Kubernetes Orchestration: You will learn how Kubernetes scales and updates containers.
  • Helm: You will learn about Helm and how it manages Kubernetes applications.

Before you start Module 6, here are some things to think about:

  1. Think about packaging. How do you package things for shipping? Containers are like packages for software.
  2. Think about automation. How can you automate the management of many containers? Kubernetes does exactly that.
  3. Review what you learned. Make sure you understand IaC before moving on.

You are doing a fantastic job! Keep learning, keep growing, and we will see you in Module 6! πŸš€


© 2026 Certified DevOps Engineer Course • Module 5: Infrastructure as Code (IaC)

7

Module Six

Module 6: Containerization & Orchestration (Docker & Kubernetes)

🐳 Module 6: Containerization & Orchestration (Docker & Kubernetes)


1. Module Title

🐳 Containerization & Orchestration: Packaging and Managing Software with Docker & Kubernetes

Welcome to Module 6 of our Certified DevOps Engineer course! This module is called "Containerization & Orchestration: Packaging and Managing Software with Docker & Kubernetes."

In this module, we will learn about containers — a way to package software so it runs the same everywhere — and Kubernetes — a tool that manages many containers automatically.

Think of containers like lunchboxes. You put your food in a lunchbox, and it stays fresh and organized. You can take it anywhere, and it looks the same whether you are at home, at school, or at a friend's house. Containers do the same thing for software!


2. Module Introduction

Hello and welcome back! In Module 1, we learned about DevOps. In Module 2, we learned about Git. In Module 3, we learned about Continuous Integration. In Module 4, we learned about Continuous Delivery. In Module 5, we learned about Infrastructure as Code. Now, in Module 6, we are going to learn about Containerization and Orchestration.

Have you ever had a problem where software works on one computer but not on another? This is a very common problem. Developers say "It works on my machine!" but when they try to run it somewhere else, it breaks. Containers solve this problem!

A container is like a magic box that contains everything a program needs to run. It has the code, the settings, and all the pieces it needs. When you put a program in a container, it will run the same way on any computer.

But what if you have hundreds or thousands of containers? How do you manage them all? That is where Kubernetes comes in. Kubernetes is like a ship captain that manages a fleet of container ships. It makes sure everything is running smoothly and fixes problems automatically.

In this module, we will learn all about containers, Docker, and Kubernetes. We will use simple words, fun stories, and lots of examples.

So, are you ready? Let us dive in and discover the amazing world of containers!


3. Learning Objectives

By the time you finish this module, you will be able to:

  • Explain what containers are in your own simple words.
  • Understand why containers are important for DevOps.
  • Describe what Docker is and how it works.
  • Explain the difference between a Docker image and a container.
  • Understand what a Dockerfile is and why it is used.
  • Explain what Kubernetes is and why it is important.
  • Describe Kubernetes architecture (pods, services, deployments, namespaces).
  • Understand how Kubernetes orchestrates containers.
  • Explain what Helm is and why it is used.
  • Give examples of how containers are used in real projects.
  • Feel excited to learn more about containers and Kubernetes!

4. Warm-up Story

The Magic Lunchbox

Once upon a time, in a busy city in Nigeria called Lagos, there was a company called "FoodApp." They built an app that helped people order food from restaurants.

The company had a big problem. Their app worked perfectly on the developer's computer. But when they tried to run it on the server, it would break. Sometimes the app worked on one server but not on another. This was very frustrating!

The developers would say, "It works on my computer!" But the operations team would say, "It does not work on our servers!" They spent many hours trying to fix problems that only happened on some computers.

One day, a clever engineer named Mr. Kunle discovered something called containers. He learned that a container was like a magic lunchbox. You put your app in the lunchbox, and it contains everything the app needs to run. The app runs the same way whether it is on a developer's computer or on a server!

Mr. Kunle started using Docker, a tool that creates these magic lunchboxes. Now, every time they built the app, they put it in a container. The app ran perfectly everywhere. No more "It works on my computer" problems!

But soon, the company had hundreds of containers. Managing them all became a new problem. That is when they discovered Kubernetes. Kubernetes was like a ship captain that managed all the containers automatically. It started new containers when they were needed, restarted containers that failed, and made sure everything was running smoothly.

FoodApp grew and became one of the most successful food delivery apps in Nigeria. And it was all because of containers and Kubernetes!

This story shows us how containers and Kubernetes help teams build and run software reliably. Let us learn more about these amazing tools!


5. Main Lessons

Lesson 1: What are Containers?

Definition

A container is a way to package software so it includes everything it needs to run. It is like a lunchbox that contains your food, utensils, and napkin — everything you need for a meal.

Why is it Important?

Containers are important because they make software run the same way everywhere. If it works in a container on your computer, it will work in a container on any other computer.

Simple Explanation

Imagine you are moving to a new house. You pack your toys in a box. The box has everything you need to play with your toys — the toys, the batteries, and the instructions. When you open the box at your new house, everything is there and ready to use. A container is like that box for software!

What a Container Contains

  • Code: The actual program or app.
  • Runtime: The system that runs the code (like Java, Python, or Node.js).
  • Libraries: Other pieces of code the program needs.
  • Settings: Configuration files and environment variables.
  • Dependencies: Everything else the program needs to run.

Real-life Example

A company builds a web app using Python. They put the app in a container with Python and all the libraries it needs. The container runs the same way on the developer's laptop, the test server, and the live server.

School Example

Your class has a science project. You put all the materials you need in a box — the instructions, the chemicals, the tools. You can do the experiment anywhere because everything is in the box. A container is like that box for software.

Home Example

Your family has a first aid kit. It has bandages, medicine, and instructions. You can use it anywhere because everything is in the kit. A container is like that first aid kit for software.

Nigerian Example

A Nigerian fintech company uses containers to package their payment app. The app runs the same way on all their servers. This makes it easier to add new servers and keep the app running smoothly.

Illustration

    WHAT IS A CONTAINER?

    +--------------------------------------------------+
    |                                                   |
    |  CONTAINER (Like a Lunchbox)                     |
    |  +-------------------------------------------+    |
    |  |  πŸ” App Code                            |    |
    |  |  🧰 Runtime (Python, Java, etc.)        |    |
    |  |  πŸ“š Libraries                           |    |
    |  |  βš™οΈ Settings                           |    |
    |  |  πŸ”— Dependencies                       |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  Runs the SAME way EVERYWHERE!                   |
    |  +-------------------------------------------+    |
    |  |  πŸ’» Developer Laptop  =  βœ… Works         |    |
    |  |  πŸ–₯️ Test Server      =  βœ… Works         |    |
    |  |  ☁️ Production Server =  βœ… Works         |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Containers = Software that travels well!      |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

A container is a package that contains everything a program needs to run. It makes software run the same way everywhere. It is like a lunchbox for your code.


Lesson 2: Why Do We Need Containers?

Definition

Why we need containers: We need containers because software often works differently on different computers. This is called "works on my machine" problem. Containers solve this problem.

Why is it Important?

Containers are important because they save time, reduce problems, and make it easier for teams to work together. They are a key tool in DevOps.

Simple Explanation

Imagine you have a recipe for your favorite cake. You make it at your friend's house, but it does not taste the same. Why? Because your friend's oven is different, the ingredients are different, and the kitchen tools are different.

Containers are like a magical portable kitchen. You put all the ingredients, tools, and instructions in one box. You can bake the cake in any kitchen, and it will taste exactly the same!

Problems Without Containers

Problem What It Means Container Solution
Works on My Machine Software works on developer's computer but not on servers Containers run the same everywhere
Dependency Conflicts Different programs need different versions of the same library Containers isolate dependencies
Slow Setup Setting up a new environment takes hours or days Containers start in seconds
Hard to Scale Adding more copies of the software is difficult Containers can be duplicated easily
Inconsistent Environments Development, testing, and production are all different Containers are the same everywhere

Real-life Example

A company used to spend a full day setting up a new server. With containers, they start a new container in seconds. They can add new servers instantly when they need more power.

School Example

Your class has a group project. Everyone works on their own computer. With containers, everyone has the exact same setup. No one says "It works on my computer!" because it works on everyone's computer.

Home Example

Your family has a favorite meal. You want to share it with your friends. If you give them a container with all the ingredients and instructions, they can make the same meal at their house. Containers are like that for software.

Nigerian Example

A Nigerian tech startup has developers in Lagos, Abuja, and Port Harcourt. They use containers so everyone has the same development environment. No more "works on my machine" problems!

Illustration

    WHY WE NEED CONTAINERS

    WITHOUT CONTAINERS:
    +--------------------------------------------------+
    |  Developer 1: "It works on my computer!"         |
    |  Developer 2: "It does not work on mine!"        |
    |  Server: "It does not work here either!"         |
    |  ❌ Chaos, confusion, wasted time                |
    +--------------------------------------------------+

    WITH CONTAINERS:
    +--------------------------------------------------+
    |  Developer 1: Container β†’ βœ… Works               |
    |  Developer 2: Container β†’ βœ… Works               |
    |  Server: Container β†’ βœ… Works                    |
    |  βœ… Consistent, reliable, fast!                  |
    +--------------------------------------------------+
    

Mini Summary

We need containers because they make software run the same way everywhere. They solve the "works on my machine" problem and make development faster and more reliable.


Lesson 3: What is Docker?

Definition

Docker is the most popular tool for creating and running containers. It was created in 2013 and has become very popular because it makes containers easy to use.

Why is it Important?

Docker is important because it made containers simple and accessible. Before Docker, containers were hard to use. Docker made them easy for everyone.

Simple Explanation

Imagine you want to pack a lunch. You need a lunchbox. Docker is like the company that makes the best lunchboxes. They make it easy to pack your food, keep it fresh, and carry it anywhere. Docker does the same thing for software!

Key Docker Concepts

Concept What It Is Analogy
Docker Image A blueprint for a container A recipe for a cake
Docker Container A running instance of an image The baked cake
Dockerfile A text file with instructions to build an image The written recipe
Docker Registry A place to store and share images A library of recipes
Docker Hub A public registry for Docker images A big public library

Real-life Example

A company uses Docker to package their web app. They create a Dockerfile that describes the app. They build a Docker image from the Dockerfile. They run containers from the image on their servers.

School Example

Your class is making a school newspaper. You have a template (the image). Each week, you create a new newspaper (the container) from the template. Docker is like that template for software.

Home Example

Your family has a recipe for cookies (the image). You bake cookies (the container) from the recipe. You can bake many batches (many containers) from the same recipe (the image). Docker is like that recipe.

Nigerian Example

A Nigerian company uses Docker to package their mobile app backend. They have a Docker image that contains the app. They run containers from this image on AWS. This makes it easy to scale the app.

Illustration

    DOCKER BASICS

    +--------------------------------------------------+
    |  DOCKERFILE (Recipe)                             |
    |  +-------------------------------------------+    |
    |  |  FROM python:3.9                          |    |
    |  |  WORKDIR /app                            |    |
    |  |  COPY . .                                |    |
    |  |  RUN pip install -r requirements.txt    |    |
    |  |  CMD python app.py                      |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  DOCKER IMAGE (Blueprint)                        |
    |  +-------------------------------------------+    |
    |  |  πŸ“¦ app:latest                            |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  DOCKER CONTAINER (Running instance)             |
    |  +-------------------------------------------+    |
    |  |  πŸš€ The app is running!                    |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Docker makes containers easy!                 |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Docker is the most popular tool for creating and running containers. It uses images (blueprints), containers (running instances), and Dockerfiles (recipes). Docker made containers easy for everyone.


Lesson 4: Docker Image vs Container

Definition

A Docker image is like a blueprint or a recipe. It contains everything needed to run the software, but it is not running. A Docker container is a running instance of an image. It is the actual software running.

Why is it Important?

Understanding the difference is important because images are used to create containers. You can have many containers from the same image, just like you can bake many cakes from the same recipe.

Simple Explanation

Imagine you have a cookie recipe (the image). You follow the recipe to bake cookies (the container). You can bake many batches of cookies from the same recipe. Each batch is a container. The recipe is the image.

Image vs Container Comparison

Aspect Docker Image Docker Container
What It Is A blueprint or recipe A running instance
State Not running (static) Running (active)
Can Be Modified No (read-only) Yes (can change while running)
Analogy A recipe for cake A baked cake
Storage Stored in a registry Running on a computer
Multiple One image can make many containers Many containers can run from one image

Real-life Example

A company has a Docker image for their web app. They run 5 containers from this image to handle traffic. If they need more, they just start more containers from the same image.

School Example

Your teacher has a lesson plan (the image). The teacher teaches the lesson to each class (the containers). Each class is a different container, but the lesson plan is the same.

Home Example

Your family has a favorite smoothie recipe (the image). You make smoothies for breakfast (the containers). Each morning, you make a new smoothie from the same recipe.

Nigerian Example

A Nigerian company has a Docker image for their payment service. They run containers from this image on different servers. Each container handles payments for different customers.

Illustration

    IMAGE VS CONTAINER

    +--------------------------------------------------+
    |  DOCKER IMAGE (Recipe)                           |
    |  +-------------------------------------------+    |
    |  |  πŸ“¦ app:latest                            |    |
    |  |  Blueprint for the app                    |    |
    |  |  Not running, just stored                 |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  DOCKER CONTAINER 1 (Running)                    |
    |  +-------------------------------------------+    |
    |  |  πŸš€ App is running!                        |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  DOCKER CONTAINER 2 (Running)                    |
    |  +-------------------------------------------+    |
    |  |  πŸš€ App is running!                        |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  DOCKER CONTAINER 3 (Running)                    |
    |  +-------------------------------------------+    |
    |  |  πŸš€ App is running!                        |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ One image, many containers!                   |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

A Docker image is a blueprint. A Docker container is a running instance of that blueprint. You can run many containers from one image, just like you can bake many cakes from one recipe.


Lesson 5: Dockerfile

Definition

A Dockerfile is a text file that contains instructions on how to build a Docker image. It is like a recipe that tells Docker exactly what to do.

Why is it Important?

The Dockerfile is important because it is how you create your own Docker images. You write the instructions, and Docker builds the image for you.

Simple Explanation

Imagine you want to teach a robot how to bake a cake. You write down step-by-step instructions. The robot reads the instructions and bakes the cake. A Dockerfile is like those instructions for Docker.

Common Dockerfile Commands

Command What It Does Example
FROM Starts from an existing image FROM python:3.9
WORKDIR Sets the working directory inside the container WORKDIR /app
COPY Copies files into the container COPY . .
RUN Runs commands inside the container RUN pip install -r requirements.txt
CMD Specifies the command to run when the container starts CMD python app.py
EXPOSE Opens a port for the container EXPOSE 8080

Real-life Example

A company has a Dockerfile that installs their app and all dependencies. When they build the image, Docker reads the Dockerfile and creates an image with everything the app needs.

School Example

Your teacher gives you a list of steps to build a model. You follow the steps and build the model. A Dockerfile is like that list of steps.

Home Example

Your family has a recipe card. It tells you step by step how to make your favorite meal. A Dockerfile is like that recipe card for software.

Nigerian Example

A Nigerian developer writes a Dockerfile for their app. It says "Start from Ubuntu, install Python, copy the code, run the app." They build the image and run it on their servers.

Illustration

    DOCKERFILE EXAMPLE

    +--------------------------------------------------+
    |  Dockerfile (Recipe)                             |
    |  +-------------------------------------------+    |
    |  |  # Start from Python 3.9 image            |    |
    |  |  FROM python:3.9                          |    |
    |  |                                           |    |
    |  |  # Set working directory                   |    |
    |  |  WORKDIR /app                             |    |
    |  |                                           |    |
    |  |  # Copy code into the container           |    |
    |  |  COPY . .                                 |    |
    |  |                                           |    |
    |  |  # Install dependencies                   |    |
    |  |  RUN pip install -r requirements.txt     |    |
    |  |                                           |    |
    |  |  # Run the app                           |    |
    |  |  CMD python app.py                       |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  docker build -t myapp .                         |
    |  +-------------------------------------------+    |
    |  |  Image "myapp" is built!                   |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Dockerfile = Instructions for building!       |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

A Dockerfile is a text file with instructions to build a Docker image. It is like a recipe that tells Docker exactly what to do. Common commands include FROM, WORKDIR, COPY, RUN, and CMD.


Lesson 6: Container Lifecycle

Definition

The container lifecycle is the series of stages a container goes through from creation to deletion. It is like the life of a plant: seed β†’ sprout β†’ plant β†’ flower β†’ seed.

Why is it Important?

Understanding the container lifecycle helps you know how to manage containers. You know when to start them, stop them, and remove them.

Simple Explanation

Imagine you are making a sandwich. First, you gather the ingredients (create the image). Then, you make the sandwich (run the container). You eat it (the container runs). When you are done, you clean up (stop and remove the container).

The Container Lifecycle Stages

Stage What Happens Docker Command
Create The container is created from the image docker create
Start The container starts running docker start
Run The container is running and doing its work docker run (create + start)
Pause/Resume Pause temporarily, then resume docker pause / docker unpause
Stop The container stops running docker stop
Remove The container is deleted docker rm

Real-life Example

A company runs containers for their web app. When they need to deploy a new version, they create new containers, start them, and stop the old ones.

School Example

Your class has a project cycle: plan, create, present, and clean up. The container lifecycle is like that for software.

Home Example

Your family has a routine: plan the meal, cook it, eat it, and clean up. The container lifecycle is like that for containers.

Nigerian Example

A Nigerian company uses containers for their app. They create containers, run them, and when they need to update, they stop the old ones and start new ones.

Illustration

    CONTAINER LIFECYCLE

    +--------------------------------------------------+
    |                                                   |
    |  1. CREATE                                       |
    |  +-------------------------------------------+    |
    |  |  docker create myapp                      |    |
    |  |  Container is created from image          |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  2. START                                        |
    |  +-------------------------------------------+    |
    |  |  docker start mycontainer                  |    |
    |  |  Container starts running                  |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  3. RUNNING                                      |
    |  +-------------------------------------------+    |
    |  |  docker run myapp                          |    |
    |  |  App is working!                           |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  4. STOP                                         |
    |  +-------------------------------------------+    |
    |  |  docker stop mycontainer                   |    |
    |  |  Container stops running                   |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  5. REMOVE                                       |
    |  +-------------------------------------------+    |
    |  |  docker rm mycontainer                     |    |
    |  |  Container is deleted                      |    |
    |  +-------------------------------------------+    |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

The container lifecycle has five stages: create, start, run, stop, and remove. Containers go through these stages from creation to deletion.


Lesson 7: What is Kubernetes?

Definition

Kubernetes (also called K8s) is a tool that manages containers automatically. It is like a ship captain that manages a fleet of container ships. Kubernetes was created by Google and is now used by companies all over the world.

Why is it Important?

Kubernetes is important because it automates the management of containers. If you have hundreds or thousands of containers, you need a way to manage them. Kubernetes does this automatically.

Simple Explanation

Imagine you have many robots that need to do tasks. You could manage each robot yourself, but that would be hard. Kubernetes is like a robot manager. It tells the robots what to do, makes sure they are working, and fixes problems automatically.

What Kubernetes Does

  • Scaling: Starts more containers when needed.
  • Self-healing: Restarts containers that fail.
  • Load balancing: Spreads traffic across containers.
  • Rolling updates: Updates containers without downtime.
  • Storage management: Manages storage for containers.
  • Service discovery: Helps containers find each other.

Real-life Example

A company uses Kubernetes to manage their web app. They have 50 containers running. If a container fails, Kubernetes starts a new one. If traffic increases, Kubernetes starts more containers.

School Example

Your school has many classrooms. The principal (Kubernetes) makes sure each classroom has a teacher (container), replaces teachers who are sick (self-healing), and adds more classrooms when there are more students (scaling).

Home Example

Your family has many chores. The chore manager (Kubernetes) assigns tasks, makes sure they are done, and reassigns them if someone is busy (self-healing). It adds more helpers when there is more work (scaling).

Nigerian Example

A Nigerian fintech uses Kubernetes to manage their payment app. They have many containers running. Kubernetes automatically scales up during peak hours and scales down at night. This saves money and keeps the app running smoothly.

Illustration

    WHAT IS KUBERNETES?

    +--------------------------------------------------+
    |  KUBERNETES (Ship Captain)                       |
    |  +-------------------------------------------+    |
    |  |  Manages many containers                  |    |
    |  |  Scales up when needed                    |    |
    |  |  Heals failed containers                  |    |
    |  |  Updates without downtime                 |    |
    |  |  Load balances traffic                    |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  MANY CONTAINERS (Ships)                        |
    |  +-------------------------------------------+    |
    |  |  🚒 Container 1   🚒 Container 2          |    |
    |  |  🚒 Container 3   🚒 Container 4          |    |
    |  |  🚒 Container 5   🚒 Container 6          |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Kubernetes = Automated container management!  |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Kubernetes is a tool that manages containers automatically. It scales containers, heals failed ones, and updates without downtime. It is like a ship captain for a fleet of container ships.


Lesson 8: Kubernetes Architecture

Definition

Kubernetes architecture is the structure of Kubernetes. It has different parts that work together to manage containers. It is like the parts of a car that work together to make it go.

Why is it Important?

Understanding Kubernetes architecture helps you know how it works. When you understand the parts, you can use Kubernetes more effectively.

Simple Explanation

Imagine a school. The principal (control plane) manages everything. The teachers (nodes) teach the students (containers). Each classroom (pod) has one or more students. This is how Kubernetes works too!

Kubernetes Architecture Components

Component What It Is Analogy
Control Plane The brain of Kubernetes School principal
Node A computer that runs containers A classroom
Pod A group of one or more containers A student desk
Service A way to access pods A classroom door
Deployment Manages pods and scaling Teacher's lesson plan
Namespace A way to organize resources A school grade level
Ingress A way to route external traffic The school main entrance

Real-life Example

A company runs Kubernetes. They have a cluster with 3 nodes. Each node runs multiple pods. A service makes the pods accessible. A deployment manages the pods.

School Example

Your school has a principal (control plane). There are classrooms (nodes). Each classroom has students (pods). The classroom door (service) lets people in. The teacher (deployment) manages the students.

Home Example

Your family has a home manager (control plane). There are rooms (nodes). Each room has furniture (pods). The room door (service) lets people in. The chore list (deployment) manages tasks.

Nigerian Example

A Nigerian company has a Kubernetes cluster on AWS. They have 5 nodes. Each node runs several pods. The pods run their app. Kubernetes manages everything automatically.

Illustration

    KUBERNETES ARCHITECTURE

    +--------------------------------------------------+
    |  CONTROL PLANE (Brain)                           |
    |  +-------------------------------------------+    |
    |  |  πŸ“‹ API Server                          |    |
    |  |  πŸ“Š Scheduler                          |    |
    |  |  πŸ”„ Controller Manager                  |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  NODES (Computers)                              |
    |  +-------------------------------------------+    |
    |  |  Node 1                                  |    |
    |  |  +----------------------------------+    |    |
    |  |  |  Pod 1  β”‚  Pod 2  β”‚  Pod 3     |    |    |
    |  |  +----------------------------------+    |    |
    |  +-------------------------------------------+    |
    |  |  Node 2                                  |    |
    |  |  +----------------------------------+    |    |
    |  |  |  Pod 1  β”‚  Pod 2  β”‚  Pod 3     |    |    |
    |  |  +----------------------------------+    |    |
    |  +-------------------------------------------+    |
    |  |  Node 3                                  |    |
    |  |  +----------------------------------+    |    |
    |  |  |  Pod 1  β”‚  Pod 2  β”‚  Pod 3     |    |    |
    |  |  +----------------------------------+    |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Kubernetes has a brain and many workers!      |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Kubernetes architecture has a control plane and nodes. The control plane is the brain. Nodes are computers that run pods (containers). Services, deployments, and namespaces help organize and manage everything.


Lesson 9: Kubernetes Pods

Definition

A pod is the smallest unit in Kubernetes. It is a group of one or more containers that run together. A pod is like a room where containers live together.

Why is it Important?

Pods are important because they are the basic building block of Kubernetes. Everything you do in Kubernetes starts with pods.

Simple Explanation

Imagine you are living in a house. The house has rooms. Each room is a pod. You can have one person (container) in a room, or you can have several people (containers) sharing a room. The room is the pod.

Key Facts About Pods

  • Smallest unit: Pods are the smallest thing you can create in Kubernetes.
  • One or more containers: A pod can have one or many containers.
  • Shared network: All containers in a pod share the same network.
  • Shared storage: All containers in a pod can share storage.
  • Ephemeral: Pods are temporary. They can be created and destroyed.
  • IP address: Each pod gets its own IP address.

Real-life Example

A company runs a web app in Kubernetes. Each pod runs one container with the web app. They have many pods for the web app. Each pod is like a copy of the app.

School Example

Your school has classrooms. Each classroom (pod) has students (containers). Some classrooms have one teacher, some have two. Each classroom is a pod.

Home Example

Your family has rooms in your house. Each room (pod) has family members (containers). Some rooms have one person, some have more. Each room is a pod.

Nigerian Example

A Nigerian company runs their app in Kubernetes. They have 20 pods running the app. If a pod fails, Kubernetes starts a new one. This keeps their app running.

Illustration

    KUBERNETES PODS

    +--------------------------------------------------+
    |  POD 1 (A Room)                                  |
    |  +-------------------------------------------+    |
    |  |  🐳 Container 1 (App)                    |    |
    |  |  🐳 Container 2 (Helper)                 |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  POD 2 (A Room)                                  |
    |  +-------------------------------------------+    |
    |  |  🐳 Container 1 (App)                    |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  POD 3 (A Room)                                  |
    |  +-------------------------------------------+    |
    |  |  🐳 Container 1 (App)                    |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Pods = Rooms where containers live!           |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

A pod is the smallest unit in Kubernetes. It is a group of one or more containers that run together. Pods are like rooms where containers live.


Lesson 10: Kubernetes Deployments

Definition

A deployment in Kubernetes is a way to manage pods. It tells Kubernetes how many pods to run, what image to use, and how to update them. It is like a manager for your pods.

Why is it Important?

Deployments are important because they make it easy to scale and update your app. You tell the deployment what you want, and Kubernetes makes it happen.

Simple Explanation

Imagine you are a manager at a restaurant. You tell your staff how many tables to set up, how many waiters to have, and what to do when a waiter leaves. A deployment is like that manager for your pods.

What a Deployment Does

  • Scaling: Can increase or decrease the number of pods.
  • Rolling Updates: Updates pods without downtime.
  • Rollback: Can go back to a previous version.
  • Self-healing: Replaces failed pods.
  • Version Control: Keeps track of different versions.

Real-life Example

A company has a deployment for their web app. The deployment says "run 10 pods of version 2.0." If traffic increases, they change it to "run 20 pods." Kubernetes automatically starts more pods.

School Example

Your school has a schedule (deployment). It says how many teachers (pods) are needed for each subject. If more students join, the schedule is updated to have more teachers.

Home Example

Your family has a chore list (deployment). It says who does which chores (pods). If someone is sick, the list is updated to reassign the chores.

Nigerian Example

A Nigerian company uses deployments to manage their app. They have a deployment that runs 5 pods. During peak hours, they scale up to 10 pods. Kubernetes does this automatically.

Illustration

    KUBERNETES DEPLOYMENTS

    +--------------------------------------------------+
    |  DEPLOYMENT                                      |
    |  +-------------------------------------------+    |
    |  |  replicas: 5                              |    |
    |  |  image: myapp:latest                     |    |
    |  |  update strategy: rolling                |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  PODS (Created and managed by deployment)        |
    |  +-------------------------------------------+    |
    |  |  Pod 1  β”‚  Pod 2  β”‚  Pod 3  β”‚  Pod 4     |    |
    |  |  Pod 5                                    |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Deployments manage pods automatically!        |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

A deployment manages pods in Kubernetes. It handles scaling, rolling updates, rollbacks, and self-healing. It is like a manager for your pods.


Lesson 11: Kubernetes Services

Definition

A service in Kubernetes is a way to access your pods. It is like a door that lets people into your app. Services make pods discoverable and load balance traffic.

Why is it Important?

Services are important because pods can come and go. They can be created and destroyed. A service gives you a stable way to access your app.

Simple Explanation

Imagine a hotel. The hotel has many rooms (pods). Guests come and go (pods change). But the front desk (service) is always there. You go to the front desk to get a room. The front desk gives you a room that is available.

Types of Services

Type What It Does Analogy
ClusterIP Internal access only An internal office door
NodePort External access on a port A door from the street
LoadBalancer External access via a cloud load balancer A front door with a doorman
Ingress HTTP/HTTPS routing A reception desk

Real-life Example

A company has a service for their web app. The service makes the app accessible to users. When new pods are created, the service automatically starts sending traffic to them.

School Example

Your school has a main office (service). Students go to the office to get information. The office directs them to the right classroom (pod).

Home Example

Your family has a phone number (service). People call the number to reach your family. The phone directs the call to whoever is available (pod).

Nigerian Example

A Nigerian company has a service for their app. Users access the app through the service. The service balances traffic across all pods. This makes their app fast and reliable.

Illustration

    KUBERNETES SERVICES

    +--------------------------------------------------+
    |  SERVICE (Front Desk)                            |
    |  +-------------------------------------------+    |
    |  |  Stable IP address                        |    |
    |  |  Load balances traffic                    |    |
    |  |  Always available                         |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  PODS (Rooms)                                    |
    |  +-------------------------------------------+    |
    |  |  Pod 1  β”‚  Pod 2  β”‚  Pod 3  β”‚  Pod 4     |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  USER β†’ SERVICE β†’ POD                            |
    |  +-------------------------------------------+    |
    |  |  πŸ‘€ User requests app                     |    |
    |  |  πŸšͺ Service directs to available pod      |    |
    |  |  🐳 App responds                          |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Services = Doors to your app!                 |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

A service is a way to access your pods. It provides a stable address and load balances traffic. Services make pods discoverable even when they change.


Lesson 12: Kubernetes Namespaces

Definition

A namespace in Kubernetes is a way to organize resources. It is like having different folders for different projects. Namespaces help keep things separate and organized.

Why is it Important?

Namespaces are important because they help you organize your Kubernetes resources. Without namespaces, everything would be in one big messy pile.

Simple Explanation

Imagine you have a big box of LEGOs. All the pieces are mixed together. It is hard to find what you need. Now imagine you have separate boxes for different projects — one for the castle, one for the spaceship, one for the house. Namespaces are like those separate boxes.

Common Namespaces

  • default: The default namespace for resources.
  • kube-system: For Kubernetes system resources.
  • kube-public: For resources that are public.
  • Custom: You can create your own namespaces for different teams, projects, or environments.

Real-life Example

A company has different namespaces for different teams. Development team uses "dev" namespace. Testing team uses "test" namespace. Production team uses "prod" namespace. This keeps everything organized.

School Example

Your school has different grades. Grade 1, Grade 2, Grade 3. Each grade is like a namespace. Students (resources) in Grade 1 are separate from students in Grade 2.

Home Example

Your family has different rooms for different things. Kitchen for cooking, bedroom for sleeping, living room for relaxing. Each room is like a namespace.

Nigerian Example

A Nigerian company has namespaces for their different apps. They have a namespace for the payment app, one for the user app, and one for the admin app. This keeps everything organized and secure.

Illustration

    KUBERNETES NAMESPACES

    +--------------------------------------------------+
    |  NAMESPACE: dev                                  |
    |  +-------------------------------------------+    |
    |  |  Pod 1  Pod 2  Pod 3                     |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  NAMESPACE: test                                 |
    |  +-------------------------------------------+    |
    |  |  Pod 1  Pod 2  Pod 3                     |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  NAMESPACE: prod                                 |
    |  +-------------------------------------------+    |
    |  |  Pod 1  Pod 2  Pod 3                     |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Namespaces organize resources!                 |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Namespaces organize Kubernetes resources. They are like folders for your projects. They keep things separate and organized.


Lesson 13: Benefits of Containers and Kubernetes

Definition

The benefits of containers and Kubernetes are all the good things that happen when you use them. These include consistency, scalability, and reliability.

Why is it Important?

Understanding the benefits helps us see why containers and Kubernetes are so popular. They are used by almost every modern software company.

Simple Explanation

Imagine you have a magic machine that can copy itself, heal itself, and grow when you need more power. Containers and Kubernetes are like that magic machine for software!

Key Benefits

Benefit What It Means
Consistency Software runs the same everywhere
Scalability Can handle more users by adding containers
Reliability Self-healing restarts failed containers
Speed Containers start in seconds
Portability Containers work on any computer
Resource Efficiency Containers use less resources than virtual machines
DevOps Enablement Makes CI/CD pipelines work smoothly

Real-life Example

A company adopted containers and Kubernetes. They went from deploying once a month to deploying multiple times a day. They could handle 10x more traffic without any problems.

School Example

Your school uses containers for their website. When many parents try to access the website at the same time, it stays fast because containers scale up automatically.

Home Example

Your family uses containers for a shared calendar. The calendar is always available and never crashes. If one container fails, another one takes over.

Nigerian Example

A Nigerian e-commerce company used containers and Kubernetes. They could handle the huge traffic during Black Friday because Kubernetes scaled up automatically. Their website never went down.

Illustration

    BENEFITS OF CONTAINERS AND KUBERNETES

    +--------------------------------------------------+
    |                                                   |
    |  βœ… CONSISTENCY                                  |
    |     Works the same everywhere                     |
    |                                                   |
    |  πŸ“ˆ SCALABILITY                                  |
    |     Grows to handle more users                    |
    |                                                   |
    |  πŸ”’ RELIABILITY                                  |
    |     Self-healing, always available                |
    |                                                   |
    |  ⚑ SPEED                                        |
    |     Starts in seconds                             |
    |                                                   |
    |  πŸ“¦ PORTABILITY                                  |
    |     Works on any computer                         |
    |                                                   |
    |  πŸ’° EFFICIENT                                     |
    |     Uses fewer resources                          |
    |                                                   |
    |  πŸ”§ DEVOPS                                        |
    |     Enables CI/CD pipelines                       |
    |                                                   |
    |  ALL BECAUSE OF CONTAINERS & KUBERNETES! πŸŽ‰     |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Containers and Kubernetes have many benefits. They provide consistency, scalability, reliability, speed, portability, resource efficiency, and DevOps enablement.


Lesson 14: Containers, Kubernetes, and DevOps

Definition

Containers, Kubernetes, and DevOps work together to help teams build and run software faster and more reliably. Containers package software, Kubernetes manages it, and DevOps provides the culture.

Why is it Important?

These three things work together to make modern software development possible. Understanding how they connect is important for any DevOps engineer.

Simple Explanation

Imagine you are building a house. DevOps is the team of people working together. Containers are the pre-built rooms that you can move anywhere. Kubernetes is the manager that makes sure all the rooms are in the right place and working properly.

How They Work Together

  • DevOps: Provides the culture of collaboration and automation.
  • Containers: Package the software so it runs consistently everywhere.
  • Kubernetes: Manages the containers automatically.
  • Result: Fast, reliable software delivery.

Real-life Example

A company uses DevOps practices. They use Docker to package their app. They use Kubernetes to run it. They can deploy new versions multiple times a day with zero downtime.

School Example

Your school uses a system where teachers work together (DevOps), lessons are prepared in advance (containers), and a schedule manages everything (Kubernetes).

Home Example

Your family works together to manage the household (DevOps). You have pre-planned meals (containers). A chore schedule manages everything (Kubernetes).

Nigerian Example

A Nigerian company uses DevOps, containers, and Kubernetes. Developers work together, apps are packaged in containers, and Kubernetes manages them. They can deliver new features to customers very quickly.

Illustration

    CONTAINERS + KUBERNETES + DEVOPS

    +--------------------------------------------------+
    |                                                   |
    |  DEVOPS (Culture)                                |
    |  +-------------------------------------------+    |
    |  |  Collaboration, automation, continuous    |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  CONTAINERS (Packaging)                          |
    |  +-------------------------------------------+    |
    |  |  Docker packages the app                    |    |
    |  |  Runs the same everywhere                   |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  KUBERNETES (Management)                         |
    |  +-------------------------------------------+    |
    |  |  Scales, heals, updates containers         |    |
    |  |  Automates everything                       |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  FAST, RELIABLE SOFTWARE DELIVERY! πŸš€            |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Containers, Kubernetes, and DevOps work together. DevOps provides the culture, containers package the software, and Kubernetes manages it. Together, they enable fast, reliable software delivery.


Lesson 15: What We Have Learned So Far

Definition

In this lesson, we will review everything we have learned about containers, Docker, and Kubernetes. This will help us remember the most important ideas.

Why is it Important?

Reviewing helps us remember what we have learned. When we keep information in our brains, we can use it later.

Simple Explanation

Let us think back to everything we have talked about in this module:

  • What are containers? Packages that contain everything a program needs to run. They run the same everywhere.
  • Why do we need containers? They solve the "works on my machine" problem and make software consistent.
  • What is Docker? The most popular tool for creating and running containers.
  • What is the difference between an image and a container? An image is a blueprint. A container is a running instance.
  • What is a Dockerfile? A text file with instructions to build an image.
  • What is the container lifecycle? Create, start, run, stop, remove.
  • What is Kubernetes? A tool that manages containers automatically.
  • What is Kubernetes architecture? Control plane, nodes, pods, services, deployments, namespaces.
  • What is a pod? The smallest unit in Kubernetes. A group of containers.
  • What is a deployment? Manages pods and scaling.
  • What is a service? A way to access pods.
  • What is a namespace? A way to organize resources.
  • What are the benefits? Consistency, scalability, reliability, speed, portability, efficiency, DevOps enablement.
  • How do they work with DevOps? Together, they enable fast, reliable software delivery.

Real-life Example

A team has learned all these concepts. They use Docker to package their app and Kubernetes to run it. Their software is consistent, scalable, and reliable.

School Example

Your class has learned about containers and Kubernetes. They understand how packaging and managing software works.

Home Example

Your family has learned about containers and Kubernetes. They understand the importance of consistency and automation.

Nigerian Example

A Nigerian developer has learned all these concepts. They can now use containers and Kubernetes to build and run scalable applications.

Illustration

    WHAT WE HAVE LEARNED

    +--------------------------------------------------+
    |                                                   |
    |  πŸ“Œ Containers = Software that runs everywhere   |
    |  πŸ“Œ Docker = Tool for containers                 |
    |  πŸ“Œ Image = Blueprint, Container = Running copy  |
    |  πŸ“Œ Dockerfile = Recipe for building images      |
    |  πŸ“Œ Kubernetes = Container manager               |
    |  πŸ“Œ Pod = Smallest unit in Kubernetes            |
    |  πŸ“Œ Deployment = Manages pods                    |
    |  πŸ“Œ Service = Access to pods                     |
    |  πŸ“Œ Namespace = Organizes resources              |
    |  πŸ“Œ Benefits = Consistent, scalable, reliable    |
    |  πŸ“Œ Works with DevOps for fast delivery          |
    |                                                   |
    |  YOU ARE NOW A CONTAINER & KUBERNETES BEGINNER! πŸŽ‰ |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

We have learned many things about containers, Docker, and Kubernetes. These tools help teams package and run software consistently and reliably. They are a core part of modern DevOps.


6. Key Vocabulary

Here are the important words we learned in this module. Each word has a simple definition to help you remember it.

Word Simple Definition
Container A package that contains everything a program needs to run
Docker The most popular tool for creating and running containers
Docker Image A blueprint for a container
Docker Container A running instance of an image
Dockerfile A text file with instructions to build an image
Kubernetes (K8s) A tool that manages containers automatically
Pod The smallest unit in Kubernetes, a group of containers
Deployment Manages pods and handles scaling and updates
Service A way to access pods and load balance traffic
Namespace A way to organize Kubernetes resources
Control Plane The brain of Kubernetes
Node A computer that runs containers in Kubernetes
Orchestration Automated management of containers
Scaling Adding or removing containers based on demand
Self-healing Restarting failed containers automatically
Rolling Update Updating containers without downtime
Registry A place to store and share Docker images

7. Important Concepts

Here are the most important concepts from this module. These are the big ideas that will help you understand containers and Kubernetes.

  1. Containers make software portable. A container contains everything a program needs to run. It runs the same way on any computer. This solves the "works on my machine" problem.

  2. Docker is the most popular container tool. Docker makes it easy to create, run, and share containers. It uses images (blueprints) and containers (running instances).

  3. Kubernetes manages containers automatically. When you have many containers, Kubernetes helps you manage them. It scales, heals, and updates containers automatically.

  4. Kubernetes has a clear architecture. The control plane is the brain. Nodes are computers that run pods. Services, deployments, and namespaces help organize everything.

  5. Containers and Kubernetes enable DevOps. They work together to enable fast, reliable software delivery. DevOps provides the culture, containers package the software, and Kubernetes manages it.

  6. Benefits include consistency and scalability. Containers and Kubernetes make software consistent, scalable, reliable, and fast. They are used by almost every modern software company.


8. Step-by-Step Explanations

Let us look at how to use Docker and Kubernetes in simple steps:

Step 1: Install Docker

First, install Docker on your computer. Go to docker.com and download Docker Desktop for your operating system.

Step 2: Write a Dockerfile

Create a file called Dockerfile. This file contains instructions to build your image. It says what base image to use, what files to copy, and what commands to run.

Step 3: Build the Docker Image

Run docker build -t myapp . to build the image from your Dockerfile. The image will be called "myapp."

Step 4: Run a Container

Run docker run myapp to start a container from your image. Your app is now running in a container!

Step 5: Create a Kubernetes Cluster

To use Kubernetes, you need a cluster. You can use Minikube for learning, or use a cloud provider like AWS EKS, Azure AKS, or Google GKE.

Step 6: Create a Deployment

Create a deployment file that says how many pods to run and what image to use. Apply it with kubectl apply -f deployment.yaml.

Step 7: Create a Service

Create a service file that exposes your app. Apply it with kubectl apply -f service.yaml. Now your app is accessible!

Illustration

    STEP-BY-STEP: DOCKER & KUBERNETES

    Step 1: INSTALL DOCKER
    +-------------------+
    |  docker.com       |
    +-------------------+
           |
           V
    Step 2: WRITE DOCKERFILE
    +-------------------+
    |  FROM python:3.9  |
    |  COPY . .        |
    |  CMD python app.py|
    +-------------------+
           |
           V
    Step 3: BUILD IMAGE
    +-------------------+
    |  docker build -t  |
    |  myapp .          |
    +-------------------+
           |
           V
    Step 4: RUN CONTAINER
    +-------------------+
    |  docker run myapp |
    +-------------------+
           |
           V
    Step 5: CREATE CLUSTER
    +-------------------+
    |  Minikube / Cloud |
    +-------------------+
           |
           V
    Step 6: CREATE DEPLOYMENT
    +-------------------+
    |  kubectl apply -f |
    |  deployment.yaml  |
    +-------------------+
           |
           V
    Step 7: CREATE SERVICE
    +-------------------+
    |  kubectl apply -f |
    |  service.yaml     |
    +-------------------+
    

9. Real-life Examples

Example 1: The E-commerce Company

An e-commerce company uses Docker and Kubernetes. They have a Dockerfile for their website. They build images and push them to a registry. They use Kubernetes to run the images. During peak shopping seasons, Kubernetes automatically scales up to handle traffic.

Example 2: The Mobile App Team

A mobile app team uses containers for their backend. They use Docker to package the backend. They use Kubernetes to run it. They can deploy new versions with zero downtime using rolling updates.

Example 3: The Banking System

A bank uses Kubernetes to manage their microservices. Each service is a container. Kubernetes manages all the containers. If a service fails, Kubernetes restarts it automatically. This makes the system very reliable.


10. Nigerian Examples

Example 1: Flutterwave

Flutterwave uses Docker and Kubernetes to run their payment platform. They have many containers running. Kubernetes manages them automatically. This helps them handle millions of transactions every day.

Example 2: Paystack

Paystack uses containers for their payment processing. They use Docker to package their services. They use Kubernetes to manage them. This makes their system reliable and scalable.

Example 3: Nigerian Tech Startup

A Nigerian tech startup uses Docker and Kubernetes. They have a microservices architecture. Each service is a container. Kubernetes manages all the containers. They can deploy new features quickly and safely.


11. Fun Examples Children Can Relate To

Example 1: The Lunchbox

You pack your lunch in a lunchbox. The lunchbox contains everything you need for lunch — food, utensils, napkin. You can eat lunch anywhere because everything is in the lunchbox. A container is like that lunchbox for software.

Example 2: The LEGO Set

You have a LEGO set with instructions. The instructions tell you how to build the castle. Dockerfile is like those instructions. The castle you build is like a container. The instructions are like a Dockerfile.

Example 3: The Toy Factory

You have a toy factory (Kubernetes). The factory makes toys (containers). If a toy breaks, the factory makes a new one (self-healing). If more children want toys, the factory makes more (scaling). Kubernetes is like that toy factory.


12. Everyday Examples

Example 1: The Recipe Book

Your family has a recipe book. Each recipe is like a Dockerfile. When you cook, you follow the recipe. The food you make is like a container.

Example 2: The School Schedule

Your school has a schedule. It tells you which classes to take. A Kubernetes deployment is like that schedule — it tells Kubernetes what to run.

Example 3: The Classroom

Your classroom has students and desks. Each desk is like a pod. Students sit at desks. If a student leaves, another student can sit there. Pods are like desks for containers.


13. Teacher Notes

For Teachers: This module is designed to be accessible for students of all ages. Here are some tips for teaching this module:

  • Use the story: The warm-up story about FoodApp is a great way to introduce the topic. Ask students if they have ever had a problem where something worked on one computer but not another.
  • Encourage discussion: Ask students what they would pack in a lunchbox for a trip. This helps them understand containers.
  • Use the illustrations: The ASCII diagrams are simple and visual. They help students understand complex ideas easily.
  • Group activities: Have students simulate containers by packing boxes with everything needed for a task.
  • Relate to Nigerian examples: The Nigerian examples help students see how containers are relevant to their own country.
  • Review key vocabulary: Use the vocabulary table to help students remember important terms.
  • Use the exercises: The end-of-module exercises help reinforce learning.

14. Parent Tips

For Parents: Your child is learning about containers, Docker, and Kubernetes. Here are some tips to support their learning:

  • Discuss packing: Talk to your child about how you pack things for trips. This helps them understand why containers are useful.
  • Ask about containers: Ask your child what they learned about containers. This will help them remember and understand the material better.
  • Relate to everyday life: Point out examples of packaging and management in everyday life. Lunchboxes, schedules, toy storage, etc.
  • Encourage curiosity: If your child asks questions about containers or Kubernetes, take the time to answer them.
  • Celebrate learning: Praise your child for completing this module. Learning about containers is an important skill for the future.

15. Interesting Facts

  • Fact 1: Docker was created in 2013 and became very popular very quickly. Today, millions of developers use Docker worldwide.
  • Fact 2: Kubernetes was created by Google. They built it to manage their own massive infrastructure. Google runs billions of containers every week!
  • Fact 3: The Kubernetes logo is a ship's wheel. This is because Kubernetes is like a ship captain steering a fleet of containers.
  • Fact 4: The word "Kubernetes" comes from Greek. It means "helmsman" or "pilot" — someone who steers a ship.
  • Fact 5: Kubernetes is sometimes called "K8s." The "8" stands for the 8 letters between "K" and "s." This is a common way to shorten long names.
  • Fact 6: Many Nigerian companies are now using containers and Kubernetes. It is helping them build scalable and reliable applications.

16. Did You Know?

  • Did you know? Containers are not the same as virtual machines. Containers share the operating system, making them faster and smaller than virtual machines.
  • Did you know? You can run Docker on Windows, Mac, and Linux. Docker works on almost any computer!
  • Did you know? Kubernetes can run on any cloud or on your own servers. It works everywhere.
  • Did you know? Some companies run thousands of containers. Kubernetes helps them manage all of them.
  • Did you know? Containers start in seconds, while virtual machines can take minutes to start. This makes containers much faster.
  • Did you know? Docker Hub has over 100 million pulls per week. That is a lot of containers being used!

17. Remember This

  • πŸ”Ή Containers package software so it runs the same everywhere.
  • πŸ”Ή Docker is the most popular tool for containers.
  • πŸ”Ή Dockerfile is a recipe for building images.
  • πŸ”Ή Kubernetes manages containers automatically.
  • πŸ”Ή Pods are the smallest unit in Kubernetes.
  • πŸ”Ή Deployments manage pods and scaling.
  • πŸ”Ή Services make pods accessible.
  • πŸ”Ή Namespaces organize Kubernetes resources.
  • πŸ”Ή Benefits include consistency, scalability, and reliability.
  • πŸ”Ή Containers and Kubernetes are core parts of DevOps.

18. Common Mistakes

  1. Mistake 1: Forgetting to use .dockerignore.

    When you build a Docker image, all files in the directory are included. Use a .dockerignore file to exclude unnecessary files. This makes images smaller and faster.

  2. Mistake 2: Using the latest tag for everything.

    Using "latest" can cause problems because you do not know which version you are running. Use specific version numbers instead.

  3. Mistake 3: Not using Kubernetes for production.

    Kubernetes is great for production. It provides scaling, self-healing, and rolling updates. Use it for your production workloads.

  4. Mistake 4: Making containers too large.

    Large containers are slower to start and use more resources. Keep your containers small by using small base images and removing unnecessary files.

  5. Mistake 5: Not using health checks.

    Kubernetes uses health checks to know if a container is working. Without them, Kubernetes cannot restart failing containers.

  6. Mistake 6: Running as root.

    Running containers as root is a security risk. Use a non-root user in your containers for better security.


19. Best Practices

  1. Use small base images.

    Choose a small base image like Alpine Linux. This keeps your containers small and fast.

  2. Use specific version tags.

    Use specific version numbers for your images. For example, myapp:1.0.0 instead of latest.

  3. Use .dockerignore.

    Create a .dockerignore file to exclude unnecessary files. This makes your images smaller and builds faster.

  4. Use health checks.

    Add health checks to your containers. This helps Kubernetes know if your containers are working properly.

  5. Use namespaces to organize.

    Use different namespaces for different environments (dev, test, prod). This keeps resources organized and secure.

  6. Use deployments for management.

    Use Kubernetes deployments to manage your pods. Deployments provide scaling, rolling updates, and rollbacks.

  7. Run as non-root user.

    Run your containers as a non-root user for better security. Create a user in your Dockerfile.


20. ASCII Illustrations

Illustration 1: Container vs Virtual Machine

    CONTAINER VS VIRTUAL MACHINE

    CONTAINER:
    +--------------------------------------------------+
    |  App 1 β”‚ App 2 β”‚ App 3                           |
    |  Docker Engine                                   |
    |  Host Operating System                           |
    |  Hardware                                        |
    +--------------------------------------------------+
    |  Lightweight, fast, shares OS                    |
    +--------------------------------------------------+

    VIRTUAL MACHINE:
    +--------------------------------------------------+
    |  App 1         β”‚ App 2         β”‚ App 3          |
    |  Guest OS      β”‚ Guest OS      β”‚ Guest OS       |
    |  Hypervisor                                     |
    |  Host Operating System                           |
    |  Hardware                                        |
    +--------------------------------------------------+
    |  Heavy, slow, each has its own OS                 |
    +--------------------------------------------------+
    

Illustration 2: Docker Architecture

    DOCKER ARCHITECTURE

    +--------------------------------------------------+
    |  DOCKER CLIENT                                   |
    |  +-------------------------------------------+    |
    |  |  docker build                              |    |
    |  |  docker run                                |    |
    |  |  docker push                               |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  DOCKER DAEMON                                   |
    |  +-------------------------------------------+    |
    |  |  Builds images                            |    |
    |  |  Runs containers                          |    |
    |  |  Manages resources                        |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  DOCKER REGISTRY                                |
    |  +-------------------------------------------+    |
    |  |  Stores and shares images                 |    |
    |  +-------------------------------------------+    |
    +--------------------------------------------------+
    

Illustration 3: Kubernetes Architecture

    KUBERNETES ARCHITECTURE

    +--------------------------------------------------+
    |  CONTROL PLANE                                   |
    |  +-------------------------------------------+    |
    |  |  API Server  β”‚ Scheduler  β”‚ Controller   |    |
    |  |  etcd                                      |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  NODE 1                                         |
    |  +-------------------------------------------+    |
    |  |  Pod 1  β”‚  Pod 2  β”‚  Pod 3               |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  NODE 2                                         |
    |  +-------------------------------------------+    |
    |  |  Pod 1  β”‚  Pod 2  β”‚  Pod 3               |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  NODE 3                                         |
    |  +-------------------------------------------+    |
    |  |  Pod 1  β”‚  Pod 2  β”‚  Pod 3               |    |
    |  +-------------------------------------------+    |
    +--------------------------------------------------+
    

21. Comparison Tables

Table 1: Containers vs Virtual Machines

Aspect Containers Virtual Machines
Size Small (MBs) Large (GBs)
Startup Time Seconds Minutes
Resource Usage Low High
OS Shares host OS Each has its own OS
Portability Very portable Portable but heavier
Management Kubernetes, Docker VMware, VirtualBox

Table 2: Docker Image vs Container

Aspect Docker Image Docker Container
What It Is A blueprint A running instance
State Static (not running) Dynamic (running)
Can Be Modified No (read-only) Yes (while running)
Analogy A recipe A baked cake
Storage In a registry On a computer

Table 3: Kubernetes Components

Component Purpose Analogy
Pod Holds containers A room
Deployment Manages pods A manager
Service Exposes pods A door
Namespace Organizes resources A folder
Node Runs pods A computer
Control Plane Manages everything The brain

Note: Each lesson in this module already includes a "Mini Summary" section right after the lesson content. Please refer back to the lessons above to review each mini summary.


23. End-of-Module Summary

Congratulations! You have completed Module 6 of the "Certified DevOps Engineer" course. Let us review everything we have learned:

What are Containers?

Containers are packages that contain everything a program needs to run. They run the same way everywhere, solving the "works on my machine" problem. Containers are lightweight, fast, and portable.

What is Docker?

Docker is the most popular tool for creating and running containers. It uses images (blueprints) and containers (running instances). Dockerfiles are recipes for building images.

What is Kubernetes?

Kubernetes is a tool that manages containers automatically. It scales containers, heals failed ones, and updates without downtime. It is like a ship captain for a fleet of containers.

Kubernetes Architecture

Kubernetes has a control plane (brain) and nodes (computers). Pods are the smallest unit. Deployments manage pods. Services expose pods. Namespaces organize resources.

Benefits of Containers and Kubernetes

They provide consistency, scalability, reliability, speed, portability, resource efficiency, and DevOps enablement. They are used by almost every modern software company.

You have now completed Module 6! You are ready to move on to Module 7, where you will learn about Monitoring, Logging, and Observability. Keep up the great work!


24. Frequently Asked Questions (10 Questions)

  1. Q1: What is a container?

    A: A container is a package that contains everything a program needs to run. It runs the same way everywhere.

  2. Q2: What is Docker?

    A: Docker is the most popular tool for creating and running containers. It makes containers easy to use.

  3. Q3: What is the difference between a Docker image and a container?

    A: A Docker image is a blueprint. A Docker container is a running instance of that blueprint.

  4. Q4: What is a Dockerfile?

    A: A Dockerfile is a text file with instructions to build a Docker image. It is like a recipe.

  5. Q5: What is Kubernetes?

    A: Kubernetes is a tool that manages containers automatically. It scales, heals, and updates them.

  6. Q6: What is a pod in Kubernetes?

    A: A pod is the smallest unit in Kubernetes. It is a group of one or more containers.

  7. Q7: What is a deployment in Kubernetes?

    A: A deployment manages pods and handles scaling and updates.

  8. Q8: What is a service in Kubernetes?

    A: A service is a way to access pods and load balance traffic.

  9. Q9: What are the benefits of containers and Kubernetes?

    A: They provide consistency, scalability, reliability, speed, portability, efficiency, and DevOps enablement.

  10. Q10: Are containers and Kubernetes used in Nigeria?

    A: Yes, many Nigerian companies use containers and Kubernetes to build scalable and reliable applications.


25. Review Questions (15 Questions)

  1. What is a container?

    Answer: A container is a package that contains everything a program needs to run.

  2. What is Docker?

    Answer: Docker is the most popular tool for creating and running containers.

  3. What is the difference between a Docker image and a Docker container?

    Answer: A Docker image is a blueprint. A Docker container is a running instance of the image.

  4. What is a Dockerfile?

    Answer: A Dockerfile is a text file with instructions to build a Docker image.

  5. What is Kubernetes?

    Answer: Kubernetes is a tool that manages containers automatically.

  6. What is a pod in Kubernetes?

    Answer: A pod is the smallest unit in Kubernetes. It is a group of containers.

  7. What is a deployment in Kubernetes?

    Answer: A deployment manages pods, scaling, and updates.

  8. What is a service in Kubernetes?

    Answer: A service is a way to access pods and load balance traffic.

  9. What is a namespace in Kubernetes?

    Answer: A namespace organizes Kubernetes resources.

  10. Name two benefits of using containers.

    Answer: Consistency and portability. (Other answers: scalability, reliability, speed, efficiency.)

  11. What is orchestration in Kubernetes?

    Answer: Orchestration is the automated management of containers.

  12. What is self-healing in Kubernetes?

    Answer: Self-healing is restarting failed containers automatically.

  13. What is a rolling update?

    Answer: A rolling update updates containers without downtime.

  14. Is Docker used in Nigeria?

    Answer: Yes, many Nigerian companies use Docker.

  15. What command starts a container from an image?

    Answer: docker run


26. Fill-in-the-Blank Exercises

Fill in the blanks with the correct words from the list:

Word list: container, Docker, image, Kubernetes, pod, deployment, service, namespace, Dockerfile, orchestration, scaling, self-healing

  1. A __________ is a package that contains everything a program needs to run.

    Answer: container

  2. __________ is the most popular tool for creating and running containers.

    Answer: Docker

  3. A Docker __________ is a blueprint for a container.

    Answer: image

  4. A __________ is a text file with instructions to build an image.

    Answer: Dockerfile

  5. __________ is a tool that manages containers automatically.

    Answer: Kubernetes

  6. A __________ is the smallest unit in Kubernetes.

    Answer: pod

  7. A __________ manages pods and handles scaling.

    Answer: deployment

  8. A __________ is a way to access pods and load balance traffic.

    Answer: service

  9. A __________ organizes Kubernetes resources.

    Answer: namespace

  10. The automated management of containers is called __________.

    Answer: orchestration

  11. Adding or removing containers based on demand is called __________.

    Answer: scaling

  12. Restarting failed containers automatically is called __________.

    Answer: self-healing


27. True or False Exercises

Write True or False for each statement:

  1. Containers run the same way everywhere.

    Answer: True

  2. Docker is the only tool for containers.

    Answer: False (There are other tools like Podman, but Docker is the most popular.)

  3. A Docker image is a running instance.

    Answer: False (An image is a blueprint. A container is a running instance.)

  4. A Dockerfile is a recipe for building images.

    Answer: True

  5. Kubernetes manages containers automatically.

    Answer: True

  6. A pod is the largest unit in Kubernetes.

    Answer: False (A pod is the smallest unit.)

  7. Deployments manage pods and scaling.

    Answer: True

  8. Services make pods accessible.

    Answer: True

  9. Namespaces organize Kubernetes resources.

    Answer: True

  10. Containers are larger than virtual machines.

    Answer: False (Containers are smaller than virtual machines.)

  11. Kubernetes can scale containers automatically.

    Answer: True

  12. Rolling updates cause downtime.

    Answer: False (Rolling updates happen without downtime.)

  13. Docker is used in Nigeria.

    Answer: True

  14. Kubernetes was created by Google.

    Answer: True

  15. The command "docker run" starts a container.

    Answer: True


28. Multiple Choice Questions (15 Questions)

Choose the correct answer for each question:

  1. What is a container?

    A) A type of computer
    B) A package that contains everything a program needs to run
    C) A programming language
    D) A video game

    Answer: B

  2. What is Docker?

    A) A video game
    B) A programming language
    C) The most popular tool for creating and running containers
    D) A type of computer

    Answer: C

  3. What is the difference between a Docker image and a container?

    A) They are the same thing
    B) An image is a blueprint; a container is a running instance
    C) An image is running; a container is not
    D) There is no difference

    Answer: B

  4. What is a Dockerfile?

    A) A type of container
    B) A text file with instructions to build an image
    C) A Docker image
    D) A programming language

    Answer: B

  5. What is Kubernetes?

    A) A type of container
    B) A programming language
    C) A tool that manages containers automatically
    D) A video game

    Answer: C

  6. What is a pod in Kubernetes?

    A) The largest unit in Kubernetes
    B) The smallest unit in Kubernetes, a group of containers
    C) A type of service
    D) A programming language

    Answer: B

  7. What does a deployment do?

    A) Manages pods and scaling
    B) Exposes pods to users
    C) Organizes resources
    D) Runs containers

    Answer: A

  8. What does a service do?

    A) Manages pods
    B) Exposes pods and load balances traffic
    C) Organizes resources
    D) Builds images

    Answer: B

  9. What is a namespace in Kubernetes?

    A) A way to organize resources
    B) A type of pod
    C) A programming language
    D) A type of service

    Answer: A

  10. What is orchestration?

    A) The automated management of containers
    B) A type of container
    C) A programming language
    D) A type of service

    Answer: A

  11. What is self-healing?

    A) Restarting failed containers automatically
    B) A type of service
    C) A programming language
    D) A type of pod

    Answer: A

  12. What is a rolling update?

    A) Updating containers with downtime
    B) Updating containers without downtime
    C) Deleting all containers
    D) A type of service

    Answer: B

  13. Which command starts a container from an image?

    A) docker build
    B) docker run
    C) docker stop
    D) docker rm

    Answer: B

  14. Is Docker used in Nigeria?

    A) No
    B) Yes, by many companies
    C) Only in Lagos
    D) Only by the government

    Answer: B

  15. Who created Kubernetes?

    A) Microsoft
    B) Amazon
    C) Google
    D) Apple

    Answer: C


29. Matching Exercises

Match the words in Column A with their correct meanings in Column B.

Column A Column B
1. Container A. A tool that manages containers automatically
2. Docker B. The smallest unit in Kubernetes
3. Docker Image C. A text file with instructions to build an image
4. Dockerfile D. A package that contains everything a program needs
5. Kubernetes E. A way to access pods and load balance traffic
6. Pod F. A blueprint for a container
7. Deployment G. A way to organize Kubernetes resources
8. Service H. The most popular tool for containers
9. Namespace I. Manages pods and scaling
10. Orchestration J. The automated management of containers

Answers:

  1. D
  2. H
  3. F
  4. C
  5. A
  6. B
  7. I
  8. E
  9. G
  10. J

30. Short Answer Questions

  1. What is a container and why is it useful?

    Answer: A container is a package that contains everything a program needs to run. It is useful because it makes software run the same way everywhere, solving the "works on my machine" problem. Containers are lightweight, fast, and portable.

  2. Explain the difference between a Docker image and a Docker container.

    Answer: A Docker image is a blueprint or recipe. It contains everything needed to run the software but is not running. A Docker container is a running instance of an image. You can run many containers from one image.

  3. What is Kubernetes and what does it do?

    Answer: Kubernetes is a tool that manages containers automatically. It scales containers based on demand, heals failed containers, updates containers without downtime, and load balances traffic. It is like a ship captain for a fleet of containers.

  4. Describe the main components of Kubernetes architecture.

    Answer: The control plane is the brain of Kubernetes. Nodes are computers that run containers. Pods are the smallest unit, containing one or more containers. Deployments manage pods and scaling. Services expose pods to users. Namespaces organize resources.

  5. How do containers and Kubernetes support DevOps?

    Answer: Containers and Kubernetes are core parts of DevOps. Containers package software so it runs consistently everywhere. Kubernetes manages containers automatically. Together with DevOps culture, they enable fast, reliable software delivery. They make CI/CD pipelines work smoothly.


31. Scenario-based Exercises

Scenario 1: The Works on My Machine Problem

A company has a problem. Their app works on the developer's computer but crashes on the server. They spend hours trying to fix it.

Question: How could containers help this company?

Answer: Containers could help by packaging the app with everything it needs to run. The app would run the same way on the developer's computer and on the server. This would eliminate the "works on my machine" problem.

Scenario 2: The Traffic Spike

A Nigerian e-commerce company has a huge traffic spike during a sale. Their servers cannot handle the load and the website crashes.

Question: How could Kubernetes help this company?

Answer: Kubernetes could help by automatically scaling up the number of containers when traffic increases. It would start more containers to handle the load. When traffic decreases, it would scale down to save resources. This would keep the website running during the sale.

Scenario 3: The Nigerian Startup

A Nigerian startup wants to use containers and Kubernetes. They have a web app with 3 microservices. They want to deploy updates without downtime.

Question: How can they use Kubernetes to achieve zero-downtime updates?

Answer: They can use Kubernetes rolling updates. They create a deployment for each microservice. When they need to update, they change the image version in the deployment. Kubernetes automatically updates the pods one by one, ensuring zero downtime. If there is a problem, they can roll back easily.


32. Group Activity

Activity: The Container Simulation

Instructions:

  1. Form groups of 5-6 students.
  2. Assign roles:
    • 1 Developer: Writes the "app" (draws a picture)
    • 1 Docker: Packs the app in a "container" (puts it in a box)
    • 1 Kubernetes: Manages the "containers" (tells where to put them)
    • 1 Node: Runs the "containers" (holds the boxes)
    • 1 User: Uses the "app" (looks at the picture)
    • 1 Observer: Watches and gives feedback
  3. Simulate containers and Kubernetes:
    • Developer makes a picture (app)
    • Docker puts the picture in a box (container)
    • Kubernetes puts the boxes on different desks (nodes)
    • User looks at the picture (uses the app)
    • Kubernetes moves boxes when needed (scaling, healing)
  4. Discuss: How did Kubernetes help manage the containers? What would happen without it?
  5. Share with the class.

33. Individual Activity

Activity: My Container Plan

Instructions:

  1. Imagine you are a DevOps engineer. You are going to use containers and Kubernetes for a new project.
  2. Write a container plan. Include:
    • What app will you containerize?
    • What base image will you use?
    • What will your Dockerfile contain?
    • How many containers will you run?
    • How will you manage them with Kubernetes?
    • What benefits do you expect?
  3. Write a short reflection: What did you learn from this activity?
  4. Submit your plan and reflection.

34. Classroom Discussion Questions

  1. Why do you think containers are better than virtual machines?

    Discuss with your classmates and share your ideas.

  2. Have you ever had a problem where something worked on one computer but not another? How did it make you feel?

    Share your experiences and thoughts.

  3. What are some other situations where packaging everything together is helpful?

    Think about school, home, and other activities.

  4. Do you think Kubernetes is necessary for all projects?

    Share your opinions and listen to what others think.

  5. Can you think of a Nigerian company that might benefit from containers and Kubernetes?

    Share examples of companies in Nigeria.

  6. What do you think is the most important part of Kubernetes?

    Explain why you think so.

  7. Do you think containers are easy to learn? Why or why not?

    Share your thoughts.

  8. What is the most important thing you learned about containers and Kubernetes today?

    Share with the class.


35. Mini Project

Project: Create a "Containers and Kubernetes for Beginners" Guide

Goal: Create a simple guide to teach beginners about containers, Docker, and Kubernetes.

Instructions:

  1. Work individually or in small groups.
  2. Design a guide that includes:
    • A cover page with a title and a drawing
    • What are containers? (simple explanation)
    • Why do we need containers? (simple explanation)
    • What is Docker? (with image, container, Dockerfile)
    • What is Kubernetes? (with pods, deployments, services)
    • Kubernetes architecture (simple diagram)
    • Benefits of containers and Kubernetes
    • How they work with DevOps
    • Key vocabulary with definitions
    • A fun example or story
  3. Use simple language. Write as if you are teaching a 10-year-old.
  4. Include drawings or pictures.
  5. Present your guide to the class.

36. Practical Assignment

Assignment: Research Containers in Practice

Goal: Learn about real-world container and Kubernetes practice.

Instructions:

  1. Research a company. Choose a company that uses containers and Kubernetes (like a tech company, a bank, or an e-commerce company).
  2. Find out:
    • What container tool they use (Docker, etc.)
    • What orchestration tool they use (Kubernetes, etc.)
    • How they use containers
    • What benefits they have seen
  3. Write a report. Include:
    • The company name and what they do
    • How they use containers and Kubernetes
    • What you learned from this research
  4. Submit your report.

37. Challenge Exercise

Challenge: The Container Architect

Scenario:

You are a container architect at a Nigerian company. The company has 15 developers working on a large web application. They want to use containers and Kubernetes to improve their deployment process.

The company has:

  • 15 developers
  • A large web application with 5 microservices
  • Need to deploy updates frequently
  • Want zero downtime during updates
  • Want to scale automatically
  • Need self-healing for failures

Challenge: Create a complete container and Kubernetes implementation plan for this company. Include:

  • Container Strategy: Which tools will you use and how will you package the app?
  • Kubernetes Architecture: How will you structure your Kubernetes cluster?
  • Deployment Strategy: How will you handle deployments and updates?
  • Scaling Strategy: How will you scale the app?
  • Self-Healing: How will you handle failures?
  • Monitoring: How will you monitor the system?
  • Team Training: How will you train the team?
  • Success Metrics: How will you measure success?
  • Timeline: When will you implement each part?

BONUS CHALLENGE: Present your plan to the class as if you were presenting it to the company's management.


38. Quiz Answers

Multiple Choice Questions (Section 28):

  1. B
  2. C
  3. B
  4. B
  5. C
  6. B
  7. A
  8. B
  9. A
  10. A
  11. A
  12. B
  13. B
  14. B
  15. C

True or False Exercises (Section 27):

  1. True
  2. False
  3. False
  4. True
  5. True
  6. False
  7. True
  8. True
  9. True
  10. False
  11. True
  12. False
  13. True
  14. True
  15. True

Fill-in-the-Blank Exercises (Section 26):

  1. container
  2. Docker
  3. image
  4. Dockerfile
  5. Kubernetes
  6. pod
  7. deployment
  8. service
  9. namespace
  10. orchestration
  11. scaling
  12. self-healing

Matching Exercises (Section 29):

  1. D
  2. H
  3. F
  4. C
  5. A
  6. B
  7. I
  8. E
  9. G
  10. J

39. Key Takeaways

  • πŸ”Ή Containers package software so it runs the same everywhere. They solve the "works on my machine" problem.
  • πŸ”Ή Docker is the most popular tool for containers. It uses images (blueprints) and containers (running instances).
  • πŸ”Ή Dockerfile is a recipe for building images. Common commands include FROM, WORKDIR, COPY, RUN, and CMD.
  • πŸ”Ή Kubernetes manages containers automatically. It scales, heals, and updates them.
  • πŸ”Ή Pods are the smallest unit in Kubernetes. They hold one or more containers.
  • πŸ”Ή Deployments manage pods, scaling, and updates.
  • πŸ”Ή Services expose pods and load balance traffic.
  • πŸ”Ή Namespaces organize Kubernetes resources.
  • πŸ”Ή Benefits include consistency, scalability, reliability, speed, portability, efficiency, and DevOps enablement.
  • πŸ”Ή Containers and Kubernetes are core parts of DevOps. They enable fast, reliable software delivery.

40. Preparation for the Next Module

Congratulations! You have completed Module 6: "Containerization & Orchestration." You now understand how containers package software and how Kubernetes manages them automatically.

In Module 7, you will learn:

  • What is Monitoring? You will learn about monitoring systems and why they are important.
  • What is Logging? You will learn about collecting and analyzing logs.
  • What is Observability? You will learn about observability and how it helps teams understand their systems.
  • Prometheus: You will learn about Prometheus and how it collects metrics.
  • Grafana: You will learn about Grafana and how it visualizes data.
  • ELK Stack: You will learn about Elasticsearch, Logstash, and Kibana for logging.
  • Alerting: You will learn how to set up alerts and handle incidents.
  • Application Performance Monitoring (APM): You will learn about tracing and performance analysis.

Before you start Module 7, here are some things to think about:

  1. Think about checking on things. How do you check if something is working properly? Monitoring is like checking on your software.
  2. Think about logging. How do you keep a record of what happens? Logging is like keeping a diary for your software.
  3. Review what you learned. Make sure you understand containers and Kubernetes before moving on.

You are doing a fantastic job! Keep learning, keep growing, and we will see you in Module 7! πŸš€


© 2026 Certified DevOps Engineer Course • Module 6: Containerization & Orchestration (Docker & Kubernetes)

8

Module Seven

Module 7: Monitoring, Logging & Observability

πŸ“Š Module 7: Monitoring, Logging & Observability


1. Module Title

πŸ“Š Monitoring, Logging & Observability: Seeing What's Happening in Your Systems

Welcome to Module 7 of our Certified DevOps Engineer course! This module is called "Monitoring, Logging & Observability: Seeing What's Happening in Your Systems."

In this module, we will learn about monitoring, logging, and observability — three important practices that help us understand what is happening in our software systems. They are like the dashboard, gauges, and cameras in a car that tell you how the car is doing.

Think of monitoring like the speedometer in a car. It tells you how fast you are going. Logging is like the car's black box that records everything that happens. Observability is like being able to look under the hood and understand why the car is doing what it is doing.


2. Module Introduction

Hello and welcome back! In Module 1, we learned about DevOps. In Module 2, we learned about Git. In Module 3, we learned about Continuous Integration. In Module 4, we learned about Continuous Delivery. In Module 5, we learned about Infrastructure as Code. In Module 6, we learned about containers and Kubernetes. Now, in Module 7, we are going to learn about Monitoring, Logging, and Observability.

Imagine you are driving a car. You have a dashboard with gauges (monitoring), a GPS that tracks your route (logging), and the ability to open the hood and check the engine (observability). These three things help you understand how your car is doing and fix problems.

Software systems are the same. We need to know if they are working properly, what they are doing, and why they might be having problems. Monitoring, logging, and observability give us this information.

In this module, we will learn all about these practices — what they are, why they are important, and what tools we use. We will use simple words, fun stories, and lots of examples.

So, are you ready? Let us dive in and discover how to see what is happening in our software systems!


3. Learning Objectives

By the time you finish this module, you will be able to:

  • Explain what monitoring, logging, and observability are in your own simple words.
  • Understand why monitoring is important for DevOps.
  • Describe what metrics are and how they are used.
  • Explain what Prometheus is and how it collects metrics.
  • Understand what Grafana is and how it visualizes data.
  • Explain what logging is and why it is important.
  • Describe the ELK Stack (Elasticsearch, Logstash, Kibana).
  • Understand what APM (Application Performance Monitoring) is.
  • Explain alerting and incident response.
  • Give examples of how monitoring is used in real projects.
  • Feel excited to learn more about monitoring and observability!

4. Warm-up Story

The Dashboard Mystery

Once upon a time, in a busy city in Nigeria called Lagos, there was a company called "QuickPay." They built a payment app that helped people send money to each other.

The app was very popular. Millions of people used it every day. But the company had a big problem. They did not know when something went wrong. Their app would crash, and they would only find out when customers started calling to complain.

One day, a very important customer called. He said, "Your app is not working! I cannot send money to my family!" The team scrambled to fix the problem. But they had no idea what was wrong. They had to guess and check, which took hours.

The team was very frustrated. They knew they needed a way to see what was happening in their app. That is when they discovered monitoring, logging, and observability.

They set up Prometheus to collect metrics about their app. They used Grafana to create dashboards that showed everything in real-time. They set up logs to record every event. And they used alerts to notify them immediately when something went wrong.

Now, when something breaks, the team knows immediately. They get an alert on their phones. They look at the dashboard and see exactly what is wrong. They check the logs to see what happened. They fix the problem in minutes, not hours.

QuickPay became the most reliable payment app in Nigeria. Customers loved them. And it was all because they could see what was happening in their systems.

This story shows us how important it is to see what is happening in our software. Monitoring, logging, and observability make this possible. Let us learn more about these amazing tools!


5. Main Lessons

Lesson 1: What is Monitoring?

Definition

Monitoring is the practice of watching your systems to make sure they are working properly. It is like checking the gauges on your car dashboard to see if everything is okay.

Why is it Important?

Monitoring is important because it helps you know if your software is working. Without monitoring, you would not know when something is wrong until users tell you. Monitoring finds problems early.

Simple Explanation

Imagine you are a doctor. You check your patient's heartbeat, blood pressure, and temperature. These are all "monitoring" of the patient's health. Monitoring software is the same — you check its "vital signs" to see if it is healthy.

What We Monitor

  • CPU Usage: How much of the computer's brain power is being used.
  • Memory Usage: How much memory the software is using.
  • Disk Space: How much storage is available.
  • Network Traffic: How much data is being sent and received.
  • Response Time: How fast the software responds to requests.
  • Error Rate: How many errors are happening.
  • Uptime: How long the software has been running without interruption.

Real-life Example

A company monitors their website. They watch the response time and error rate. If the response time gets too slow, they know they need to add more servers.

School Example

Your teacher monitors the class. They check if students are paying attention, if the lesson is going well, and if anyone needs help. Monitoring software does the same for computer systems.

Home Example

Your family monitors the house. You check if the lights are on, if the doors are locked, and if the temperature is comfortable. Monitoring software does the same for servers.

Nigerian Example

A Nigerian bank monitors their mobile app. They check if the app is available, how fast it is, and if there are any errors. This helps them provide reliable service to their customers.

Illustration

    WHAT IS MONITORING?

    +--------------------------------------------------+
    |  MONITORING (Like a car dashboard)               |
    |                                                   |
    |  +-------------------------------------------+    |
    |  |  Speed: 60 km/h                         |    |
    |  |  Fuel: 75%                              |    |
    |  |  Engine: Normal                         |    |
    |  |  Temperature: 90Β°C                     |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  MONITORING SOFTWARE:                            |
    |  +-------------------------------------------+    |
    |  |  CPU: 45%                               |    |
    |  |  Memory: 60%                            |    |
    |  |  Disk: 80%                              |    |
    |  |  Response Time: 200ms                  |    |
    |  |  Errors: 0                             |    |
    |  |  Uptime: 99.9%                         |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Monitoring = Checking system health!          |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Monitoring is the practice of watching your systems to make sure they are working properly. It checks things like CPU, memory, response time, and errors. It is like looking at the dashboard of a car.


Lesson 2: Why Do We Need Monitoring?

Definition

Why we need monitoring: We need monitoring because software systems can break without warning. Monitoring gives us early warning so we can fix problems before they affect users.

Why is it Important?

Monitoring helps us keep our software running smoothly. It saves time, money, and protects our reputation. Without monitoring, we are flying blind.

Simple Explanation

Imagine you are driving a car that has no dashboard. You cannot see how fast you are going, how much fuel you have, or if the engine is overheating. You could break down at any time without warning. Monitoring is like having a dashboard for your software!

Problems Without Monitoring

Problem What It Means Monitoring Solution
Unknown Issues You do not know when something is wrong Monitoring shows you in real-time
Slow Response It takes hours to find and fix problems Monitoring helps you find problems instantly
Unhappy Users Users are frustrated by broken software Monitoring prevents issues from affecting users
Lost Money Downtime costs money Monitoring reduces downtime
Blame Game No one knows what caused the problem Monitoring provides evidence

Real-life Example

A company without monitoring had a server crash. They only found out when customers started calling. It took 4 hours to fix. With monitoring, they would have been alerted in seconds and fixed it in minutes.

School Example

Your school does not have a bell system. Teachers do not know when class starts. There is chaos. Monitoring is like having a bell system for your software — it tells you when something is wrong.

Home Example

Your family does not have a smoke detector. A fire could start and no one would know. Monitoring is like a smoke detector for your software.

Nigerian Example

A Nigerian e-commerce company did not have monitoring. Their website went down during a big sale. They lost millions of naira in sales. After adding monitoring, they never had a problem like that again.

Illustration

    WHY WE NEED MONITORING

    WITHOUT MONITORING:
    +--------------------------------------------------+
    |  ❌ No idea what is happening                    |
    |  ❌ Problems found late                         |
    |  ❌ Slow to fix problems                        |
    |  ❌ Unhappy users                               |
    |  ❌ Lost money                                  |
    +--------------------------------------------------+

    WITH MONITORING:
    +--------------------------------------------------+
    |  βœ… Real-time visibility                         |
    |  βœ… Problems found immediately                  |
    |  βœ… Fast to fix problems                        |
    |  βœ… Happy users                                  |
    |  βœ… Save money                                   |
    +--------------------------------------------------+
    

Mini Summary

We need monitoring because it gives us early warning when something goes wrong. It helps us fix problems quickly before they affect users. Without monitoring, we are flying blind.


Lesson 3: What are Metrics?

Definition

Metrics are numbers that tell us about the health and performance of our systems. They are like the numbers on a dashboard — speed, fuel, temperature.

Why is it Important?

Metrics are important because they give us objective, measurable information about our systems. They help us see trends, spot problems, and make decisions.

Simple Explanation

Imagine you are tracking your fitness. You measure your weight, your steps, your heart rate. These are your fitness metrics. Software metrics are the same — they are numbers that tell us how our software is doing.

Types of Metrics

Type What It Measures Example
Counter Count of events that happen Number of requests, errors, users
Gauge A current value that goes up and down CPU usage, memory usage, temperature
Histogram Distribution of values Response times, request sizes
Summary Statistical summary of values Average, median, percentile

Common Metrics

  • Request Rate: How many requests per second.
  • Error Rate: What percentage of requests fail.
  • Latency: How long it takes to respond.
  • Availability: What percentage of time the system is working.
  • CPU Usage: How much CPU is being used.
  • Memory Usage: How much memory is being used.
  • Disk Usage: How much disk space is available.
  • Network Traffic: How much data is flowing.

Real-life Example

A company tracks these metrics: requests per second, average response time, and error rate. If the error rate goes above 1%, they investigate.

School Example

Your class tracks metrics for a project: number of tasks completed, time spent, and quality score. These metrics help you see how you are doing.

Home Example

Your family tracks metrics: grocery spending, electricity usage, and chores completed. These metrics help you manage your household.

Nigerian Example

A Nigerian company tracks metrics for their app: daily active users, transactions per day, and average transaction time. These metrics help them understand their business.

Illustration

    METRICS

    +--------------------------------------------------+
    |  METRICS (Numbers that tell us about health)     |
    |                                                   |
    |  COUNTER (Counts events):                         |
    |  +-------------------------------------------+    |
    |  |  Total Requests: 1,234,567               |    |
    |  |  Total Errors: 12,345                    |    |
    |  |  Total Users: 45,678                    |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  GAUGE (Current value):                          |
    |  +-------------------------------------------+    |
    |  |  CPU Usage: 45%                           |    |
    |  |  Memory Usage: 60%                        |    |
    |  |  Current Users: 1,234                    |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  HISTOGRAM (Distribution):                       |
    |  +-------------------------------------------+    |
    |  |  Response Times:                           |    |
    |  |  ≀ 10ms: 80%                              |    |
    |  |  ≀ 50ms: 15%                              |    |
    |  |  ≀ 100ms: 4%                              |    |
    |  |  > 100ms: 1%                              |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Metrics = Numbers that matter!                 |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Metrics are numbers that tell us about the health of our systems. They include things like request rate, error rate, latency, and resource usage. Metrics help us see what is happening.


Lesson 4: Introduction to Prometheus

Definition

Prometheus is a popular tool for collecting and storing metrics. It is like a super-smart data collector that gathers numbers from your systems and stores them for you.

Why is it Important?

Prometheus is important because it is one of the most popular monitoring tools in the world. It is used by thousands of companies, including many in Nigeria.

Simple Explanation

Imagine you have a robot that goes around collecting data from all your sensors. It checks the temperature, the speed, the fuel level. Then it writes all the data down in a notebook. Prometheus is like that robot for your software systems!

Key Features of Prometheus

  • Pull-based: Prometheus "pulls" data from your systems, like asking for it.
  • Time Series Database: Stores data with timestamps.
  • Powerful Query Language: PromQL lets you ask questions about your data.
  • Alerting: Can send alerts when something is wrong.
  • Integration: Works with many systems and tools.
  • Open Source: Free to use and modify.

Real-life Example

A company uses Prometheus to collect metrics from their Kubernetes cluster. Prometheus gathers CPU, memory, and network metrics from every container. They can see the health of their entire system.

School Example

Your school has a robot that collects data from every classroom. It checks how many students are present, how much noise there is, and the temperature. Prometheus is like that robot but for servers.

Home Example

Your family has a smart home system that collects data from all the sensors. It checks the temperature, the lights, and the locks. Prometheus is like that smart home system for software.

Nigerian Example

A Nigerian fintech uses Prometheus to monitor their payment system. They collect metrics on transaction success rates, response times, and system resources. This helps them provide reliable service.

Illustration

    PROMETHEUS

    +--------------------------------------------------+
    |  PROMETHEUS (Data Collector)                     |
    |                                                   |
    |  +-------------------------------------------+    |
    |  |  "Pull" metrics from systems             |    |
    |  |  Store in time series database           |    |
    |  |  Query with PromQL                       |    |
    |  |  Send alerts when problems found        |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  SYSTEMS TO MONITOR:                              |
    |  +-------------------------------------------+    |
    |  |  Server 1: CPU 45%, Memory 60%           |    |
    |  |  Server 2: CPU 30%, Memory 45%           |    |
    |  |  App 1: Requests 1,234/s                 |    |
    |  |  Database: Queries 567/s                 |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Prometheus = Open source monitoring!          |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Prometheus is a popular tool for collecting and storing metrics. It pulls data from systems, stores it in a time series database, and allows you to query and alert on the data. It is open source and widely used.


Lesson 5: Introduction to Grafana

Definition

Grafana is a tool that creates beautiful dashboards from your metrics. It takes the numbers from Prometheus and turns them into graphs, charts, and visualizations that are easy to understand.

Why is it Important?

Grafana is important because it makes monitoring data easy to see and understand. A picture is worth a thousand words, and Grafana turns numbers into pictures.

Simple Explanation

Imagine you have a lot of data in a spreadsheet. It is just numbers in rows and columns. It is hard to see patterns. Grafana is like a tool that turns that spreadsheet into colorful graphs and charts. Suddenly, you can see what is happening!

What Grafana Can Do

  • Dashboards: Create custom dashboards with graphs and charts.
  • Visualizations: Show data as line graphs, bar charts, heatmaps, and more.
  • Alerting: Send alerts when metrics cross thresholds.
  • Data Sources: Works with many data sources (Prometheus, Elasticsearch, InfluxDB, etc.).
  • Annotations: Add notes to graphs to mark events.
  • Sharing: Share dashboards with your team.

Real-life Example

A company uses Grafana to visualize their Prometheus metrics. They have a dashboard that shows CPU usage, memory usage, request rate, and error rate. The team can see at a glance if everything is healthy.

School Example

Your school tracks student performance. Instead of looking at spreadsheets, they use a dashboard that shows grades, attendance, and progress in colorful charts. Grafana is like that dashboard for software.

Home Example

Your family tracks expenses. Instead of a boring spreadsheet, they use a dashboard that shows spending in colorful pie charts and bar graphs. Grafana is like that dashboard for metrics.

Nigerian Example

A Nigerian company uses Grafana to monitor their app. Their dashboard shows transactions per minute, response times, and error rates. They can see the health of their system at a glance.

Illustration

    GRAFANA

    +--------------------------------------------------+
    |  GRAFANA DASHBOARD                               |
    |                                                   |
    |  +-------------------------------------------+    |
    |  |  πŸ“Š CPU Usage                            |    |
    |  |  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘ 80%           |    |
    |  +-------------------------------------------+    |
    |  +-------------------------------------------+    |
    |  |  πŸ“ˆ Request Rate                         |    |
    |  |  ╔═══════════════════════════╗            |    |
    |  |  β•‘  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ  β•‘ 1,234/s   |    |
    |  |  β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•            |    |
    |  +-------------------------------------------+    |
    |  +-------------------------------------------+    |
    |  |  πŸ”΄ Error Rate                           |    |
    |  |  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0.5%            |    |
    |  +-------------------------------------------+    |
    |  +-------------------------------------------+    |
    |  |  ⏱️ Response Time                        |    |
    |  |  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘ 45ms          |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Grafana = Beautiful dashboards!               |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Grafana is a tool that creates beautiful dashboards from metrics. It turns numbers into graphs and charts that are easy to understand. It works with many data sources including Prometheus.


Lesson 6: Prometheus and Grafana Together

Definition

Prometheus and Grafana together form a powerful monitoring stack. Prometheus collects and stores the data. Grafana visualizes it. They work together like a pair of best friends.

Why is it Important?

Together, they give you a complete monitoring solution. You can collect data, store it, visualize it, and alert on it. This is the standard monitoring setup used by thousands of companies.

Simple Explanation

Imagine you are a detective. Prometheus is your notebook where you write down all the clues. Grafana is your corkboard where you pin up the clues and see the big picture. Together, they help you solve the mystery!

How They Work Together

Component What It Does Analogy
Prometheus Collects and stores metrics A notebook for data
Grafana Visualizes metrics on dashboards A corkboard for visual clues
Together Complete monitoring solution A detective's investigation board

Real-life Example

A company sets up Prometheus to collect metrics from their servers. They connect Grafana to Prometheus. They create a dashboard that shows everything in real-time. The team can see the health of their systems at a glance.

School Example

Your class uses a notebook to record data (Prometheus) and a whiteboard to draw charts (Grafana). Together, you can see the full picture of your project.

Home Example

Your family uses a spreadsheet to track expenses (Prometheus) and a chart to visualize spending (Grafana). Together, you can manage your budget better.

Nigerian Example

A Nigerian company uses Prometheus and Grafana. Prometheus collects metrics from their app. Grafana shows them on a dashboard. The team can see the health of their app in real-time.

Illustration

    PROMETHEUS + GRAFANA

    +--------------------------------------------------+
    |  PROMETHEUS (Data Collector)                     |
    |  +-------------------------------------------+    |
    |  |  Collects metrics from servers, apps,     |    |
    |  |  containers, and other systems            |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  GRAFANA (Visualizer)                            |
    |  +-------------------------------------------+    |
    |  |  Creates beautiful dashboards from data   |    |
    |  |  Shows graphs, charts, and alerts         |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  TEAM CAN SEE THE BIG PICTURE!                   |
    |  +-------------------------------------------+    |
    |  |  βœ… Real-time visibility                   |    |
    |  |  βœ… Quick problem detection                |    |
    |  |  βœ… Better decision making                 |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Prometheus + Grafana = Monitoring power!      |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Prometheus and Grafana work together to provide a complete monitoring solution. Prometheus collects and stores data. Grafana visualizes it on beautiful dashboards. Together, they give you real-time visibility into your systems.


Lesson 7: What is Logging?

Definition

Logging is the practice of recording events that happen in your software. Logs are like a diary that records everything your software does.

Why is it Important?

Logging is important because it gives you a detailed record of what happened. When something goes wrong, logs help you figure out what happened and why.

Simple Explanation

Imagine you are a detective investigating a crime. You need to know what happened. You look at witness statements, security camera footage, and other evidence. Logs are like that evidence for your software.

What Logs Contain

  • Timestamp: When the event happened.
  • Level: How important the event is (INFO, WARNING, ERROR, DEBUG).
  • Message: What happened.
  • Source: Where the log came from.
  • Context: Additional information (user ID, request ID, etc.).
  • Stack Trace: For errors, the sequence of function calls that led to the error.

Real-life Example

A web app logs every request: who made the request, what they asked for, and how long it took. If something goes wrong, they can look at the logs to see what happened.

School Example

Your teacher keeps a log of attendance. It records who came to class and who was absent. This helps the teacher know who is missing. Logs do the same for software.

Home Example

Your family keeps a log of who does the chores. It records who did what and when. This helps everyone know what has been done. Logs do the same for software.

Nigerian Example

A Nigerian bank logs every transaction. If a customer calls to complain about a transaction, the bank can look at the logs to see what happened.

Illustration

    LOGGING

    +--------------------------------------------------+
    |  LOG FILE (Diary of events)                      |
    |                                                   |
    |  [2026-07-15 10:00:01] INFO: User 123 logged in   |
    |  [2026-07-15 10:00:05] INFO: User 123 viewed page |
    |  [2026-07-15 10:00:10] WARNING: Slow query took  |
    |                        5 seconds                  |
    |  [2026-07-15 10:00:15] ERROR: Payment failed for  |
    |                        order 456                  |
    |  [2026-07-15 10:00:20] DEBUG: Payment gateway     |
    |                        returned timeout           |
    |                                                   |
    |  Log Levels:                                      |
    |  +-------------------------------------------+    |
    |  |  DEBUG: Very detailed for debugging      |    |
    |  |  INFO: General information               |    |
    |  |  WARNING: Something might be wrong      |    |
    |  |  ERROR: Something definitely went wrong |    |
    |  |  FATAL: Critical failure                |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Logs = Evidence for your software!            |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Logging is the practice of recording events that happen in your software. Logs are like a diary that records everything your software does. They help you investigate problems and understand what happened.


Lesson 8: The ELK Stack

Definition

The ELK Stack is a set of three tools for collecting, storing, and visualizing logs. ELK stands for Elasticsearch, Logstash, and Kibana.

Why is it Important?

The ELK Stack is important because it gives you a complete logging solution. You can collect logs from any source, store them, search them, and visualize them. It is the most popular logging stack in the world.

Simple Explanation

Imagine you have a huge library with millions of books. Elasticsearch is the library catalog that helps you find books quickly. Logstash is the librarian who collects books from everywhere. Kibana is the reading room where you can read and understand the books. Together, they help you manage all your logs!

The ELK Stack Components

Component What It Does Analogy
Elasticsearch Stores and indexes logs so they can be searched quickly A library catalog
Logstash Collects logs from various sources and sends them to Elasticsearch A librarian
Kibana Visualizes logs on dashboards A reading room

Real-life Example

A company uses the ELK Stack to manage their logs. Logstash collects logs from all their servers. Elasticsearch stores and indexes them. Kibana provides a dashboard where the team can search and visualize the logs.

School Example

Your school has a library (Elasticsearch), a librarian (Logstash) who collects books from all classrooms, and a reading room (Kibana) where students can read. The ELK Stack is like that for logs.

Home Example

Your family has a filing system (Elasticsearch), a person who collects documents (Logstash), and a desk (Kibana) where you organize them. The ELK Stack is like that for logs.

Nigerian Example

A Nigerian company uses the ELK Stack for logging. Logstash collects logs from their servers. Elasticsearch stores them. Kibana provides a dashboard for the team to search and analyze logs.

Illustration

    THE ELK STACK

    +--------------------------------------------------+
    |  LOGSTASH (Collector)                            |
    |  +-------------------------------------------+    |
    |  |  Collects logs from servers, apps, and    |    |
    |  |  containers                               |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  ELASTICSEARCH (Storage)                         |
    |  +-------------------------------------------+    |
    |  |  Stores and indexes logs                   |    |
    |  |  Fast search capabilities                  |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  KIBANA (Visualization)                          |
    |  +-------------------------------------------+    |
    |  |  Creates dashboards from logs             |    |
    |  |  Search and analyze logs                  |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ ELK Stack = Complete logging solution!        |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

The ELK Stack is a set of tools for logging. Elasticsearch stores and indexes logs. Logstash collects logs from various sources. Kibana visualizes logs on dashboards. Together, they provide a complete logging solution.


Lesson 9: What is Observability?

Definition

Observability is the ability to understand what is happening inside a system from the outside. It goes beyond monitoring and logging to help you understand why something is happening.

Why is it Important?

Observability is important because it helps you solve problems you have never seen before. Monitoring tells you something is wrong. Observability tells you why.

Simple Explanation

Imagine you are a doctor. Monitoring tells you that a patient has a fever. Logging tells you the patient's temperature history. Observability tells you why the patient has a fever — maybe it is an infection. Observability is about understanding the cause.

The Three Pillars of Observability

Pillar What It Is Analogy
Metrics Numbers about system health Your temperature reading
Logs Records of events Your medical history
Traces Records of requests through the system A doctor's diagnosis

Real-life Example

A company has a slow payment system. Monitoring shows that response times are high. Logs show many errors. Traces show that a database query is slow. Observability helps them find the root cause.

School Example

A student is not doing well in class. Monitoring (grades) shows a problem. Logs (attendance, behavior) provide more information. Observability (understanding why) might reveal that the student is struggling with a specific subject.

Home Example

Your house is too hot. Monitoring (thermometer) shows the temperature. Logs (thermostat settings) show what it is set to. Observability (checking the air conditioner) reveals the AC is broken.

Nigerian Example

A Nigerian company has a problem with their app. Monitoring shows errors. Logs show error messages. Tracing shows that a third-party service is slow. Observability helps them identify the root cause.

Illustration

    OBSERVABILITY

    +--------------------------------------------------+
    |  OBSERVABILITY (Understanding WHY)               |
    |                                                   |
    |  MONITORING:                                      |
    |  +-------------------------------------------+    |
    |  |  "The system is slow!"                    |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  LOGGING:                                        |
    |  +-------------------------------------------+    |
    |  |  "There are many errors!"                 |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  TRACING:                                        |
    |  +-------------------------------------------+    |
    |  |  "The database query is slow!"            |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  OBSERVABILITY:                                   |
    |  +-------------------------------------------+    |
    |  |  "The database is missing an index!"      |    |
    |  |  βœ… We know WHY!                         |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Observability = Understanding the cause!      |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Observability is the ability to understand why something is happening. It goes beyond monitoring and logging. It uses metrics, logs, and traces to help you find the root cause of problems.


Lesson 10: Application Performance Monitoring (APM)

Definition

Application Performance Monitoring (APM) is a type of monitoring that focuses on the performance of your applications. It tracks how fast your app is, how often it errors, and what users are experiencing.

Why is it Important?

APM is important because it helps you understand how your users experience your app. If your app is slow, users will leave. APM helps you keep your app fast and reliable.

Simple Explanation

Imagine you are a restaurant owner. You want to know how long customers wait for their food, how often orders are wrong, and if customers are happy. APM is like that for your app — it tracks how your app is performing for users.

What APM Tracks

  • Response Time: How long it takes to respond to requests.
  • Error Rate: How many requests fail.
  • Throughput: How many requests are processed.
  • Transaction Traces: The path of a request through the system.
  • User Experience: How users perceive the app's performance.
  • Resource Usage: CPU, memory, and network usage.
  • Dependencies: How the app interacts with external services.

Real-life Example

A company uses APM to track their e-commerce app. They see that the checkout page is slow. They investigate and find that a database query is slow. They fix it and checkout becomes fast again.

School Example

Your teacher tracks how long it takes for students to complete tests. If a test takes too long, they adjust it. APM does the same for apps.

Home Example

Your family tracks how long it takes to get ready in the morning. If it takes too long, you adjust your routine. APM does the same for apps.

Nigerian Example

A Nigerian company uses APM to monitor their mobile app. They track response times and error rates. They notice that the app is slow in some areas. They optimize it and users have a better experience.

Illustration

    APPLICATION PERFORMANCE MONITORING (APM)

    +--------------------------------------------------+
    |  APM DASHBOARD                                   |
    |                                                   |
    |  +-------------------------------------------+    |
    |  |  ⏱️ Average Response Time: 200ms          |    |
    |  |  πŸ”΄ Error Rate: 0.5%                     |    |
    |  |  πŸ“Š Requests per second: 1,234           |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  Transaction Trace:                              |
    |  +-------------------------------------------+    |
    |  |  User Request β†’ API Gateway β†’ Service A  |    |
    |  |  β†’ Service B β†’ Database β†’ Response       |    |
    |  |                                          |    |
    |  |  Service A: 50ms                        |    |
    |  |  Service B: 100ms                       |    |
    |  |  Database: 50ms                         |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ APM = Performance monitoring for apps!        |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

APM is a type of monitoring that focuses on application performance. It tracks response time, error rate, and user experience. It helps you keep your app fast and reliable.


Lesson 11: Alerting and Incident Response

Definition

Alerting is the practice of sending notifications when something goes wrong. Incident response is the process of fixing the problem when an alert is triggered.

Why is it Important?

Alerting is important because it tells you immediately when something is wrong. Incident response is important because it gives you a plan for fixing problems quickly.

Simple Explanation

Imagine you are a firefighter. Alerting is like the fire alarm that tells you there is a fire. Incident response is like the plan you follow to put out the fire. Together, they help you respond to emergencies quickly.

Alerting Best Practices

  • Alert on Symptoms, Not Causes: Alert when users are affected, not when a server is slow.
  • Actionable Alerts: An alert should tell you what to do to fix the problem.
  • No Alert Fatigue: Do not send too many alerts. People ignore alerts if there are too many.
  • Escalation: If no one responds, escalate to the next person.
  • Clear Information: The alert should include what is wrong and how to fix it.
  • Testing: Test your alerts regularly to make sure they work.

Incident Response Process

  1. Detect: Get alerted that something is wrong.
  2. Diagnose: Figure out what the problem is.
  3. Contain: Stop the problem from getting worse.
  4. Fix: Fix the root cause of the problem.
  5. Recover: Restore normal service.
  6. Review: Learn from the incident and improve.

Real-life Example

A company has an alert that triggers when the error rate goes above 1%. When the alert fires, the team follows their incident response plan. They diagnose the problem, fix it, and restore service. Afterward, they review what happened to prevent it from happening again.

School Example

Your school has a fire alarm (alert) and a fire drill plan (incident response). When the alarm goes off, everyone follows the plan. This is like alerting and incident response for software.

Home Example

Your family has a smoke detector (alert) and a fire escape plan (incident response). When the detector goes off, everyone follows the plan. This is like alerting and incident response for software.

Nigerian Example

A Nigerian company has alerts set up for their payment system. If the error rate goes above 0.5%, an alert is sent to the on-call engineer. They follow the incident response plan to fix the problem quickly.

Illustration

    ALERTING & INCIDENT RESPONSE

    +--------------------------------------------------+
    |  ALERT TRIGGERED                                 |
    |  +-------------------------------------------+    |
    |  |  🚨 Alert: Error rate is 2%!             |    |
    |  |  Service: Payment System                  |    |
    |  |  Time: 10:05 AM                          |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  INCIDENT RESPONSE PROCESS                       |
    |  +-------------------------------------------+    |
    |  |  1. Detect: Alert received                 |    |
    |  |  2. Diagnose: What is wrong?               |    |
    |  |  3. Contain: Stop it from spreading        |    |
    |  |  4. Fix: Fix the root cause                |    |
    |  |  5. Recover: Restore service               |    |
    |  |  6. Review: Learn and improve              |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  SERVICE RESTORED!                               |
    |  +-------------------------------------------+    |
    |  |  βœ… System is healthy again!               |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Alerting + Response = Fast recovery!          |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Alerting sends notifications when something goes wrong. Incident response is the plan for fixing the problem. Together, they help you respond quickly and recover from problems.


Lesson 12: Monitoring, Logging, Observability, and DevOps

Definition

Monitoring, logging, observability, and DevOps work together to help teams build and run reliable software. Monitoring tells you what is happening. Logging tells you what happened. Observability tells you why. DevOps provides the culture to act on this information.

Why is it Important?

These four things work together to make software reliable. Without them, teams are blind. With them, teams can see everything and respond quickly.

Simple Explanation

Imagine you are a doctor. Monitoring is like checking the patient's vital signs. Logging is like reading the patient's medical history. Observability is like running tests to find the cause. DevOps is like the team of doctors working together to treat the patient.

How They Work Together

Component What It Does Analogy
Monitoring Tells you what is happening Vital signs
Logging Records what happened Medical history
Observability Explains why it happened Medical tests
DevOps Culture to act on information The medical team

Real-life Example

A company uses monitoring, logging, observability, and DevOps together. Monitoring shows a problem. Logs provide details. Observability explains the cause. The DevOps team works together to fix it quickly.

School Example

Your school tracks student performance (monitoring), keeps records (logging), understands why students struggle (observability), and has teachers who help (DevOps). Together, they help students succeed.

Home Example

Your family tracks expenses (monitoring), keeps receipts (logging), understands why you overspend (observability), and works together to budget (DevOps). Together, they help manage money.

Nigerian Example

A Nigerian company uses monitoring, logging, observability, and DevOps. They monitor their app, log everything, use observability to understand issues, and have a DevOps team to fix them. Their app is very reliable.

Illustration

    MONITORING + LOGGING + OBSERVABILITY + DEVOPS

    +--------------------------------------------------+
    |  MONITORING:                                     |
    |  +-------------------------------------------+    |
    |  |  "The system is slow!"                    |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  LOGGING:                                        |
    |  +-------------------------------------------+    |
    |  |  "There are many errors!"                 |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  OBSERVABILITY:                                   |
    |  +-------------------------------------------+    |
    |  |  "The database query is slow!"            |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  DEVOPS:                                          |
    |  +-------------------------------------------+    |
    |  |  Team fixes the database query            |    |
    |  |  System is fast again!                    |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Together they make software reliable!          |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

Monitoring, logging, observability, and DevOps work together. Monitoring tells you what is happening. Logging records what happened. Observability explains why. DevOps provides the culture to act on the information. Together, they make software reliable.


Lesson 13: What We Have Learned So Far

Definition

In this lesson, we will review everything we have learned about monitoring, logging, and observability. This will help us remember the most important ideas.

Why is it Important?

Reviewing helps us remember what we have learned. When we keep information in our brains, we can use it later.

Simple Explanation

Let us think back to everything we have talked about in this module:

  • What is monitoring? Watching your systems to make sure they are working properly.
  • Why do we need monitoring? To find problems early and fix them quickly.
  • What are metrics? Numbers that tell us about the health of our systems.
  • What is Prometheus? A tool that collects and stores metrics.
  • What is Grafana? A tool that creates dashboards from metrics.
  • What is logging? Recording events that happen in your software.
  • What is the ELK Stack? A set of tools for logging (Elasticsearch, Logstash, Kibana).
  • What is observability? The ability to understand why something is happening.
  • What is APM? Monitoring focused on application performance.
  • What is alerting? Sending notifications when something goes wrong.
  • What is incident response? The process of fixing problems.
  • How do they work with DevOps? Together, they make software reliable.

Real-life Example

A team has learned all these concepts. They use Prometheus and Grafana for monitoring. They use the ELK Stack for logging. They have alerts set up. Their software is very reliable.

School Example

Your class has learned about monitoring. They understand the importance of checking on things and keeping records.

Home Example

Your family has learned about monitoring. They understand the importance of checking on things and keeping track of what happens.

Nigerian Example

A Nigerian developer has learned all these concepts. They can now monitor their apps, log everything, and understand why problems happen.

Illustration

    WHAT WE HAVE LEARNED

    +--------------------------------------------------+
    |                                                   |
    |  πŸ“Œ Monitoring = Watch systems for problems      |
    |  πŸ“Œ Metrics = Numbers about system health        |
    |  πŸ“Œ Prometheus = Collects metrics                |
    |  πŸ“Œ Grafana = Visualizes metrics                 |
    |  πŸ“Œ Logging = Record events                      |
    |  πŸ“Œ ELK Stack = Logging tools                    |
    |  πŸ“Œ Observability = Understand why               |
    |  πŸ“Œ APM = App performance monitoring             |
    |  πŸ“Œ Alerting = Notify when problems occur        |
    |  πŸ“Œ Incident Response = Fix problems             |
    |  πŸ“Œ All work with DevOps for reliability         |
    |                                                   |
    |  YOU ARE NOW A MONITORING BEGINNER! πŸŽ‰           |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

We have learned many things about monitoring, logging, and observability. These practices help us see what is happening in our systems, understand why, and respond quickly. They are essential for reliable software.


6. Key Vocabulary

Here are the important words we learned in this module. Each word has a simple definition to help you remember it.

Word Simple Definition
Monitoring Watching systems to make sure they are working properly
Metric A number that tells us about system health
Prometheus A tool that collects and stores metrics
Grafana A tool that creates dashboards from metrics
Logging Recording events that happen in software
Log A record of an event
ELK Stack A set of logging tools (Elasticsearch, Logstash, Kibana)
Observability The ability to understand why something is happening
Trace A record of a request through the system
APM Application Performance Monitoring
Alerting Sending notifications when something goes wrong
Incident Response The process of fixing problems
Latency How long it takes to respond
Throughput How many requests are processed
Dashboard A screen that shows metrics and logs

7. Important Concepts

Here are the most important concepts from this module. These are the big ideas that will help you understand monitoring, logging, and observability.

  1. Monitoring gives you real-time visibility. Monitoring watches your systems and tells you when something is wrong. It is like a dashboard for your software.

  2. Metrics are numbers that matter. Metrics like CPU usage, response time, and error rate tell you about the health of your systems. They help you make decisions.

  3. Prometheus and Grafana are a powerful pair. Prometheus collects metrics. Grafana visualizes them. Together, they give you a complete monitoring solution.

  4. Logging records everything. Logs are like a diary for your software. They record every event and help you investigate problems.

  5. The ELK Stack is a complete logging solution. Elasticsearch stores logs, Logstash collects them, and Kibana visualizes them. They work together like a library system for logs.

  6. Observability helps you understand why. Monitoring tells you something is wrong. Observability tells you why. It uses metrics, logs, and traces to find the root cause.

  7. Alerting and incident response save time. Alerts tell you when something is wrong. Incident response is the plan to fix it. Together, they help you recover quickly.

  8. These practices are essential for DevOps. Monitoring, logging, and observability are core parts of DevOps. They help teams build and run reliable software.


8. Step-by-Step Explanations

Let us look at how to set up monitoring, logging, and observability in simple steps:

Step 1: Choose Your Monitoring Tool

Decide which monitoring tool to use. Prometheus is a popular choice. It is open source and works with many systems.

Step 2: Install Prometheus

Download and install Prometheus on your server. Configure it to collect metrics from your systems.

Step 3: Set Up Grafana

Install Grafana and connect it to Prometheus. Create dashboards to visualize your metrics.

Step 4: Set Up Logging

Install the ELK Stack or another logging solution. Configure your applications to send logs to the logging system.

Step 5: Set Up Alerting

Configure alerts in Prometheus or Grafana. Set thresholds for important metrics (e.g., error rate > 1%, response time > 500ms).

Step 6: Create an Incident Response Plan

Write a plan for how to respond when alerts fire. Include steps for diagnosing, containing, and fixing problems.

Step 7: Test and Iterate

Test your alerts and dashboards regularly. Make sure they are working correctly. Improve them based on what you learn.

Illustration

    STEP-BY-STEP: SETTING UP MONITORING

    Step 1: CHOOSE TOOL
    +-------------------+
    |  Prometheus       |
    +-------------------+
           |
           V
    Step 2: INSTALL PROMETHEUS
    +-------------------+
    |  Configure to     |
    |  collect metrics  |
    +-------------------+
           |
           V
    Step 3: SET UP GRAFANA
    +-------------------+
    |  Connect to       |
    |  Prometheus       |
    |  Create dashboards|
    +-------------------+
           |
           V
    Step 4: SET UP LOGGING
    +-------------------+
    |  Install ELK Stack|
    |  Send logs        |
    +-------------------+
           |
           V
    Step 5: SET UP ALERTING
    +-------------------+
    |  Configure alerts |
    |  Set thresholds   |
    +-------------------+
           |
           V
    Step 6: CREATE RESPONSE PLAN
    +-------------------+
    |  Write plan for   |
    |  fixing problems  |
    +-------------------+
           |
           V
    Step 7: TEST & ITERATE
    +-------------------+
    |  Test and improve |
    +-------------------+
    

9. Real-life Examples

Example 1: The E-commerce Company

An e-commerce company uses Prometheus and Grafana to monitor their website. They have dashboards showing CPU, memory, request rate, and error rate. They have alerts set up for high error rates and slow response times.

Example 2: The Mobile App Team

A mobile app team uses the ELK Stack for logging. Logstash collects logs from their app. Elasticsearch stores them. Kibana provides a dashboard where the team can search and analyze logs.

Example 3: The Banking System

A bank uses APM to monitor their mobile app. They track response times, error rates, and user experience. If the app is slow, they can see exactly where the problem is and fix it quickly.


10. Nigerian Examples

Example 1: Flutterwave

Flutterwave uses Prometheus and Grafana to monitor their payment platform. They have dashboards that show transaction success rates, response times, and error rates. This helps them provide reliable service.

Example 2: Paystack

Paystack uses logging and observability to monitor their payment processing. They log every transaction and use tracing to understand the flow of requests. This helps them find and fix problems quickly.

Example 3: Nigerian Tech Startup

A Nigerian tech startup uses monitoring, logging, and observability. They have alerts set up for their app. If something goes wrong, they are notified immediately and can fix it before users are affected.


11. Fun Examples Children Can Relate To

Example 1: The Dashboard

You are playing a video game. You have a dashboard that shows your health, ammo, and energy. Monitoring is like that dashboard for your software — it shows you how your software is doing.

Example 2: The Diary

You keep a diary of what you did each day. Logging is like that diary for your software — it records everything that happens.

Example 3: The Detective

You are a detective solving a mystery. You collect clues (monitoring), interview witnesses (logging), and figure out what happened (observability). Observability is like being a detective for your software.


12. Everyday Examples

Example 1: The Car Dashboard

Your family car has a dashboard. It shows speed, fuel, and temperature. Monitoring is like the dashboard for your software.

Example 2: The School Records

Your school keeps records of attendance and grades. Logging is like those records for your software.

Example 3: The Doctor's Diagnosis

A doctor checks your vital signs (monitoring), reviews your medical history (logging), and runs tests to find the cause (observability). This is exactly what monitoring, logging, and observability do for software.


13. Teacher Notes

For Teachers: This module is designed to be accessible for students of all ages. Here are some tips for teaching this module:

  • Use the story: The warm-up story about QuickPay is a great way to introduce the topic. Ask students what they would do if they had no idea when something was wrong.
  • Encourage discussion: Ask students how they check if things are working. This helps them understand monitoring.
  • Use the illustrations: The ASCII diagrams are simple and visual. They help students understand complex ideas easily.
  • Group activities: Have students simulate monitoring by tracking something in their classroom (e.g., temperature, attendance).
  • Relate to Nigerian examples: The Nigerian examples help students see how monitoring is relevant to their own country.
  • Review key vocabulary: Use the vocabulary table to help students remember important terms.
  • Use the exercises: The end-of-module exercises help reinforce learning.

14. Parent Tips

For Parents: Your child is learning about monitoring, logging, and observability. Here are some tips to support their learning:

  • Discuss checking on things: Talk to your child about how you check on things in your own life. This could be checking the weather, checking the car, or checking on family members.
  • Ask about monitoring: Ask your child what they learned about monitoring. This will help them remember and understand the material better.
  • Relate to everyday life: Point out examples of monitoring, logging, and observation in everyday life. Car dashboards, medical checkups, weather forecasts, etc.
  • Encourage curiosity: If your child asks questions about monitoring or observability, take the time to answer them.
  • Celebrate learning: Praise your child for completing this module. Learning about monitoring is an important skill for the future.

15. Interesting Facts

  • Fact 1: Prometheus was created in 2012 by a company called SoundCloud. It became a very popular monitoring tool and is now a Cloud Native Computing Foundation (CNCF) project.
  • Fact 2: Grafana was created in 2014 by a company called Grafana Labs. It has become the most popular tool for visualizing metrics.
  • Fact 3: The ELK Stack was originally created by Elastic in 2010. It is now used by thousands of companies for logging and search.
  • Fact 4: Companies that use monitoring and observability recover from problems 168 times faster than companies that do not.
  • Fact 5: The term "observability" comes from control theory, a branch of engineering. It was adapted for software by the DevOps community.
  • Fact 6: Many Nigerian companies are now using monitoring, logging, and observability. It is helping them provide reliable services.

16. Did You Know?

  • Did you know? Prometheus can collect metrics from thousands of servers at once. It is designed to be very fast and scalable.
  • Did you know? Grafana can connect to many different data sources, not just Prometheus. It can also connect to Elasticsearch, InfluxDB, and even MySQL.
  • Did you know? Logstash can process logs from many different sources and formats. It can read logs from files, network streams, and even databases.
  • Did you know? Kibana has a feature called "Canvas" that lets you create beautiful, interactive presentations from your data.
  • Did you know? Observability is not just for software. It is also used in other fields like medicine, engineering, and even sports.
  • Did you know? Some companies have "observability engineers" whose job is to make sure the company's systems are observable.

17. Remember This

  • πŸ”Ή Monitoring watches your systems for problems.
  • πŸ”Ή Metrics are numbers about system health.
  • πŸ”Ή Prometheus collects metrics.
  • πŸ”Ή Grafana visualizes metrics.
  • πŸ”Ή Logging records events.
  • πŸ”Ή The ELK Stack is for logging.
  • πŸ”Ή Observability explains why problems happen.
  • πŸ”Ή APM monitors application performance.
  • πŸ”Ή Alerting notifies you of problems.
  • πŸ”Ή Incident response is the plan to fix problems.
  • πŸ”Ή Monitoring, logging, and observability are core parts of DevOps.

18. Common Mistakes

  1. Mistake 1: Monitoring everything but not knowing what matters.

    It is easy to collect too many metrics. Focus on metrics that matter to your users (like response time and error rate) and your business (like transaction success rate).

  2. Mistake 2: Not setting up alerts.

    Monitoring without alerting is not very useful. You need alerts to tell you when something is wrong. Otherwise, you might not notice a problem until users tell you.

  3. Mistake 3: Too many alerts.

    If you have too many alerts, people will ignore them. Set up alerts only for things that really matter. This is called "alert fatigue."

  4. Mistake 4: Not checking logs regularly.

    Logs are only useful if you look at them. Set up dashboards and alerts for your logs. Make it easy to search and analyze them.

  5. Mistake 5: Not having an incident response plan.

    If you get an alert but do not know what to do, you will waste time. Have a plan for how to respond to different types of problems.

  6. Mistake 6: Not testing your alerts.

    Alerts can break just like anything else. Test your alerts regularly to make sure they work.


19. Best Practices

  1. Focus on user-impacting metrics.

    Monitor things that affect your users. Response time, error rate, and availability are the most important metrics.

  2. Set up actionable alerts.

    Each alert should tell you what is wrong and what to do about it. Include the metric, the threshold, and a link to the dashboard.

  3. Use dashboards for visibility.

    Create dashboards that show your most important metrics. Make them available to your whole team. A picture is worth a thousand words.

  4. Centralize your logs.

    Send all logs to a central location like the ELK Stack. This makes it easy to search and analyze them. You can see the big picture.

  5. Have an incident response plan.

    Write down what to do when something goes wrong. Include steps for diagnosing, containing, and fixing problems. Practice it regularly.

  6. Review and improve.

    After an incident, review what happened. Figure out what went well and what could be improved. Use this to make your systems and processes better.

  7. Test your alerts.

    Make sure your alerts work by testing them regularly. Simulate problems and see if the alerts fire correctly.


20. ASCII Illustrations

Illustration 1: Monitoring Stack

    MONITORING STACK

    +--------------------------------------------------+
    |  PROMETHEUS (Collects metrics)                   |
    |  +-------------------------------------------+    |
    |  |  CPU: 45%                               |    |
    |  |  Memory: 60%                            |    |
    |  |  Requests: 1,234/s                      |    |
    |  |  Errors: 0.5%                           |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  GRAFANA (Visualizes metrics)                    |
    |  +-------------------------------------------+    |
    |  |  πŸ“Š CPU Usage                            |    |
    |  |  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘ 80%             |    |
    |  |  πŸ“ˆ Request Rate                         |    |
    |  |  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘ 1,234/s        |    |
    |  |  πŸ”΄ Error Rate                          |    |
    |  |  β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0.5%             |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  TEAM SEES THE BIG PICTURE!                      |
    +--------------------------------------------------+
    

Illustration 2: ELK Stack

    ELK STACK

    +--------------------------------------------------+
    |  LOGSTASH (Collector)                            |
    |  +-------------------------------------------+    |
    |  |  Collects logs from servers, apps, and    |    |
    |  |  containers                               |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  ELASTICSEARCH (Storage)                         |
    |  +-------------------------------------------+    |
    |  |  Stores and indexes logs                   |    |
    |  |  Fast search capabilities                  |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  KIBANA (Visualization)                          |
    |  +-------------------------------------------+    |
    |  |  πŸ“Š Log Analysis                         |    |
    |  |  πŸ” Search logs                          |    |
    |  |  πŸ“ˆ Visualize trends                    |    |
    |  +-------------------------------------------+    |
    +--------------------------------------------------+
    

Illustration 3: Alerting and Response

    ALERTING AND RESPONSE

    +--------------------------------------------------+
    |  ALERT TRIGGERED                                 |
    |  +-------------------------------------------+    |
    |  |  🚨 Error rate is above 1%!              |    |
    |  |  Service: Payment System                  |    |
    |  |  Time: 10:05 AM                          |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  INCIDENT RESPONSE                               |
    |  +-------------------------------------------+    |
    |  |  1. Detect: Alert received                 |    |
    |  |  2. Diagnose: What is wrong?               |    |
    |  |  3. Contain: Stop it from spreading        |    |
    |  |  4. Fix: Fix the root cause                |    |
    |  |  5. Recover: Restore service               |    |
    |  |  6. Review: Learn and improve              |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  SERVICE RESTORED!                               |
    |  +-------------------------------------------+    |
    |  |  βœ… System is healthy again!               |    |
    |  +-------------------------------------------+    |
    +--------------------------------------------------+
    

21. Comparison Tables

Table 1: Monitoring vs Logging vs Observability

Aspect Monitoring Logging Observability
What It Does Watches systems for problems Records events Explains why problems happen
Data Type Metrics (numbers) Events (text) Metrics + Logs + Traces
Question It Answers "Is it working?" "What happened?" "Why did it happen?"
Tools Prometheus, Grafana ELK Stack Prometheus, ELK, Jaeger
Analogy Car dashboard Diary Medical diagnosis

Table 2: Prometheus vs ELK Stack

Aspect Prometheus ELK Stack
Primary Use Metrics Logs
Data Type Numbers Text
Storage Time series database Search engine (Elasticsearch)
Query Language PromQL Lucene query syntax
Visualization Grafana Kibana
Collector Pull-based Logstash (push-based)

Table 3: Alert Levels

Level Meaning Action Required Example
Critical System is down or severely degraded Immediate response required Website is down
High Significant problem affecting users Respond within 15 minutes High error rate
Medium Problem that might affect users soon Respond within 1 hour CPU usage is high
Low Informational, not urgent Respond within 24 hours Disk is almost full

Note: Each lesson in this module already includes a "Mini Summary" section right after the lesson content. Please refer back to the lessons above to review each mini summary.


23. End-of-Module Summary

Congratulations! You have completed Module 7 of the "Certified DevOps Engineer" course. Let us review everything we have learned:

What is Monitoring?

Monitoring is the practice of watching your systems to make sure they are working properly. It uses metrics (numbers) to track system health. Prometheus collects metrics, and Grafana visualizes them.

What is Logging?

Logging is the practice of recording events that happen in your software. Logs are like a diary for your software. The ELK Stack (Elasticsearch, Logstash, Kibana) is a popular logging solution.

What is Observability?

Observability is the ability to understand why something is happening. It combines metrics, logs, and traces to help you find the root cause of problems.

Alerting and Incident Response

Alerting sends notifications when something goes wrong. Incident response is the plan for fixing the problem. Together, they help you recover quickly.

How They Work with DevOps

Monitoring, logging, and observability are core parts of DevOps. They help teams see what is happening, understand why, and respond quickly. Together, they make software reliable.

You have now completed Module 7! You are ready to move on to Module 8, where you will learn about DevSecOps and Security in DevOps. Keep up the great work!


24. Frequently Asked Questions (10 Questions)

  1. Q1: What is monitoring?

    A: Monitoring is the practice of watching your systems to make sure they are working properly. It checks things like CPU usage, memory, and response time.

  2. Q2: What is the difference between monitoring and observability?

    A: Monitoring tells you if something is wrong. Observability tells you why it is wrong. Monitoring answers "Is it working?" Observability answers "Why is it not working?"

  3. Q3: What is Prometheus?

    A: Prometheus is a popular tool for collecting and storing metrics. It pulls data from systems and stores it in a time series database.

  4. Q4: What is Grafana?

    A: Grafana is a tool that creates beautiful dashboards from metrics. It turns numbers into graphs and charts.

  5. Q5: What is logging?

    A: Logging is the practice of recording events that happen in your software. Logs are like a diary for your software.

  6. Q6: What is the ELK Stack?

    A: The ELK Stack is a set of logging tools: Elasticsearch (storage), Logstash (collection), and Kibana (visualization).

  7. Q7: What is an alert?

    A: An alert is a notification sent when something goes wrong. It tells you that a metric has crossed a threshold.

  8. Q8: What is incident response?

    A: Incident response is the process of fixing problems when they occur. It includes steps for diagnosing, containing, and fixing issues.

  9. Q9: What are the three pillars of observability?

    A: The three pillars of observability are metrics (numbers), logs (events), and traces (request paths).

  10. Q10: Is monitoring used in Nigeria?

    A: Yes, many Nigerian companies use monitoring, logging, and observability to ensure their systems are reliable.


25. Review Questions (15 Questions)

  1. What is monitoring?

    Answer: Monitoring is the practice of watching your systems to make sure they are working properly.

  2. Why do we need monitoring?

    Answer: We need monitoring to find problems early and fix them quickly before users are affected.

  3. What are metrics?

    Answer: Metrics are numbers that tell us about the health of our systems.

  4. What is Prometheus?

    Answer: Prometheus is a tool that collects and stores metrics.

  5. What is Grafana?

    Answer: Grafana is a tool that creates dashboards from metrics.

  6. What is logging?

    Answer: Logging is the practice of recording events that happen in your software.

  7. What does ELK stand for?

    Answer: Elasticsearch, Logstash, and Kibana.

  8. What is observability?

    Answer: Observability is the ability to understand why something is happening in your system.

  9. What are the three pillars of observability?

    Answer: Metrics, logs, and traces.

  10. What is APM?

    Answer: APM stands for Application Performance Monitoring. It focuses on the performance of applications.

  11. What is an alert?

    Answer: An alert is a notification sent when something goes wrong.

  12. What is incident response?

    Answer: Incident response is the process of fixing problems when they occur.

  13. Name two best practices for alerting.

    Answer: Alert on symptoms, not causes. Keep alerts actionable. Do not create alert fatigue. (Any two are acceptable.)

  14. Is monitoring part of DevOps?

    Answer: Yes, monitoring, logging, and observability are core parts of DevOps.

  15. Is monitoring used in Nigeria?

    Answer: Yes, many Nigerian companies use monitoring for their systems.


26. Fill-in-the-Blank Exercises

Fill in the blanks with the correct words from the list:

Word list: monitoring, metrics, Prometheus, Grafana, logging, ELK, observability, traces, APM, alerting, incident response, dashboard

  1. __________ is the practice of watching your systems to make sure they are working properly.

    Answer: monitoring

  2. __________ are numbers that tell us about the health of our systems.

    Answer: metrics

  3. __________ is a tool that collects and stores metrics.

    Answer: Prometheus

  4. __________ is a tool that creates dashboards from metrics.

    Answer: Grafana

  5. __________ is the practice of recording events in your software.

    Answer: logging

  6. The __________ Stack is a set of logging tools.

    Answer: ELK

  7. __________ is the ability to understand why something is happening.

    Answer: observability

  8. __________ are records of requests through the system.

    Answer: traces

  9. __________ monitors application performance.

    Answer: APM

  10. __________ is sending notifications when something goes wrong.

    Answer: alerting

  11. __________ is the process of fixing problems when they occur.

    Answer: incident response

  12. A __________ shows metrics and logs in one place.

    Answer: dashboard


27. True or False Exercises

Write True or False for each statement:

  1. Monitoring helps you find problems early.

    Answer: True

  2. Metrics are text-based records of events.

    Answer: False (Metrics are numbers. Logs are text-based records.)

  3. Prometheus collects metrics.

    Answer: True

  4. Grafana collects metrics.

    Answer: False (Grafana visualizes metrics. Prometheus collects them.)

  5. Logging records events in your software.

    Answer: True

  6. The ELK Stack is used for monitoring.

    Answer: False (The ELK Stack is used for logging.)

  7. Observability explains why problems happen.

    Answer: True

  8. Traces are records of requests through the system.

    Answer: True

  9. APM is a type of monitoring for applications.

    Answer: True

  10. Alerting means fixing problems when they occur.

    Answer: False (Alerting sends notifications. Incident response fixes problems.)

  11. Incident response is the process of fixing problems.

    Answer: True

  12. Monitoring is not part of DevOps.

    Answer: False (Monitoring is a core part of DevOps.)

  13. A dashboard shows metrics and logs.

    Answer: True

  14. Observability is the same as monitoring.

    Answer: False (Observability goes beyond monitoring to explain why.)

  15. Monitoring is used in Nigeria.

    Answer: True


28. Multiple Choice Questions (15 Questions)

Choose the correct answer for each question:

  1. What is monitoring?

    A) Recording events in software
    B) Watching systems to make sure they are working
    C) Understanding why problems happen
    D) Fixing problems

    Answer: B

  2. What are metrics?

    A) Text-based records of events
    B) Numbers about system health
    C) Records of requests through the system
    D) Notifications about problems

    Answer: B

  3. What is Prometheus?

    A) A tool that visualizes metrics
    B) A tool that collects and stores metrics
    C) A logging tool
    D) A programming language

    Answer: B

  4. What is Grafana?

    A) A tool that collects metrics
    B) A tool that creates dashboards from metrics
    C) A logging tool
    D) A programming language

    Answer: B

  5. What is logging?

    A) Watching systems for problems
    B) Recording events in software
    C) Understanding why problems happen
    D) Fixing problems

    Answer: B

  6. What does ELK stand for?

    A) Elasticsearch, Logstash, Kibana
    B) Elastic, Logging, Kibana
    C) Elasticsearch, Linux, Kibana
    D) Elastic, Logstash, Kubernetes

    Answer: A

  7. What is observability?

    A) Watching systems for problems
    B) Recording events
    C) Understanding why problems happen
    D) Fixing problems

    Answer: C

  8. What are the three pillars of observability?

    A) CPU, Memory, Disk
    B) Metrics, Logs, Traces
    C) Prometheus, Grafana, ELK
    D) Development, Operations, Security

    Answer: B

  9. What is APM?

    A) Application Performance Monitoring
    B) Automatic Performance Management
    C) Application Programming Model
    D) Advanced Performance Metrics

    Answer: A

  10. What is alerting?

    A) Fixing problems
    B) Sending notifications when something goes wrong
    C) Recording events
    D) Understanding why problems happen

    Answer: B

  11. What is incident response?

    A) Sending notifications
    B) The process of fixing problems
    C) Recording events
    D) Understanding why problems happen

    Answer: B

  12. What is a trace?

    A) A number about system health
    B) A record of a request through the system
    C) A notification about a problem
    D) A record of an event

    Answer: B

  13. Is monitoring part of DevOps?

    A) No
    B) Yes, it is a core part
    C) Sometimes
    D) Only for large companies

    Answer: B

  14. What is a dashboard?

    A) A tool that collects metrics
    B) A screen that shows metrics and logs
    C) A logging tool
    D) A programming language

    Answer: B

  15. Is monitoring used in Nigeria?

    A) No
    B) Yes, by many companies
    C) Only in Lagos
    D) Only by the government

    Answer: B


29. Matching Exercises

Match the words in Column A with their correct meanings in Column B.

Column A Column B
1. Monitoring A. Records events in software
2. Metrics B. A tool that collects metrics
3. Prometheus C. Watching systems for problems
4. Grafana D. Understanding why problems happen
5. Logging E. Numbers about system health
6. ELK Stack F. Sending notifications about problems
7. Observability G. A tool that creates dashboards
8. Traces H. A set of logging tools
9. Alerting I. Records of requests through the system
10. Incident Response J. The process of fixing problems

Answers:

  1. C
  2. E
  3. B
  4. G
  5. A
  6. H
  7. D
  8. I
  9. F
  10. J

30. Short Answer Questions

  1. What is monitoring and why is it important?

    Answer: Monitoring is the practice of watching your systems to make sure they are working properly. It is important because it helps you find problems early and fix them quickly before users are affected. It is like a dashboard for your software.

  2. Explain the difference between monitoring, logging, and observability.

    Answer: Monitoring tells you if something is wrong (like checking vital signs). Logging records events that happen (like a diary). Observability tells you why something is happening (like a doctor's diagnosis). Monitoring asks "Is it working?" Logging asks "What happened?" Observability asks "Why did it happen?"

  3. What is Prometheus and how does it work with Grafana?

    Answer: Prometheus collects and stores metrics from systems. Grafana visualizes those metrics on dashboards. Prometheus is like a notebook for data. Grafana is like a corkboard that shows the data visually. Together, they provide a complete monitoring solution.

  4. Describe the ELK Stack and its components.

    Answer: The ELK Stack is a set of logging tools. Elasticsearch stores and indexes logs so they can be searched quickly. Logstash collects logs from various sources. Kibana visualizes logs on dashboards. Together, they provide a complete logging solution.

  5. How do alerting and incident response work together?

    Answer: Alerting sends notifications when something goes wrong. It is like a fire alarm. Incident response is the plan for fixing the problem when an alert is triggered. It is like the fire drill. Alerting tells you there is a problem. Incident response tells you what to do about it. Together, they help you recover quickly.


31. Scenario-based Exercises

Scenario 1: The Slow Website

A company's website is slow. Users are complaining. The team does not know why the website is slow.

Question: How could monitoring, logging, and observability help the team?

Answer: Monitoring would show that response times are high. Logging would show errors and slow queries. Observability would help the team trace the request through the system and find the root cause (e.g., a slow database query). The team could then fix the problem.

Scenario 2: The Unexpected Crash

A Nigerian e-commerce company's website crashed during a big sale. They did not know until customers started calling.

Question: How could alerting help this company?

Answer: Alerting could have notified the team immediately when the website went down. They could have started fixing the problem within minutes instead of waiting for customers to call. This would have reduced downtime and saved sales.

Scenario 3: The Nigerian Fintech

A Nigerian fintech company wants to monitor their payment app. They have many users and need to make sure the app is always available.

Question: What should they set up to monitor their app?

Answer: They should set up Prometheus to collect metrics (response time, error rate, transaction success rate). They should use Grafana to create dashboards. They should use the ELK Stack for logging. They should set up alerts for high error rates and slow response times. They should have an incident response plan for when alerts fire.


32. Group Activity

Activity: The Monitoring Simulation

Instructions:

  1. Form groups of 4-5 students.
  2. Assign roles:
    • 1 System: The "software" that needs monitoring
    • 1 Prometheus: Collects metrics from the system
    • 1 Grafana: Visualizes the metrics
    • 1 Alert Manager: Sends alerts when something is wrong
    • 1 Responder: Fixes the problem when an alert fires
  3. Simulate monitoring:
    • The System has metrics (CPU, memory, etc.)
    • Prometheus "collects" these metrics
    • Grafana "displays" them on a dashboard
    • Alert Manager "sends alerts" when metrics cross thresholds
    • Responder "fixes" the problem
  4. Discuss: What was the most important part of the monitoring system? How did it help?
  5. Share with the class.

33. Individual Activity

Activity: My Monitoring Plan

Instructions:

  1. Imagine you are a DevOps engineer. You are going to set up monitoring, logging, and observability for a new project.
  2. Write a monitoring plan. Include:
    • What metrics will you monitor?
    • What tool will you use for metrics? (Prometheus)
    • What tool will you use for visualization? (Grafana)
    • What logs will you collect?
    • What logging tool will you use? (ELK Stack)
    • What alerts will you set up?
    • What is your incident response plan?
  3. Write a short reflection: What did you learn from this activity?
  4. Submit your plan and reflection.

34. Classroom Discussion Questions

  1. Why do you think monitoring is important for software?

    Discuss with your classmates and share your ideas.

  2. Have you ever used a dashboard or tracker? What did you use it for?

    Share your experiences and thoughts.

  3. What are some other situations where keeping a log or diary is helpful?

    Think about school, home, and other activities.

  4. Do you think observability is always necessary? Why or why not?

    Share your opinions and listen to what others think.

  5. Can you think of a Nigerian company that might benefit from monitoring?

    Share examples of companies in Nigeria.

  6. What do you think is the most important part of a monitoring system?

    Explain why you think so.

  7. Do you think monitoring is easy to set up? Why or why not?

    Share your thoughts.

  8. What is the most important thing you learned about monitoring today?

    Share with the class.


35. Mini Project

Project: Create a "Monitoring for Beginners" Guide

Goal: Create a simple guide to teach beginners about monitoring, logging, and observability.

Instructions:

  1. Work individually or in small groups.
  2. Design a guide that includes:
    • A cover page with a title and a drawing
    • What is monitoring? (simple explanation)
    • Why is monitoring important?
    • What are metrics? (with examples)
    • What is Prometheus?
    • What is Grafana?
    • What is logging? (with examples)
    • What is the ELK Stack?
    • What is observability?
    • What is alerting and incident response?
    • Key vocabulary with definitions
    • A fun example or story
  3. Use simple language. Write as if you are teaching a 10-year-old.
  4. Include drawings or pictures.
  5. Present your guide to the class.

36. Practical Assignment

Assignment: Research Monitoring in Practice

Goal: Learn about real-world monitoring practice.

Instructions:

  1. Research a company. Choose a company that uses monitoring, logging, and observability (like a tech company, a bank, or an e-commerce company).
  2. Find out:
    • What monitoring tools they use
    • What logging tools they use
    • What observability practices they have
    • What benefits they have seen
  3. Write a report. Include:
    • The company name and what they do
    • How they use monitoring, logging, and observability
    • What you learned from this research
  4. Submit your report.

37. Challenge Exercise

Challenge: The Monitoring Architect

Scenario:

You are a monitoring architect at a Nigerian company. The company has 20 developers working on a large web application. They want to set up monitoring, logging, and observability for their application.

The company has:

  • 20 developers
  • A large web application with microservices
  • Need to monitor performance and availability
  • Need to log all events
  • Need to understand why problems happen
  • Want alerts when something goes wrong
  • Need an incident response plan

Challenge: Create a complete monitoring, logging, and observability plan for this company. Include:

  • Metrics: What metrics will you monitor and why?
  • Monitoring Tool: Which tool will you use and why?
  • Visualization: How will you visualize the metrics?
  • Logging: What logs will you collect and how?
  • Logging Tool: Which logging tool will you use?
  • Observability: How will you achieve observability?
  • Alerts: What alerts will you set up?
  • Incident Response: What is your incident response plan?
  • Team Training: How will you train the team?
  • Success Metrics: How will you measure success?
  • Timeline: When will you implement each part?

BONUS CHALLENGE: Present your plan to the class as if you were presenting it to the company's management.


38. Quiz Answers

Multiple Choice Questions (Section 28):

  1. B
  2. B
  3. B
  4. B
  5. B
  6. A
  7. C
  8. B
  9. A
  10. B
  11. B
  12. B
  13. B
  14. B
  15. B

True or False Exercises (Section 27):

  1. True
  2. False
  3. True
  4. False
  5. True
  6. False
  7. True
  8. True
  9. True
  10. False
  11. True
  12. False
  13. True
  14. False
  15. True

Fill-in-the-Blank Exercises (Section 26):

  1. monitoring
  2. metrics
  3. Prometheus
  4. Grafana
  5. logging
  6. ELK
  7. observability
  8. traces
  9. APM
  10. alerting
  11. incident response
  12. dashboard

Matching Exercises (Section 29):

  1. C
  2. E
  3. B
  4. G
  5. A
  6. H
  7. D
  8. I
  9. F
  10. J

39. Key Takeaways

  • πŸ”Ή Monitoring watches systems for problems. It uses metrics (numbers) to track system health.
  • πŸ”Ή Prometheus collects and stores metrics. Grafana visualizes them on dashboards.
  • πŸ”Ή Logging records events in your software. Logs are like a diary for your software.
  • πŸ”Ή The ELK Stack (Elasticsearch, Logstash, Kibana) is a complete logging solution.
  • πŸ”Ή Observability explains why problems happen. It uses metrics, logs, and traces.
  • πŸ”Ή Traces are records of requests through the system. They help you understand the flow of requests.
  • πŸ”Ή APM focuses on application performance. It tracks response time, error rate, and user experience.
  • πŸ”Ή Alerting sends notifications when something goes wrong. Incident response is the plan to fix it.
  • πŸ”Ή Monitoring, logging, and observability are core parts of DevOps. They help teams build and run reliable software.
  • πŸ”Ή These practices are used by many companies in Nigeria to provide reliable services.

40. Preparation for the Next Module

Congratulations! You have completed Module 7: "Monitoring, Logging & Observability." You now understand how monitoring helps you see what is happening in your systems, how logging records events, and how observability helps you understand why problems happen.

In Module 8, you will learn:

  • What is DevSecOps? You will learn about integrating security into DevOps.
  • Why is security important in DevOps? You will learn about the "shift-left" approach to security.
  • Secure CI/CD: You will learn how to scan code, containers, and infrastructure for vulnerabilities.
  • Secrets Management: You will learn about storing and managing sensitive information.
  • Compliance: You will learn about ensuring compliance with security standards.
  • Security Automation: You will learn how to automate security checks in the pipeline.
  • Security Scanning Tools: You will learn about tools like SonarQube, Snyk, and Trivy.

Before you start Module 8, here are some things to think about:

  1. Think about security. Why is security important in software? DevSecOps is about making security a part of the development process.
  2. Think about scanning. How can you check if something is secure? Security scanning tools help you find vulnerabilities.
  3. Review what you learned. Make sure you understand monitoring and logging before moving on.

You are doing a fantastic job! Keep learning, keep growing, and we will see you in Module 8! πŸš€


© 2026 Certified DevOps Engineer Course • Module 7: Monitoring, Logging & Observability

9

Module Eight

Module 1: Introduction to DevOps

πŸ§‘β€πŸ’» Module 1: Introduction to DevOps


1. Module Title

πŸ§‘β€πŸ’» Introduction to DevOps: What, Why, and How

Welcome to the very first module of our Certified DevOps Engineer course! This module is called "Introduction to DevOps: What, Why, and How." In this module, we will learn all about DevOps — what it is, why it is important, and how it helps people build better software faster.

DevOps is a very important topic in the world of technology. It helps teams work together, build software more quickly, and make sure that software works properly. Think of DevOps as a way to make the whole process of creating software smoother and more fun!


2. Module Introduction

Hello and welcome! This is Module 1 of the Certified DevOps Engineer course. In this module, we are going to start our journey into the world of DevOps.

But first, let us think about something we all know — building things. When you build something, like a house or a treehouse, you need a plan, you need materials, and you need people to help you. Building software (like the apps on your phone or the websites you visit) is similar. People work together to create software, and they need to work in a way that is organized and efficient.

DevOps is a way of working together to build software. It brings together two groups of people: the "Developers" (who write the code) and the "Operations" people (who make sure the software runs properly on computers and servers). By working together, they can build better software, faster.

In this module, we will learn all about DevOps. We will use simple words, fun stories, and lots of examples. By the end of this module, you will understand what DevOps is and why it is so important in the technology world.

So, are you ready? Let us dive in and discover the amazing world of DevOps!


3. Learning Objectives

By the time you finish this module, you will be able to:

  • Explain what DevOps is in your own simple words.
  • Understand why DevOps is important for building software.
  • Describe the history of how DevOps came to be.
  • Identify the core principles of DevOps.
  • Understand the DevOps lifecycle and its stages.
  • Explain the difference between Agile and DevOps.
  • Recognize the benefits of DevOps culture.
  • Give examples of DevOps in action.
  • Demonstrate a basic understanding of the Three Ways of DevOps.
  • Feel excited to learn more about DevOps!

4. Warm-up Story

The Great Software Building Adventure

Once upon a time, in a busy city in Nigeria called Lagos, there was a company that built software for schools. The company was called "EduTech Solutions."

EduTech Solutions had two teams of people. One team was called the "Developers." Their job was to write the code — the instructions that make the software work. They were very creative and loved building new features.

The other team was called the "Operations" team. Their job was to make sure the software ran properly on the computers and servers. They made sure the software was available for students and teachers to use.

Here was the problem: the two teams did not talk to each other very much. The Developers would write code and then "throw it over the wall" to the Operations team. The Operations team would then try to make it work, but they often had problems because they did not understand the code.

The Developers wanted to add new features quickly. The Operations team wanted to make sure everything was stable and did not break. They had different goals, and they did not work well together.

One day, the company lost a big customer because the software kept breaking. The customer was frustrated and went to a competitor. The company knew something had to change.

That is when the company discovered DevOps. DevOps is a way of working that brings Developers and Operations together. They start talking to each other, sharing ideas, and working as one team.

With DevOps, the Developers and Operations people started meeting regularly. They planned together, built together, and solved problems together. The software became more reliable, and they could add new features much faster.

The company grew and became very successful. And it all started because they learned to work together through DevOps.

This story shows us how important it is for different teams to work together. DevOps helps teams do exactly that. Let us learn more about this amazing way of working!


5. Main Lessons

Lesson 1: What is DevOps?

Definition

DevOps is a way of working where the people who build software (Developers) and the people who run the software (Operations) work together as one team.

The word "DevOps" comes from combining two words: Dev (short for Development) and Ops (short for Operations).

Why is it Important?

DevOps is important because it helps teams build software faster, with fewer problems. When Developers and Operations work together, they can catch mistakes early and fix them quickly. This means better software for everyone!

Simple Explanation

Imagine you are building a treehouse with your friends. Some of your friends are good at designing (the Developers). Others are good at building and making sure the treehouse is safe (the Operations team).

If the designers do not talk to the builders, they might design a treehouse that is impossible to build. Or the builders might build it differently than the designers wanted. But if they work together, they can build an amazing treehouse that everyone loves!

DevOps is exactly the same but for building software. It brings the "designers" (Developers) and the "builders" (Operations) together.

Real-life Example

A company called "PayNaija" builds a payment app. The Developers write the code for the app. The Operations team makes sure the app runs on the servers. With DevOps, they work together so the app is always available and works perfectly.

School Example

Imagine your school is putting on a play. The scriptwriters (Developers) write the script. The stage crew (Operations) sets up the stage and lights. If they work together, the play is a success. If they do not talk, the play might be a disaster!

Home Example

Your family is planning a vacation. Some people plan the activities (Developers). Others handle the travel and accommodation (Operations). If you all work together, you have a great vacation. If not, things can go wrong.

Nigerian Example

A Nigerian bank uses DevOps to build its mobile banking app. The Developers and Operations teams work together. The app is updated frequently with new features, and it rarely crashes. Customers are happy!

Illustration

    WHAT IS DEVOPS?

    +-------------------+     +-------------------+
    |   DEVELOPMENT     |     |   OPERATIONS      |
    |   (Developers)    |     |   (Ops Team)      |
    |                   |     |                   |
    |  Write code       |     |  Run software     |
    |  Build features   |     |  Keep it running  |
    |  Create new stuff |     |  Fix problems     |
    +-------------------+     +-------------------+
              |                         |
              |     DEVOPS BRINGS       |
              |     THEM TOGETHER!      |
              |                         |
              V                         V
    +------------------------------------------+
    |                                           |
    |            DEVOPS TEAM                    |
    |                                           |
    |  Developers + Operations = Better,        |
    |  faster software!                        |
    |                                           |
    +------------------------------------------+
    

Mini Summary

DevOps is a way of working where Developers and Operations people work together as one team. It helps teams build better software, faster.


Lesson 2: Why Do We Need DevOps?

Definition

Why we need DevOps: We need DevOps because the old way of building software had many problems. Developers and Operations did not work together, and this caused delays, mistakes, and unhappy customers.

Why is it Important?

Understanding why we need DevOps helps us appreciate how much better it is to work together. It shows us the problems that DevOps solves.

Simple Explanation

Think about a relay race. In a relay race, one runner passes a baton to the next runner. If they do not pass it smoothly, they drop the baton and lose the race.

In the old way of building software, Developers would "pass the baton" (the code) to Operations. But they did not pass it smoothly. The Operations team often could not understand the code, and things broke. DevOps is like teaching the runners to pass the baton perfectly every time.

Problems Before DevOps

Problem What It Meant
Slow Releases It took months or even years to release new software.
Many Mistakes Software often had bugs because teams did not test together.
Finger-Pointing Developers blamed Operations when things broke, and vice versa.
Hard to Fix When something broke, it took a long time to fix because no one knew the whole picture.
Unhappy Customers Because software was slow and buggy, customers were not happy.

Real-life Example

A Nigerian e-commerce company used to release new features only once a year. Customers were frustrated because the app did not have the latest features. After adopting DevOps, they release new features every week. Customers are much happier.

School Example

Your class is working on a group project. If everyone works alone and does not share their work, the project will be a mess. But if everyone works together and shares ideas, the project is great. DevOps is like working together on a group project.

Home Example

Your family is planning a big dinner. If everyone cooks without talking to each other, you might end up with three different types of rice and no meat. But if you plan together, you make a wonderful meal. DevOps is like planning together.

Nigerian Example

A Nigerian bank used to take months to update its mobile app. Customers complained about outdated features. After adopting DevOps, the bank can update the app in days. Customers are happier, and the bank keeps more customers.

Illustration

    THE PROBLEM BEFORE DEVOPS

    DEVELOPMENT                      OPERATIONS
    +-------------------+            +-------------------+
    |  Write code       |            |  Run software     |
    |  Build features   |            |  Fix problems     |
    |                   |            |                   |
    |  "We are done!"   | ======>   |  "This does not   |
    |                   |   throw   |   work!"          |
    |                   |   over    |                   |
    |                   |   wall    |  "It is the       |
    |                   |           |   developer's     |
    |                   |           |   fault!"         |
    +-------------------+           +-------------------+

    RESULT: SLOW, BUGGY, UNHAPPY CUSTOMERS

    THE SOLUTION: DEVOPS!

    DEVELOPMENT AND OPERATIONS WORK TOGETHER
    +------------------------------------------+
    |                                           |
    |  "Let us work together!"                 |
    |  "We will build it together!"            |
    |  "We will fix problems together!"        |
    |                                           |
    |  RESULT: FAST, RELIABLE, HAPPY CUSTOMERS |
    |                                           |
    +------------------------------------------+
    

Mini Summary

We need DevOps because the old way of building software had many problems. Developers and Operations did not work together, causing slow releases, many mistakes, and unhappy customers. DevOps solves all these problems.


Lesson 3: The History of DevOps

Definition

The history of DevOps is the story of how DevOps came to be. It started because people realized that the old way of building software was not working well.

Why is it Important?

Understanding the history of DevOps helps us understand why it is so important today. It shows us that DevOps was created to solve real problems.

Simple Explanation

Imagine you are playing a video game. The game has two teams. One team designs the levels, and the other team makes sure the game runs smoothly. But the two teams never talk to each other. The level designers make levels that are too hard for the game engine to run. The game crashes, and players are unhappy.

The game developers realize they need to work together. They start meeting and talking. They plan together. The game becomes amazing. That is the story of how DevOps started!

Timeline of DevOps History

Year Event What Happened
2000s Agile Movement People realized that building software in a flexible, iterative way was better than doing everything at once.
2009 First DevOps Conference A conference called "Velocity 2009" talked about how Development and Operations should work together.
2010-2013 DevOps Grows More companies started using DevOps. Tools like Jenkins, Ansible, and Docker were created to help.
2014-2016 DevOps Becomes Mainstream DevOps became a standard way of working for many tech companies.
2017-Present DevOps Everywhere DevOps is now used by companies all over the world, including many in Nigeria.

Real-life Example

A company called "Flutterwave" (a Nigerian fintech company) started using DevOps to build its payment platform. By working together, they built a platform that processes millions of transactions every day.

School Example

Your school used to plan events with teachers and students working separately. Now, they have meetings where everyone shares ideas. The events are much better because everyone works together.

Home Example

Your family used to plan vacations with everyone making their own plans. Now, you have a family meeting where everyone shares ideas. The vacations are much more fun because everyone works together.

Nigerian Example

A Nigerian company called "Andela" uses DevOps to build software for clients all over the world. By working together, they deliver high- quality software quickly.

Illustration

    THE HISTORY OF DEVOPS TIMELINE

    2000s
    +-------------------+
    |  Agile Movement   |
    |  People want to   |
    |  work flexibly    |
    +-------------------+
           |
           V
    2009
    +-------------------+
    |  First DevOps     |
    |  Conference       |
    |  "Velocity 2009"  |
    +-------------------+
           |
           V
    2010-2013
    +-------------------+
    |  DevOps Grows     |
    |  New tools like   |
    |  Jenkins, Docker  |
    +-------------------+
           |
           V
    2014-2016
    +-------------------+
    |  DevOps Becomes   |
    |  Mainstream       |
    |  Many companies   |
    |  adopt it         |
    +-------------------+
           |
           V
    2017-Present
    +-------------------+
    |  DevOps Everywhere|
    |  Used worldwide   |
    |  Including Nigeria|
    +-------------------+
    

Mini Summary

DevOps started because people realized that working together was better than working separately. It has grown from an idea in 2009 to a standard way of working today.


Lesson 4: The DevOps Lifecycle

Definition

The DevOps Lifecycle is the series of steps that a team follows to build, test, release, and monitor software. It is like a roadmap for building software.

Why is it Important?

The DevOps Lifecycle shows us all the stages of building software. It helps us understand the complete picture and see how DevOps helps at every stage.

Simple Explanation

Imagine you are baking a cake. You have a recipe that tells you every step: gather ingredients, mix them, bake the cake, and serve it. The DevOps Lifecycle is like a recipe for building software. It tells you every step from start to finish.

The Stages of the DevOps Lifecycle

Stage What Happens Simple Example
Plan Decide what to build and how to build it Planning the cake recipe and ingredients
Code Write the software code Mixing the cake ingredients
Build Turn the code into a working program Putting the cake in the oven
Test Check that the software works correctly Tasting the cake to make sure it is good
Release Prepare the software to be used by customers Decorating the cake and putting it on a plate
Deploy Make the software available to users Serving the cake to your family
Operate Keep the software running properly Making sure the cake is stored properly
Monitor Watch the software to find problems Checking if the cake is still fresh

Real-life Example

A Nigerian company building a mobile app follows the DevOps Lifecycle. They plan the features, write the code, build the app, test it, release it, deploy it to app stores, operate it, and monitor it for problems.

School Example

Your class is making a school newspaper. You plan the articles, write them, put them together, check for errors, print them, distribute them, and check if students like them. That is the lifecycle of a newspaper!

Home Example

Your family is planning a party. You plan the party, prepare the food, set up the decorations, check everything is ready, host the party, and clean up afterwards. That is a lifecycle!

Nigerian Example

A Nigerian e-commerce company follows the DevOps Lifecycle to build its website. They plan new features, code them, build them, test them, release them, deploy them, operate the website, and monitor for issues.

Illustration

    THE DEVOPS LIFECYCLE

    +--------------------------------------------------+
    |                                                   |
    |         PLAN                                     |
    |    (Decide what to build)                        |
    |           |                                       |
    |           V                                       |
    |         CODE                                     |
    |    (Write the software)                          |
    |           |                                       |
    |           V                                       |
    |         BUILD                                    |
    |    (Turn code into a program)                    |
    |           |                                       |
    |           V                                       |
    |         TEST                                     |
    |    (Check it works)                              |
    |           |                                       |
    |           V                                       |
    |         RELEASE                                  |
    |    (Prepare for users)                           |
    |           |                                       |
    |           V                                       |
    |         DEPLOY                                   |
    |    (Make it available to users)                  |
    |           |                                       |
    |           V                                       |
    |         OPERATE                                  |
    |    (Keep it running)                             |
    |           |                                       |
    |           V                                       |
    |         MONITOR                                  |
    |    (Watch for problems)                          |
    |           |                                       |
    |           V                                       |
    |    (Go back to PLAN and repeat!)                 |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

The DevOps Lifecycle is the series of steps to build, test, release, and monitor software. The stages are: Plan, Code, Build, Test, Release, Deploy, Operate, and Monitor.


Lesson 5: Core DevOps Principles

Definition

Core DevOps Principles are the main ideas that guide how DevOps works. They are like the rules of the game.

Why is it Important?

Principles are important because they guide our actions. When we know the principles, we know how to do things the right way.

Simple Explanation

Imagine you are playing football. There are rules like "no hands" and "score a goal to win." These rules guide how you play. DevOps principles are the rules that guide how teams build software together.

The Three Ways of DevOps

There are three main principles in DevOps. They are called "The Three Ways." Let us learn about each one.

Principle 1: The First Way (Flow)

Definition: The First Way is about making the flow of work from Development to Operations fast and smooth.

Simple Explanation: Imagine a river. The water flows smoothly from the mountains to the ocean. The First Way is about making the work flow smoothly from the developer to the user.

Principle 2: The Second Way (Feedback)

Definition: The Second Way is about getting feedback quickly. When something goes wrong, we need to know immediately so we can fix it.

Simple Explanation: Imagine you are cooking. If you taste the food while cooking, you can add more salt if it needs it. If you wait until the end, it might be too late. The Second Way is about tasting the food early and often.

Principle 3: The Third Way (Continuous Learning)

Definition: The Third Way is about always learning and improving. We should always look for ways to do things better.

Simple Explanation: Imagine you are playing a video game. Every time you lose, you learn something new. You try again and get better. The Third Way is about always learning and improving.

Real-life Example

A Nigerian company follows the Three Ways. They release software quickly (Flow), they get feedback from users quickly (Feedback), and they always look for ways to improve (Continuous Learning).

School Example

Your school project team follows the Three Ways. You work smoothly together (Flow), you give each other feedback (Feedback), and you learn from mistakes (Continuous Learning).

Home Example

Your family plans a party. You work together smoothly (Flow), you ask guests for feedback (Feedback), and you learn what to do better next time (Continuous Learning).

Nigerian Example

A Nigerian company building a delivery app follows the Three Ways. They release updates quickly (Flow), they get feedback from customers (Feedback), and they always improve (Continuous Learning).

Illustration

    THE THREE WAYS OF DEVOPS

    +--------------------------------------------------+
    |                                                   |
    |  THE FIRST WAY: FLOW                             |
    |  +------------------------------------+           |
    |  |  Make work flow smoothly from      |           |
    |  |  Development to Operations         |           |
    |  |  "Keep the river flowing"         |           |
    |  +------------------------------------+           |
    |           |                                       |
    |           V                                       |
    |  THE SECOND WAY: FEEDBACK                         |
    |  +------------------------------------+           |
    |  |  Get feedback quickly               |           |
    |  |  "Taste the food while cooking"    |           |
    |  +------------------------------------+           |
    |           |                                       |
    |           V                                       |
    |  THE THIRD WAY: CONTINUOUS LEARNING               |
    |  +------------------------------------+           |
    |  |  Always learn and improve           |           |
    |  |  "Get better every day"            |           |
    |  +------------------------------------+           |
    |                                                   |
    |  TOGETHER, THEY MAKE DEVOPS WORK!                 |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

The core DevOps principles are called the Three Ways. The First Way is about smooth flow. The Second Way is about quick feedback. The Third Way is about continuous learning.


Lesson 6: DevOps Culture and Mindset

Definition

DevOps culture is the way people think and behave when they work in a DevOps team. It is about working together, sharing ideas, and helping each other.

Why is it Important?

Culture is important because it affects how people work. A good culture makes people happy and productive. A bad culture makes people unhappy and unproductive.

Simple Explanation

Imagine you are on a sports team. A good team cheers for each other, helps each other, and celebrates together. A bad team blames each other and does not work together. DevOps culture is like being on a good sports team.

Key Elements of DevOps Culture

Element What It Means
Collaboration Working together, sharing ideas, and helping each other
Communication Talking to each other openly and honestly
Trust Believing that others will do their best work
Blame-Free When something goes wrong, we fix it instead of blaming someone
Continuous Improvement Always looking for ways to get better
Shared Goals Everyone works towards the same goals

Real-life Example

A Nigerian company has a DevOps culture. The team meets daily, shares what they are working on, and helps each other. When something breaks, they fix it together instead of blaming anyone.

School Example

Your classroom has a good culture. Students help each other with homework, share supplies, and celebrate each other's successes.

Home Example

Your family has a good culture. Everyone helps with chores, listens to each other, and supports each other.

Nigerian Example

A Nigerian tech startup has a DevOps culture. The Developers and Operations people sit together, talk openly, and work as one team. They are very successful because of their culture.

Illustration

    DEVOPS CULTURE

    +--------------------------------------------------+
    |                                                   |
    |  πŸ—£οΈ COMMUNICATION                               |
    |     Talk openly and honestly                     |
    |                                                   |
    |  🀝 COLLABORATION                                |
    |     Work together, share ideas                   |
    |                                                   |
    |  ❀️ TRUST                                        |
    |     Believe in each other                        |
    |                                                   |
    |  βœ… BLAME-FREE                                   |
    |     Fix problems, not blame people               |
    |                                                   |
    |  πŸ“ˆ CONTINUOUS IMPROVEMENT                        |
    |     Always get better                            |
    |                                                   |
    |  🎯 SHARED GOALS                                 |
    |     Everyone works towards the same goal         |
    |                                                   |
    |  TOGETHER = DEVOPS SUCCESS! πŸš€                   |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

DevOps culture is about working together, sharing ideas, and helping each other. Key elements include collaboration, communication, trust, being blame-free, continuous improvement, and shared goals.


Lesson 7: Agile and DevOps

Definition

Agile is a way of building software where teams work in short cycles (called "sprints") and deliver small pieces of working software frequently. It is about being flexible and responding to change.

DevOps takes Agile and extends it. It brings in the Operations team so that the whole process of building and running software is smooth.

Why is it Important?

Understanding Agile helps us understand where DevOps came from. DevOps is like the "next step" after Agile.

Simple Explanation

Imagine you are building a house. The old way was to plan everything perfectly and build the whole house at once. Agile is like building the house room by room. You build the bedroom, then the kitchen, then the living room. You can change things as you go.

DevOps is like having the builders and the maintenance team work together. While the builders are building the house, the maintenance team is making sure everything is working properly. They work together from the start.

Agile vs DevOps

Aspect Agile DevOps
Focus Building software quickly and flexibly Building and running software together
Teams Development team Development + Operations teams
Goal Deliver working software frequently Deliver working software frequently AND keep it running
Timeframe Short sprints (2-4 weeks) Continuous delivery (always ready to release)

Real-life Example

A Nigerian company uses Agile to build its app. They release new features every two weeks. They also use DevOps to make sure the app runs smoothly for all users.

School Example

Your class uses Agile to plan a school event. You plan a little bit at a time and adjust as you go. You also use DevOps by having the teachers and students work together.

Home Example

Your family uses Agile to plan a vacation. You plan a little bit at a time and adjust. You also use DevOps by having everyone work together on the plan.

Nigerian Example

A Nigerian fintech company uses Agile to build new features quickly. They also use DevOps to make sure the features work properly for customers. Together, Agile and DevOps help them grow fast.

Illustration

    AGILE + DEVOPS = SUCCESS!

    AGILE:
    +--------------------------------------------------+
    |  Build software in short cycles (sprints)        |
    |  Deliver small pieces frequently                 |
    |  Respond to change quickly                       |
    |  Focus on Development                            |
    +--------------------------------------------------+
              |
              V
    DEVOPS:
    +--------------------------------------------------+
    |  Takes Agile and adds Operations                 |
    |  Development + Operations work together          |
    |  Build AND run software                          |
    |  Continuous delivery and monitoring              |
    +--------------------------------------------------+
              |
              V
    RESULT:
    +--------------------------------------------------+
    |  Faster, better, more reliable software!         |
    |  Happy developers, happy operations, happy users! |
    +--------------------------------------------------+
    

Mini Summary

Agile is a way of building software in short cycles. DevOps extends Agile by bringing in the Operations team so that building and running software are done together.


Lesson 8: The Benefits of DevOps

Definition

The benefits of DevOps are all the good things that happen when a team uses DevOps. These include faster releases, fewer problems, and happier customers.

Why is it Important?

Understanding the benefits helps us see why DevOps is so valuable. It helps us understand why so many companies are adopting DevOps.

Simple Explanation

Imagine you have a car. If you take good care of it, it runs smoothly, gets you where you need to go, and lasts a long time. DevOps is like taking good care of your software. The benefits are: it runs smoothly, it works well, and it lasts a long time.

Key Benefits of DevOps

Benefit What It Means
Faster Releases Software is released more quickly, so users get new features sooner
Fewer Problems Bugs and issues are caught and fixed early, so software is more reliable
Better Collaboration Teams work together, share ideas, and help each other
Happy Customers Because software works well and has new features, customers are happy
Less Stress Teams work together to solve problems, so there is less stress
Continuous Improvement Teams always look for ways to get better

Real-life Example

A Nigerian company adopted DevOps. Before DevOps, they released updates once a year. After DevOps, they release updates every week. Their customers are much happier.

School Example

Your school uses DevOps for its website. They release updates quickly, the website rarely breaks, and students and parents are happy.

Home Example

Your family uses DevOps principles to plan events. Everyone works together, problems are fixed quickly, and events are successful.

Nigerian Example

A Nigerian e-commerce company uses DevOps. They release new features quickly, their website is very reliable, and their customers love them. The company has grown a lot because of DevOps.

Illustration

    THE BENEFITS OF DEVOPS

    +--------------------------------------------------+
    |                                                   |
    |  πŸš€ FASTER RELEASES                              |
    |     New features reach users quickly             |
    |                                                   |
    |  πŸ› FEWER PROBLEMS                               |
    |     Bugs are caught and fixed early              |
    |                                                   |
    |  🀝 BETTER COLLABORATION                         |
    |     Teams work together happily                  |
    |                                                   |
    |  😊 HAPPY CUSTOMERS                              |
    |     Users love the software                      |
    |                                                   |
    |  🧘 LESS STRESS                                  |
    |     Teams are calm and effective                 |
    |                                                   |
    |  πŸ“ˆ CONTINUOUS IMPROVEMENT                        |
    |     Always getting better                        |
    |                                                   |
    |  ALL BECAUSE OF DEVOPS! πŸŽ‰                       |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

DevOps has many benefits. It leads to faster releases, fewer problems, better collaboration, happy customers, less stress, and continuous improvement.


Lesson 9: Who Uses DevOps?

Definition

Who uses DevOps: DevOps is used by many different types of organizations. From small startups to big companies, from tech giants to banks, and even schools and governments.

Why is it Important?

Knowing who uses DevOps shows us that DevOps is not just for one type of organization. It can be used by anyone who builds software.

Simple Explanation

Imagine a toolbox. DevOps is like a toolbox that anyone can use. Whether you are building a small birdhouse or a big skyscraper, the toolbox has the tools you need. DevOps is like that — it works for all types of software projects.

Types of Organizations Using DevOps

  • Tech Companies: Google, Amazon, Microsoft, and many others use DevOps.
  • Banks: Banks use DevOps to build their mobile apps and online banking systems.
  • E-commerce: Online stores like Jumia and Konga use DevOps.
  • Government: Governments use DevOps to build services for citizens.
  • Schools: Schools use DevOps to build learning platforms.
  • Hospitals: Hospitals use DevOps to build patient management systems.
  • Startups: Small startups use DevOps to build their products quickly.

Real-life Example

A Nigerian bank uses DevOps to build its mobile banking app. The app is updated frequently and works reliably. Customers can transfer money, pay bills, and check balances easily.

School Example

Your school uses a learning platform to share lessons and assignments. The platform is built using DevOps principles. It is always available and has new features regularly.

Home Example

Your family uses a family calendar app to coordinate activities. The app is built using DevOps. It is reliable and gets new features often.

Nigerian Examples

Many Nigerian companies use DevOps. Flutterwave, Paystack, Andela, Interswitch, and many others use DevOps to build their products.

Illustration

    WHO USES DEVOPS?

    +--------------------------------------------------+
    |                                                   |
    |  🏒 TECH COMPANIES                               |
    |     Google, Amazon, Microsoft                    |
    |                                                   |
    |  🏦 BANKS                                        |
    |     Mobile banking, online banking               |
    |                                                   |
    |  πŸ›οΈ E-COMMERCE                                   |
    |     Jumia, Konga, Shopify                        |
    |                                                   |
    |  πŸ›οΈ GOVERNMENT                                   |
    |     Citizen services, digital ID                 |
    |                                                   |
    |  🏫 SCHOOLS                                      |
    |     Learning platforms, student systems          |
    |                                                   |
    |  πŸ₯ HOSPITALS                                    |
    |     Patient management, health records           |
    |                                                   |
    |  πŸš€ STARTUPS                                     |
    |     Building new products quickly                |
    |                                                   |
    |  ANYONE WHO BUILDS SOFTWARE!                      |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

DevOps is used by many different organizations. Tech companies, banks, e-commerce, government, schools, hospitals, and startups all use DevOps.


Lesson 10: What We Have Learned So Far

Definition

In this lesson, we will review everything we have learned about DevOps. This will help us remember the most important ideas.

Why is it Important?

Reviewing helps us remember what we have learned. When we keep information in our brains, we can use it later.

Simple Explanation

Let us think back to everything we have talked about in this module:

  • What is DevOps? DevOps is a way of working where Developers and Operations work together to build software.
  • Why do we need DevOps? Because the old way of working separately caused problems like slow releases and many mistakes.
  • What is the history of DevOps? DevOps started around 2009 and has grown to be used by companies all over the world.
  • What is the DevOps Lifecycle? It is the series of steps: Plan, Code, Build, Test, Release, Deploy, Operate, and Monitor.
  • What are the Three Ways? They are the core principles: Flow, Feedback, and Continuous Learning.
  • What is DevOps culture? It is about working together, sharing ideas, and helping each other.
  • What is the difference between Agile and DevOps? Agile is about building software in short cycles. DevOps takes Agile and adds Operations.
  • What are the benefits of DevOps? Faster releases, fewer problems, better collaboration, happy customers, less stress, and continuous improvement.
  • Who uses DevOps? Tech companies, banks, e-commerce, government, schools, hospitals, and startups.

Real-life Example

A Nigerian company has learned all these DevOps concepts. They work together, release software quickly, and keep their customers happy.

School Example

Your class has learned about DevOps. You understand how working together helps you build better projects.

Home Example

Your family has learned about DevOps. You understand how planning together, giving feedback, and learning from mistakes helps your family work better.

Nigerian Example

A Nigerian entrepreneur has learned about DevOps. They are starting a new tech company and plan to use DevOps from the beginning.

Illustration

    WHAT WE HAVE LEARNED

    +--------------------------------------------------+
    |                                                   |
    |  πŸ“Œ DevOps = Development + Operations            |
    |  πŸ“Œ We need DevOps to build better software      |
    |  πŸ“Œ DevOps started around 2009                   |
    |  πŸ“Œ The DevOps Lifecycle has 8 stages            |
    |  πŸ“Œ The Three Ways: Flow, Feedback, Learning     |
    |  πŸ“Œ DevOps culture = working together            |
    |  πŸ“Œ Agile + DevOps = Building + Running          |
    |  πŸ“Œ Benefits: faster, fewer problems, happier    |
    |  πŸ“Œ Everyone uses DevOps!                        |
    |                                                   |
    |  YOU ARE NOW A DEVOPS BEGINNER! πŸŽ‰               |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

We have learned many things about DevOps. It is a way of working where Developers and Operations work together. It helps teams build better software, faster.


6. Key Vocabulary

Here are the important words we learned in this module. Each word has a simple definition to help you remember it.

Word Simple Definition
DevOps A way of working where Developers and Operations work together to build software.
Development The team that writes the code and builds new features.
Operations The team that makes sure the software runs properly on servers.
Agile A way of building software in short cycles, delivering small pieces frequently.
DevOps Lifecycle The series of steps to build, test, release, and monitor software.
Flow The First Way of DevOps — making work flow smoothly.
Feedback The Second Way of DevOps — getting feedback quickly.
Continuous Learning The Third Way of DevOps — always learning and improving.
Collaboration Working together and sharing ideas.
Communication Talking to each other openly and honestly.
Culture The way people think and behave in a group.
Continuous Improvement Always looking for ways to get better.

7. Important Concepts

Here are the most important concepts from this module. These are the big ideas that will help you understand DevOps.

  1. DevOps brings people together. DevOps is not just about tools. It is about people working together. The most important part of DevOps is the culture of collaboration.

  2. The DevOps Lifecycle is a roadmap. It has eight stages: Plan, Code, Build, Test, Release, Deploy, Operate, and Monitor. Each stage has important tasks.

  3. The Three Ways are the rules of DevOps. The First Way is about Flow. The Second Way is about Feedback. The Third Way is about Continuous Learning.

  4. DevOps culture is key. A good culture includes collaboration, communication, trust, being blame-free, continuous improvement, and shared goals.

  5. DevOps helps everyone. It helps Developers, Operations, the company, and the customers. It leads to faster releases, fewer problems, and happier people.


8. Step-by-Step Explanations

Let us look at how DevOps works in simple steps:

Step 1: Plan

The team decides what to build. They talk about the features, the timeline, and the goals. They plan the work.

Step 2: Code

The Developers write the code. They build the features that were planned. They write clean, organized code.

Step 3: Build

The code is turned into a working program. This is called "building." The team makes sure the program runs.

Step 4: Test

The team tests the program to make sure it works. They look for bugs and fix them. They make sure the software is high quality.

Step 5: Release

The software is prepared to be used by customers. This includes making sure it is ready and all the paperwork is done.

Step 6: Deploy

The software is made available to users. It is put on the servers where customers can access it.

Step 7: Operate

The team keeps the software running. They make sure it is available and working properly.

Step 8: Monitor

The team watches the software to find problems. They look for errors, slow performance, and other issues. Then they go back to Step 1 and do it all again!

Illustration

    STEP-BY-STEP: THE DEVOPS LIFECYCLE

    Step 1: PLAN
    +-------------------+
    |  Decide what to   |
    |  build            |
    +-------------------+
           |
           V
    Step 2: CODE
    +-------------------+
    |  Write the code   |
    +-------------------+
           |
           V
    Step 3: BUILD
    +-------------------+
    |  Turn code into   |
    |  a program        |
    +-------------------+
           |
           V
    Step 4: TEST
    +-------------------+
    |  Check it works   |
    +-------------------+
           |
           V
    Step 5: RELEASE
    +-------------------+
    |  Prepare for      |
    |  users            |
    +-------------------+
           |
           V
    Step 6: DEPLOY
    +-------------------+
    |  Make available   |
    |  to users         |
    +-------------------+
           |
           V
    Step 7: OPERATE
    +-------------------+
    |  Keep it running  |
    +-------------------+
           |
           V
    Step 8: MONITOR
    +-------------------+
    |  Watch for        |
    |  problems         |
    +-------------------+
           |
           V
    (Repeat from Step 1!)
    

9. Real-life Examples

Example 1: The Tech Company

A large technology company uses DevOps to build its search engine. The Developers and Operations teams work together. They release updates to the search engine every day. The search engine is always improving, and users are happy.

Example 2: The Bank

A bank uses DevOps to build its mobile app. The team releases new features every two weeks. The app is reliable and secure. Customers can do their banking from their phones without any problems.

Example 3: The Hospital

A hospital uses DevOps to build a patient management system. The system helps doctors and nurses manage patient records. It is always available and works perfectly. Patients get better care.


10. Nigerian Examples

Example 1: Flutterwave

Flutterwave is a Nigerian fintech company that uses DevOps to build its payment platform. The platform processes millions of transactions every day. The team uses DevOps to release new features quickly and keep the platform running smoothly.

Example 2: Paystack

Paystack is a Nigerian payment company (now part of Stripe). They use DevOps to build their payment infrastructure. They release updates frequently and their platform is very reliable.

Example 3: Andela

Andela is a Nigerian company that builds software for clients all over the world. They use DevOps to collaborate with clients and deliver high-quality software quickly.


11. Fun Examples Children Can Relate To

Example 1: The School Play

Your school is putting on a play. The actors (Developers) practice their lines. The stage crew (Operations) sets up the stage and lights. If they work together, the play is a success. If they do not talk, the play might be a disaster. DevOps is like the actors and stage crew working together!

Example 2: The Group Project

You and your friends are working on a group project for school. Some of you research, some of you write, and some of you design. If you all work together and share ideas, the project is great. DevOps is like working together on a group project.

Example 3: The Birthday Party

You are planning a birthday party. Some friends plan the games, some plan the food, and some plan the decorations. If you all work together, the party is amazing. DevOps is like planning a party together!


12. Everyday Examples

Example 1: Cooking Dinner

Your family is cooking dinner. The person chopping vegetables (Development) and the person cooking on the stove (Operations) work together. Dinner is ready on time and everyone enjoys it.

Example 2: Building a Treehouse

You and your friends are building a treehouse. The designer (Development) and the builder (Operations) work together. The treehouse is strong and fun.

Example 3: Planning a Trip

Your family is planning a trip. The person planning activities (Development) and the person planning travel (Operations) work together. The trip is wonderful.


13. Teacher Notes

For Teachers: This module is designed to be accessible for students of all ages. Here are some tips for teaching this module:

  • Use the story: The warm-up story about EduTech Solutions is a great way to introduce the topic. Ask students what they would do if they had two teams that did not talk to each other.
  • Encourage discussion: Ask students if they have ever worked on a group project where people did not communicate. This will help them understand why DevOps is so important.
  • Use the illustrations: The ASCII diagrams are simple and visual. They help students understand complex ideas easily.
  • Group activities: Have students role-play a Development team and an Operations team. Then have them role-play a DevOps team working together.
  • Relate to Nigerian examples: The Nigerian examples help students see how DevOps is relevant to their own country.
  • Review key vocabulary: Use the vocabulary table to help students remember important terms.
  • Use the exercises: The end-of-module exercises help reinforce learning. Use them for homework or classwork.

14. Parent Tips

For Parents: Your child is learning about DevOps and how it helps teams build software together. Here are some tips to support their learning:

  • Discuss working together: Talk to your child about how people work together in your own life. This could be at your job, at home, or in your community.
  • Ask about DevOps: Ask your child what they learned about DevOps. This will help them remember and understand the material better.
  • Relate to everyday life: Point out examples of working together in everyday life. Cooking dinner, planning a trip, and building something are all examples of DevOps-like collaboration.
  • Encourage curiosity: If your child asks questions about DevOps, take the time to answer them. There are many great resources online that can help.
  • Celebrate learning: Praise your child for completing this module. Learning about technology is an important skill for the future.

15. Interesting Facts

  • Fact 1: The word "DevOps" was first used at a conference in 2009. Since then, it has become one of the most important trends in technology.
  • Fact 2: Companies that use DevOps release software 30 times more frequently than companies that do not use DevOps. That means their users get new features much faster!
  • Fact 3: DevOps teams also recover from problems 168 times faster. When something breaks, they can fix it much more quickly.
  • Fact 4: Netflix, the video streaming service, is a famous DevOps success story. They use DevOps to stream billions of hours of video every day without problems.
  • Fact 5: Many Nigerian companies are now using DevOps. It is helping them grow and compete globally.
  • Fact 6: The "Three Ways" were introduced by a man named Gene Kim in a book called "The Phoenix Project." This book is considered a classic in the DevOps world.

16. Did You Know?

  • Did you know? DevOps is not just about tools. The most important part of DevOps is the people and how they work together.
  • Did you know? The DevOps Lifecycle is also called the "infinite loop" because it never stops. Teams keep planning, coding, building, testing, releasing, deploying, operating, and monitoring over and over again.
  • Did you know? There are many DevOps tools that help teams work together. Some popular ones are: Jenkins (for building), Docker (for containers), Kubernetes (for running software), and Ansible (for automation).
  • Did you know? DevOps is used by both big companies and small startups. Even a one-person team can use DevOps principles to work better.
  • Did you know? In Nigeria, DevOps is a growing career field. Many companies are looking for people who understand DevOps.
  • Did you know? DevOps is closely related to "DevSecOps," which adds Security to the mix. DevSecOps makes sure that security is also part of the DevOps process.

17. Remember This

  • πŸ”Ή DevOps is a way of working where Developers and Operations work together.
  • πŸ”Ή We need DevOps because the old way of working separately caused problems.
  • πŸ”Ή The DevOps Lifecycle has 8 stages: Plan, Code, Build, Test, Release, Deploy, Operate, and Monitor.
  • πŸ”Ή The Three Ways are: Flow, Feedback, and Continuous Learning.
  • πŸ”Ή DevOps culture is about collaboration, communication, trust, being blame-free, continuous improvement, and shared goals.
  • πŸ”Ή Agile is about building software in short cycles. DevOps takes Agile and adds Operations.
  • πŸ”Ή Benefits of DevOps include faster releases, fewer problems, better collaboration, happy customers, less stress, and continuous improvement.
  • πŸ”Ή Everyone uses DevOps — tech companies, banks, e-commerce, government, schools, hospitals, and startups.

18. Common Mistakes

  1. Mistake 1: Thinking DevOps is only about tools.

    DevOps is much more than just tools. It is about culture, process, and people working together. Tools are helpful, but they are not the most important part.

  2. Mistake 2: Thinking DevOps is only for developers.

    DevOps involves both Developers and Operations people. It is a team effort. Everyone works together.

  3. Mistake 3: Thinking DevOps is easy.

    DevOps takes effort and practice. It requires changing how people work and think. But it is worth it because of all the benefits.

  4. Mistake 4: Blaming people when things go wrong.

    In DevOps culture, we fix problems instead of blaming people. Blaming creates a bad culture. Fixing problems creates a good culture.

  5. Mistake 5: Forgetting about continuous learning.

    The Third Way is about always learning and improving. If you stop learning, you stop improving.

  6. Mistake 6: Thinking DevOps is a one-time thing.

    DevOps is a continuous process. You never "finish" DevOps. You keep improving and working together.


19. Best Practices

  1. Start with culture, not tools.

    Before you buy any tools, focus on building a good culture. Get people to work together and trust each other. Tools come later.

  2. Start small.

    You do not have to do everything at once. Start with one team or one project. Learn from that experience and then expand.

  3. Automate everything.

    In DevOps, we automate as much as possible. This includes building, testing, and deploying. Automation saves time and reduces mistakes.

  4. Get feedback early and often.

    Do not wait until the end to get feedback. Get feedback at every stage. This helps you catch problems early.

  5. Learn from failures.

    When something goes wrong, do not blame anyone. Instead, ask: "What did we learn?" and "How can we prevent this in the future?"

  6. Keep improving.

    Always look for ways to get better. There is always something you can improve.


20. ASCII Illustrations

Illustration 1: The DevOps Lifecycle

    THE DEVOPS LIFECYCLE

    +--------------------------------------------------+
    |                                                   |
    |         PLAN                                     |
    |    (Decide what to build)                        |
    |           |                                       |
    |           V                                       |
    |         CODE                                     |
    |    (Write the software)                          |
    |           |                                       |
    |           V                                       |
    |         BUILD                                    |
    |    (Turn code into a program)                    |
    |           |                                       |
    |           V                                       |
    |         TEST                                     |
    |    (Check it works)                              |
    |           |                                       |
    |           V                                       |
    |         RELEASE                                  |
    |    (Prepare for users)                           |
    |           |                                       |
    |           V                                       |
    |         DEPLOY                                   |
    |    (Make it available to users)                  |
    |           |                                       |
    |           V                                       |
    |         OPERATE                                  |
    |    (Keep it running)                             |
    |           |                                       |
    |           V                                       |
    |         MONITOR                                  |
    |    (Watch for problems)                          |
    |           |                                       |
    |           V                                       |
    |    (Go back to PLAN and repeat!)                 |
    |                                                   |
    +--------------------------------------------------+
    

Illustration 2: The Three Ways

    THE THREE WAYS OF DEVOPS

    +--------------------------------------------------+
    |                                                   |
    |  THE FIRST WAY: FLOW                             |
    |  +------------------------------------+           |
    |  |  Make work flow smoothly from      |           |
    |  |  Development to Operations         |           |
    |  |  "Keep the river flowing"         |           |
    |  +------------------------------------+           |
    |           |                                       |
    |           V                                       |
    |  THE SECOND WAY: FEEDBACK                         |
    |  +------------------------------------+           |
    |  |  Get feedback quickly               |           |
    |  |  "Taste the food while cooking"    |           |
    |  +------------------------------------+           |
    |           |                                       |
    |           V                                       |
    |  THE THIRD WAY: CONTINUOUS LEARNING               |
    |  +------------------------------------+           |
    |  |  Always learn and improve           |           |
    |  |  "Get better every day"            |           |
    |  +------------------------------------+           |
    |                                                   |
    +--------------------------------------------------+
    

Illustration 3: Agile vs DevOps

    AGILE + DEVOPS

    AGILE:
    +--------------------------------------------------+
    |  Build software in short cycles (sprints)        |
    |  Deliver small pieces frequently                 |
    |  Respond to change quickly                       |
    |  Focus on Development                            |
    +--------------------------------------------------+
              |
              V
    DEVOPS:
    +--------------------------------------------------+
    |  Takes Agile and adds Operations                 |
    |  Development + Operations work together          |
    |  Build AND run software                          |
    |  Continuous delivery and monitoring              |
    +--------------------------------------------------+
              |
              V
    RESULT:
    +--------------------------------------------------+
    |  Faster, better, more reliable software!         |
    |  Happy developers, happy operations, happy users! |
    +--------------------------------------------------+
    

21. Comparison Tables

Table 1: Before DevOps vs. After DevOps

Aspect Before DevOps After DevOps
Collaboration Teams worked separately Teams work together
Releases Slow (months or years) Fast (days or weeks)
Problems Many bugs and issues Fewer problems
Culture Blame culture Blame-free culture
Learning Learning was slow Continuous learning
Customers Unhappy customers Happy customers

Table 2: Agile vs. DevOps

Aspect Agile DevOps
Focus Building software Building AND running software
Teams Developers Developers + Operations
Goal Deliver working software Deliver AND keep it running
Timeframe Sprints (2-4 weeks) Continuous delivery
Scope Development only Development + Operations

Table 3: The Three Ways

Way What It Means Simple Analogy
First Way (Flow) Make work flow smoothly A river flowing to the ocean
Second Way (Feedback) Get feedback quickly Tasting food while cooking
Third Way (Learning) Always learn and improve Getting better at a game

Note: Each lesson in this module already includes a "Mini Summary" section right after the lesson content. Please refer back to the lessons above to review each mini summary.


23. End-of-Module Summary

Congratulations! You have completed Module 1 of the "Certified DevOps Engineer" course. Let us review everything we have learned:

What is DevOps?

DevOps is a way of working where the people who build software (Developers) and the people who run the software (Operations) work together as one team. It helps teams build better software, faster.

Why Do We Need DevOps?

We need DevOps because the old way of working separately caused problems like slow releases, many mistakes, finger-pointing, and unhappy customers. DevOps solves all these problems.

The History of DevOps

DevOps started around 2009 and has grown to be used by companies all over the world. It began with the Agile movement and evolved into a full way of working.

The DevOps Lifecycle

The DevOps Lifecycle is the series of steps to build, test, release, and monitor software. The eight stages are: Plan, Code, Build, Test, Release, Deploy, Operate, and Monitor.

The Three Ways

The Three Ways are the core principles of DevOps. The First Way is about Flow. The Second Way is about Feedback. The Third Way is about Continuous Learning.

DevOps Culture

DevOps culture is about working together, sharing ideas, and helping each other. Key elements include collaboration, communication, trust, being blame-free, continuous improvement, and shared goals.

Agile and DevOps

Agile is a way of building software in short cycles. DevOps extends Agile by bringing in the Operations team so that building and running software are done together.

The Benefits of DevOps

DevOps leads to faster releases, fewer problems, better collaboration, happy customers, less stress, and continuous improvement.

Who Uses DevOps?

DevOps is used by tech companies, banks, e-commerce, government, schools, hospitals, and startups. Anyone who builds software can use DevOps.

You have now completed Module 1! You are ready to move on to Module 2, where you will learn about Version Control and Source Code Management. Keep up the great work!


24. Frequently Asked Questions (10 Questions)

  1. Q1: What is DevOps?

    A: DevOps is a way of working where Developers and Operations work together to build software. It helps teams build better software, faster.

  2. Q2: Why is DevOps important?

    A: DevOps is important because it solves the problems of the old way of working. It leads to faster releases, fewer problems, and happier customers.

  3. Q3: Who uses DevOps?

    A: DevOps is used by many different organizations. Tech companies, banks, e-commerce, government, schools, hospitals, and startups all use DevOps.

  4. Q4: What are the Three Ways of DevOps?

    A: The Three Ways are: Flow (making work flow smoothly), Feedback (getting feedback quickly), and Continuous Learning (always learning and improving).

  5. Q5: What is the DevOps Lifecycle?

    A: The DevOps Lifecycle is the series of steps to build, test, release, and monitor software. The stages are: Plan, Code, Build, Test, Release, Deploy, Operate, and Monitor.

  6. Q6: What is the difference between Agile and DevOps?

    A: Agile is about building software in short cycles. DevOps takes Agile and adds Operations so that building AND running software are done together.

  7. Q7: What is DevOps culture?

    A: DevOps culture is about working together, sharing ideas, and helping each other. It includes collaboration, communication, trust, being blame-free, continuous improvement, and shared goals.

  8. Q8: What are the benefits of DevOps?

    A: DevOps leads to faster releases, fewer problems, better collaboration, happy customers, less stress, and continuous improvement.

  9. Q9: Do I need to be a developer to learn DevOps?

    A: No! DevOps is for everyone. You can be a developer, an operations person, a manager, or anyone who works with software. DevOps is about people working together.

  10. Q10: Is DevOps used in Nigeria?

    A: Yes! Many Nigerian companies like Flutterwave, Paystack, and Andela use DevOps. It is helping Nigerian companies grow and compete globally.


25. Review Questions (15 Questions)

  1. What is DevOps?

    Answer: DevOps is a way of working where Developers and Operations work together to build software.

  2. Why do we need DevOps?

    Answer: Because the old way of working separately caused problems like slow releases, many mistakes, and unhappy customers.

  3. What does "DevOps" stand for?

    Answer: DevOps combines "Development" and "Operations."

  4. What are the eight stages of the DevOps Lifecycle?

    Answer: Plan, Code, Build, Test, Release, Deploy, Operate, and Monitor.

  5. What are the Three Ways of DevOps?

    Answer: Flow, Feedback, and Continuous Learning.

  6. What is the First Way of DevOps?

    Answer: The First Way is Flow — making work flow smoothly from Development to Operations.

  7. What is the Second Way of DevOps?

    Answer: The Second Way is Feedback — getting feedback quickly so problems can be fixed early.

  8. What is the Third Way of DevOps?

    Answer: The Third Way is Continuous Learning — always learning and improving.

  9. What is DevOps culture?

    Answer: DevOps culture is about working together, sharing ideas, and helping each other.

  10. Name three elements of DevOps culture.

    Answer: Collaboration, communication, trust, being blame-free, continuous improvement, and shared goals. (Any three are acceptable.)

  11. What is Agile?

    Answer: Agile is a way of building software in short cycles, delivering small pieces frequently.

  12. How is DevOps different from Agile?

    Answer: Agile focuses on Development. DevOps takes Agile and adds Operations so that building AND running software are done together.

  13. Name two benefits of DevOps.

    Answer: Faster releases, fewer problems, better collaboration, happy customers, less stress, and continuous improvement. (Any two are acceptable.)

  14. Who uses DevOps?

    Answer: Tech companies, banks, e-commerce, government, schools, hospitals, and startups.

  15. Can DevOps be used in Nigeria?

    Answer: Yes! Many Nigerian companies like Flutterwave, Paystack, and Andela use DevOps.


26. Fill-in-the-Blank Exercises

Fill in the blanks with the correct words from the list:

Word list: DevOps, Development, Operations, Agile, Flow, Feedback, Continuous Learning, Lifecycle, Culture, Three Ways

  1. __________ is a way of working where Developers and Operations work together.

    Answer: DevOps

  2. The __________ team writes the code and builds new features.

    Answer: Development

  3. The __________ team makes sure the software runs properly.

    Answer: Operations

  4. __________ is a way of building software in short cycles.

    Answer: Agile

  5. The First Way of DevOps is __________.

    Answer: Flow

  6. The Second Way of DevOps is __________.

    Answer: Feedback

  7. The Third Way of DevOps is __________.

    Answer: Continuous Learning

  8. The DevOps __________ has eight stages.

    Answer: Lifecycle

  9. DevOps __________ is about working together and sharing ideas.

    Answer: Culture

  10. The core principles of DevOps are called the __________.

    Answer: Three Ways


27. True or False Exercises

Write True or False for each statement:

  1. DevOps is only about tools.

    Answer: False

  2. DevOps brings Developers and Operations together.

    Answer: True

  3. The DevOps Lifecycle has 5 stages.

    Answer: False (It has 8 stages)

  4. The First Way of DevOps is Feedback.

    Answer: False (The First Way is Flow)

  5. DevOps culture is about working together.

    Answer: True

  6. Agile and DevOps are the same thing.

    Answer: False

  7. DevOps leads to faster releases.

    Answer: True

  8. In DevOps culture, we blame people when things go wrong.

    Answer: False (We fix problems instead of blaming people)

  9. DevOps is used by many different organizations.

    Answer: True

  10. The Third Way of DevOps is about continuous learning.

    Answer: True

  11. DevOps is not used in Nigeria.

    Answer: False

  12. The DevOps Lifecycle never stops.

    Answer: True

  13. DevOps is only for developers.

    Answer: False

  14. DevOps helps make customers happy.

    Answer: True

  15. DevOps is a one-time thing.

    Answer: False


28. Multiple Choice Questions (15 Questions)

Choose the correct answer for each question:

  1. What is DevOps?

    A) A programming language
    B) A way of working where Developers and Operations work together
    C) A type of computer
    D) A video game

    Answer: B

  2. What does "DevOps" combine?

    A) Development and Operations
    B) Design and Operations
    C) Development and Design
    D) Data and Operations

    Answer: A

  3. How many stages are in the DevOps Lifecycle?

    A) 5
    B) 6
    C) 8
    D) 10

    Answer: C

  4. Which is NOT a stage in the DevOps Lifecycle?

    A) Plan
    B) Code
    C) Sing
    D) Monitor

    Answer: C

  5. What is the First Way of DevOps?

    A) Feedback
    B) Flow
    C) Continuous Learning
    D) Planning

    Answer: B

  6. What is the Second Way of DevOps?

    A) Feedback
    B) Flow
    C) Continuous Learning
    D) Planning

    Answer: A

  7. What is the Third Way of DevOps?

    A) Feedback
    B) Flow
    C) Continuous Learning
    D) Planning

    Answer: C

  8. Which is an element of DevOps culture?

    A) Blaming people
    B) Not communicating
    C) Collaboration
    D) Working alone

    Answer: C

  9. What is Agile?

    A) A way of building software in short cycles
    B) A way of running a marathon
    C) A type of food
    D) A video game

    Answer: A

  10. How is DevOps different from Agile?

    A) DevOps is the same as Agile
    B) DevOps adds Operations to Agile
    C) DevOps is about design, not code
    D) DevOps is older than Agile

    Answer: B

  11. Which is a benefit of DevOps?

    A) Slower releases
    B) More problems
    C) Faster releases
    D) Unhappy customers

    Answer: C

  12. Who uses DevOps?

    A) Only tech companies
    B) Only banks
    C) Many different types of organizations
    D) Only governments

    Answer: C

  13. Is DevOps used in Nigeria?

    A) No
    B) Yes, by many companies
    C) Only in Lagos
    D) Only by the government

    Answer: B

  14. What is the most important part of DevOps?

    A) Tools
    B) People and culture
    C) Computers
    D) Money

    Answer: B

  15. What is the DevOps Lifecycle?

    A) A series of steps to build, test, release, and monitor software
    B) A type of computer
    C) A video game
    D) A programming language

    Answer: A


29. Matching Exercises

Match the words in Column A with their correct meanings in Column B.

Column A Column B
1. DevOps A. The First Way — making work flow smoothly
2. Development B. The team that writes the code
3. Operations C. The team that runs the software
4. Flow D. A way of working where Developers and Operations work together
5. Feedback E. The Second Way — getting feedback quickly
6. Continuous Learning F. The Third Way — always learning and improving
7. Agile G. Building software in short cycles
8. DevOps Lifecycle H. The series of steps to build, test, release, and monitor software
9. DevOps Culture I. Working together, sharing ideas, and helping each other
10. Three Ways J. The core principles of DevOps

Answers:

  1. D
  2. B
  3. C
  4. A
  5. E
  6. F
  7. G
  8. H
  9. I
  10. J

30. Short Answer Questions

  1. What is DevOps and why is it useful?

    Answer: DevOps is a way of working where Developers and Operations work together to build software. It is useful because it leads to faster releases, fewer problems, and happier customers.

  2. Explain the three stages of the DevOps Lifecycle.

    Answer: The DevOps Lifecycle has eight stages: Plan (decide what to build), Code (write the software), Build (turn code into a program), Test (check it works), Release (prepare for users), Deploy (make it available), Operate (keep it running), and Monitor (watch for problems). Then it starts all over again.

  3. What are the Three Ways of DevOps? Explain each one.

    Answer: The Three Ways are:

    • First Way (Flow): Make work flow smoothly from Development to Operations.
    • Second Way (Feedback): Get feedback quickly so problems can be fixed early.
    • Third Way (Continuous Learning): Always learn and improve.
  4. What is DevOps culture and why is it important?

    Answer: DevOps culture is about working together, sharing ideas, and helping each other. It is important because a good culture helps people work better together, which leads to better software and happier teams.

  5. Give an example of how DevOps is used in Nigeria.

    Answer: Flutterwave is a Nigerian fintech company that uses DevOps. They use DevOps to build their payment platform, which processes millions of transactions every day. They release new features quickly and keep the platform running smoothly.


31. Scenario-based Exercises

Scenario 1: The Tech Startup

A small tech startup in Lagos is building a new app. The Developers and Operations team do not talk to each other. The Developers build features quickly, but the Operations team cannot run them properly. The app keeps crashing, and customers are unhappy.

Question: How could DevOps help this startup?

Answer: DevOps could help by bringing the Developers and Operations team together. They would start talking, planning, and working together. The Developers would build features that the Operations team can run. The app would stop crashing, and customers would be happy.

Scenario 2: The Bank

A Nigerian bank wants to release new features for its mobile app more quickly. Currently, it takes 3 months to release any update. Customers are complaining about the lack of new features.

Question: How could DevOps help the bank release features faster?

Answer: DevOps could help the bank by making the flow of work smoother. The Developers and Operations teams would work together. They would build, test, and release features more quickly. Instead of taking 3 months, they could release updates in weeks or even days.

Scenario 3: The E-commerce Company

An e-commerce company in Nigeria has a website that goes down frequently during peak shopping times. Customers cannot place orders, and the company loses money.

Question: How could DevOps help prevent the website from crashing?

Answer: DevOps could help by improving collaboration between Developers and Operations. The Operations team would be involved from the start, helping the Developers build software that is more reliable. With DevOps, they would also monitor the website more closely and fix problems before they become big issues.


32. Group Activity

Activity: The DevOps Simulation

Instructions:

  1. Form groups of 4-5 students.
  2. Assign roles:
    • 2 Developers: Responsible for writing code (drawing a picture or building something on paper)
    • 2 Operations: Responsible for running the code (making sure the picture is displayed or the building stands)
    • 1 Observer: Watches and gives feedback
  3. Round 1 (No DevOps): The Developers build something without talking to Operations. Operations tries to run it. Then switch roles and try again.
  4. Round 2 (With DevOps): Everyone works together. Developers and Operations plan together, build together, and solve problems together.
  5. Discuss: What was different between the two rounds? Which round was more successful? Why?
  6. Share with the class.

33. Individual Activity

Activity: My DevOps Reflection

Instructions:

  1. Think about a group project you worked on. It could be at school, at home, or in your community.
  2. Write down the following:
    • What was the project?
    • Who was involved?
    • How did people work together?
    • Were there any problems?
    • How could DevOps help make the project better?
  3. Now, write a short plan. If you were to do the project again using DevOps principles, what would you do differently?
  4. Submit your reflection and plan.

34. Classroom Discussion Questions

  1. Why do you think teams often work separately instead of together?

    Discuss with your classmates and share your ideas.

  2. How would you feel if you were a Developer and the Operations team never talked to you?

    Share your thoughts on why communication is important.

  3. What are some other situations where people working together makes things better?

    Think about different situations at home, at school, and in your community.

  4. Do you think DevOps will become more or less important in the future? Why?

    Share your opinions and listen to what others think.

  5. Can you think of a Nigerian company that might benefit from using DevOps?

    Share examples of companies in Nigeria.

  6. What do you think is the most important principle of DevOps?

    Explain why you think so.

  7. Do you think DevOps would help your school? How?

    Think about different projects and activities at school.

  8. What is the most important thing you learned about DevOps today?

    Share with the class.


35. Mini Project

Project: Create a "DevOps for Beginners" Guide

Goal: Create a simple guide to teach beginners about DevOps.

Instructions:

  1. Work individually or in small groups.
  2. Design a guide that includes:
    • A cover page with a title and a drawing
    • An introduction to DevOps
    • The DevOps Lifecycle (with explanations)
    • The Three Ways (Flow, Feedback, Continuous Learning)
    • DevOps culture (what it is and why it matters)
    • Agile vs DevOps (a comparison)
    • The benefits of DevOps
    • Who uses DevOps
    • Key vocabulary with definitions
    • A fun example or story
  3. Use simple language. Write as if you are teaching a 10-year-old.
  4. Include drawings or pictures. You can draw them by hand.
  5. Present your guide to the class.

36. Practical Assignment

Assignment: DevOps in Your Community

Goal: Observe how DevOps principles apply in your community.

Instructions:

  1. Find a project in your community. This could be a school event, a community event, or any project where people work together.
  2. Observe how people work together. Look for:
    • Do different groups communicate?
    • Do they work smoothly together?
    • Do they get feedback and use it?
    • Do they learn from mistakes?
  3. Write a report. Your report should include:
    • What project you observed
    • How people worked together (or did not)
    • What could be improved using DevOps principles
    • Your recommendations
  4. Submit your report.

37. Challenge Exercise

Challenge: The DevOps Solution

Scenario:

You are a DevOps consultant hired by a Nigerian company that sells products online. The company has a website that is slow, frequently crashes, and takes 6 months to release any new features. Customers are frustrated and going to competitors.

The company has:

  • A Development team that writes code
  • An Operations team that manages the servers
  • No communication between the two teams
  • No automated testing or deployment
  • A culture of blaming when things go wrong

Challenge: Create a complete DevOps plan for this company. Include:

  • Culture changes: How will you change the way people work together?
  • Process changes: What new processes will you introduce?
  • Tool recommendations: What tools will you suggest?
  • The DevOps Lifecycle: How will you implement each stage?
  • The Three Ways: How will you incorporate Flow, Feedback, and Continuous Learning?
  • Timeline: When will you implement each change?
  • Success metrics: How will you measure success?

BONUS CHALLENGE: Present your plan to the class as if you were presenting it to the company's management.


38. Quiz Answers

Multiple Choice Questions (Section 28):

  1. B
  2. A
  3. C
  4. C
  5. B
  6. A
  7. C
  8. C
  9. A
  10. B
  11. C
  12. C
  13. B
  14. B
  15. A

True or False Exercises (Section 27):

  1. False
  2. True
  3. False
  4. False
  5. True
  6. False
  7. True
  8. False
  9. True
  10. True
  11. False
  12. True
  13. False
  14. True
  15. False

Fill-in-the-Blank Exercises (Section 26):

  1. DevOps
  2. Development
  3. Operations
  4. Agile
  5. Flow
  6. Feedback
  7. Continuous Learning
  8. Lifecycle
  9. Culture
  10. Three Ways

Matching Exercises (Section 29):

  1. D
  2. B
  3. C
  4. A
  5. E
  6. F
  7. G
  8. H
  9. I
  10. J

39. Key Takeaways

  • πŸ”Ή DevOps is a way of working where Developers and Operations work together to build software.
  • πŸ”Ή DevOps is needed because the old way of working separately caused problems.
  • πŸ”Ή The DevOps Lifecycle has eight stages: Plan, Code, Build, Test, Release, Deploy, Operate, and Monitor.
  • πŸ”Ή The Three Ways are Flow, Feedback, and Continuous Learning.
  • πŸ”Ή DevOps culture is about working together, sharing ideas, and helping each other.
  • πŸ”Ή Agile is about building software in short cycles. DevOps extends Agile with Operations.
  • πŸ”Ή DevOps benefits include faster releases, fewer problems, and happier customers.
  • πŸ”Ή DevOps is used by tech companies, banks, e-commerce, government, schools, hospitals, and startups.
  • πŸ”Ή DevOps is used in Nigeria by companies like Flutterwave, Paystack, and Andela.
  • πŸ”Ή DevOps is about people — it is about working together and helping each other succeed.

40. Preparation for the Next Module

Congratulations! You have completed Module 1: "Introduction to DevOps." You now understand what DevOps is, why it is important, and how it helps teams build better software.

In Module 2, you will learn:

  • What is Version Control? You will learn how teams keep track of changes to their code.
  • What is Git? You will learn about the most popular version control system.
  • How to use Git: You will learn basic Git commands like commit, push, pull, and branch.
  • Collaboration workflows: You will learn how teams work together using Git.
  • GitHub and GitLab: You will learn about platforms that host Git repositories.

Before you start Module 2, here are some things to think about:

  1. Think about why it is important to track changes. Have you ever lost work because you did not save it? Version control helps prevent that.
  2. Think about collaboration. How do you and your classmates work on group projects? Version control helps teams work together smoothly.
  3. Review what you learned. Make sure you understand the key concepts from this module before moving on.

You are doing a fantastic job! Keep learning, keep growing, and we will see you in Module 2! πŸš€


© 2026 Certified DevOps Engineer Course • Module 1: Introduction to DevOps

10

Module Nine

Module 9: Cloud Platforms & DevOps

☁️ Module 9: Cloud Platforms & DevOps


1. Module Title

☁️ Cloud Platforms & DevOps: Building Software in the Cloud

Welcome to Module 9 of our Certified DevOps Engineer course! This module is called "Cloud Platforms & DevOps: Building Software in the Cloud."

In this module, we will learn about Cloud Computing and how it connects with DevOps. We will explore the three biggest cloud providers: Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP). We will also learn about the DevOps services they offer.

Think of the cloud like a giant, magical computer that lives on the internet. You can rent space on this computer to run your software without having to buy your own expensive servers. It is like renting a car instead of buying one — you only pay for what you use!


2. Module Introduction

Hello and welcome back! In Module 1, we learned about DevOps. In Module 2, we learned about Git. In Module 3, we learned about Continuous Integration. In Module 4, we learned about Continuous Delivery. In Module 5, we learned about Infrastructure as Code. In Module 6, we learned about containers and Kubernetes. In Module 7, we learned about Monitoring, Logging, and Observability. In Module 8, we learned about DevSecOps and Security. Now, in Module 9, we are going to learn about Cloud Platforms and DevOps.

Imagine you want to build a house. You have two options:

  • Buy your own land and build: This is like having your own servers in your own building. It is expensive and takes a lot of work.
  • Rent space in a building: This is like using the cloud. You rent space on someone else's computers. It is cheaper and easier.

The cloud is like renting space in a giant building filled with computers. You can use as much or as little as you need, and you only pay for what you use.

In this module, we will learn all about cloud platforms — what they are, why they are important, and how they work with DevOps. We will use simple words, fun stories, and lots of examples.

So, are you ready? Let us dive in and discover the amazing world of cloud computing!


3. Learning Objectives

By the time you finish this module, you will be able to:

  • Explain what cloud computing is in your own simple words.
  • Understand the different cloud service models (IaaS, PaaS, SaaS).
  • Describe the three major cloud providers (AWS, Azure, GCP).
  • Explain AWS DevOps services (CodePipeline, CodeBuild, CodeDeploy).
  • Understand Azure DevOps services (Pipelines, Repos, Boards).
  • Explain Google Cloud DevOps services (Cloud Build, Artifact Registry).
  • Understand multi-cloud strategies.
  • Identify the benefits of using cloud platforms for DevOps.
  • Give examples of how cloud platforms are used in real projects.
  • Feel excited to learn more about cloud computing!

4. Warm-up Story

The Cloud Dream

Once upon a time, in a busy city in Nigeria called Lagos, there was a company called "EduApp." They built a learning app for students. The app was very popular, and thousands of students used it every day.

But EduApp had a big problem. They had their own servers in a small room in their office. The servers were old and slow. Sometimes they crashed, and students could not learn. The company spent a lot of money fixing the servers and buying new ones.

One day, a clever engineer named Mr. Emeka said, "Why do we keep buying expensive servers? We should use the cloud!" He explained that the cloud was like renting space on someone else's powerful computers. You only pay for what you use, and you can get more computers instantly when you need them.

Mr. Emeka moved EduApp to AWS (Amazon Web Services), a popular cloud platform. He used EC2 to run the app, S3 to store videos, and CodePipeline to automatically build and deploy new versions.

Now, EduApp never crashes. When thousands of students log in at the same time, the cloud automatically adds more computers to handle the load. The company saves money because they only pay for what they use. EduApp became the most popular learning app in Nigeria.

This story shows us how powerful the cloud can be. It helps companies save money, scale quickly, and focus on building great products. Let us learn more about cloud platforms and how they work with DevOps!


5. Main Lessons

Lesson 1: What is Cloud Computing?

Definition

Cloud computing is the practice of using computers and servers that are owned by someone else and accessed over the internet. Instead of buying your own servers, you rent them from a cloud provider.

Why is it Important?

Cloud computing is important because it makes it easy and cheap to run software. You do not need to buy expensive servers or hire people to maintain them. You can focus on building your product.

Simple Explanation

Imagine you need electricity for your house. Instead of building your own power plant, you buy electricity from the power company. Cloud computing is like that — instead of building your own computer room, you rent computers from a cloud provider.

Key Characteristics of Cloud Computing

  • On-Demand: You can get computers whenever you need them.
  • Pay-as-you-go: You only pay for what you use.
  • Scalable: You can get more computers when you need them.
  • Reliable: Cloud providers have many backup systems.
  • Accessible: You can access your computers from anywhere.
  • Secure: Cloud providers invest heavily in security.

Real-life Example

A company uses AWS to run their website. They rent virtual computers (EC2 instances) from AWS. They only pay for the time the computers are running. When traffic increases, they start more computers.

School Example

Your school rents a bus for a field trip. Instead of buying a bus, they rent one only when they need it. Cloud computing is like renting a bus for your software.

Home Example

Your family uses a streaming service like Netflix. You do not own the servers that stream the movies. You rent access to them. Cloud computing is like streaming — you use someone else's computers.

Nigerian Example

A Nigerian bank uses cloud computing to run their mobile app. They rent computers from AWS. They do not need to buy expensive servers. They can focus on building a great app.

Illustration

    CLOUD COMPUTING

    TRADITIONAL (Own Servers):
    +--------------------------------------------------+
    |  Buy servers ($10,000 each)                      |
    |  Maintain servers (hire staff)                   |
    |  Pay for electricity and cooling                |
    |  Upgrade servers every few years                |
    |  πŸ’° Expensive and complicated                   |
    +--------------------------------------------------+

    CLOUD (Rent Servers):
    +--------------------------------------------------+
    |  Rent servers from cloud provider                |
    |  Pay only for what you use (pay-as-you-go)      |
    |  No maintenance needed                          |
    |  Scale up or down instantly                     |
    |  πŸ’° Cheap and easy                              |
    +--------------------------------------------------+
    

Mini Summary

Cloud computing is the practice of using computers and servers that are owned by someone else. It is like renting computers instead of buying them. It is cheap, easy, and scalable.


Lesson 2: Cloud Service Models

Definition

Cloud service models are the different ways you can use the cloud. There are three main models: IaaS, PaaS, and SaaS.

Why is it Important?

Understanding the different service models helps you choose the right one for your needs. Each model gives you a different level of control.

Simple Explanation

Imagine you want to eat pizza. You have three options:

  • IaaS: You buy all the ingredients and cook it yourself (most control, most work).
  • PaaS: You buy a pizza kit with everything you need (some control, some work).
  • SaaS: You order a pizza and it is delivered to you (no control, no work).

The Three Service Models

Model What It Is What You Control Analogy
IaaS Infrastructure as a Service You control the operating system, apps, and data Renting a car
PaaS Platform as a Service You control your apps, but the platform is managed Using a taxi
SaaS Software as a Service You control nothing — just use the software Taking a bus

Real-life Example

A company uses IaaS (AWS EC2) to run their app. They control the operating system and the app. A different company uses PaaS (Google App Engine) to run their app. They just upload their code and the platform runs it. A third company uses SaaS (Gmail) to send email. They just use the software.

School Example

IaaS is like being given a room and decorating it yourself. PaaS is like being given a fully furnished room. SaaS is like being given a room with everything already done for you.

Home Example

IaaS is like having a kitchen and cooking your own meals. PaaS is like having a meal kit delivered. SaaS is like ordering takeout.

Nigerian Example

A Nigerian startup uses IaaS (AWS) to build their app. They have full control. A Nigerian school uses SaaS (Google Classroom) for online learning. They just use the software.

Illustration

    CLOUD SERVICE MODELS

    +--------------------------------------------------+
    |  IaaS (Infrastructure as a Service)              |
    |  +-------------------------------------------+    |
    |  |  You manage:                             |    |
    |  |  βœ… Applications                         |    |
    |  |  βœ… Data                                 |    |
    |  |  βœ… Operating System                     |    |
    |  |  βœ… Runtime                              |    |
    |  |  ❌ Hardware (managed by cloud)          |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  PaaS (Platform as a Service)                    |
    |  +-------------------------------------------+    |
    |  |  You manage:                             |    |
    |  |  βœ… Applications                         |    |
    |  |  βœ… Data                                 |    |
    |  |  ❌ Operating System                     |    |
    |  |  ❌ Runtime                              |    |
    |  |  ❌ Hardware                             |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  SaaS (Software as a Service)                    |
    |  +-------------------------------------------+    |
    |  |  You manage:                             |    |
    |  |  βœ… Use the software                      |    |
    |  |  ❌ Everything else                      |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ More control = more work; less control = less work |
    +--------------------------------------------------+
    

Mini Summary

There are three cloud service models: IaaS, PaaS, and SaaS. IaaS gives you the most control (but more work). SaaS gives you the least control (but less work). Choose the right one for your needs.


Lesson 3: Amazon Web Services (AWS)

Definition

Amazon Web Services (AWS) is the most popular cloud platform in the world. It was created by Amazon in 2006. AWS has over 200 services that help you build and run software in the cloud.

Why is it Important?

AWS is important because it is the largest cloud provider. Many companies, including many in Nigeria, use AWS. Learning AWS is a valuable skill for a DevOps engineer.

Simple Explanation

Imagine AWS is a giant shopping mall for computer services. You can go to different stores to get different things. One store gives you computers (EC2). Another store gives you storage space (S3). Another store gives you databases (RDS). You can pick and choose what you need.

Popular AWS Services

Service What It Does Analogy
EC2 Virtual computers (servers) in the cloud Renting a computer
S3 Storage for files (like documents, images, videos) A giant hard drive in the cloud
RDS Managed databases A database that is maintained for you
Lambda Run code without managing servers A robot that runs your code on demand
VPC Virtual private network for your cloud resources A private room in the cloud
IAM Manage user permissions A security guard that controls who can access what

Real-life Example

A company uses AWS to run their website. They use EC2 for servers, S3 for storing images, RDS for the database, and Lambda for background tasks. Everything is managed in the cloud.

School Example

Your school uses AWS to store student records (S3), run the school website (EC2), and manage the database (RDS). Everything is in the cloud.

Home Example

Your family uses AWS to store photos (S3) and run a family website (EC2). Everything is safe and accessible from anywhere.

Nigerian Example

Flutterwave, a Nigerian fintech company, uses AWS to run their payment platform. They use EC2, RDS, and many other AWS services to handle millions of transactions every day.

Illustration

    AMAZON WEB SERVICES (AWS)

    +--------------------------------------------------+
    |  AWS (A giant mall of cloud services)            |
    |                                                   |
    |  +-------------------------------------------+    |
    |  |  EC2  (Virtual computers)                |    |
    |  |  S3   (Storage)                          |    |
    |  |  RDS  (Databases)                        |    |
    |  |  Lambda (Serverless code)                |    |
    |  |  VPC   (Networking)                      |    |
    |  |  IAM   (Security)                        |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  All accessible from anywhere!                   |
    |  +-------------------------------------------+    |
    |  |  🌐 Internet                              |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  YOUR APP IS RUNNING! πŸš€                        |
    +--------------------------------------------------+
    

Mini Summary

AWS is the most popular cloud platform. It has over 200 services, including EC2 (computers), S3 (storage), and RDS (databases). Many companies use AWS to run their software.


Lesson 4: AWS DevOps Services

Definition

AWS DevOps services are tools provided by AWS to help you implement DevOps practices. They help you build, test, and deploy software automatically.

Why is it Important?

AWS DevOps services make it easy to set up CI/CD pipelines in the cloud. You do not need to install and manage your own tools. AWS does it for you.

Simple Explanation

Imagine you are building a factory. AWS DevOps services are like machines that automatically build, test, and package your products. You just tell them what to do, and they do it.

Key AWS DevOps Services

Service What It Does Analogy
CodeCommit Git repository hosted on AWS A safe place to store your code
CodeBuild Builds your code and runs tests A machine that builds your product
CodeDeploy Deploys your code to servers A machine that ships your product
CodePipeline Orchestrates the whole CI/CD pipeline A conveyor belt in a factory
CodeArtifact Stores and shares artifacts A warehouse for your products

Real-life Example

A company uses AWS CodePipeline to automate their CI/CD. When a developer pushes code to CodeCommit, CodeBuild builds it, runs tests, and creates an artifact. CodeDeploy deploys it to EC2 servers. The whole process is automatic.

School Example

Your school has a system that automatically checks homework when it is submitted. CodeCommit is like the submission system. CodeBuild is like the system that checks the homework. CodeDeploy is like the system that sends the results back.

Home Example

Your family has an automated system for ordering groceries. CodePipeline is like the whole system. CodeBuild is like checking the order. CodeDeploy is like delivering the groceries.

Nigerian Example

A Nigerian company uses AWS CodePipeline to deploy their app. They push code to CodeCommit. CodeBuild builds it. CodeDeploy deploys it to EC2 servers. The whole process takes 10 minutes.

Illustration

    AWS DEVOPS PIPELINE

    +--------------------------------------------------+
    |  AWS DEVOPS PIPELINE                             |
    |                                                   |
    |  1. CodeCommit (Store code)                      |
    |  +-------------------------------------------+    |
    |  |  πŸ“‚ Source Code                          |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  2. CodeBuild (Build and test)                    |
    |  +-------------------------------------------+    |
    |  |  πŸ—οΈ Build code                           |    |
    |  |  βœ… Run tests                            |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  3. CodeDeploy (Deploy)                          |
    |  +-------------------------------------------+    |
    |  |  πŸš€ Deploy to servers                     |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  πŸŽ‰ App is live!                                 |
    +--------------------------------------------------+
    

Mini Summary

AWS DevOps services include CodeCommit, CodeBuild, CodeDeploy, and CodePipeline. They help you automate your CI/CD pipeline in the cloud. CodePipeline orchestrates the whole process.


Lesson 5: Microsoft Azure

Definition

Microsoft Azure is the second-largest cloud platform in the world. It was created by Microsoft in 2010. Azure has over 200 services that help you build and run software in the cloud.

Why is it Important?

Azure is important because it is Microsoft's cloud platform. If you use Microsoft tools (like Windows, Office, or .NET), Azure is a natural choice. Many companies use Azure.

Simple Explanation

Imagine Azure is another giant shopping mall for computer services, like AWS. It has similar stores (services) but is owned by Microsoft. You can get computers (Virtual Machines), storage (Blob Storage), and databases (Azure SQL) just like in AWS.

Popular Azure Services

Service What It Does Analogy
Virtual Machines Virtual computers in the cloud Renting a computer (like EC2)
Blob Storage Storage for files A giant hard drive (like S3)
Azure SQL Managed databases A database that is maintained for you
Functions Run code without managing servers A robot that runs your code (like Lambda)
Azure DevOps DevOps services (Pipelines, Repos, Boards) A complete DevOps platform

Real-life Example

A company uses Azure to run their website. They use Virtual Machines for servers, Blob Storage for images, Azure SQL for the database, and Azure DevOps for CI/CD.

School Example

Your school uses Azure for their online learning platform. They use Virtual Machines to run the platform and Blob Storage to store videos.

Home Example

Your family uses Azure to store photos and run a family blog. Everything is secure and accessible from anywhere.

Nigerian Example

A Nigerian company uses Azure to run their app. They chose Azure because they use many Microsoft tools. Azure integrates well with their existing systems.

Illustration

    MICROSOFT AZURE

    +--------------------------------------------------+
    |  AZURE (Microsoft's cloud platform)              |
    |                                                   |
    |  +-------------------------------------------+    |
    |  |  Virtual Machines (Computers)            |    |
    |  |  Blob Storage (Storage)                  |    |
    |  |  Azure SQL (Databases)                   |    |
    |  |  Functions (Serverless code)             |    |
    |  |  Azure DevOps (CI/CD)                    |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  All accessible from anywhere!                   |
    |  +-------------------------------------------+    |
    |  |  🌐 Internet                              |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  YOUR APP IS RUNNING! πŸš€                        |
    +--------------------------------------------------+
    

Mini Summary

Microsoft Azure is the second-largest cloud platform. It has services like Virtual Machines, Blob Storage, and Azure DevOps. It is a great choice if you use Microsoft tools.


Lesson 6: Azure DevOps

Definition

Azure DevOps is a set of DevOps tools provided by Microsoft. It includes Azure Pipelines (CI/CD), Azure Repos (Git repositories), Azure Boards (project management), and Azure Artifacts (package management).

Why is it Important?

Azure DevOps is important because it is a complete DevOps platform. You can manage your code, build pipelines, track work, and share artifacts all in one place.

Simple Explanation

Imagine Azure DevOps is a giant office building for software development. It has offices for writing code (Repos), a factory for building code (Pipelines), a project management room (Boards), and a warehouse for storing finished products (Artifacts). Everything is in one building!

Azure DevOps Components

Component What It Does Analogy
Azure Pipelines CI/CD pipelines (build, test, deploy) A factory assembly line
Azure Repos Git repositories for code A library of code
Azure Boards Project management (tasks, bugs, sprints) A project planning board
Azure Artifacts Package management (store and share packages) A warehouse for finished products

Real-life Example

A company uses Azure DevOps for everything. They store code in Azure Repos. They use Azure Pipelines to build and deploy. They use Azure Boards to track tasks. Everything is integrated and organized.

School Example

Your school uses Azure DevOps for a project. Azure Repos stores the code. Azure Pipelines builds it. Azure Boards tracks who is doing what. Everything is organized.

Home Example

Your family uses Azure DevOps to plan a party. Azure Boards tracks the tasks. Azure Repos stores the guest list. Azure Pipelines sends invitations. Everything is automated and organized.

Nigerian Example

A Nigerian company uses Azure DevOps to manage their software development. They use Azure Boards to track work, Azure Repos for code, and Azure Pipelines for CI/CD. This helps them deliver software faster.

Illustration

    AZURE DEVOPS

    +--------------------------------------------------+
    |  AZURE DEVOPS (Complete platform)                |
    |                                                   |
    |  +-------------------------------------------+    |
    |  |  Azure Repos (Code storage)              |    |
    |  |  Azure Pipelines (CI/CD)                 |    |
    |  |  Azure Boards (Project management)       |    |
    |  |  Azure Artifacts (Package storage)       |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  All integrated together!                        |
    |  +-------------------------------------------+    |
    |  |  Code β†’ Build β†’ Test β†’ Deploy            |    |
    |  |  Tracked in Boards                       |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Everything in one place!                      |
    +--------------------------------------------------+
    

Mini Summary

Azure DevOps is a complete DevOps platform from Microsoft. It includes Azure Pipelines (CI/CD), Azure Repos (code), Azure Boards (project management), and Azure Artifacts (packages). It is all integrated together.


Lesson 7: Google Cloud Platform (GCP)

Definition

Google Cloud Platform (GCP) is the third-largest cloud platform in the world. It was created by Google in 2008. GCP has over 100 services that help you build and run software in the cloud.

Why is it Important?

GCP is important because it is Google's cloud platform. If you use Google tools (like Gmail, Google Drive, or Kubernetes), GCP is a natural choice. GCP is also known for its data and machine learning services.

Simple Explanation

Imagine GCP is another giant shopping mall for computer services, like AWS and Azure. It has similar stores (services) but is owned by Google. You can get computers (Compute Engine), storage (Cloud Storage), and databases (Cloud SQL) just like in AWS and Azure.

Popular GCP Services

Service What It Does Analogy
Compute Engine Virtual computers in the cloud Renting a computer (like EC2)
Cloud Storage Storage for files A giant hard drive (like S3)
Cloud SQL Managed databases A database that is maintained for you
Cloud Functions Run code without managing servers A robot that runs your code (like Lambda)
Kubernetes Engine (GKE) Managed Kubernetes service A robot that manages containers
Cloud Build Build and test code A machine that builds your product

Real-life Example

A company uses GCP to run their website. They use Compute Engine for servers, Cloud Storage for images, Cloud SQL for the database, and Cloud Build for CI/CD.

School Example

Your school uses GCP for their online learning platform. They use Compute Engine to run the platform and Cloud Storage to store videos.

Home Example

Your family uses GCP to store photos and run a family blog. Everything is secure and accessible from anywhere.

Nigerian Example

A Nigerian company uses GCP to run their app. They chose GCP because of its powerful data analytics and machine learning services. They use Compute Engine, Cloud Storage, and Cloud Build.

Illustration

    GOOGLE CLOUD PLATFORM (GCP)

    +--------------------------------------------------+
    |  GCP (Google's cloud platform)                   |
    |                                                   |
    |  +-------------------------------------------+    |
    |  |  Compute Engine (Computers)              |    |
    |  |  Cloud Storage (Storage)                 |    |
    |  |  Cloud SQL (Databases)                   |    |
    |  |  Cloud Functions (Serverless code)       |    |
    |  |  Kubernetes Engine (GKE)                 |    |
    |  |  Cloud Build (CI/CD)                     |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  All accessible from anywhere!                   |
    |  +-------------------------------------------+    |
    |  |  🌐 Internet                              |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  YOUR APP IS RUNNING! πŸš€                        |
    +--------------------------------------------------+
    

Mini Summary

Google Cloud Platform (GCP) is the third-largest cloud platform. It has services like Compute Engine, Cloud Storage, and Cloud Build. It is known for its data and machine learning services.


Lesson 8: Google Cloud DevOps Services

Definition

GCP DevOps services are tools provided by Google Cloud to help you implement DevOps practices. They help you build, test, and deploy software automatically.

Why is it Important?

GCP DevOps services make it easy to set up CI/CD pipelines in the cloud. They integrate well with other Google services and with Kubernetes.

Simple Explanation

Imagine you are building a factory. GCP DevOps services are like machines that automatically build, test, and package your products. You just tell them what to do, and they do it.

Key GCP DevOps Services

Service What It Does Analogy
Cloud Build Builds your code and runs tests A machine that builds your product
Artifact Registry Stores and shares artifacts A warehouse for your products
Cloud Run Runs containerized applications A machine that runs your containers
Kubernetes Engine (GKE) Managed Kubernetes service A robot that manages containers
Cloud Deployment Manager Infrastructure as Code A machine that builds your infrastructure

Real-life Example

A company uses Cloud Build to build their code. Cloud Build runs tests, creates an artifact, and stores it in Artifact Registry. Then Cloud Run deploys the artifact to run the app.

School Example

Your school uses Cloud Build to build and test a school project. Cloud Build automatically checks the code and runs tests. Then it deploys the project to a website.

Home Example

Your family uses Cloud Build to build a family website. Cloud Build checks the code, builds it, and deploys it automatically.

Nigerian Example

A Nigerian company uses Cloud Build to build their app. They also use Artifact Registry to store artifacts and Cloud Run to run the app. Their CI/CD pipeline is fully automated.

Illustration

    GCP DEVOPS PIPELINE

    +--------------------------------------------------+
    |  GCP DEVOPS PIPELINE                             |
    |                                                   |
    |  1. Cloud Build (Build and test)                 |
    |  +-------------------------------------------+    |
    |  |  πŸ—οΈ Build code                           |    |
    |  |  βœ… Run tests                            |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  2. Artifact Registry (Store artifacts)          |
    |  +-------------------------------------------+    |
    |  |  πŸ“¦ Store packaged code                   |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  3. Cloud Run (Deploy and run)                    |
    |  +-------------------------------------------+    |
    |  |  πŸš€ Deploy and run app                    |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  πŸŽ‰ App is live!                                 |
    +--------------------------------------------------+
    

Mini Summary

GCP DevOps services include Cloud Build, Artifact Registry, Cloud Run, and Kubernetes Engine (GKE). They help you automate your CI/CD pipeline in the cloud and integrate with containers.


Lesson 9: Multi-Cloud Strategies

Definition

A multi-cloud strategy is when a company uses more than one cloud provider. For example, they might use AWS for some services, Azure for others, and GCP for data analytics.

Why is it Important?

Multi-cloud is important because it gives companies flexibility. They can choose the best service from each provider. They also avoid being locked in to one provider.

Simple Explanation

Imagine you want to buy groceries. You could go to one store for everything. But instead, you go to one store for fruits, another for vegetables, and another for meat. Each store has the best items. That is a multi-store strategy!

Why Use Multi-Cloud?

  • Best of Breed: Use the best service from each provider.
  • Avoid Vendor Lock-in: Do not depend on one provider.
  • Cost Optimization: Choose the cheapest provider for each service.
  • Resilience: If one provider goes down, you have others.
  • Compliance: Some providers might be better for certain regulations.
  • Global Reach: Choose providers with data centers in different regions.

Real-life Example

A company uses AWS for their web servers, Azure for their databases, and GCP for machine learning. They use the best service from each provider.

School Example

Your school uses different tools for different subjects. Google Classroom for assignments, Microsoft Teams for communication, and Zoom for video calls. That is a multi-tool strategy.

Home Example

Your family uses different stores for different things. One store for groceries, another for clothes, and another for electronics. That is a multi-store strategy.

Nigerian Example

A Nigerian company uses AWS for their main application, Azure for their data warehouse, and GCP for their machine learning models. This gives them the best of each provider.

Illustration

    MULTI-CLOUD STRATEGY

    +--------------------------------------------------+
    |  MULTI-CLOUD                                     |
    |                                                   |
    |  +-------------------------------------------+    |
    |  |  AWS                                     |    |
    |  |  - Web servers (EC2)                     |    |
    |  |  - Storage (S3)                          |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  +-------------------------------------------+    |
    |  |  Azure                                   |    |
    |  |  - Databases (Azure SQL)                 |    |
    |  |  - Analytics (Azure Synapse)             |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  +-------------------------------------------+    |
    |  |  GCP                                     |    |
    |  |  - Machine Learning (Vertex AI)          |    |
    |  |  - Container orchestration (GKE)         |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  πŸ”‘ Best of each provider!                        |
    +--------------------------------------------------+
    

Mini Summary

A multi-cloud strategy uses more than one cloud provider. It gives you flexibility, avoids vendor lock-in, and lets you choose the best service from each provider.


Lesson 10: Benefits of Cloud Platforms for DevOps

Definition

The benefits of cloud platforms for DevOps are all the good things that happen when you combine cloud computing with DevOps. These include speed, scalability, and cost savings.

Why is it Important?

Understanding the benefits helps us see why cloud platforms are so important for DevOps. They make DevOps faster, cheaper, and more reliable.

Simple Explanation

Imagine you are a chef. You have a small kitchen at home (own servers). You can only cook a few dishes at a time. Now imagine you have a giant commercial kitchen with unlimited space and tools (the cloud). You can cook anything, anytime, in any quantity. That is what the cloud does for DevOps!

Key Benefits

Benefit What It Means
Speed Provision servers in minutes, not days
Scalability Add more servers instantly when needed
Cost Savings Pay only for what you use, no upfront costs
Reliability Cloud providers have backup systems and data centers
Global Reach Deploy applications anywhere in the world
Integration CI/CD tools are built-in (CodePipeline, Azure Pipelines, etc.)
Focus Focus on building your app, not managing servers

Real-life Example

A company uses AWS for their DevOps pipeline. They can deploy new features in minutes. They scale automatically during peak traffic. They save money because they only pay for what they use.

School Example

Your school uses a cloud platform for their website. They can add more servers during exam week when traffic is high. They save money when traffic is low.

Home Example

Your family uses a cloud storage service. You can add more storage when you have more photos. You save money because you only pay for what you use.

Nigerian Example

A Nigerian company uses AWS for their DevOps pipeline. They deploy new features quickly. They scale during sales events. They save money and grow their business.

Illustration

    BENEFITS OF CLOUD FOR DEVOPS

    +--------------------------------------------------+
    |                                                   |
    |  ⚑ SPEED                                        |
    |     Provision servers in minutes                 |
    |                                                   |
    |  πŸ“ˆ SCALABILITY                                  |
    |     Scale up or down instantly                   |
    |                                                   |
    |  πŸ’° COST SAVINGS                                 |
    |     Pay only for what you use                    |
    |                                                   |
    |  πŸ”’ RELIABILITY                                  |
    |     Backup systems and global data centers       |
    |                                                   |
    |  🌍 GLOBAL REACH                                 |
    |     Deploy anywhere in the world                 |
    |                                                   |
    |  πŸ”§ INTEGRATION                                  |
    |     Built-in CI/CD tools                         |
    |                                                   |
    |  🎯 FOCUS                                        |
    |     Focus on building your app                   |
    |                                                   |
    |  ALL BECAUSE OF CLOUD + DEVOPS! πŸŽ‰               |
    +--------------------------------------------------+
    

Mini Summary

Cloud platforms offer many benefits for DevOps. They provide speed, scalability, cost savings, reliability, global reach, integration, and the ability to focus on building your app.


Lesson 11: What We Have Learned So Far

Definition

In this lesson, we will review everything we have learned about cloud platforms and DevOps. This will help us remember the most important ideas.

Why is it Important?

Reviewing helps us remember what we have learned. When we keep information in our brains, we can use it later.

Simple Explanation

Let us think back to everything we have talked about in this module:

  • What is cloud computing? Using computers and servers that are owned by someone else, accessed over the internet.
  • What are the cloud service models? IaaS, PaaS, and SaaS. They give you different levels of control.
  • What is AWS? The most popular cloud platform, created by Amazon.
  • What are AWS DevOps services? CodeCommit, CodeBuild, CodeDeploy, CodePipeline.
  • What is Azure? Microsoft's cloud platform, the second-largest.
  • What is Azure DevOps? A complete DevOps platform from Microsoft (Pipelines, Repos, Boards, Artifacts).
  • What is GCP? Google's cloud platform, the third-largest.
  • What are GCP DevOps services? Cloud Build, Artifact Registry, Cloud Run, GKE.
  • What is multi-cloud? Using more than one cloud provider.
  • What are the benefits of cloud for DevOps? Speed, scalability, cost savings, reliability, global reach, integration, and focus.

Real-life Example

A team has learned all these concepts. They use AWS for their infrastructure, Azure for their databases, and GCP for machine learning. They follow DevOps practices and benefit from the cloud.

School Example

Your class has learned about cloud platforms. They understand how cloud computing makes software development easier and faster.

Home Example

Your family has learned about cloud platforms. They understand how cloud services help them store photos, run websites, and use apps.

Nigerian Example

A Nigerian developer has learned all these cloud concepts. They can now choose the right cloud provider for their projects and use DevOps to build great software.

Illustration

    WHAT WE HAVE LEARNED

    +--------------------------------------------------+
    |                                                   |
    |  πŸ“Œ Cloud = Rent computers over the internet     |
    |  πŸ“Œ IaaS, PaaS, SaaS = Service models           |
    |  πŸ“Œ AWS = Largest cloud provider                 |
    |  πŸ“Œ AWS DevOps = CodePipeline, CodeBuild, etc.   |
    |  πŸ“Œ Azure = Microsoft's cloud                   |
    |  πŸ“Œ Azure DevOps = Complete platform            |
    |  πŸ“Œ GCP = Google's cloud                        |
    |  πŸ“Œ GCP DevOps = Cloud Build, Artifact Registry  |
    |  πŸ“Œ Multi-cloud = Use multiple providers        |
    |  πŸ“Œ Benefits = Speed, scale, cost savings       |
    |                                                   |
    |  YOU ARE NOW A CLOUD DEVOPS BEGINNER! πŸŽ‰         |
    |                                                   |
    +--------------------------------------------------+
    

Mini Summary

We have learned many things about cloud platforms and DevOps. Cloud platforms like AWS, Azure, and GCP help teams build and run software in the cloud. They provide DevOps services that automate building, testing, and deploying software.


6. Key Vocabulary

Here are the important words we learned in this module. Each word has a simple definition to help you remember it.

Word Simple Definition
Cloud Computing Using computers and servers that are owned by someone else, accessed over the internet
IaaS Infrastructure as a Service — rent servers and storage
PaaS Platform as a Service — rent a platform for your apps
SaaS Software as a Service — use software over the internet
AWS Amazon Web Services — the largest cloud platform
EC2 Elastic Compute Cloud — virtual computers in AWS
S3 Simple Storage Service — storage in AWS
CodePipeline AWS CI/CD service that orchestrates building and deploying
Azure Microsoft's cloud platform
Azure DevOps Microsoft's complete DevOps platform
Azure Pipelines CI/CD service in Azure DevOps
GCP Google Cloud Platform — Google's cloud platform
Cloud Build GCP service for building and testing code
Multi-Cloud Using more than one cloud provider
Vendor Lock-in Being dependent on one provider and unable to switch

7. Important Concepts

Here are the most important concepts from this module. These are the big ideas that will help you understand cloud platforms and DevOps.

  1. Cloud computing is renting computers. Instead of buying your own servers, you rent them from a cloud provider. This is cheaper, easier, and more scalable.

  2. There are three cloud service models. IaaS gives you the most control (servers, storage). PaaS gives you a platform to run your apps. SaaS gives you ready-to-use software.

  3. AWS is the largest cloud provider. It has over 200 services, including EC2, S3, and CodePipeline. Many companies use AWS for their DevOps pipelines.

  4. Azure is Microsoft's cloud platform. It has services like Virtual Machines, Blob Storage, and Azure DevOps. It is a great choice if you use Microsoft tools.

  5. GCP is Google's cloud platform. It has services like Compute Engine, Cloud Storage, and Cloud Build. It is known for its data and machine learning services.

  6. Multi-cloud uses multiple providers. It gives you flexibility, avoids vendor lock-in, and lets you choose the best service from each provider.

  7. Cloud platforms offer many benefits for DevOps. They provide speed, scalability, cost savings, reliability, global reach, integration, and focus on building your app.


8. Step-by-Step Explanations

Let us look at how to use a cloud platform for DevOps in simple steps:

Step 1: Choose a Cloud Provider

Decide which cloud provider to use. AWS, Azure, and GCP are the most popular choices. Choose based on your needs, budget, and familiarity.

Step 2: Create an Account

Sign up for an account with your chosen provider. You will need a credit card for payment, but many providers offer free trials.

Step 3: Set Up a Repository

Store your code in a Git repository. You can use CodeCommit (AWS), Azure Repos, or Cloud Source Repositories (GCP). Or use GitHub.

Step 4: Set Up CI/CD

Set up a CI/CD pipeline. Use CodePipeline (AWS), Azure Pipelines, or Cloud Build (GCP). Configure it to build, test, and deploy your code.

Step 5: Deploy Your Application

Deploy your application to the cloud. Use EC2 (AWS), Virtual Machines (Azure), or Compute Engine (GCP). Or use container services like ECS, AKS, or GKE.

Step 6: Monitor and Scale

Use cloud monitoring services to watch your application. Set up auto-scaling to handle traffic spikes. Use CloudWatch (AWS), Azure Monitor, or Cloud Monitoring (GCP).

Illustration

    STEP-BY-STEP: USING CLOUD FOR DEVOPS

    Step 1: CHOOSE PROVIDER
    +-------------------+
    |  AWS, Azure, GCP  |
    +-------------------+
           |
           V
    Step 2: CREATE ACCOUNT
    +-------------------+
    |  Sign up for      |
    |  cloud account    |
    +-------------------+
           |
           V
    Step 3: SET UP REPOSITORY
    +-------------------+
    |  Store code in    |
    |  Git repo         |
    +-------------------+
           |
           V
    Step 4: SET UP CI/CD
    +-------------------+
    |  Create pipeline  |
    |  (Build, test,    |
    |   deploy)         |
    +-------------------+
           |
           V
    Step 5: DEPLOY APP
    +-------------------+
    |  Deploy to cloud  |
    |  servers          |
    +-------------------+
           |
           V
    Step 6: MONITOR & SCALE
    +-------------------+
    |  Monitor and      |
    |  scale as needed  |
    +-------------------+
    

9. Real-life Examples

Example 1: The E-commerce Company

An e-commerce company uses AWS for their entire infrastructure. They use EC2 for web servers, S3 for images, RDS for the database, and CodePipeline for CI/CD. They deploy new features every week. Their website scales automatically during sales events.

Example 2: The Mobile App Team

A mobile app team uses Azure DevOps. They store code in Azure Repos. They use Azure Pipelines to build and deploy their app. They use Azure Boards to track tasks. Everything is integrated and organized.

Example 3: The Data Analytics Company

A data analytics company uses GCP. They use BigQuery for data storage, Vertex AI for machine learning, and Cloud Build for CI/CD. They process petabytes of data and deliver insights to their customers.


10. Nigerian Examples

Example 1: Flutterwave

Flutterwave uses AWS to run their payment platform. They use EC2, RDS, S3, and CodePipeline. Their platform processes millions of transactions every day. The cloud helps them scale and stay reliable.

Example 2: Paystack

Paystack uses Azure and GCP for different parts of their infrastructure. They use Azure for their data warehouse and GCP for machine learning. This multi-cloud approach gives them the best of each provider.

Example 3: Nigerian Tech Startup

A Nigerian tech startup uses AWS for their web app. They use CodeCommit for code, CodeBuild for building, and CodeDeploy for deploying. Their DevOps pipeline is fully automated in the cloud.


11. Fun Examples Children Can Relate To

Example 1: The Toy Store

You want to start a toy store. You could buy a building (own servers) or rent a space in a mall (the cloud). Renting is cheaper and easier. You can get a bigger space when you have more toys. The cloud is like renting a space in a mall for your software.

Example 2: The Library

You need books for a project. You could buy all the books (own servers) or borrow them from the library (the cloud). Borrowing is cheaper and easier. You can borrow more books when you need them. The cloud is like a library for your software.

Example 3: The Bus Ride

You need to go to school. You could buy a car (own servers) or take the bus (the cloud). Taking the bus is cheaper and easier. You can take the bus every day without owning it. The cloud is like taking a bus for your software.


12. Everyday Examples

Example 1: Streaming Movies

Your family watches movies on Netflix. You do not own the servers that stream the movies. You rent access to them. Cloud computing is like Netflix for your software.

Example 2: Storing Photos

Your family stores photos on Google Photos. You do not own the servers that store the photos. You rent storage space. Cloud computing is like Google Photos for your software.

Example 3: Using Email

Your family uses Gmail for email. You do not own the servers that run Gmail. You use it over the internet. Cloud computing is like Gmail for your software.


13. Teacher Notes

For Teachers: This module is designed to be accessible for students of all ages. Here are some tips for teaching this module:

  • Use the story: The warm-up story about EduApp is a great way to introduce the topic. Ask students what they would do if they needed more computers.
  • Encourage discussion: Ask students if they have used any cloud services (Gmail, Google Drive, Netflix). This helps them understand cloud computing.
  • Use the illustrations: The ASCII diagrams are simple and visual. They help students understand complex ideas easily.
  • Group activities: Have students compare AWS, Azure, and GCP. Which one would they choose and why?
  • Relate to Nigerian examples: The Nigerian examples help students see how cloud platforms are relevant to their own country.
  • Review key vocabulary: Use the vocabulary table to help students remember important terms.
  • Use the exercises: The end-of-module exercises help reinforce learning.

14. Parent Tips

For Parents: Your child is learning about cloud platforms and DevOps. Here are some tips to support their learning:

  • Discuss renting vs buying: Talk to your child about the difference between owning something and renting it. This helps them understand cloud computing.
  • Ask about cloud services: Ask your child what cloud services they use (Gmail, Google Drive, Netflix). This helps them connect the topic to their own life.
  • Relate to everyday life: Point out examples of renting and using services in everyday life. Renting a car, using a library, streaming movies, etc.
  • Encourage curiosity: If your child asks questions about cloud platforms, take the time to answer them.
  • Celebrate learning: Praise your child for completing this module. Learning about cloud platforms is an important skill for the future.

15. Interesting Facts

  • Fact 1: AWS was launched in 2006 with just one service (S3). Today, AWS has over 200 services and is worth over $100 billion.
  • Fact 2: Azure was launched in 2010 and has grown rapidly. It is now the second-largest cloud platform.
  • Fact 3: GCP was launched in 2008 but gained popularity later. It is now the third-largest cloud platform.
  • Fact 4: Over 90% of the world's data has been created in the last two years. The cloud stores most of this data!
  • Fact 5: Many Nigerian companies use AWS, Azure, or GCP. Cloud platforms are helping Nigerian businesses grow and compete globally.
  • Fact 6: The cloud is not just for software. It is also used for data storage, machine learning, Internet of Things (IoT), and many other applications.

16. Did You Know?

  • Did you know? AWS has data centers all over the world, including in South Africa. This means data can be stored closer to Nigeria, reducing latency.
  • Did you know? Azure has data centers in South Africa too. Microsoft has invested heavily in African cloud infrastructure.
  • Did you know? GCP also has data centers in South Africa. All three major cloud providers are investing in Africa.
  • Did you know? You can run Kubernetes on all three cloud platforms: EKS (AWS), AKS (Azure), and GKE (GCP). They make it easy to run containerized applications.
  • Did you know? Cloud platforms offer free tiers that let you try their services for free. You can learn and experiment without spending money.
  • Did you know? The cloud is environmentally friendly. Cloud providers build energy-efficient data centers and use renewable energy.

17. Remember This

  • πŸ”Ή Cloud computing is renting computers over the internet.
  • πŸ”Ή IaaS, PaaS, SaaS are the three service models.
  • πŸ”Ή AWS is the largest cloud provider.
  • πŸ”Ή Azure is Microsoft's cloud platform.
  • πŸ”Ή GCP is Google's cloud platform.
  • πŸ”Ή Multi-cloud uses multiple providers.
  • πŸ”Ή Cloud platforms offer speed, scalability, and cost savings.
  • πŸ”Ή Cloud + DevOps = Faster, cheaper, better software.

18. Common Mistakes

  1. Mistake 1: Using only one cloud provider without consideration.

    Using only one provider can lead to vendor lock-in. Consider multi-cloud or hybrid strategies for flexibility.

  2. Mistake 2: Not using cloud-native services.

    Cloud providers offer many managed services. Use them instead of building everything yourself. They save time and effort.

  3. Mistake 3: Over-provisioning resources.

    Do not provision more resources than you need. Use auto-scaling to handle traffic spikes. You pay for what you use.

  4. Mistake 4: Not using DevOps tools.

    Cloud platforms offer DevOps tools like CodePipeline and Azure Pipelines. Use them to automate your CI/CD pipeline.

  5. Mistake 5: Not securing your cloud resources.

    Cloud resources need to be secured. Use IAM, network security groups, and encryption to protect your data.

  6. Mistake 6: Not monitoring your cloud resources.

    Monitor your cloud resources to catch problems early. Use cloud monitoring services like CloudWatch, Azure Monitor, or Cloud Monitoring.


19. Best Practices

  1. Choose the right cloud provider.

    Choose a provider that meets your needs. Consider cost, services, and location. AWS, Azure, and GCP are all good choices.

  2. Use managed services.

    Use managed services like RDS, S3, and Cloud Build. They save time and reduce maintenance overhead.

  3. Automate everything.

    Use DevOps tools to automate building, testing, and deploying. This makes your pipeline fast and reliable.

  4. Monitor and optimize.

    Monitor your cloud resources and optimize them. Use auto-scaling, right-sizing, and cost management tools.

  5. Secure your resources.

    Use IAM, encryption, and network security to protect your resources. Follow security best practices.

  6. Plan for failure.

    Design your applications to be resilient. Use multiple availability zones, backups, and disaster recovery.

  7. Use Infrastructure as Code.

    Use Terraform or cloud-native IaC tools to manage your cloud resources. This makes your infrastructure repeatable and versioned.


20. ASCII Illustrations

Illustration 1: Cloud Service Models

    CLOUD SERVICE MODELS

    IaaS (Infrastructure as a Service):
    +--------------------------------------------------+
    |  You manage: Apps, Data, OS, Runtime            |
    |  Cloud manages: Hardware                        |
    +--------------------------------------------------+

    PaaS (Platform as a Service):
    +--------------------------------------------------+
    |  You manage: Apps, Data                         |
    |  Cloud manages: OS, Runtime, Hardware           |
    +--------------------------------------------------+

    SaaS (Software as a Service):
    +--------------------------------------------------+
    |  You manage: Use the software                   |
    |  Cloud manages: Everything else                 |
    +--------------------------------------------------+
    

Illustration 2: AWS DevOps Pipeline

    AWS DEVOPS PIPELINE

    +--------------------------------------------------+
    |  CodeCommit (Store code)                         |
    |  +-------------------------------------------+    |
    |  |  πŸ“‚ Source Code                          |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  CodeBuild (Build and test)                      |
    |  +-------------------------------------------+    |
    |  |  πŸ—οΈ Build code                           |    |
    |  |  βœ… Run tests                            |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  CodeDeploy (Deploy)                             |
    |  +-------------------------------------------+    |
    |  |  πŸš€ Deploy to servers                     |    |
    |  +-------------------------------------------+    |
    |           |                                       |
    |           V                                       |
    |  πŸŽ‰ App is live!                                 |
    +--------------------------------------------------+
    

Illustration 3: Multi-Cloud

    MULTI-CLOUD

    +--------------------------------------------------+
    |  AWS                                            |
    |  +-------------------------------------------+    |
    |  |  Web servers (EC2)                        |    |
    |  |  Storage (S3)                            |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  Azure                                          |
    |  +-------------------------------------------+    |
    |  |  Databases (Azure SQL)                    |    |
    |  |  Analytics (Azure Synapse)                |    |
    |  +-------------------------------------------+    |
    |                                                   |
    |  GCP                                            |
    |  +-------------------------------------------+    |
    |  |  Machine Learning (Vertex AI)             |    |
    |  |  Container orchestration (GKE)            |    |
    |  +-------------------------------------------+    |
    +--------------------------------------------------+
    

21. Comparison Tables

Table 1: Cloud Providers Comparison

Aspect AWS Azure GCP
Launched 2006 2010 2008
Market Share Largest (32%) Second (23%) Third (10%)
Key Strength Broadest services Microsoft integration Data & ML
Compute Service EC2 Virtual Machines Compute Engine
Storage Service S3 Blob Storage Cloud Storage
DevOps Service CodePipeline Azure DevOps Cloud Build

Table 2: DevOps Services Comparison

Function AWS Azure GCP
Code Repository CodeCommit Azure Repos Cloud Source Repos
CI/CD CodePipeline Azure Pipelines Cloud Build
Build Service CodeBuild Azure Pipelines Cloud Build
Deploy Service CodeDeploy Azure Pipelines Cloud Run
Artifact Storage CodeArtifact Azure Artifacts Artifact Registry
Project Management No native tool Azure Boards No native tool

Table 3: IaaS vs PaaS vs SaaS

Aspect IaaS PaaS SaaS
What You Manage OS, apps, data Apps, data Nothing
What Provider Manages Hardware OS, runtime, hardware Everything
Control Level High Medium Low
Example AWS EC2 Azure App Service Gmail
Best For Full control App development End users

Note: Each lesson in this module already includes a "Mini Summary" section right after the lesson content. Please refer back to the lessons above to review each mini summary.


23. End-of-Module Summary

Congratulations! You have completed Module 9 of the "Certified DevOps Engineer" course. Let us review everything we have learned:

What is Cloud Computing?

Cloud computing is the practice of using computers and servers that are owned by someone else, accessed over the internet. It is like renting computers instead of buying them.

Cloud Service Models

There are three service models: IaaS (Infrastructure), PaaS (Platform), and SaaS (Software). IaaS gives you the most control. SaaS gives you the least control.

AWS and AWS DevOps

AWS is the largest cloud platform. It has services like EC2, S3, and CodePipeline. AWS DevOps services include CodeCommit, CodeBuild, CodeDeploy, and CodePipeline.

Azure and Azure DevOps

Azure is Microsoft's cloud platform. It has services like Virtual Machines and Blob Storage. Azure DevOps is a complete platform with Pipelines, Repos, Boards, and Artifacts.

GCP and GCP DevOps

GCP is Google's cloud platform. It has services like Compute Engine and Cloud Storage. GCP DevOps services include Cloud Build, Artifact Registry, Cloud Run, and GKE.

Multi-Cloud and Benefits

Multi-cloud uses more than one cloud provider. It gives you flexibility and avoids vendor lock-in. Cloud platforms offer speed, scalability, cost savings, and reliability for DevOps.

You have now completed Module 9! You are ready to move on to Module 10, where you will learn about Exam Preparation and the Capstone Project. Keep up the great work!


24. Frequently Asked Questions (10 Questions)

  1. Q1: What is cloud computing?

    A: Cloud computing is the practice of using computers and servers that are owned by someone else, accessed over the internet.

  2. Q2: What are the three cloud service models?

    A: IaaS (Infrastructure as a Service), PaaS (Platform as a Service), and SaaS (Software as a Service).

  3. Q3: What is AWS?

    A: AWS (Amazon Web Services) is the largest cloud platform, created by Amazon. It has over 200 services.

  4. Q4: What are AWS DevOps services?

    A: AWS DevOps services include CodeCommit (code), CodeBuild (build), CodeDeploy (deploy), and CodePipeline (orchestration).

  5. Q5: What is Azure?

    A: Azure is Microsoft's cloud platform. It is the second-largest cloud platform.

  6. Q6: What is Azure DevOps?

    A: Azure DevOps is a complete DevOps platform from Microsoft. It includes Azure Pipelines, Azure Repos, Azure Boards, and Azure Artifacts.

  7. Q7: What is GCP?

    A: GCP (Google Cloud Platform) is Google's cloud platform. It is the third-largest cloud platform.

  8. Q8: What are GCP DevOps services?

    A: GCP DevOps services include Cloud Build (build), Artifact Registry (storage), Cloud Run (run), and GKE (Kubernetes).

  9. Q9: What is multi-cloud?

    A: Multi-cloud is a strategy that uses more than one cloud provider. It gives you flexibility and avoids vendor lock-in.

  10. Q10: Is cloud computing used in Nigeria?

    A: Yes, many Nigerian companies use AWS, Azure, or GCP. Cloud platforms are helping Nigerian businesses grow and compete globally.


25. Review Questions (15 Questions)

  1. What is cloud computing?

    Answer: Cloud computing is the practice of using computers and servers that are owned by someone else, accessed over the internet.

  2. What are the three cloud service models?

    Answer: IaaS, PaaS, and SaaS.

  3. What is AWS?

    Answer: AWS is the largest cloud platform, created by Amazon.

  4. What does EC2 stand for in AWS?

    Answer: Elastic Compute Cloud (virtual computers).

  5. What is S3 in AWS?

    Answer: Simple Storage Service (storage for files).

  6. What are AWS DevOps services?

    Answer: CodeCommit, CodeBuild, CodeDeploy, and CodePipeline.

  7. What is Azure?

    Answer: Azure is Microsoft's cloud platform.

  8. What is Azure DevOps?

    Answer: A complete DevOps platform from Microsoft with Pipelines, Repos, Boards, and Artifacts.

  9. What is GCP?

    Answer: GCP is Google's cloud platform.

  10. What are GCP DevOps services?

    Answer: Cloud Build, Artifact Registry, Cloud Run, and GKE.

  11. What is multi-cloud?

    Answer: Using more than one cloud provider.

  12. What is vendor lock-in?

    Answer: Being dependent on one provider and unable to switch.

  13. Name two benefits of cloud platforms for DevOps.

    Answer: Speed and scalability. (Other answers: cost savings, reliability, global reach, integration, focus.)

  14. Is cloud computing used in Nigeria?

    Answer: Yes, many Nigerian companies use AWS, Azure, or GCP.

  15. What is the difference between IaaS and SaaS?

    Answer: IaaS gives you infrastructure (servers, storage) to manage. SaaS gives you ready-to-use software over the internet.


26. Fill-in-the-Blank Exercises

Fill in the blanks with the correct words from the list:

Word list: cloud, IaaS, PaaS, SaaS, AWS, Azure, GCP, CodePipeline, Azure DevOps, Cloud Build, multi-cloud, EC2, S3

  1. __________ computing is the practice of using computers and servers that are owned by someone else.

    Answer: cloud

  2. __________ gives you infrastructure (servers, storage) to manage.

    Answer: IaaS

  3. __________ gives you ready-to-use software over the internet.

    Answer: SaaS

  4. __________ is the largest cloud platform.

    Answer: AWS

  5. __________ is Microsoft's cloud platform.

    Answer: Azure

  6. __________ is Google's cloud platform.

    Answer: GCP

  7. __________ is a virtual computer in AWS.

    Answer: EC2

  8. __________ is storage in AWS.

    Answer: S3

  9. __________ is an AWS service that orchestrates CI/CD pipelines.

    Answer: CodePipeline

  10. __________ is Microsoft's complete DevOps platform.

    Answer: Azure DevOps

  11. __________ is a GCP service for building and testing code.

    Answer: Cloud Build

  12. __________ is a strategy that uses more than one cloud provider.

    Answer: multi-cloud


27. True or False Exercises

Write True or False for each statement:

  1. Cloud computing is renting computers over the internet.

    Answer: True

  2. IaaS gives you the least control.

    Answer: False (IaaS gives you the most control)

  3. AWS is the largest cloud platform.

    Answer: True

  4. Azure is Google's cloud platform.

    Answer: False (Azure is Microsoft's cloud platform)

  5. GCP is Google's cloud platform.

    Answer: True

  6. CodePipeline is an AWS DevOps service.

    Answer: True

  7. Azure DevOps is a complete DevOps platform from Microsoft.

    Answer: True

  8. Cloud Build is an Azure service.

    Answer: False (Cloud Build is a GCP service)

  9. Multi-cloud uses more than one cloud provider.

    Answer: True

  10. Vendor lock-in is when you can easily switch providers.

    Answer: False (Vendor lock-in is when you cannot easily switch providers)

  11. Cloud platforms offer speed and scalability for DevOps.

    Answer: True

  12. SaaS gives you the most control over the software.

    Answer: False (SaaS gives you the least control)

  13. EC2 is a storage service in AWS.

    Answer: False (EC2 is a compute service. S3 is storage.)

  14. Cloud computing is used in Nigeria.

    Answer: True

  15. Azure Pipelines is a CI/CD service in Azure DevOps.

    Answer: True


28. Multiple Choice Questions (15 Questions)

Choose the correct answer for each question:

  1. What is cloud computing?

    A) Buying your own servers
    B) Renting computers over the internet
    C) A programming language
    D) A video game

    Answer: B

  2. What is IaaS?

    A) Infrastructure as a Service
    B) Information as a Service
    C) Internet as a Service
    D) Integration as a Service

    Answer: A

  3. What is the largest cloud platform?

    A) Azure
    B) GCP
    C) AWS
    D) IBM Cloud

    Answer: C

  4. What is Azure?

    A) Google's cloud platform
    B) Amazon's cloud platform
    C) Microsoft's cloud platform
    D) IBM's cloud platform

    Answer: C

  5. What is GCP?

    A) Google's cloud platform
    B) Amazon's cloud platform
    C) Microsoft's cloud platform
    D) IBM's cloud platform

    Answer: A

  6. What is EC2 in AWS?

    A) Storage service
    B) Virtual computers
    C) Database service
    D) Networking service

    Answer: B

  7. What is S3 in AWS?

    A) Virtual computers
    B) Storage service
    C) Database service
    D) Networking service

    Answer: B

  8. What is CodePipeline?

    A) An AWS storage service
    B) An AWS DevOps service for CI/CD
    C) An Azure DevOps service
    D) A GCP service

    Answer: B

  9. What is Azure DevOps?

    A) Google's DevOps platform
    B) A complete DevOps platform from Microsoft
    C) AWS DevOps
    D) A GCP service

    Answer: B

  10. What is Cloud Build?

    A) AWS DevOps service
    B) Azure DevOps service
    C) GCP DevOps service
    D) A Microsoft service

    Answer: C

  11. What is multi-cloud?

    A) Using one cloud provider
    B) Using more than one cloud provider
    C) A type of cloud service model
    D) A programming language

    Answer: B

  12. What is vendor lock-in?

    A) Being able to switch providers easily
    B) Being dependent on one provider and unable to switch
    C) A type of cloud service
    D) A security feature

    Answer: B

  13. Which is a benefit of cloud platforms for DevOps?

    A) Slower deployment
    B) Scalability
    C) Higher costs
    D) Less reliability

    Answer: B

  14. Is cloud computing used in Nigeria?

    A) No
    B) Yes, by many companies
    C) Only in Lagos
    D) Only by the government

    Answer: B

  15. What is the difference between IaaS and SaaS?

    A) IaaS is software; SaaS is infrastructure
    B) IaaS gives you control; SaaS gives you ready-to-use software
    C) There is no difference
    D) IaaS is cheaper than SaaS

    Answer: B


29. Matching Exercises

Match the words in Column A with their correct meanings in Column B.

Column A Column B
1. Cloud Computing A. Microsoft's cloud platform
2. IaaS B. Google's cloud platform
3. PaaS C. Renting computers over the internet
4. SaaS D. Infrastructure as a Service
5. AWS E. Platform as a Service
6. Azure F. Software as a Service
7. GCP G. Amazon's cloud platform
8. CodePipeline H. AWS DevOps service for CI/CD
9. Azure DevOps I. Microsoft's complete DevOps platform
10. Cloud Build J. GCP DevOps service for building code

Answers:

  1. C
  2. D
  3. E
  4. F
  5. G
  6. A
  7. B
  8. H
  9. I
  10. J

30. Short Answer Questions

  1. What is cloud computing and why is it useful?

    Answer: Cloud computing is the practice of using computers and servers that are owned by someone else, accessed over the internet. It is useful because it is cheap, easy, and scalable. You do not need to buy expensive servers. You only pay for what you use.

  2. Explain the difference between IaaS, PaaS, and SaaS.

    Answer: IaaS (Infrastructure as a Service) gives you infrastructure like servers and storage to manage. PaaS (Platform as a Service) gives you a platform to run your apps. SaaS (Software as a Service) gives you ready-to-use software over the internet. IaaS gives you the most control. SaaS gives you the least control.

  3. Describe the AWS DevOps services.

    Answer: AWS DevOps services include CodeCommit (Git repository), CodeBuild (build and test), CodeDeploy (deploy), and CodePipeline (orchestrates the whole CI/CD pipeline). These services help you automate building, testing, and deploying software in AWS.

  4. What is Azure DevOps and what does it include?

    Answer: Azure DevOps is a complete DevOps platform from Microsoft. It includes Azure Pipelines (CI/CD), Azure Repos (Git repositories), Azure Boards (project management), and Azure Artifacts (package management). It is all integrated together.

  5. What is multi-cloud and why is it used?

    Answer: Multi-cloud is a strategy that uses more than one cloud provider. It is used to get the best service from each provider, avoid vendor lock-in, optimize costs, and improve resilience. It gives companies flexibility and choice.


31. Scenario-based Exercises

Scenario 1: The Growing Startup

A Nigerian startup is growing rapidly. Their app is getting more users every day. They have their own servers in their office, but they are running out of space and power.

Question: How could cloud computing help this startup?

Answer: Cloud computing could help by providing unlimited, scalable resources. The startup could move their app to a cloud platform like AWS, Azure, or GCP. They could use EC2 (or Virtual Machines) for servers and scale up automatically when traffic increases. They would only pay for what they use, saving money.

Scenario 2: The Slow Deployment

A company takes days to deploy new features. They have a manual process that is slow and error-prone. They want to automate their deployment.

Question: How could cloud DevOps services help this company?

Answer: Cloud DevOps services could help by automating the entire deployment process. They could use CodePipeline (AWS), Azure Pipelines, or Cloud Build (GCP). Every time a developer pushes code, the pipeline would automatically build, test, and deploy the code. This would make deployments fast and reliable.

Scenario 3: The Nigerian Bank

A Nigerian bank wants to use a multi-cloud strategy. They want to use AWS for their web app, Azure for their data warehouse, and GCP for machine learning.

Question: What are the benefits of this multi-cloud approach?

Answer: The benefits of this multi-cloud approach include: getting the best service from each provider (AWS for web, Azure for data, GCP for ML), avoiding vendor lock-in, improving resilience (if one provider goes down, others are still working), and optimizing costs.


32. Group Activity

Activity: The Cloud Provider Debate

Instructions:

  1. Form groups of 4-5 students.
  2. Assign each group a cloud provider:
    • Group 1: AWS
    • Group 2: Azure
    • Group 3: GCP
    • Group 4: Multi-cloud (using multiple providers)
  3. Each group should research their provider. Find:
    • What services they offer
    • What their strengths are
    • What companies use them
    • What the costs are like
  4. Each group presents their provider. Explain why someone should choose this provider.
  5. Discuss: Which provider is best? Why? What about multi-cloud?
  6. Share with the class.

33. Individual Activity

Activity: My Cloud Provider Choice

Instructions:

  1. Imagine you are a DevOps engineer. You need to choose a cloud provider for a new project.
  2. Write a cloud provider selection plan. Include:
    • What provider you would choose (AWS, Azure, GCP, or multi-cloud)
    • Why you chose this provider
    • What services you would use
    • What DevOps tools you would use
    • What benefits you expect
  3. Write a short reflection: What did you learn from this activity?
  4. Submit your plan and reflection.

34. Classroom Discussion Questions

  1. Why do you think cloud computing is so popular?

    Discuss with your classmates and share your ideas.

  2. Have you used any cloud services? What were they?

    Share your experiences and thoughts.

  3. What are some other situations where renting is better than buying?

    Think about school, home, and other activities.

  4. Do you think multi-cloud is always better than using one provider? Why or why not?

    Share your opinions and listen to what others think.

  5. Can you think of a Nigerian company that uses cloud computing?

    Share examples of companies in Nigeria.

  6. What do you think is the most important cloud service for DevOps?

    Explain why you think so.

  7. Do you think cloud computing is easy to learn? Why or why not?

    Share your thoughts.

  8. What is the most important thing you learned about cloud platforms today?

    Share with the class.


35. Mini Project

Project: Create a "Cloud Platforms for DevOps" Guide

Goal: Create a simple guide to teach beginners about cloud platforms and DevOps.

Instructions:

  1. Work individually or in small groups.
  2. Design a guide that includes:
    • A cover page with a title and a drawing
    • What is cloud computing? (simple explanation)
    • Cloud service models (IaaS, PaaS, SaaS)
    • AWS (what it is and its DevOps services)
    • Azure (what it is and its DevOps services)
    • GCP (what it is and its DevOps services)
    • Multi-cloud strategies
    • Benefits of cloud for DevOps
    • Key vocabulary with definitions
    • A fun example or story
  3. Use simple language. Write as if you are teaching a 10-year-old.
  4. Include drawings or pictures.
  5. Present your guide to the class.

36. Practical Assignment

Assignment: Research Cloud Providers

Goal: Learn about real-world cloud provider usage.

Instructions:

  1. Research a company. Choose a company that uses a cloud platform (like AWS, Azure, or GCP).
  2. Find out:
    • What cloud provider they use
    • What services they use
    • What DevOps tools they use
    • What benefits they have seen
  3. Write a report. Include:
    • The company name and what they do
    • How they use cloud platforms
    • What you learned from this research
  4. Submit your report.

37. Challenge Exercise

Challenge: The Cloud Architect

Scenario:

You are a cloud architect at a Nigerian company. The company has 25 developers working on a large web application. They want to use a cloud platform to improve their DevOps pipeline.

The company has:

  • 25 developers
  • A large web application
  • Need to deploy new features frequently
  • Want to use CI/CD
  • Want to scale automatically
  • Want to use containers
  • Need to choose a cloud provider

Challenge: Create a complete cloud implementation plan for this company. Include:

  • Cloud Provider Selection: Which provider will you use? (AWS, Azure, GCP, or multi-cloud?) Why?
  • Infrastructure: What services will you use (EC2, S3, RDS, etc.)?
  • DevOps Tools: What DevOps services will you use?
  • CI/CD Pipeline: How will you set up your CI/CD pipeline?
  • Container Strategy: Will you use containers? How?
  • Scaling: How will you scale your application?
  • Monitoring: How will you monitor your application?
  • Security: How will you secure your cloud resources?
  • Cost Management: How will you manage costs?
  • Team Training: How will you train the team?
  • Timeline: When will you implement each part?

BONUS CHALLENGE: Present your plan to the class as if you were presenting it to the company's management.


38. Quiz Answers

Multiple Choice Questions (Section 28):

  1. B
  2. A
  3. C
  4. C
  5. A
  6. B
  7. B
  8. B
  9. B
  10. C
  11. B
  12. B
  13. B
  14. B
  15. B

True or False Exercises (Section 27):

  1. True
  2. False
  3. True
  4. False
  5. True
  6. True
  7. True
  8. False
  9. True
  10. False
  11. True
  12. False
  13. False
  14. True
  15. True

Fill-in-the-Blank Exercises (Section 26):

  1. cloud
  2. IaaS
  3. SaaS
  4. AWS
  5. Azure
  6. GCP
  7. EC2
  8. S3
  9. CodePipeline
  10. Azure DevOps
  11. Cloud Build
  12. multi-cloud

Matching Exercises (Section 29):

  1. C
  2. D
  3. E
  4. F
  5. G
  6. A
  7. B
  8. H
  9. I
  10. J

39. Key Takeaways

  • πŸ”Ή Cloud computing is renting computers over the internet. It is cheap, easy, and scalable.
  • πŸ”Ή IaaS, PaaS, and SaaS are the three cloud service models. IaaS gives you the most control. SaaS gives you the least.
  • πŸ”Ή AWS is the largest cloud platform. It has over 200 services, including EC2, S3, and CodePipeline.
  • πŸ”Ή AWS DevOps services include CodeCommit, CodeBuild, CodeDeploy, and CodePipeline.
  • πŸ”Ή Azure is Microsoft's cloud platform. It has services like Virtual Machines and Blob Storage.
  • πŸ”Ή Azure DevOps is a complete DevOps platform with Pipelines, Repos, Boards, and Artifacts.
  • πŸ”Ή GCP is Google's cloud platform. It has services like Compute Engine and Cloud Storage.
  • πŸ”Ή GCP DevOps services include Cloud Build, Artifact Registry, Cloud Run, and GKE.
  • πŸ”Ή Multi-cloud uses more than one provider. It gives you flexibility and avoids vendor lock-in.
  • πŸ”Ή Cloud platforms offer speed, scalability, cost savings, reliability, global reach, integration, and focus for DevOps.

40. Preparation for the Next Module

Congratulations! You have completed Module 9: "Cloud Platforms & DevOps." You now understand how cloud platforms like AWS, Azure, and GCP help teams build and run software in the cloud with DevOps practices.

In Module 10, you will learn:

  • Exam Preparation: You will learn about the certification exam structure and domains.
  • Practice Exams: You will take full-length practice tests with detailed explanations.
  • Hands-On Labs: You will work on real-world scenarios and troubleshooting exercises.
  • Capstone Project: You will build an end-to-end DevOps pipeline.
  • Career Guidance: You will learn about DevOps roles, responsibilities, and career pathways.

Before you start Module 10, here are some things to think about:

  1. Think about what you have learned. Review all the modules from 1 to 9. Make sure you understand the key concepts.
  2. Think about your career. What kind of DevOps role do you want? What skills do you need to develop?
  3. Review what you learned. Make sure you understand cloud platforms and DevOps before moving on.

You are doing a fantastic job!

11

Module Ten

Module Two Β· Certified DevOps Expert (Beginner)

🧩 Module Two · DevOps Superpowers

Certified DevOps Expert Β· Beginner track

πŸ“– Module Introduction

Welcome, young explorer! In Module One, you learned that DevOps is like a bridge between people who build software (developers) and people who run it (operations). In this module, we will learn the tools and habits that make DevOps work like magic. We will talk about automation, CI/CD (Continuous Integration and Continuous Delivery), monitoring, and infrastructure as code.

Imagine you are the captain of a spaceship. You do not want to press 100 buttons every second β€” you want autopilot! That is what DevOps tools do: they help you automate boring, repetitive jobs so you can focus on building cool stuff. By the end of this module, you will understand how teams use these superpowers to release new features fast, safely, and without breaking things.

We will use stories, drawings, and examples from school, home, and even Nigeria. Ready? Let's go! πŸš€

🎯 Learning Objectives

  • Explain what automation means and why it helps.
  • Describe CI/CD using a pizza delivery story.
  • Understand infrastructure as code (IaC) with LEGO bricks.
  • Name three common DevOps tools (Git, Jenkins, Docker).
  • Know why monitoring is like a health check for apps.
  • See how DevOps is used in Nigeria (banks, fintech, startups).
  • Build a mini pipeline with steps in the right order.

πŸ“š Warm-up Story Β· The Great Pizza Pipeline

Once upon a time in a small town, there was a pizza shop called "DevOps Pizza". The chef (developer) made delicious pizza recipes, and the delivery riders (operations) delivered them hot. But every day, they had a big problem: the chef would write a new recipe, but the riders did not know how to cook it. And when the riders tried, they sometimes burnt the pizza! 😱

Then, a wise girl named Ayo said: "Why don't we write the recipe in a way that both the chef AND the rider can understand? And why not use a machine that automatically cooks the pizza every time we change the recipe?"

So they built a pipeline β€” a magical conveyor belt. When the chef updates the recipe, the machine grabs it, bakes it, tests it, and boxes it. Then the rider just delivers it. No more burnt pizzas! That is exactly what DevOps does for software. This module is all about that magical pipeline. πŸ•

πŸ“˜ Main Lessons

Lesson 1 Β· What is Automation?

Definition: Automation means using machines or code to do repetitive tasks without a human pressing buttons every time.

Why important: It saves time, reduces mistakes, and makes people happy because they can do creative work.

Simple: Like a robot that brushes your teeth while you sing.

Real-life: Washing machine β€” you put clothes in, press start, and it does the rest.

School: A teacher uses a computer to grade multiple-choice tests automatically.

Home: A thermostat that turns on the AC when it gets hot β€” you don't have to check it every minute.

Nigerian example: In Lagos, some banks use automated teller machines (ATMs) to give cash. You don't need to talk to a teller for small withdrawals.

  ​+-------------------+
  |   Manual way      |   β†’   many mistakes, slow
  +-------------------+
          ⬇
  +-------------------+
  |   Automation      |   β†’   fast, accurate, repeatable
  +-------------------+

Mini summary: Automation is like having a helpful robot that does boring jobs so you can focus on fun stuff.

Lesson 2 Β· CI/CD – The Delivery Pipeline

Definition: CI stands for Continuous Integration – developers merge their code many times a day. CD stands for Continuous Delivery – the code is always ready to go live.

Why important: It makes releasing new features fast and safe.

Simple: Like a slide in a playground: you go up the stairs (write code), slide down (test & build), and land in the sand (deploy).

Real-life: A bakery that bakes bread every hour – fresh bread all day.

School: A class project where each student adds a slide, and the teacher checks it immediately so the whole presentation is always ready.

Home: A family calendar where everyone adds events, and the calendar automatically updates on everyone's phone.

Nigerian example: A fintech startup in Abuja uses CI/CD to push new mobile money features every week – they test automatically so customers don't lose money.

  +---------+    +---------+    +---------+    +---------+
  | Write   | -> | Build   | -> | Test    | -> | Deploy  |
  | code    |    | (compile)|   | (auto)  |    | (live)  |
  +---------+    +---------+    +---------+    +---------+
        CI  ~~~~~~~~~~~~~~~~~~~~~~~~ CD

Mini summary: CI/CD is a conveyor belt that takes code from a developer's computer to the users, automatically checking it at every step.

Lesson 3 Β· Infrastructure as Code (IaC)

Definition: Writing configuration files that describe your servers, networks, and storage – just like code.

Why important: You can create the same environment again and again without clicking in a dashboard.

Simple: Like a LEGO instruction booklet – you follow it to build the same castle every time.

Real-life: A recipe for jollof rice – if you follow it, you get the same delicious rice every time.

School: A science experiment worksheet – every student follows the same steps and gets the same result.

Home: A packing list for vacation – you check the same items every trip.

Nigerian example: A Nigerian cloud provider uses IaC to spin up new servers for Nollywood streaming services during big movie releases.

  +------------------+
  |  main.tf         |  (Terraform file)
  |  resource "aws_instance" "web" {
  |    ami = "ami-123"
  |    instance_type = "t2.micro"
  |  }
  +------------------+
        ⬇
  +------------------+
  |  Server created  |  (exactly the same every time)
  +------------------+

Mini summary: IaC means you write down how your servers should look, and a tool builds them automatically.

Lesson 4 Β· Version Control (Git)

Definition: A system that tracks changes to files – like a time machine for your code.

Why important: You can go back to any previous version, and many people can work together without stepping on each other's toes.

Simple: Like saving your game progress – if you die, you can reload from the last save.

Real-life: Google Docs – you can see who made which changes and restore older versions.

School: A group project saved on OneDrive – everyone can edit and see history.

Home: A family photo album – you can see how everyone grew over the years.

Nigerian example: A team in Enugu building an e‑commerce app uses Git to manage their code – they have a main branch and feature branches.

  +---------+    +---------+    +---------+
  | Commit  | -> | Commit  | -> | Commit  |
  | (v1)    |    | (v2)    |    | (v3)    |
  +---------+    +---------+    +---------+
       ⬇            ⬇            ⬇
  [main branch]  [feature/x]   [hotfix]

Mini summary: Git is like a magic notebook that remembers every change and lets you jump to any page.

Lesson 5 Β· Build Tools

Definition: Tools that take your source code and turn it into an executable program (or package).

Why important: They make sure your code is correctly formatted and all dependencies are included.

Simple: Like a blender that mixes fruits into a smoothie – you put in ingredients, and it gives you a drink.

Real-life: A factory that assembles car parts into a finished car.

School: A science fair – you gather materials (code) and build a volcano (program).

Home: Making a sandwich – you combine bread, cheese, and ham into a meal.

Nigerian example: A startup in Ibadan uses Maven (Java build tool) to compile their banking app before deployment.

  +------------+     +------------+
  | source     | ->  | build tool | ->  | .jar / .exe |
  | code       |     | (compile)  |     | (ready to run)|
  +------------+     +------------+

Mini summary: Build tools turn your code into a working program that users can run.

Lesson 6 Β· Containers (Docker)

Definition: A container is like a lightweight box that holds your app and everything it needs to run.

Why important: It works the same on any computer – no more "it works on my machine" excuses.

Simple: Like a lunchbox – you put your meal inside, and it stays fresh and separate from others' food.

Real-life: Shipping containers – they can be loaded on ships, trains, or trucks, and the goods inside stay safe.

School: A pencil case – you keep all your pencils, eraser, and ruler together.

Home: A toolbox – all your screwdrivers and nails are in one box.

Nigerian example: A Lagos fintech uses Docker containers to run their payment gateway – it runs the same in their test lab and on the cloud.

  +-------------------+
  |  Docker container |
  |  +-------------+  |
  |  |  App        |  |
  |  |  libraries  |  |
  |  |  config     |  |
  |  +-------------+  |
  +-------------------+

Mini summary: Containers are portable boxes for apps – they work everywhere, just like a lunchbox.

Lesson 7 Β· Orchestration (Kubernetes)

Definition: A tool that manages many containers – it starts, stops, and scales them automatically.

Why important: When you have hundreds of containers, you need a "manager" to keep them healthy.

Simple: Like a school bus driver – they pick up all the kids (containers) and take them to the right class (service).

Real-life: Air traffic control – they guide many planes so they don't crash.

School: A teacher managing group activities – they make sure every group has what they need.

Home: A parent coordinating chores – one child washes dishes, another sweeps.

Nigerian example: A large Nigerian telecom uses Kubernetes to manage their customer portal containers during peak call times.

  +-----------------------+
  |  Kubernetes cluster   |
  |  +----+  +----+       |
  |  | c1 |  | c2 |  ...  |
  |  +----+  +----+       |
  |  [load balancer]      |
  +-----------------------+

Mini summary: Orchestration is like a conductor for an orchestra of containers – they play in harmony.

Lesson 8 Β· Monitoring & Alerts

Definition: Monitoring means watching your app's health (CPU, memory, errors). Alerts notify you when something is wrong.

Why important: You want to fix problems before users notice – like a smoke alarm at home.

Simple: Like a fitness tracker that tells you if your heart rate is too high.

Real-life: A car dashboard – when the fuel light glows, you know to fill up.

School: A teacher taking attendance – they know if someone is missing.

Home: A baby monitor – you hear if the baby cries.

Nigerian example: A Nigerian e‑commerce site monitors its checkout service – if it slows down, they get an SMS alert and fix it immediately.

  +---------+     +---------+     +---------+
  | App     | --> | Monitor | --> | Alert   |
  | metrics |     | (Grafana)|    | (email) |
  +---------+     +---------+     +---------+

Mini summary: Monitoring keeps an eye on your app and shouts if something goes wrong.

Lesson 9 Β· Configuration Management (Ansible)

Definition: Tools that automatically set up and configure servers (install packages, start services).

Why important: Instead of logging into each server manually, you run a script that does it all.

Simple: Like a magic wand – you wave it, and all the computers in your school get the same software.

Real-life: A school principal that makes sure every classroom has the same textbooks.

School: A lab assistant installing the same software on 20 computers at once.

Home: A robot that cleans all rooms in your house with the same vacuum pattern.

Nigerian example: A Nigerian healthtech company uses Ansible to configure 50 new servers for a telemedicine platform.

  +--------+     +--------+     +--------+
  | Playbook| --> | Server1| --> | Server2|
  | (YAML)  |     | config |     | config |
  +--------+     +--------+     +--------+

Mini summary: Configuration management tools let you set up many servers with one click.

Lesson 10 Β· DevOps Culture – Collaboration

Definition: DevOps is not just tools – it’s a way of working where developers and operations talk to each other often.

Why important: When people share ideas, they build better software and avoid blame games.

Simple: Like a sports team – players pass the ball and cheer each other.

Real-life: A band – each musician plays their instrument, but they listen to each other.

School: A group project where everyone shares their part and helps others.

Home: Family dinner – everyone shares what happened during the day.

Nigerian example: In a Nigerian bank, developers and network engineers have daily stand-up meetings to discuss deployments.

  +--------+     +---------+
  | Dev    | <-> | Ops     |
  | team   |     | team    |
  +--------+     +---------+
      \              /
       \            /
        +----------+
        |  shared  |
        |  goals   |
        +----------+

Mini summary: DevOps culture means everyone works together like a family, not like strangers.

Lesson 11 Β· Security in DevOps (DevSecOps)

Definition: Adding security checks early in the pipeline – not at the end.

Why important: It's cheaper and safer to find bugs before they reach users.

Simple: Like wearing a helmet before you ride a bicycle – you don't put it on after you fall.

Real-life: Airport security – they check bags before people board the plane.

School: Checking your homework for spelling mistakes before submitting.

Home: Locking your front door when you leave – you don't wait until you come back.

Nigerian example: A Nigerian fintech scans their code for vulnerabilities every time a developer pushes code – they call it "shift-left security".

  +--------+     +---------+     +--------+
  | Code   | --> | Security| --> | Deploy |
  | commit |     | Scan    |     | (safe) |
  +--------+     +---------+     +--------+

Mini summary: DevSecOps means we think about security from the very beginning.

Lesson 12 Β· Logging – The App Diary

Definition: Recording events that happen in your app – like a diary.

Why important: When something goes wrong, logs help you find the cause.

Simple: Like writing down what you ate for breakfast – you can check later why you felt sick.

Real-life: A flight recorder in an airplane – it records everything for investigation.

School: A library checkout log – you know who borrowed which book.

Home: A savings book – you record every deposit and withdrawal.

Nigerian example: A Nigerian logistics company logs every delivery attempt – if a package is lost, they check the logs.

  2026-07-13 10:00:23  User 123 logged in
  2026-07-13 10:01:10  User 123 placed order #456
  2026-07-13 10:05:45  Payment failed – insufficient balance

Mini summary: Logs are your app's memory – they tell you what happened and when.

πŸ”‘ Key Vocabulary

WordSimple definition
AutomationMaking machines do tasks without human help.
CI/CDContinuous Integration / Continuous Delivery – a pipeline that tests and releases code fast.
ContainerA lightweight package that holds an app and everything it needs.
OrchestrationManaging many containers automatically (like a conductor).
Infrastructure as CodeWriting files that describe your servers, instead of clicking in a GUI.
MonitoringWatching your app's health and performance.
LoggingRecording events that happen in your app.
PipelineA series of automated steps that code goes through from commit to deploy.

🧠 Important Concepts

  • Automation reduces human error – machines don't get tired or distracted.
  • CI/CD makes releases boring – and boring is good because it means no surprises.
  • Everything as code – not just code, but also infrastructure, configuration, and policies.
  • Feedback loops – monitoring and logs give you feedback so you can improve.
  • Collaboration over silos – developers and operations are one team.

πŸ“‹ Step-by-step: How a DevOps pipeline works

  1. Developer writes code and pushes to Git.
  2. CI server (Jenkins/GitLab CI) automatically builds the code.
  3. Automated tests run (unit tests, integration tests).
  4. Security scan checks for vulnerabilities.
  5. Build artifact (e.g., Docker image) is created.
  6. Artifact is stored in a registry (e.g., Docker Hub).
  7. Deployment tool (e.g., ArgoCD) deploys to staging environment.
  8. Manual approval or automated tests pass.
  9. Promote to production – users get the new feature.
  10. Monitoring and logs track the new version for issues.

🌍 Real-life examples

  • Amazon – deploys code every 11.7 seconds using DevOps.
  • Netflix – uses chaos engineering and monitoring to keep streaming smooth.
  • Spotify – uses squads and DevOps to release new music features weekly.

πŸ‡³πŸ‡¬ Nigerian examples

  • Flutterwave – uses CI/CD to roll out payment features across Africa.
  • Paystack – uses containers and orchestration for reliable payment processing.
  • Kuda Bank – uses monitoring to ensure 99.99% uptime for their mobile app.
  • Andela – trains DevOps engineers to work on global projects.

πŸ§’ Fun examples for kids

  • LEGO castle – IaC is like having instructions; pipeline is like building it step by step.
  • School bake sale – CI/CD is like making cookies: mix, bake, cool, sell – repeat.
  • Video game respawn – monitoring is like your health bar; if it drops, you heal.

🏠 Everyday examples

  • Washing machine – automation: load, press, done.
  • Grocery list – infrastructure as code: you have a list, you buy exactly that.
  • Alarm clock – monitoring: it wakes you up if you oversleep.

πŸ‘©β€πŸ« Teacher notes

  • Encourage students to draw their own pipeline.
  • Use the pizza story as a running analogy throughout the module.
  • Let students act out the pipeline: one is developer, one is CI, one is tester, one is deployer.
  • Bring real-world examples from Nigerian tech news.

πŸ‘¨β€πŸ‘©β€πŸ‘¦ Parent tips

  • Ask your child to explain DevOps to you using the pizza story.
  • Together, find a free Git account (GitHub) and create a simple "hello world" repository.
  • Watch a short YouTube video about Docker with your child.

πŸ’‘ Interesting facts

  • Amazon deploys code every 1.2 seconds on average.
  • The term "DevOps" was first used in 2009.
  • Kubernetes was originally developed by Google and is now used by millions.
  • Nigeria has one of the fastest-growing tech ecosystems in Africa.

❓ Did you know?

  • Did you know that the first "container" technology was invented in 1979? It was called chroot.
  • Did you know that many Nigerian banks use DevOps to handle millions of transactions daily?

🧷 Remember this

  • DevOps is about people, processes, and tools – not just tools.
  • Automation is your friend – it does the boring work.
  • Always test before you deploy – it saves headaches.

⚠️ Common mistakes

  • Thinking DevOps is only about tools – it's also about culture.
  • Skipping tests to save time – that causes more failures later.
  • Not monitoring after deployment – you need to know if it works.
  • Writing complicated pipelines – keep them simple.

βœ… Best practices

  • Start with a small pipeline and add stages gradually.
  • Use version control for everything (code, config, IaC).
  • Monitor from day one – even a simple dashboard helps.
  • Keep security scanning early.
  • Celebrate small wins – every successful deployment is a win!

πŸ•’ Timeline of a DevOps deployment

  9:00 AM   Code commit
  9:01 AM   Build starts
  9:03 AM   Tests run
  9:05 AM   Security scan
  9:07 AM   Image built
  9:09 AM   Deploy to staging
  9:12 AM   Manual approval
  9:15 AM   Deploy to production
  9:17 AM   Monitor for 5 min
  9:22 AM   All green βœ…

πŸ“Š Comparison: Traditional vs DevOps

TraditionalDevOps
Developers and operations are separateOne team works together
Manual deployments (risky)Automated pipelines (safe)
Long release cycles (months)Short cycles (hours/days)
Big bang releasesSmall, frequent releases

πŸ“Œ End-of-module summary

In this module, you learned that DevOps is powered by automation, CI/CD, containers, orchestration, monitoring, and collaboration. You saw how these tools work together like a pizza pipeline. You also learned that security and logging are important parts of the process. Remember: DevOps is not just for big companies – even small teams in Nigeria use it to build amazing apps. You are now ready to start thinking like a DevOps engineer!

❓ Frequently Asked Questions

  1. What is the main goal of DevOps? – To deliver software faster and more reliably.
  2. Do I need to know programming to learn DevOps? – Basic scripting helps, but you can start with concepts.
  3. Is Docker the same as a virtual machine? – No, containers are lighter and share the host OS.
  4. What is the most used CI/CD tool? – Jenkins, GitLab CI, and GitHub Actions are popular.
  5. Can I use DevOps for mobile apps? – Yes, many teams use DevOps for iOS/Android.
  6. Is Kubernetes hard to learn? – It has a learning curve, but you can start with minikube.
  7. What is the difference between monitoring and logging? – Monitoring shows metrics (CPU), logging shows events (errors).
  8. How do I start with DevOps at home? – Install Git and Docker on your laptop and practice.
  9. What is a pipeline? – A series of automated steps from code commit to deployment.
  10. Is DevOps only for cloud? – No, it can be used on-premise too.

πŸ“ Review Questions

  1. What does automation mean?
  2. What does CI stand for?
  3. What does CD stand for?
  4. Name two benefits of CI/CD.
  5. What is Infrastructure as Code?
  6. Give an example of a version control tool.
  7. What is a container?
  8. What is the role of an orchestrator?
  9. Why is monitoring important?
  10. What are logs used for?
  11. What is DevSecOps?
  12. Name a Nigerian company that uses DevOps.
  13. What is a build tool?
  14. How does collaboration help DevOps?
  15. What is a pipeline?

✏️ Fill-in-the-blank

  1. _________ is the practice of using machines to do repetitive tasks.
  2. CI/CD stands for Continuous _________ and Continuous _________.
  3. Docker is a tool that creates _________.
  4. _________ is a tool that manages many containers.
  5. _________ records events that happen in your app.

βœ”οΈ True or False

  1. DevOps is only about tools. (False)
  2. Automation reduces human errors. (True)
  3. Containers are heavier than virtual machines. (False)
  4. Monitoring helps you find problems early. (True)
  5. You should never test code before deploying. (False)

πŸ”˜ Multiple Choice

  1. Which tool is used for version control?
    a) Jenkins   b) Git   c) Docker   d) Kubernetes
    Answer: b
  2. What does CI stand for?
    a) Continuous Integration   b) Continuous Infrastructure   c) Code Injection   d) Computer Interface
    Answer: a
  3. Which of the following is a container tool?
    a) Ansible   b) Docker   c) Maven   d) Grafana
    Answer: b
  4. What is the main benefit of automation?
    a) It makes work slower   b) It reduces errors and saves time   c) It costs more   d) It requires more people
    Answer: b
  5. Which tool is used for orchestration?
    a) Kubernetes   b) Git   c) Jenkins   d) Terraform
    Answer: a
  6. What is IaC?
    a) Infrastructure as Code   b) Internet as Code   c) Integration as Code   d) Input as Code
    Answer: a
  7. What does monitoring do?
    a) Deletes logs   b) Watches app health   c) Builds code   d) Manages containers
    Answer: b
  8. Which of these is a Nigerian fintech using DevOps?
    a) PayPal   b) Flutterwave   c) Stripe   d) Square
    Answer: b
  9. What is a pipeline?
    a) A series of automated steps   b) A type of container   c) A programming language   d) A database
    Answer: a
  10. What is the purpose of logging?
    a) To slow down the app   b) To record events for later analysis   c) To delete data   d) To start containers
    Answer: b
  11. Which is a best practice?
    a) Skip testing to save time   b) Keep pipelines simple   c) Never monitor   d) Use only one tool
    Answer: b
  12. What is DevSecOps?
    a) Security after deployment   b) Security early in the pipeline   c) No security   d) Only developers do security
    Answer: b
  13. Which tool is used for configuration management?
    a) Ansible   b) Docker   c) Kubernetes   d) Git
    Answer: a
  14. What does CD stand for?
    a) Continuous Delivery   b) Continuous Development   c) Code Deploy   d) Container Deploy
    Answer: a
  15. Why is collaboration important in DevOps?
    a) It creates blame   b) It shares knowledge and reduces silos   c) It slows work   d) It is not important
    Answer: b

πŸ”— Matching Exercise

TermDescription
1. GitA. Manages containers
2. DockerB. Version control
3. KubernetesC. Container runtime
4. JenkinsD. CI/CD server
5. TerraformE. Infrastructure as Code

Answers: 1-B, 2-C, 3-A, 4-D, 5-E

✍️ Short Answer

  1. Explain CI/CD in your own words.
  2. Why is automation important in DevOps?
  3. Give one Nigerian example of DevOps in action.
  4. What is the difference between monitoring and logging?
  5. Why should we include security early in the pipeline?

🧩 Scenario-based exercises

Scenario 1: Your team deploys a new feature every Friday, but users report bugs. What DevOps practice would you suggest to reduce bugs?

Scenario 2: A Nigerian bank wants to deploy new ATM software without downtime. Which DevOps strategy can help?

Scenario 3: Your app crashes suddenly. You need to find out why. Which tools do you use?

πŸ‘₯ Group Activity

In groups of 4, act out a DevOps pipeline. One person is the developer (writes code on paper), one is the CI server (builds and tests), one is the deployer (moves the paper to "production"), and one is the monitor (watches for errors). Do three rounds, each time adding a new step.

πŸ§‘β€πŸ’» Individual Activity

Draw a DevOps pipeline on a piece of paper with at least 5 stages. Label each stage and write one sentence about what happens there.

πŸ’¬ Classroom Discussion Questions

  • Why do you think many companies are moving to DevOps?
  • What would happen if we never tested code before deployment?
  • How can Nigerian startups benefit from CI/CD?

πŸ› οΈ Mini Project

Build a Simple CI/CD Pipeline (simulated): Using paper cards, create a physical pipeline. Each card represents a stage: Commit, Build, Test, Deploy, Monitor. Move a "code" card through the stages and discuss what happens at each stage. Add a "security" card.

πŸ“‚ Practical Assignment

Install Git on your computer (with parent/teacher help). Create a repository, add a file called "hello.txt" with your name, commit it, and push it to GitHub. Share the link with your instructor.

πŸ† Challenge Exercise

Write a simple YAML pipeline (pseudo-code) with at least 4 stages: build, test, deploy, monitor. You can use any names you like. Explain each stage in one sentence.

πŸ”‘ Key Takeaways

  • DevOps is a culture of collaboration and automation.
  • CI/CD pipelines make releases fast and safe.
  • Containers and orchestration help run apps anywhere.
  • Monitoring and logging keep apps healthy.
  • Security must be included from the start.

πŸ”œ Preparation for Module Three

In Module Three, we will dive into hands-on tools – you will learn how to write a simple Dockerfile, run containers, and even create a basic Kubernetes pod. Make sure you have a computer with internet access and your curiosity ready! We will also explore more Nigerian DevOps success stories.


Β© 2026 Β· Certified DevOps Expert Β· Module Two Β· Beginner friendly πŸŽ‰

πŸ† Get Certified

πŸ”’

Earn this certificate

Every lesson is already free to read. Sign up, pass the exam, and unlock Practice Tools plus a verified certificate with your name on it β€” ₦4,000/month.

πŸŽ“ Sign Up & Unlock for ₦4,000/month
πŸ› οΈ Practice Tools
Hands-on simulators & labs - subscription required.
β†’
🎯 Internship Tasks
Real-world tasks to build your portfolio - try them free for 7 days, no card required.
β†’