Skip to content

Commit

Permalink
added: setup the roadmap website using docusaurus
Browse files Browse the repository at this point in the history
Signed-off-by: Ahmed AbouZaid <[email protected]>
  • Loading branch information
aabouzaid committed Oct 8, 2024
1 parent ab9b576 commit b5942bd
Show file tree
Hide file tree
Showing 58 changed files with 20,767 additions and 377 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*
190 changes: 20 additions & 170 deletions README.md

Large diffs are not rendered by default.

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.

8 changes: 8 additions & 0 deletions docs/content/_category_.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
label: Content
position: 3
collapsed: false
link:
type: generated-index
description: Dive into DevOps world with a plan!
image: /img/dynamic-devops-roadmap-flow-regular-bg.png
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#roadmap-index)

<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 Topology

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#roadmap-index)
27 changes: 12 additions & 15 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,16 @@
# Module 1: Welcome to the DevOps World

[🗂 Back to the Roadmap Index](../../README.md#roadmap-index)
---
title: "Module 1: Welcome to the DevOps World"
sidebar_label: "1. Welcome to the DevOps World"
description: ""
---

## Table of Content
[🗂 Back to the Roadmap Index](../../getting-started#roadmap-index)

- [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)
<p align="center">
<img alt="Module Overview" border="0" width="90%" src={require('./module-01-overview.png').default} />
</p>

## 1.1 Introduction - What and Why DevOps?
## 1.1 Overview - What and Why DevOps?

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 +144,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#roadmap-index)
Binary file added docs/content/module-01/module-01-overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
26 changes: 11 additions & 15 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,14 @@
# Module 2: Basics - DevOps Core

[🗂 Back to the Roadmap Index](../../README.md#roadmap-index)
---
title: "Module 2: Basics - DevOps Core"
sidebar_label: "2. Basics - DevOps Core"
description: ""
---

## Table of Content
[🗂 Back to the Roadmap Index](../../getting-started#roadmap-index)

- [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)
<p align="center">
<img alt="Module Overview" border="0" width="90%" src={require('./module-02-overview.png').default} />
</p>

## 2.1 Code - Python Fundamentals

Expand Down Expand Up @@ -140,8 +136,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#roadmap-index)
Binary file added docs/content/module-02/module-02-overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
26 changes: 11 additions & 15 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,14 @@
# Module 3: Start - Laying the Foundation

[🗂 Back to the Roadmap Index](../../README.md#roadmap-index)
---
title: "Module 3: Start - Laying the Foundation"
sidebar_label: "3. Start - Laying the Foundation"
description: ""
---

## Table of Content
[🗂 Back to the Roadmap Index](../../getting-started#roadmap-index)

- [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)
<p align="center">
<img alt="Module Overview" border="0" width="90%" src={require('./module-03-overview.png').default} />
</p>

## 3.1 Planning - Define Goals and Requirements

Expand Down Expand Up @@ -157,8 +153,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#roadmap-index)
Binary file added docs/content/module-03/module-03-overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit b5942bd

Please sign in to comment.