
Module 1 Lesson 2: The Evolution of DevOps
How we got here. Trace the history of software delivery from Waterfall and physical servers to the 'DevOps' movement and the rise of Git-centric automation.
Module 1 Lesson 2: The Evolution of DevOps
To understand why GitLab CI/CD is the way it is, we have to understand the problems it was built to solve. The story of software delivery is a story of Removing Friction.
1. The Era of Waterfall (1970s - 1990s)
In the Waterfall model, work was done in strict, sequential stages:
- Requirements -> Design -> Build -> Test -> Deploy.
- The Problem: Deployment happened only once or twice a year. If a bug was found at the end, doctors had to "Perform Surgery" on the code, delaying the release by months.
2. The Agile Revolution (Early 2000s)
Agile introduced "Sprints." Instead of a 6-month release, teams worked in 2-week cycles.
- The Problem: Developers were writing code faster, but the Operations (Ops) team (the people who managed servers) couldn't keep up. This created a "Wall of Confusion" between the people building the app and the people running it.
3. The Birth of DevOps (2009)
The term "DevOps" was coined to represent the merging of Development and Operations.
- The Philosophy: "You build it, you run it."
- Developers started writing the scripts that managed the servers (Infrastructure as Code).
- Ops started using Git to track changes to server configurations.
4. The Rise of GitLab CI/CD
Before GitLab, you used "Jenkins."
- Jenkins was a standalone server. You had to manually install plugins for everything. It was fragile and hard to scale.
- GitLab's Innovation: They realized that the "Pipeline" (the instructions to build/test) should be a file inside the repository (the
.gitlab-ci.ymlfile). This made the pipeline part of the code itself.
5. Summary of the Evolution
| Era | Focus | Release Frequency |
|---|---|---|
| Waterfall | Documentation | Yearly |
| Agile | Features | Monthly |
| DevOps | Automation | Daily / Hourly |
Exercise: The Historical Mindset
- Imagine you have to deploy an app to a physical server in 1995. List 3 manual steps you would have to take (e.g., buying a hard drive, burning a CD).
- In an Agile team WITHOUT DevOps, who is responsible for a server crash at midnight?
- Why is keeping your CI/CD configuration inside your Git repository better than keeping it on a separate server?
- Research: Who is Patrick Debois, and why is he called the "Father of DevOps"?
Summary
DevOps isn't just a list of tools; it's the result of 50 years of learning how to build software without going crazy. By learning GitLab CI/CD, you are participating in the most modern iteration of this evolution.
Next Lesson: Hard numbers: Benefits of automated delivery.