Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
Signed-off-by: Ahmed AbouZaid <[email protected]>
  • Loading branch information
aabouzaid committed Oct 5, 2024
1 parent ab9b576 commit c30877d
Show file tree
Hide file tree
Showing 43 changed files with 15,859 additions and 219 deletions.
45 changes: 45 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# https://docusaurus.io/docs/deployment#triggering-deployment-with-github-actions
name: Deploy to GitHub Pages

on:
push:
branches:
- dev

jobs:
build:
name: Build Docusaurus
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 18
cache: npm
- name: Install dependencies
run: npm ci
- name: Build website
run: npm run build
- name: Upload Build Artifact
uses: actions/upload-pages-artifact@v3
with:
path: build

deploy:
name: Deploy to GitHub Pages
needs: build
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source
# Deploy to the github-pages environment
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
20 changes: 20 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Dependencies
/node_modules

# Production
/build

# Generated files
.docusaurus
.cache-loader

# Misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
10 changes: 3 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ The project follows the `Learning by Doing` method (aka `Problem-based Learning`
</a>
</p>

> [!NOTE]
> **NOTE**
> Each phase of this project is tackled gradually, part of the roadmap modules. But it's also **standalone**, and you can work on it if you have the required knowledge for each phase.
### 3. Mentorship Program
Expand Down Expand Up @@ -153,18 +153,14 @@ A plus point in the mentorship is that you will get access to the roadmap board
Visit [![Hive Box Project](https://img.shields.io/badge/HiveBox_Project-f39200?style=flat-square&logo=artifact-hub&logoColor=white)](projects/hivebox/README.md)
if you are interested in the DevOps hands-on project **only**. Continue if you want the full roadmap.

<p align="center">
<a href="https://devopshive.net/" style="display: block; padding: 1em 0; text-align: center;">
<img alt="DevSecOps Loop" border="0" width="600" data-original-height="602" data-original-width="1046" src="https://devopshive.net/images/devsecops.png"/>
</a>
</p>


---

### [Overview](./content/00-overview)

- [Introduction](./content/00-overview#introduction)
- [BSET Model and Focus Areas](./content/00-overview#bset-model-and-focus-areas)
- [BSETO Model and Focus Areas](./content/00-overview#bset-model-and-focus-areas)
- [How to use this roadmap?](./content/00-overview#how-to-use-this-roadmap)

### [Module 1: Welcome to the DevOps World](./content/01-module/)
Expand Down
3 changes: 3 additions & 0 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
};
73 changes: 0 additions & 73 deletions content/00-overview/README.md

This file was deleted.

3 changes: 0 additions & 3 deletions content/06-module/README.md

This file was deleted.

3 changes: 0 additions & 3 deletions content/07-module/README.md

This file was deleted.

3 changes: 0 additions & 3 deletions content/08-next-steps/README.md

This file was deleted.

7 changes: 7 additions & 0 deletions docs/content/_category_.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
label: Modules
position: 2
collapsed: false
link:
type: generated-index
description: Dive into DevOps world with a plan!
40 changes: 40 additions & 0 deletions docs/content/introduction/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
title: "Introduction"
description: ""
---

[🗂 Back to the Roadmap Index](../../getting-started)

<p align="center">
<a href="https://devopshive.net/">
<img alt="DevSecOps Loop" border="0" width="600" data-original-height="602" data-original-width="1046" src="https://devopshive.net/images/devsecops.png"/>
</a>
</p>

## Overview

Starting a DevOps engineer role is challenging because the DevOps model has various implementations and patterns. It's even more complicated (but still possible) if that's your first job without previous software industry experience. Yet, many learning roadmaps like [roadmap.sh/devops](https://roadmap.sh/devops) still follow a linear path (i.e., learn some topic to the end, then move to another, and so on) which doesn't work well with the DevOps role because a skilled DevOps engineer is a T-Shaped skilled.

Adopting a dynamic MVP learning roadmap increases your chances of entering the market and starting your first job as a DevOps engineer without previous software hands-on experience.

Hence, this roadmap comes to fill that gap using the same Agile methodologies using a `dynamic MVP-style roadmap` with hands-on projects designed by an experienced DevOps engineer has been highly successful.

That means **first, understand the problem instead of just learning a bunch of tools** then **using iterative style, each iteration will cover most DevOps areas used in the job** to build a T-shaped skills profile from day one! It's also essential to set the targeted market and organizations because, with different DevOps topologies, the DevOps engineer role requirements vary a lot.

## Learning Strategy

This roadmap is designed as a hands-on and progressive project. It's not just about tech aspects of the DevOps, but also end-to-end software production as you will do in your daily job. For that reason, the roadmap mainly follows a modified version of the [SET model](https://morethandigital.info/en/set-model-for-business-strategy-planning-survive-expand-transform/). But instead of `survive, expand, transform` it's `basics, start, expand, transform`. So even though SET model is more about business, but here we are using the same notion to build a roadmap like real-world.

## Focus Areas

Technical-wise, the roadmap focuses on typical DevOps Engineer who is part of a software company, yet, it still shares at least 90% of the needed skills with the other roles like Cloud Engineer, Platform Engineer, and SRE.

The roadmap has a [multiphase industry-grad project](../../projects/hivebox) follows `Learning by Doing` method (aka `Problem-based Learning`) which is also done in iterative phases where you learn as you go and cover the whole DevOps cycle like Code, Containers, Testing, Continuous Integration, Continuous Delivery, Observability, and Infrastructure. Each phase of this project is tackled gradually, part of the roadmap modules. But it's also **standalone**, and you can work on it if you have the required knowledge for each phase.

## DevOps Topologies

Finally, this roadmap is designed for the cloud-native post-container era, which means it will mainly focus on modern practices like Cloud, Docker, and Kubernetes. That doesn't mean everything should be complex, but just about [treating your servers like cattle, not pets](https://www.hava.io/blog/cattle-vs-pets-devops-explained). For example, using Kubernetes doesn't always mean you need to create or manage Kubernetes clusters! There are now many serverless Kubernetes solutions like AWS EKS Fargate or GCP GKE Autopilot. So this roadmap doesn't claim there is a one way of doing DevOps, because DevOps already has many [implementations and topologies](https://web.devopstopologies.com/), but as mentioned focus on modern practices and technologies.

---

If you are done, [🗂 Back to the Roadmap Index](../../getting-started)
25 changes: 8 additions & 17 deletions content/01-module/README.md → docs/content/module-01/README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,10 @@
# Module 1: Welcome to the DevOps World

[🗂 Back to the Roadmap Index](../../README.md#roadmap-index)

## Table of Content

- [1.1 Introduction - What and Why DevOps?](#11-introduction---what-and-why-devops)
- [1.2 Software Production - Software Development Life Cycle](#12-software-production---software-development-life-cycle)
- [1.3 Software Production - Agile Software Development](#13-software-production---agile-software-development)
- [1.4 Software Production - Change Management and Golden Triangle](#14-software-production---change-management-and-golden-triangle)
- [1.5 DevOps Methodology - DevOps and DevSecOps Core Pillars](#15-devops-methodology---devops-and-devsecops-core-pillars)
- [1.6 DevOps Methodology - DevOps, Cloud, Platform Engineer, and SRE](#16-devops-methodology---devops-cloud-platform-engineer-and-sre)
- [1.7 DevOps Methodology - T-Shaped Skills DevOps Engineer](#17-devops-methodology---t-shaped-skills-devops-engineer)
- [1.8 Project - HiveBox Phase 1](#18-project---hivebox-phase-1)
---
title: "Module 1: Welcome to the DevOps World"
sidebar_label: "Welcome to the DevOps World"
description: ""
---

## 1.1 Introduction - What and Why DevOps?
[🗂 Back to the Roadmap Index](../../getting-started)

DevOps is a set of `practices`, `cultural`, `tools` and most importantly `mindset` which aims to improving collaboration and communication between software development (Dev) and operations (Ops) teams. It seeks to dismantle the conventional operational silos and promotes a collaborative, automated, and sustainable culture. Which enhances the efficiency of the whole software development lifecycle (starting from planning, coding, testing, deployment, and operations).

Expand Down Expand Up @@ -147,8 +138,8 @@ The Software Development Life Cycle (SDLC) is a process or set of phases that gu

## 1.8 Project - HiveBox Phase 1

Follow the instructions in the [HiveBox project phase 1](../../projects/hivebox/README.md#phase-1).
Follow the instructions in the [HiveBox project phase 1](../../projects/hivebox#phase-1).

---

If you are done, [🗂 Back to the Roadmap Index](../../README.md#roadmap-index)
If you are done, [🗂 Back to the Roadmap Index](../../getting-started)
24 changes: 8 additions & 16 deletions content/02-module/README.md → docs/content/module-02/README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,10 @@
# Module 2: Basics - DevOps Core

[🗂 Back to the Roadmap Index](../../README.md#roadmap-index)

## Table of Content
---
title: "Module 2: Basics - DevOps Core"
sidebar_label: "Basics - DevOps Core"
description: ""
---

- [2.1 Code - Python Fundamentals](#21-code---python-fundamentals)
- [2.2 Code - Common Development Tools](#22-code---common-development-tools)
- [2.3 Code - Git Basics](#23-code---git-basics)
- [2.4 Operating System - Linux Fundamentals](#24-operating-system---linux-fundamentals)
- [2.5 Operating System - Common Tools and Commands](#25-operating-system---common-tools-and-commands)
- [2.6 Operating System - Bash Scripting Basics](#26-operating-system---bash-scripting-basics)
- [2.7 Containers - Docker Fundamentals](#27-containers---docker-fundamentals)
- [2.8 Containers - Docker CLI Basics](#28-containers---docker-cli-basics)
- [2.9 Project - HiveBox Phase 2](#29-project---hivebox-phase-2)
[🗂 Back to the Roadmap Index](../../getting-started)

## 2.1 Code - Python Fundamentals

Expand Down Expand Up @@ -140,8 +132,8 @@

## 2.9 Project - HiveBox Phase 2

Follow the instructions in the [HiveBox project phase 2](../../projects/hivebox/README.md#phase-2).
Follow the instructions in the [HiveBox project phase 2](../../projects/hivebox#phase-2).

---

If you are done, [🗂 Back to the Roadmap Index](../../README.md#roadmap-index)
If you are done, [🗂 Back to the Roadmap Index](../../getting-started)
24 changes: 8 additions & 16 deletions content/03-module/README.md → docs/content/module-03/README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,10 @@
# Module 3: Start - Laying the Foundation

[🗂 Back to the Roadmap Index](../../README.md#roadmap-index)

## Table of Content
---
title: "Module 3: Start - Laying the Foundation"
sidebar_label: "Start - Laying the Foundation"
description: ""
---

- [3.1 Planning - Define Goals and Requirements](#31-planning---define-goals-and-requirements)
- [3.2 Code - Modularity and Reusability](#32-code---modularity-and-reusability)
- [3.3 Code - Testing and Quality Assurance](#33-code---testing-and-quality-assurance)
- [3.4 Code - Writing Unit Tests](#34-code---writing-unit-tests)
- [3.5 Containers - Docker Best Practices](#35-containers---docker-best-practices)
- [3.6 Continuous Integration - Introduction and Solutions in the Market](#36-continuous-integration---introduction-and-solutions-in-the-market)
- [3.7 Continuous Integration - GitHub Actions Essentials](./main/content/03-module#37-continuous-integration---github-actions-essentials)
- [3.8 Continuous Integration - Pipelines and Quality Gates](#38-continuous-integration---pipelines-and-quality-gates)
- [3.9 Project - HiveBox Phase 3](#39-project---hivebox-phase-3)
[🗂 Back to the Roadmap Index](../../getting-started)

## 3.1 Planning - Define Goals and Requirements

Expand Down Expand Up @@ -157,8 +149,8 @@

## 3.9 Project - HiveBox Phase 3

Follow the instructions in the [HiveBox project phase 3](../../projects/hivebox/README.md#phase-3).
Follow the instructions in the [HiveBox project phase 3](../../projects/hivebox#phase-3).

---

If you are done, [🗂 Back to the Roadmap Index](../../README.md#roadmap-index)
If you are done, [🗂 Back to the Roadmap Index](../../getting-started)
Loading

0 comments on commit c30877d

Please sign in to comment.