-
Notifications
You must be signed in to change notification settings - Fork 110
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Ahmed AbouZaid <[email protected]>
- Loading branch information
Showing
42 changed files
with
15,828 additions
and
196 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
module.exports = { | ||
presets: [require.resolve('@docusaurus/core/lib/babel/preset')], | ||
}; |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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! |
71 changes: 19 additions & 52 deletions
71
content/00-overview/README.md → docs/content/introduction/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,73 +1,40 @@ | ||
# Overview | ||
|
||
[🗂 Back to the Roadmap Index](../../README.md#roadmap-index) | ||
--- | ||
title: "Introduction" | ||
description: "" | ||
--- | ||
|
||
## Table of Content | ||
[🗂 Back to the Roadmap Index](../../getting-started) | ||
|
||
- [Introduction](#introduction) | ||
- [BSET Model and Focus Areas](#bset-model-and-focus-areas) | ||
- [How to use this roadmap?](#how-to-use-this-roadmap) | ||
<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> | ||
|
||
## Introduction | ||
## Overview | ||
|
||
<a href="../img/devops-roadmap-dynamic.png" imageanchor="1"> | ||
<img alt="Linear DevOps roadmap is broken by default" align="right" width="30%" src="../img/devops-roadmap-dynamic.png" /> | ||
</a> | ||
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. | ||
|
||
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. | ||
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. | ||
|
||
## BSET Model and Focus Areas | ||
## 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. | ||
|
||
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. | ||
|
||
## How to use this roadmap? | ||
|
||
This roadmap is `polymorphic`, which means it's designed to work in different modes, depending on how fast you want to go. | ||
|
||
### 1. Self-Learning Course | ||
|
||
This mode is the default and is available for everyone in this repo. In this mode, you are not expected to have DevOps experience, and you want to go from zero to hero, transforming your knowledge to land your first job as a DevOps Engineer. | ||
|
||
How to process: | ||
## DevOps Topologies | ||
|
||
- Read each module in the roadmap in the same order. | ||
- In each module, you will find two sections: | ||
- `What you need to know`: It emphasizes the most important points and areas you should know about as a DevOps Engineer. | ||
- `Resources`: It provides some learning resources, but you are free to learn from any other resources. | ||
- In this mode, you manage all your learning plans by yourself, and we highly recommend asking a Senior DevOps Engineer (a friend or someone from the community) to review your plans and progress. | ||
|
||
### 2. Hands-on Project | ||
|
||
In this mode, you already have some experience with DevOps (usually between 1-2 years of work experience). Still, you want to further your skills with a real hands-on industry-grad project to learn DevOps pragmatically. This mode is also available to everyone in this repo. | ||
|
||
The project follows the `Learning by Doing` method (aka `Problem-based Learning`), which is done in iterative phases. In this method, you learn as you go and cover the whole DevOps cycle. | ||
|
||
How to process: | ||
|
||
- [Go to the HiveBox hands-on project](../../projects/hivebox/README.md). | ||
- Read the intro of the project and the goals of it. | ||
- Follow and implement the requests of each phase in the same order. | ||
- Each stage builds on the previous stage (the phases are continued, not separated). | ||
|
||
> [!NOTE] | ||
> Each phase of this project is tackled gradually as 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 | ||
|
||
This mode covers the previous two modes (that means it could be only for the project or the whole roadmap) but with support from a `mentor`! [DevOps Hive](https://devopshive.net/) will provide you with a DevOps expert who will guide you in following up on your progress and personalizing your learning plan. | ||
|
||
A plus point in the mentorship is that you will get access to the roadmap board, where you can utilize Agile methodologies like Epics and Kanban to implement the plan. This will incorporate real-world scenarios and best practices, which you will use in a real job when working in an Agile environment. | ||
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](../../README.md#roadmap-index) | ||
If you are done, [🗂 Back to the Roadmap Index](../../getting-started) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.