From e5158ed234f6a1ef6f94e32a2e0685793db5c6b5 Mon Sep 17 00:00:00 2001
From: MorVered7
Date: Mon, 17 Feb 2025 11:15:03 -0800
Subject: [PATCH 01/30] added lessons
---
.../topic-1-git/chapter-5-advanced-git-techniques/index.md | 0
.../topic-3-devsecops/chapter-3-security-frameworks/index.md | 0
docs/course/topic-3-devsecops/chapter-4-cloud-security/index.md | 0
.../chapter-5-threat-modeling-and-risk-assessment/index.md | 0
.../chapter-6-secure-code-and-hardening/index.md | 0
.../labs/sql-injection-lab.md | 0
.../topic-3-devsecops/chapter-7-supply-chain-security/index.md | 0
.../labs/detecting-vulnerabilities-lab.md | 1 +
8 files changed, 1 insertion(+)
create mode 100644 docs/course/topic-1-git/chapter-5-advanced-git-techniques/index.md
create mode 100644 docs/course/topic-3-devsecops/chapter-3-security-frameworks/index.md
create mode 100644 docs/course/topic-3-devsecops/chapter-4-cloud-security/index.md
create mode 100644 docs/course/topic-3-devsecops/chapter-5-threat-modeling-and-risk-assessment/index.md
create mode 100644 docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/index.md
create mode 100644 docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/labs/sql-injection-lab.md
create mode 100644 docs/course/topic-3-devsecops/chapter-7-supply-chain-security/index.md
create mode 100644 docs/course/topic-3-devsecops/chapter-7-supply-chain-security/labs/detecting-vulnerabilities-lab.md
diff --git a/docs/course/topic-1-git/chapter-5-advanced-git-techniques/index.md b/docs/course/topic-1-git/chapter-5-advanced-git-techniques/index.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/course/topic-3-devsecops/chapter-3-security-frameworks/index.md b/docs/course/topic-3-devsecops/chapter-3-security-frameworks/index.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/course/topic-3-devsecops/chapter-4-cloud-security/index.md b/docs/course/topic-3-devsecops/chapter-4-cloud-security/index.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/course/topic-3-devsecops/chapter-5-threat-modeling-and-risk-assessment/index.md b/docs/course/topic-3-devsecops/chapter-5-threat-modeling-and-risk-assessment/index.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/index.md b/docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/index.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/labs/sql-injection-lab.md b/docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/labs/sql-injection-lab.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/course/topic-3-devsecops/chapter-7-supply-chain-security/index.md b/docs/course/topic-3-devsecops/chapter-7-supply-chain-security/index.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/course/topic-3-devsecops/chapter-7-supply-chain-security/labs/detecting-vulnerabilities-lab.md b/docs/course/topic-3-devsecops/chapter-7-supply-chain-security/labs/detecting-vulnerabilities-lab.md
new file mode 100644
index 0000000..66aef38
--- /dev/null
+++ b/docs/course/topic-3-devsecops/chapter-7-supply-chain-security/labs/detecting-vulnerabilities-lab.md
@@ -0,0 +1 @@
+detecting vulnerabilities in open source dependencies
\ No newline at end of file
From 1ec789c25248a1f46feee7e8a2eb9d780c0e788a Mon Sep 17 00:00:00 2001
From: MorVered7
Date: Mon, 17 Feb 2025 11:17:56 -0800
Subject: [PATCH 02/30] added some labs
---
.../labs/securing-a-vulnerable-web-app.md | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/labs/securing-a-vulnerable-web-app.md
diff --git a/docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/labs/securing-a-vulnerable-web-app.md b/docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/labs/securing-a-vulnerable-web-app.md
new file mode 100644
index 0000000..e69de29
From 62d1914125dc88abea4e3f4d53cb60d783613cfe Mon Sep 17 00:00:00 2001
From: jsmargarones
Date: Fri, 18 Apr 2025 15:26:47 -0700
Subject: [PATCH 03/30] Changes to structure of topics and chapters
---
.../chapter-1-SDLC/index.md | 11 ++
.../chapter-2-version-control/index.md | 38 ++++++
.../chapter-3-intro-to-devOps}/index.md | 6 +-
.../chapter-4-intro-to-cicd/index.md | 124 ++++++++++++++++++
.../chapter-5-intro-to-devsecops/index.md | 104 +++++++++++++++
.../index.md | 18 +++
.../review-and-knowledge-check/index.md | 9 ++
.../chapter-1-version-control/index.md | 4 +-
.../chapter-2-understanding-git/Git.jpg | Bin
.../chapter-2-understanding-git/index.md | 2 +-
.../lab/csd-lab-1.md | 0
.../chapter-3-Intermediate-Concepts/index.md | 2 +-
.../lab/git-lab-1.md | 2 +-
.../chapter-4-git-best-practices/index.md | 2 +-
.../index.md | 9 ++
.../{topic-1-git => Topic-2-Git}/index.md | 6 +-
.../review-and-knowledge-check/index.md | 9 ++
.../chapter-1-cicd-core-concepts}/index.md | 6 +-
.../chapter-2-webhooks}/index.md | 6 +-
.../chapter-3-automated-testing}/index.md | 6 +-
.../chapter-4-deployment}/index.md | 6 +-
.../lab/deployment-lab-1.md | 4 +-
.../lab/imgs/jenkins-login.png | Bin
.../lab/imgs/wireguard.png | Bin
.../chapter-4-deployment}/lab/overview.md | 4 +-
.../chapter-5-containerization}/index.md | 6 +-
.../lab/containerization-lab-1.md | 4 +-
.../lab/containerization-lab-2.md | 4 +-
.../lab/imgs/clone.png | Bin
.../lab/imgs/dashboard.png | Bin
.../lab/imgs/fork.png | Bin
.../lab/imgs/wireguard.png | Bin
.../lab/overview.md | 4 +-
docs/course/Topic-3-CICD-Concepts/index.md | 13 ++
.../review-and-knowledge-check/index.md | 9 ++
.../chapter-1-devsecops/index.md | 2 +-
.../labs/devsecops-lab-1.md | 0
.../index.md | 2 +-
.../lab/devsecops-lab-1.md | 0
.../lab/overview.md | 0
.../index.md | 4 +-
docs/course/Topic-5-Cloud/index.md | 15 +++
.../index.md | 0
docs/course/topic-2-DevOps/index.md | 19 ---
.../chapter-3-security-frameworks/index.md | 0
.../chapter-4-cloud-security/index.md | 0
.../index.md | 0
.../index.md | 0
.../labs/securing-a-vulnerable-web-app.md | 0
.../labs/sql-injection-lab.md | 0
.../chapter-7-supply-chain-security/index.md | 0
.../labs/detecting-vulnerabilities-lab.md | 1 -
docs/other/index.md | 2 +-
index.md | 10 --
54 files changed, 401 insertions(+), 72 deletions(-)
create mode 100644 docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-1-SDLC/index.md
create mode 100644 docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-2-version-control/index.md
rename docs/course/{topic-2-DevOps/chapter-1-intro-to-devops => Topic-1-Software-Dev-and-DevSecOps/chapter-3-intro-to-devOps}/index.md (99%)
create mode 100644 docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-4-intro-to-cicd/index.md
create mode 100644 docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-5-intro-to-devsecops/index.md
create mode 100644 docs/course/Topic-1-Software-Dev-and-DevSecOps/index.md
create mode 100644 docs/course/Topic-1-Software-Dev-and-DevSecOps/review-and-knowledge-check/index.md
rename docs/course/{topic-1-git => Topic-2-Git}/chapter-1-version-control/index.md (97%)
rename docs/course/{topic-1-git => Topic-2-Git}/chapter-2-understanding-git/Git.jpg (100%)
rename docs/course/{topic-1-git => Topic-2-Git}/chapter-2-understanding-git/index.md (99%)
rename docs/course/{topic-1-git => Topic-2-Git}/chapter-2-understanding-git/lab/csd-lab-1.md (100%)
rename docs/course/{topic-1-git => Topic-2-Git}/chapter-3-Intermediate-Concepts/index.md (99%)
rename docs/course/{topic-1-git => Topic-2-Git}/chapter-3-Intermediate-Concepts/lab/git-lab-1.md (98%)
rename docs/course/{topic-1-git => Topic-2-Git}/chapter-4-git-best-practices/index.md (99%)
create mode 100644 docs/course/Topic-2-Git/chapter-5-advanced-git-techniques/index.md
rename docs/course/{topic-1-git => Topic-2-Git}/index.md (95%)
create mode 100644 docs/course/Topic-2-Git/review-and-knowledge-check/index.md
rename docs/course/{topic-2-DevOps/chapter-2-intro-to-ci-cd => Topic-3-CICD-Concepts/chapter-1-cicd-core-concepts}/index.md (98%)
rename docs/course/{topic-2-DevOps/chapter-4-webhooks => Topic-3-CICD-Concepts/chapter-2-webhooks}/index.md (97%)
rename docs/course/{topic-2-DevOps/chapter-5-automation => Topic-3-CICD-Concepts/chapter-3-automated-testing}/index.md (98%)
rename docs/course/{topic-2-DevOps/chapter-6-deployment => Topic-3-CICD-Concepts/chapter-4-deployment}/index.md (99%)
rename docs/course/{topic-2-DevOps/chapter-6-deployment => Topic-3-CICD-Concepts/chapter-4-deployment}/lab/deployment-lab-1.md (99%)
rename docs/course/{topic-2-DevOps/chapter-6-deployment => Topic-3-CICD-Concepts/chapter-4-deployment}/lab/imgs/jenkins-login.png (100%)
rename docs/course/{topic-2-DevOps/chapter-3-containerization => Topic-3-CICD-Concepts/chapter-4-deployment}/lab/imgs/wireguard.png (100%)
rename docs/course/{topic-2-DevOps/chapter-6-deployment => Topic-3-CICD-Concepts/chapter-4-deployment}/lab/overview.md (96%)
rename docs/course/{topic-2-DevOps/chapter-3-containerization => Topic-3-CICD-Concepts/chapter-5-containerization}/index.md (99%)
rename docs/course/{topic-2-DevOps/chapter-3-containerization => Topic-3-CICD-Concepts/chapter-5-containerization}/lab/containerization-lab-1.md (99%)
rename docs/course/{topic-2-DevOps/chapter-3-containerization => Topic-3-CICD-Concepts/chapter-5-containerization}/lab/containerization-lab-2.md (98%)
rename docs/course/{topic-2-DevOps/chapter-3-containerization => Topic-3-CICD-Concepts/chapter-5-containerization}/lab/imgs/clone.png (100%)
rename docs/course/{topic-2-DevOps/chapter-3-containerization => Topic-3-CICD-Concepts/chapter-5-containerization}/lab/imgs/dashboard.png (100%)
rename docs/course/{topic-2-DevOps/chapter-3-containerization => Topic-3-CICD-Concepts/chapter-5-containerization}/lab/imgs/fork.png (100%)
rename docs/course/{topic-2-DevOps/chapter-6-deployment => Topic-3-CICD-Concepts/chapter-5-containerization}/lab/imgs/wireguard.png (100%)
rename docs/course/{topic-2-DevOps/chapter-3-containerization => Topic-3-CICD-Concepts/chapter-5-containerization}/lab/overview.md (96%)
create mode 100644 docs/course/Topic-3-CICD-Concepts/index.md
create mode 100644 docs/course/Topic-3-CICD-Concepts/review-and-knowledge-check/index.md
rename docs/course/{topic-3-devsecops => Topic-4-Devsecops-Fundmentals}/chapter-1-devsecops/index.md (99%)
rename docs/course/{topic-3-devsecops => Topic-4-Devsecops-Fundmentals}/chapter-1-devsecops/labs/devsecops-lab-1.md (100%)
rename docs/course/{topic-3-devsecops => Topic-4-Devsecops-Fundmentals}/chapter-2-security-checks-in-CICD/index.md (99%)
rename docs/course/{topic-3-devsecops => Topic-4-Devsecops-Fundmentals}/chapter-2-security-checks-in-CICD/lab/devsecops-lab-1.md (100%)
rename docs/course/{topic-3-devsecops => Topic-4-Devsecops-Fundmentals}/chapter-2-security-checks-in-CICD/lab/overview.md (100%)
rename docs/course/{topic-3-devsecops => Topic-4-Devsecops-Fundmentals}/index.md (90%)
create mode 100644 docs/course/Topic-5-Cloud/index.md
delete mode 100644 docs/course/topic-1-git/chapter-5-advanced-git-techniques/index.md
delete mode 100644 docs/course/topic-2-DevOps/index.md
delete mode 100644 docs/course/topic-3-devsecops/chapter-3-security-frameworks/index.md
delete mode 100644 docs/course/topic-3-devsecops/chapter-4-cloud-security/index.md
delete mode 100644 docs/course/topic-3-devsecops/chapter-5-threat-modeling-and-risk-assessment/index.md
delete mode 100644 docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/index.md
delete mode 100644 docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/labs/securing-a-vulnerable-web-app.md
delete mode 100644 docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/labs/sql-injection-lab.md
delete mode 100644 docs/course/topic-3-devsecops/chapter-7-supply-chain-security/index.md
delete mode 100644 docs/course/topic-3-devsecops/chapter-7-supply-chain-security/labs/detecting-vulnerabilities-lab.md
diff --git a/docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-1-SDLC/index.md b/docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-1-SDLC/index.md
new file mode 100644
index 0000000..0676e56
--- /dev/null
+++ b/docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-1-SDLC/index.md
@@ -0,0 +1,11 @@
+---
+title: Chapter 1 - Introduction to SDLC
+layout: custom
+parent: Topic 1 - Introduction to SDLC and DevSecOps
+has_children: false
+has_toc: false
+nav_order: 1
+---
+
+# Chapter 1 - Introduction to SDLC
+## What is the Software Development Lifecycle (SDLC)?
diff --git a/docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-2-version-control/index.md b/docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-2-version-control/index.md
new file mode 100644
index 0000000..0f72ec8
--- /dev/null
+++ b/docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-2-version-control/index.md
@@ -0,0 +1,38 @@
+---
+title: Chapter 2 - Version Control
+layout: custom
+parent: Topic 1 - Introduction to SDLC and DevSecOps
+has_children: false
+has_toc: false
+nav_order: 2
+---
+
+# Chapter 1 - Introduction to Version Control
+## What is version control?
+Version control is **a system that records changes to a file or set of files over time** so that you can recall specific versions later. It's a critical tool in modern software development, allowing developers to work collaboratively, track every modification, and revert to previous states if necessary.
+
+> **Example Scenario**
+>
+> Armine and Tigran are part of a software development team tasked with creating a new mobile application. Armine is tasked with refining the user authentication system, while Tigran is implementing an innovative feature that allows users to share media within the app.
+>
+> **Without Version Control**: If Armine and Tigran are editing the same file, Tigran's latest upload could accidentally overwrite the changes Armine made, resulting in a loss of progress and potential conflicts in the code.
+>
+> **With Version Control**: Armine and Tigran can work on their updates concurrently without the risk of interfering with each other's contributions. Here's how it unfolds:
+>
+> - Independently, they make their changes and commit their updates to the version control system, each creating a new version in the repository.
+>
+> - The version control system alerts them to the presence of new, separate updates, signaling that a merge of changes is necessary.
+>
+> - Together, they examine the differences, carefully integrate their respective code changes, and commit the unified version to the repository.
+>
+> - Should an issue arise with the authentication update, Armine can revert her portion of the code to a previous state without disrupting Tigran's feature, thanks to the version history maintained by the system.
+
+A common tool for version control is GitHub. GitHub allows you acts as a central hub for all of the different versions of your code, kind of how in google docs you can see the history of your changes. Though there are many different systems for version control, we will be learning using GitHubs features. The syntax and user interface of different products are different, but the core elements are the same.
+
+### References
+
+ Expand
+ 1. Atlassian. “What Is Version Control: Atlassian Git Tutorial.” Atlassian, www.atlassian.com/git/tutorials/what-is-version-control. Accessed 15 Apr. 2024.
+ 2. “1.1 Getting Started - about Version Control.” Git, git-scm.com/book/en/v2/Getting-Started-About-Version-Control. Accessed 15 Apr. 2024.
+ 3. “What Is Version Control?” GitLab, GitLab, 4 Apr. 2023, about.gitlab.com/topics/version-control/.
+
\ No newline at end of file
diff --git a/docs/course/topic-2-DevOps/chapter-1-intro-to-devops/index.md b/docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-3-intro-to-devOps/index.md
similarity index 99%
rename from docs/course/topic-2-DevOps/chapter-1-intro-to-devops/index.md
rename to docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-3-intro-to-devOps/index.md
index 2632916..32c0965 100644
--- a/docs/course/topic-2-DevOps/chapter-1-intro-to-devops/index.md
+++ b/docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-3-intro-to-devOps/index.md
@@ -1,10 +1,10 @@
---
-title: Chapter 1 - Intro to DevOps
+title: Chapter 3 - Intro to DevOps
layout: custom
-parent: Topic 2 - DevOps
+parent: Topic 1 - Introduction to SDLC and DevSecOps
has_children: false
has_toc: false
-nav_order: 1
+nav_order: 3
---
# Introduction to DevOps
## Problem Space
diff --git a/docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-4-intro-to-cicd/index.md b/docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-4-intro-to-cicd/index.md
new file mode 100644
index 0000000..8dd0a2d
--- /dev/null
+++ b/docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-4-intro-to-cicd/index.md
@@ -0,0 +1,124 @@
+---
+title: Chapter 4 - Intro to CI/CD
+layout: custom
+parent: Topic 1 - Introduction to SDLC and DevSecOps
+has_children: false
+has_toc: false
+nav_order: 4
+---
+
+# Introduction to CI/CD
+CI/CD, short for Continuous Integration and Continuous Delivery, is a part of the DevOps process. “It is a collection of principles and practices designed to help development teams ensure the reliable delivery of frequent code changes.”
+
+
+
+## DevOps vs. CI/CD
+
+
+
+ | Category |
+ DevOps |
+ CI |
+ CD |
+
+
+ | Purpose |
+ Facilitate collaboration and efficiency across the development lifecycle. |
+ Automate testing to ensure code compatibility. |
+ Automate deployment for seamless software releases. |
+
+
+ | Methods |
+
+
+ - Implement automation to streamline collaboration between development and operations teams.
+ - Use infrastructure as code (IaC) to provision and manage infrastructure.
+ - Integrate continuous feedback loops to gather insights from stakeholders and improve processes iteratively.
+
+ |
+
+
+ - Automate the build and testing process for every code change.
+ - Identify integration issues early in the development lifecycle.
+ - Support the principle of "fail fast" by providing rapid feedback to developers.
+
+ |
+
+
+ - Encompass both Continuous Integration and Continuous Deployment.
+ - Automate the deployment process to production environments.
+ - Enable organizations to release software updates quickly and reliably while minimizing risks.
+
+ |
+
+
+ | Key Benefits |
+
+
+ - Promotes a culture of shared responsibility and accountability.
+ - Emphasizes the importance of automating repetitive tasks to reduce manual errors and increase efficiency.
+ - Focuses on delivering value to customers through rapid and iterative development cycles.
+
+ |
+
+
+ - Increases code quality by identifying issues early in the development process.
+ - Speeds up the development cycle by automating build and testing processes.
+ - Enables rapid feedback to developers for quick iterations.
+
+ |
+
+
+ - Accelerates time to market by automating deployment processes.
+ - Minimizes risks associated with manual deployments.
+ - Enhances overall software reliability and stability.
+
+ |
+
+
+
+### References
+
+ Expand
+ 1. Ashtari, Hossein et al. “Key Differences between CI/CD and DevOps.” Spiceworks, www.spiceworks.com/tech/devops/articles/cicd-vs-devops/. Accessed 20 Feb. 2024.
+ 2. Ferringer, Megan. “Here’s the Difference between CI/CD and Devops-and How They Work Together to Drive Innovation.” Navisite, 2 Mar. 2023, www.navisite.com/blog/insights/ci-cd-vs-devops/.
+ 3. “What the Hell Are CI/CD and DevOps? A Cheatsheet for the Rest of Us.” Mind the Product, www.mindtheproduct.com/what-the-hell-are-ci-cd-and-devops-a-cheatsheet-for-the-rest-of-us/. Accessed 20 Feb. 2024.
+ 4. “The IDEAL & Practical CI / CD Pipeline - Concepts Overview.” YouTube, 17 Feb. 2022, www.youtube.com/watch?v=OPwU3UWCxhw.
+ 5. Morg, Brad. “How to Design a Modern CI/CD Pipeline.” YouTube, 17 Oct. 2023, www.youtube.com/watch?v=KnSBNd3b0qI.
+ 6. Morg, Brad. “How to Design a Deployment Pipeline (GitOps).” YouTube, 30 Oct. 2023, www.youtube.com/watch?v=pJ9f7w4AxtU.
+
diff --git a/docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-5-intro-to-devsecops/index.md b/docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-5-intro-to-devsecops/index.md
new file mode 100644
index 0000000..7d641f7
--- /dev/null
+++ b/docs/course/Topic-1-Software-Dev-and-DevSecOps/chapter-5-intro-to-devsecops/index.md
@@ -0,0 +1,104 @@
+---
+title: Chapter 5 - Introduction to DevSecOps
+layout: custom
+parent: Topic 1 - Introduction to SDLC and DevSecOps
+has_children: false
+has_toc: false
+nav_order: 5
+---
+
+
+# Chapter 5 - Introduction to DevSecOps
+
+## Defining DevSecOps
+- Dev = Development
+- Sec = Security
+- Ops = Operations
+
+**DevSecOps is a methodology that integrates security practices within the DevOps process.** The main goal of DevSecOps is to embed security in every part of the development lifecycle, from initial design through integration, testing, deployment, and software delivery.
+
+Ok, now what? You just have to start integrating this into your coding practices? Actually yes, the whole reason this curriculum is applicable for every person working in IT is because it is best development practice to have a secure lifecycle throughout all of the processes IT goes through when developing a project.
+
+
+
+
+
+
+## Why Implement DevSecOps:
+
+**The Importance of Security in SDLC:**
+
+The software development lifecycle (SDLC) is a framework used to develop, deploy, and maintain software. A common problem in software development is that security related activities are deferred until the testing phase, which is late in the SDLC after most of the critical design and implementation has been completed. Missing a security related risk could be costly, set back progress, and go unnoticed causing room for further severe impact.
+
+**What is "Shift" Testing:**
+
+"Shift left" and "shift right" are terms that emphasize implementing security practices throughout the SDLC. By adopting shift left and shift right principles, teams are able to fix security flaws early on. They are meant to evaluate and ensure quality of the project by focusing on continuous testing methods.
+
+To **shift left** is to incorporate security testing as soon as possible to find vulnerabilities and fix defects as early as possible in development.
+
+To **shift right** is to monitor user behavior, usage, performance, and security metrics in the production stage to verify software operability.
+
+Source: Red Hat
+
+
+
+
+## Tools and technologies:
+
+Infrastructure as code scanning
+
+
+
DevSecOps teams use open source tools like Terraform to manage and provision infrastructure like networks, virtual machines, and load balancers through code rather than doing it manually
+
+ Terraform helps ensure that infrastructure is set up and updated consistently across hundreds or thousands of servers
+
+ Infrastructure as a code scanning tools automatically check the infrastructure at the code level for noncompliance with security policies and standards
+Source: Microsoft
+
+
+
+
+
+Dynamic and Static Application Security Testing
+
+
+
Dynamic application security testing: This process of testing tests the methods a bad actor might use to attack an application. This testing occurs while the application is running and is based on predefined use cases.
+
+ Static application security testing: Before their code compiles, DevSecOps developers begin testing their custom code for security vulnerabilities. Static application security testing tools make this process easier with automatic checks and real-time feedback, often specifying exactly where an vulnerability is
+
+
+Source: Microsoft
+
+
+
+
+Container Scanning
+
+
+
Container: A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another
+
+Containers are widely used in DevSecOps because they help developers easily deploy self-contained units of code
+
+Container Image: Within a container is a container image, which is a executable software bundle that runs processes for the container. These images are often built using existing images or pulled from public repositories.
+
+Source 1: Docker
+Source 2: Microsoft
+
+
+
+
+
+
+### References
+
+**1.** “What is DevSecOps?” *Red Hat*, [https://www.redhat.com/en/topics/devops/what-is-devsecops](https://www.redhat.com/en/topics/devops/what-is-devsecops). Accessed 8 Apr. 2024.
+
+**2.** “What is DevSecOps?” *Microsoft*, [https://www.microsoft.com/en-us/security/business/security-101/what-is-devsecops](https://www.microsoft.com/en-us/security/business/security-101/what-is-devsecops). Accessed 8 Apr. 2024.
+
+**3.** “Use containers to Build, Share and Run your applications” *Docker*, [https://www.docker.com/resources/what-container/](https://www.docker.com/resources/what-container/). Accessed 8 Apr. 2024.
+
+**4.** “Shift left vs. shift right” *Red Hat*, [https://www.redhat.com/en/topics/devops/shift-left-vs-shift-right](https://www.redhat.com/en/topics/devops/shift-left-vs-shift-right). Accessed 8 Apr. 2024.
+
diff --git a/docs/course/Topic-1-Software-Dev-and-DevSecOps/index.md b/docs/course/Topic-1-Software-Dev-and-DevSecOps/index.md
new file mode 100644
index 0000000..2bbd54b
--- /dev/null
+++ b/docs/course/Topic-1-Software-Dev-and-DevSecOps/index.md
@@ -0,0 +1,18 @@
+---
+title: Topic 1 - Introduction to SDLC and DevSecOps
+layout: custom
+parent:
+has_children: true
+has_toc: false
+nav_order: 3
+---
+
+# Topic 1 - Introduction to the SDLC and DevSecOps
+
+| Chapter | Learning Objectives | Lab Description |
+|---------|---------------------|-----------------|
+| Chapter 1: Introduction to SDLC | - Define Software Development Lifecycle
- Understand the basics of SDLC methodologies
- Explore the benefits of using different methodologies
| |
+| Chapter 2: Intro to Version Control | - Define version control
- Understand the basics of version control systems
- Explore the benefits of using version control
- Introduction to common version control tools| |
+| Chapter 3: Introduction to DevOps | - Define DevOps
|
+| Chapter 4: Introduction to CI/CD | - Establish effective documentation habits
- Discuss the importance of READMEs and wikis
- Explore best practices for inline code commenting |
+| Chapter 4: Securing SDLC with DevSecOps | - Define DevSecOps
| |
\ No newline at end of file
diff --git a/docs/course/Topic-1-Software-Dev-and-DevSecOps/review-and-knowledge-check/index.md b/docs/course/Topic-1-Software-Dev-and-DevSecOps/review-and-knowledge-check/index.md
new file mode 100644
index 0000000..7ba6a92
--- /dev/null
+++ b/docs/course/Topic-1-Software-Dev-and-DevSecOps/review-and-knowledge-check/index.md
@@ -0,0 +1,9 @@
+---
+title: Topic Review and Knowledge Check
+layout: custom
+parent: Topic 1 - Introduction to SDLC and DevSecOps
+has_toc: false
+nav_order: 6
+---
+
+# Topic Review and Knowledge Check
\ No newline at end of file
diff --git a/docs/course/topic-1-git/chapter-1-version-control/index.md b/docs/course/Topic-2-Git/chapter-1-version-control/index.md
similarity index 97%
rename from docs/course/topic-1-git/chapter-1-version-control/index.md
rename to docs/course/Topic-2-Git/chapter-1-version-control/index.md
index 97e85f6..2d5aa6e 100644
--- a/docs/course/topic-1-git/chapter-1-version-control/index.md
+++ b/docs/course/Topic-2-Git/chapter-1-version-control/index.md
@@ -1,7 +1,7 @@
---
-title: Chapter 1 - Introduction to Version Control
+title: Chapter 1 - Version Control
layout: custom
-parent: Topic 1 - Git
+parent: Topic 2 - Git
has_children: false
has_toc: false
nav_order: 1
diff --git a/docs/course/topic-1-git/chapter-2-understanding-git/Git.jpg b/docs/course/Topic-2-Git/chapter-2-understanding-git/Git.jpg
similarity index 100%
rename from docs/course/topic-1-git/chapter-2-understanding-git/Git.jpg
rename to docs/course/Topic-2-Git/chapter-2-understanding-git/Git.jpg
diff --git a/docs/course/topic-1-git/chapter-2-understanding-git/index.md b/docs/course/Topic-2-Git/chapter-2-understanding-git/index.md
similarity index 99%
rename from docs/course/topic-1-git/chapter-2-understanding-git/index.md
rename to docs/course/Topic-2-Git/chapter-2-understanding-git/index.md
index bac5343..2410bc7 100644
--- a/docs/course/topic-1-git/chapter-2-understanding-git/index.md
+++ b/docs/course/Topic-2-Git/chapter-2-understanding-git/index.md
@@ -1,7 +1,7 @@
---
title: Chapter 2 - Git Fundamentals
layout: custom
-parent: Topic 1 - Git
+parent: Topic 2 - Git
has_toc: false
has_children: false
nav_order: 2
diff --git a/docs/course/topic-1-git/chapter-2-understanding-git/lab/csd-lab-1.md b/docs/course/Topic-2-Git/chapter-2-understanding-git/lab/csd-lab-1.md
similarity index 100%
rename from docs/course/topic-1-git/chapter-2-understanding-git/lab/csd-lab-1.md
rename to docs/course/Topic-2-Git/chapter-2-understanding-git/lab/csd-lab-1.md
diff --git a/docs/course/topic-1-git/chapter-3-Intermediate-Concepts/index.md b/docs/course/Topic-2-Git/chapter-3-Intermediate-Concepts/index.md
similarity index 99%
rename from docs/course/topic-1-git/chapter-3-Intermediate-Concepts/index.md
rename to docs/course/Topic-2-Git/chapter-3-Intermediate-Concepts/index.md
index 1929e27..dccd1bd 100644
--- a/docs/course/topic-1-git/chapter-3-Intermediate-Concepts/index.md
+++ b/docs/course/Topic-2-Git/chapter-3-Intermediate-Concepts/index.md
@@ -1,7 +1,7 @@
---
title: Chapter 3 - Git Intermediate Concepts
layout: custom
-parent: Topic 1 - Git
+parent: Topic 2 - Git
has_children: true
has_toc: false
nav_order: 3
diff --git a/docs/course/topic-1-git/chapter-3-Intermediate-Concepts/lab/git-lab-1.md b/docs/course/Topic-2-Git/chapter-3-Intermediate-Concepts/lab/git-lab-1.md
similarity index 98%
rename from docs/course/topic-1-git/chapter-3-Intermediate-Concepts/lab/git-lab-1.md
rename to docs/course/Topic-2-Git/chapter-3-Intermediate-Concepts/lab/git-lab-1.md
index b30f237..b20615c 100644
--- a/docs/course/topic-1-git/chapter-3-Intermediate-Concepts/lab/git-lab-1.md
+++ b/docs/course/Topic-2-Git/chapter-3-Intermediate-Concepts/lab/git-lab-1.md
@@ -1,7 +1,7 @@
---
layout: custom
title: Lab 1. Version Control and Branching
-grand_parent: Topic 1 - Git
+grand_parent: Topic 2 - Git
parent: Chapter 3 - Git Intermediate Concepts
nav_order: 1
---
diff --git a/docs/course/topic-1-git/chapter-4-git-best-practices/index.md b/docs/course/Topic-2-Git/chapter-4-git-best-practices/index.md
similarity index 99%
rename from docs/course/topic-1-git/chapter-4-git-best-practices/index.md
rename to docs/course/Topic-2-Git/chapter-4-git-best-practices/index.md
index a505e2e..2001747 100644
--- a/docs/course/topic-1-git/chapter-4-git-best-practices/index.md
+++ b/docs/course/Topic-2-Git/chapter-4-git-best-practices/index.md
@@ -1,7 +1,7 @@
---
title: Chapter 4 - Git Best Practices
layout: custom
-parent: Topic 1 - Git
+parent: Topic 2 - Git
has_toc: false
nav_order: 4
---
diff --git a/docs/course/Topic-2-Git/chapter-5-advanced-git-techniques/index.md b/docs/course/Topic-2-Git/chapter-5-advanced-git-techniques/index.md
new file mode 100644
index 0000000..123b55f
--- /dev/null
+++ b/docs/course/Topic-2-Git/chapter-5-advanced-git-techniques/index.md
@@ -0,0 +1,9 @@
+---
+title: Chapter 6 - Advanced Git Techniques
+layout: custom
+parent: Topic 2 - Git
+has_toc: false
+nav_order: 5
+---
+
+# Chapter 6 - Advanced Git Techniques
\ No newline at end of file
diff --git a/docs/course/topic-1-git/index.md b/docs/course/Topic-2-Git/index.md
similarity index 95%
rename from docs/course/topic-1-git/index.md
rename to docs/course/Topic-2-Git/index.md
index f0867a1..51ac42e 100644
--- a/docs/course/topic-1-git/index.md
+++ b/docs/course/Topic-2-Git/index.md
@@ -1,12 +1,12 @@
---
-title: Topic 1 - Git
+title: Topic 2 - Git
layout: custom
has_children: true
has_toc: false
-nav_order: 3
+nav_order: 4
---
-# Topic 1 - Git
+# Topic 2 - Git
| Chapter | Learning Objectives | Lab Description |
|---------|---------------------|-----------------|
diff --git a/docs/course/Topic-2-Git/review-and-knowledge-check/index.md b/docs/course/Topic-2-Git/review-and-knowledge-check/index.md
new file mode 100644
index 0000000..69dd512
--- /dev/null
+++ b/docs/course/Topic-2-Git/review-and-knowledge-check/index.md
@@ -0,0 +1,9 @@
+---
+title: Topic Review and Knowledge Check
+layout: custom
+parent: Topic 2 - Git
+has_toc: false
+nav_order: 6
+---
+
+# Topic Review and Knowledge Check
\ No newline at end of file
diff --git a/docs/course/topic-2-DevOps/chapter-2-intro-to-ci-cd/index.md b/docs/course/Topic-3-CICD-Concepts/chapter-1-cicd-core-concepts/index.md
similarity index 98%
rename from docs/course/topic-2-DevOps/chapter-2-intro-to-ci-cd/index.md
rename to docs/course/Topic-3-CICD-Concepts/chapter-1-cicd-core-concepts/index.md
index dd063e7..3dc7f71 100644
--- a/docs/course/topic-2-DevOps/chapter-2-intro-to-ci-cd/index.md
+++ b/docs/course/Topic-3-CICD-Concepts/chapter-1-cicd-core-concepts/index.md
@@ -1,13 +1,13 @@
---
-title: Chapter 2 - Intro to CI/CD
+title: Chapter 1 - CI/CD Fundamentals
layout: custom
-parent: Topic 2 - DevOps
+parent: Topic 3 - CI/CD Fundamentals
has_children: false
has_toc: false
nav_order: 2
---
-# Introduction to CI/CD
+# CI/CD Fundamentals
CI/CD, short for Continuous Integration and Continuous Delivery, is a part of the DevOps process. “It is a collection of principles and practices designed to help development teams ensure the reliable delivery of frequent code changes.”
diff --git a/docs/course/topic-2-DevOps/chapter-4-webhooks/index.md b/docs/course/Topic-3-CICD-Concepts/chapter-2-webhooks/index.md
similarity index 97%
rename from docs/course/topic-2-DevOps/chapter-4-webhooks/index.md
rename to docs/course/Topic-3-CICD-Concepts/chapter-2-webhooks/index.md
index 877ec53..32c0b09 100644
--- a/docs/course/topic-2-DevOps/chapter-4-webhooks/index.md
+++ b/docs/course/Topic-3-CICD-Concepts/chapter-2-webhooks/index.md
@@ -1,9 +1,9 @@
---
-title: Chapter 4 - Webhooks
+title: Chapter 2 - Webhooks
layout: custom
-parent: Topic 2 - DevOps
+parent: Topic 3 - CI/CD Fundamentals
has_toc: false
-nav_order: 4
+nav_order: 2
---
## Utilizing Web Hooks for Continuous Integration
diff --git a/docs/course/topic-2-DevOps/chapter-5-automation/index.md b/docs/course/Topic-3-CICD-Concepts/chapter-3-automated-testing/index.md
similarity index 98%
rename from docs/course/topic-2-DevOps/chapter-5-automation/index.md
rename to docs/course/Topic-3-CICD-Concepts/chapter-3-automated-testing/index.md
index 0979ccd..e22dc38 100644
--- a/docs/course/topic-2-DevOps/chapter-5-automation/index.md
+++ b/docs/course/Topic-3-CICD-Concepts/chapter-3-automated-testing/index.md
@@ -1,10 +1,10 @@
---
-title: Chapter 5 - Automated Tests
+title: Chapter 2 - Automated Tests
layout: custom
-parent: Topic 2 - DevOps
+parent: Topic 3 - CI/CD Fundamentals
has_children: false
has_toc: false
-nav_order: 5
+nav_order: 3
---
# Automated Testing in CI/CD
diff --git a/docs/course/topic-2-DevOps/chapter-6-deployment/index.md b/docs/course/Topic-3-CICD-Concepts/chapter-4-deployment/index.md
similarity index 99%
rename from docs/course/topic-2-DevOps/chapter-6-deployment/index.md
rename to docs/course/Topic-3-CICD-Concepts/chapter-4-deployment/index.md
index ce4878a..f0bb9f9 100644
--- a/docs/course/topic-2-DevOps/chapter-6-deployment/index.md
+++ b/docs/course/Topic-3-CICD-Concepts/chapter-4-deployment/index.md
@@ -1,10 +1,10 @@
---
-title: Chapter 6 - Deployment
+title: Chapter 4 - Deployment
layout: custom
-parent: Topic 2 - DevOps
+parent: Topic 3 - CI/CD Fundamentals
has_toc: false
has_children: true
-nav_order: 6
+nav_order: 4
---
# Introduction to Deployment
diff --git a/docs/course/topic-2-DevOps/chapter-6-deployment/lab/deployment-lab-1.md b/docs/course/Topic-3-CICD-Concepts/chapter-4-deployment/lab/deployment-lab-1.md
similarity index 99%
rename from docs/course/topic-2-DevOps/chapter-6-deployment/lab/deployment-lab-1.md
rename to docs/course/Topic-3-CICD-Concepts/chapter-4-deployment/lab/deployment-lab-1.md
index 5eda465..bacea92 100644
--- a/docs/course/topic-2-DevOps/chapter-6-deployment/lab/deployment-lab-1.md
+++ b/docs/course/Topic-3-CICD-Concepts/chapter-4-deployment/lab/deployment-lab-1.md
@@ -1,8 +1,8 @@
---
title: Lab 1. Configuring a Simple CI/CD Pipeline
layout: custom
-grand_parent: Topic 2 - DevOps
-parent: Chapter 6 - Deployment
+grand_parent: Topic 3 - CI/CD Fundamentals
+parent: Chapter 4 - Deployment
nav_order: 2
---
**Estimated Time to Complete:** 60 minutes
diff --git a/docs/course/topic-2-DevOps/chapter-6-deployment/lab/imgs/jenkins-login.png b/docs/course/Topic-3-CICD-Concepts/chapter-4-deployment/lab/imgs/jenkins-login.png
similarity index 100%
rename from docs/course/topic-2-DevOps/chapter-6-deployment/lab/imgs/jenkins-login.png
rename to docs/course/Topic-3-CICD-Concepts/chapter-4-deployment/lab/imgs/jenkins-login.png
diff --git a/docs/course/topic-2-DevOps/chapter-3-containerization/lab/imgs/wireguard.png b/docs/course/Topic-3-CICD-Concepts/chapter-4-deployment/lab/imgs/wireguard.png
similarity index 100%
rename from docs/course/topic-2-DevOps/chapter-3-containerization/lab/imgs/wireguard.png
rename to docs/course/Topic-3-CICD-Concepts/chapter-4-deployment/lab/imgs/wireguard.png
diff --git a/docs/course/topic-2-DevOps/chapter-6-deployment/lab/overview.md b/docs/course/Topic-3-CICD-Concepts/chapter-4-deployment/lab/overview.md
similarity index 96%
rename from docs/course/topic-2-DevOps/chapter-6-deployment/lab/overview.md
rename to docs/course/Topic-3-CICD-Concepts/chapter-4-deployment/lab/overview.md
index d2fb8e6..65f011e 100644
--- a/docs/course/topic-2-DevOps/chapter-6-deployment/lab/overview.md
+++ b/docs/course/Topic-3-CICD-Concepts/chapter-4-deployment/lab/overview.md
@@ -1,8 +1,8 @@
---
title: Labs Overview
layout: custom
-grand_parent: Topic 2 - DevOps
-parent: Chapter 6 - Deployment
+grand_parent: Topic 3 - CI/CD Fundamentals
+parent: Chapter 4 - Deployment
nav_order: 1
---
diff --git a/docs/course/topic-2-DevOps/chapter-3-containerization/index.md b/docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/index.md
similarity index 99%
rename from docs/course/topic-2-DevOps/chapter-3-containerization/index.md
rename to docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/index.md
index ffcd8ee..7b56cf1 100644
--- a/docs/course/topic-2-DevOps/chapter-3-containerization/index.md
+++ b/docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/index.md
@@ -1,10 +1,10 @@
---
-title: Chapter 3 - Containerization
+title: Chapter 5 - Containerization
layout: custom
-parent: Topic 2 - DevOps
+parent: Topic 3 - CI/CD Fundamentals
has_children: true
has_toc: false
-nav_order: 3
+nav_order: 5
---
## Definition of Containerization
diff --git a/docs/course/topic-2-DevOps/chapter-3-containerization/lab/containerization-lab-1.md b/docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/lab/containerization-lab-1.md
similarity index 99%
rename from docs/course/topic-2-DevOps/chapter-3-containerization/lab/containerization-lab-1.md
rename to docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/lab/containerization-lab-1.md
index 1662012..d84c734 100644
--- a/docs/course/topic-2-DevOps/chapter-3-containerization/lab/containerization-lab-1.md
+++ b/docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/lab/containerization-lab-1.md
@@ -1,8 +1,8 @@
---
layout: custom
title: Lab 1. Containerizing a React Application
-grand_parent: Topic 2 - DevOps
-parent: Chapter 3 - Containerization
+grand_parent: Topic 3 - CI/CD Fundamentals
+parent: Chapter 5 - Containerization
nav_order: 2
---
# Lab 1 - Containerizing a React Application
diff --git a/docs/course/topic-2-DevOps/chapter-3-containerization/lab/containerization-lab-2.md b/docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/lab/containerization-lab-2.md
similarity index 98%
rename from docs/course/topic-2-DevOps/chapter-3-containerization/lab/containerization-lab-2.md
rename to docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/lab/containerization-lab-2.md
index cf059df..7771157 100644
--- a/docs/course/topic-2-DevOps/chapter-3-containerization/lab/containerization-lab-2.md
+++ b/docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/lab/containerization-lab-2.md
@@ -1,8 +1,8 @@
---
layout: custom
title: Lab 2. Accessing Corporate Network and AWS ECR
-grand_parent: Topic 2 - DevOps
-parent: Chapter 3 - Containerization
+grand_parent: Topic 3 - CI/CD Fundamentals
+parent: Chapter 5 - Containerization
nav_order: 3
---
# Lab 2 - Accessing Corporate Network and AWS ECR
diff --git a/docs/course/topic-2-DevOps/chapter-3-containerization/lab/imgs/clone.png b/docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/lab/imgs/clone.png
similarity index 100%
rename from docs/course/topic-2-DevOps/chapter-3-containerization/lab/imgs/clone.png
rename to docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/lab/imgs/clone.png
diff --git a/docs/course/topic-2-DevOps/chapter-3-containerization/lab/imgs/dashboard.png b/docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/lab/imgs/dashboard.png
similarity index 100%
rename from docs/course/topic-2-DevOps/chapter-3-containerization/lab/imgs/dashboard.png
rename to docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/lab/imgs/dashboard.png
diff --git a/docs/course/topic-2-DevOps/chapter-3-containerization/lab/imgs/fork.png b/docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/lab/imgs/fork.png
similarity index 100%
rename from docs/course/topic-2-DevOps/chapter-3-containerization/lab/imgs/fork.png
rename to docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/lab/imgs/fork.png
diff --git a/docs/course/topic-2-DevOps/chapter-6-deployment/lab/imgs/wireguard.png b/docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/lab/imgs/wireguard.png
similarity index 100%
rename from docs/course/topic-2-DevOps/chapter-6-deployment/lab/imgs/wireguard.png
rename to docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/lab/imgs/wireguard.png
diff --git a/docs/course/topic-2-DevOps/chapter-3-containerization/lab/overview.md b/docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/lab/overview.md
similarity index 96%
rename from docs/course/topic-2-DevOps/chapter-3-containerization/lab/overview.md
rename to docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/lab/overview.md
index 8598680..f0cb904 100644
--- a/docs/course/topic-2-DevOps/chapter-3-containerization/lab/overview.md
+++ b/docs/course/Topic-3-CICD-Concepts/chapter-5-containerization/lab/overview.md
@@ -1,8 +1,8 @@
---
title: Labs Overview
layout: custom
-grand_parent: Topic 2 - DevOps
-parent: Chapter 3 - Containerization
+grand_parent: Topic 3 - CI/CD Fundamentals
+parent: Chapter 5 - Containerization
nav_order: 1
---
diff --git a/docs/course/Topic-3-CICD-Concepts/index.md b/docs/course/Topic-3-CICD-Concepts/index.md
new file mode 100644
index 0000000..07ffe84
--- /dev/null
+++ b/docs/course/Topic-3-CICD-Concepts/index.md
@@ -0,0 +1,13 @@
+---
+title: Topic 3 - CI/CD Fundamentals
+layout: custom
+has_children: true
+has_toc: false
+nav_order: 5
+---
+
+# Topic 3 - CI/CD Fundamentals
+
+| Chapter | Learning Objectives | Lab Description |
+|---------|---------------------|-----------------|
+
diff --git a/docs/course/Topic-3-CICD-Concepts/review-and-knowledge-check/index.md b/docs/course/Topic-3-CICD-Concepts/review-and-knowledge-check/index.md
new file mode 100644
index 0000000..6801c83
--- /dev/null
+++ b/docs/course/Topic-3-CICD-Concepts/review-and-knowledge-check/index.md
@@ -0,0 +1,9 @@
+---
+title: Topic Review and Knowledge Check
+layout: custom
+parent: Topic 3 - CI/CD Fundamentals
+has_toc: false
+nav_order: 5
+---
+
+# Topic Review and Knowledge Check
\ No newline at end of file
diff --git a/docs/course/topic-3-devsecops/chapter-1-devsecops/index.md b/docs/course/Topic-4-Devsecops-Fundmentals/chapter-1-devsecops/index.md
similarity index 99%
rename from docs/course/topic-3-devsecops/chapter-1-devsecops/index.md
rename to docs/course/Topic-4-Devsecops-Fundmentals/chapter-1-devsecops/index.md
index ccea82b..1499ad3 100644
--- a/docs/course/topic-3-devsecops/chapter-1-devsecops/index.md
+++ b/docs/course/Topic-4-Devsecops-Fundmentals/chapter-1-devsecops/index.md
@@ -1,7 +1,7 @@
---
title: Chapter 1 - DevSecOps
layout: custom
-parent: Topic 3 - DevSecOps
+parent: Topic 4 - DevSecOps Fundamentals
has_toc: false
nav_order: 1
---
diff --git a/docs/course/topic-3-devsecops/chapter-1-devsecops/labs/devsecops-lab-1.md b/docs/course/Topic-4-Devsecops-Fundmentals/chapter-1-devsecops/labs/devsecops-lab-1.md
similarity index 100%
rename from docs/course/topic-3-devsecops/chapter-1-devsecops/labs/devsecops-lab-1.md
rename to docs/course/Topic-4-Devsecops-Fundmentals/chapter-1-devsecops/labs/devsecops-lab-1.md
diff --git a/docs/course/topic-3-devsecops/chapter-2-security-checks-in-CICD/index.md b/docs/course/Topic-4-Devsecops-Fundmentals/chapter-2-security-checks-in-CICD/index.md
similarity index 99%
rename from docs/course/topic-3-devsecops/chapter-2-security-checks-in-CICD/index.md
rename to docs/course/Topic-4-Devsecops-Fundmentals/chapter-2-security-checks-in-CICD/index.md
index cf2ce22..318e6ff 100644
--- a/docs/course/topic-3-devsecops/chapter-2-security-checks-in-CICD/index.md
+++ b/docs/course/Topic-4-Devsecops-Fundmentals/chapter-2-security-checks-in-CICD/index.md
@@ -1,7 +1,7 @@
---
title: Chapter 2 - Security Checks in CI/CD
layout: custom
-parent: Topic 3 - DevSecOps
+parent: Topic 4 - DevSecOps Fundamentals
has_children: true
has_toc: false
nav_order: 2
diff --git a/docs/course/topic-3-devsecops/chapter-2-security-checks-in-CICD/lab/devsecops-lab-1.md b/docs/course/Topic-4-Devsecops-Fundmentals/chapter-2-security-checks-in-CICD/lab/devsecops-lab-1.md
similarity index 100%
rename from docs/course/topic-3-devsecops/chapter-2-security-checks-in-CICD/lab/devsecops-lab-1.md
rename to docs/course/Topic-4-Devsecops-Fundmentals/chapter-2-security-checks-in-CICD/lab/devsecops-lab-1.md
diff --git a/docs/course/topic-3-devsecops/chapter-2-security-checks-in-CICD/lab/overview.md b/docs/course/Topic-4-Devsecops-Fundmentals/chapter-2-security-checks-in-CICD/lab/overview.md
similarity index 100%
rename from docs/course/topic-3-devsecops/chapter-2-security-checks-in-CICD/lab/overview.md
rename to docs/course/Topic-4-Devsecops-Fundmentals/chapter-2-security-checks-in-CICD/lab/overview.md
diff --git a/docs/course/topic-3-devsecops/index.md b/docs/course/Topic-4-Devsecops-Fundmentals/index.md
similarity index 90%
rename from docs/course/topic-3-devsecops/index.md
rename to docs/course/Topic-4-Devsecops-Fundmentals/index.md
index 91dad1d..db60ffc 100644
--- a/docs/course/topic-3-devsecops/index.md
+++ b/docs/course/Topic-4-Devsecops-Fundmentals/index.md
@@ -1,12 +1,12 @@
---
-title: Topic 3 - DevSecOps
+title: Topic 4 - DevSecOps Fundamentals
layout: custom
has_children: true
has_toc: false
nav_order: 5
---
-# Topic 3 - DevSecOps
+# Topic 4 - DevSecOps Fundamentals
| Chapter | Learning Objectives | Lab Description |
|---------|---------------------|-----------------|
diff --git a/docs/course/Topic-5-Cloud/index.md b/docs/course/Topic-5-Cloud/index.md
new file mode 100644
index 0000000..3e922b2
--- /dev/null
+++ b/docs/course/Topic-5-Cloud/index.md
@@ -0,0 +1,15 @@
+---
+title: Topic 5 - Cloud
+layout: custom
+has_children: true
+has_toc: false
+nav_order: 6
+---
+
+# Topic 5 - Cloud
+
+| Chapter | Learning Objectives | Lab Description |
+|---------|---------------------|-----------------|
+| Chapter 1: Intro to Cloud |
+
+
diff --git a/docs/course/topic-1-git/chapter-5-advanced-git-techniques/index.md b/docs/course/topic-1-git/chapter-5-advanced-git-techniques/index.md
deleted file mode 100644
index e69de29..0000000
diff --git a/docs/course/topic-2-DevOps/index.md b/docs/course/topic-2-DevOps/index.md
deleted file mode 100644
index f740141..0000000
--- a/docs/course/topic-2-DevOps/index.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-title: Topic 2 - DevOps
-layout: custom
-has_children: true
-has_toc: false
-nav_order: 4
----
-
-# Topic 2 - Development & Operations (DevOps)
-
-| Chapter | Learning Objectives | Lab Description |
-|---------|---------------------|-----------------|
-| Chapter 1: Intro to DevOps | - Define DevOps and explore its challenges and benefits
- Discuss roles in Development and Operations and the DevOps lifecycle | |
-| Chapter 2: Intro to CI/CD | - Explain CI/CD within the DevOps framework
- Discuss CI/CD lifecycle, benefits, and methods | |
-| Chapter 3: Containerization | - Define containerization and its advantages in cloud computing
- Explore Kubernetes and microservices architectures
- Learn about container application consistency | **Lab 1: Containerizing a React Application**
- Create and run a Docker image of a React application
- Interact with a running Docker container
**Lab 2: Accessing Corporate Network and AWS ECR**
- Establish a VPN and use AWS IAM credentials to authenticate and push Docker images to AWS ECR |
-| Chapter 4: Webhooks | - Discuss the role and setup of webhooks in CI/CD automation
- Explore webhook triggers and their applications | |
-| Chapter 5: Automated Tests | - Outline the role of automated testing in CI/CD
- Discuss strategies and integration into the pipeline | |
-| Chapter 6: Deployment | - Define deployment environments and strategies
- Explore deployment challenges in large-scale environments | **Lab: Configuring a Simple Jenkins Pipeline**
- Automate a Dockerized application deployment using Jenkins
- Create and configure a Jenkins pipeline with webhooks |
-
diff --git a/docs/course/topic-3-devsecops/chapter-3-security-frameworks/index.md b/docs/course/topic-3-devsecops/chapter-3-security-frameworks/index.md
deleted file mode 100644
index e69de29..0000000
diff --git a/docs/course/topic-3-devsecops/chapter-4-cloud-security/index.md b/docs/course/topic-3-devsecops/chapter-4-cloud-security/index.md
deleted file mode 100644
index e69de29..0000000
diff --git a/docs/course/topic-3-devsecops/chapter-5-threat-modeling-and-risk-assessment/index.md b/docs/course/topic-3-devsecops/chapter-5-threat-modeling-and-risk-assessment/index.md
deleted file mode 100644
index e69de29..0000000
diff --git a/docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/index.md b/docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/index.md
deleted file mode 100644
index e69de29..0000000
diff --git a/docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/labs/securing-a-vulnerable-web-app.md b/docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/labs/securing-a-vulnerable-web-app.md
deleted file mode 100644
index e69de29..0000000
diff --git a/docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/labs/sql-injection-lab.md b/docs/course/topic-3-devsecops/chapter-6-secure-code-and-hardening/labs/sql-injection-lab.md
deleted file mode 100644
index e69de29..0000000
diff --git a/docs/course/topic-3-devsecops/chapter-7-supply-chain-security/index.md b/docs/course/topic-3-devsecops/chapter-7-supply-chain-security/index.md
deleted file mode 100644
index e69de29..0000000
diff --git a/docs/course/topic-3-devsecops/chapter-7-supply-chain-security/labs/detecting-vulnerabilities-lab.md b/docs/course/topic-3-devsecops/chapter-7-supply-chain-security/labs/detecting-vulnerabilities-lab.md
deleted file mode 100644
index 66aef38..0000000
--- a/docs/course/topic-3-devsecops/chapter-7-supply-chain-security/labs/detecting-vulnerabilities-lab.md
+++ /dev/null
@@ -1 +0,0 @@
-detecting vulnerabilities in open source dependencies
\ No newline at end of file
diff --git a/docs/other/index.md b/docs/other/index.md
index a4d252b..8f76555 100644
--- a/docs/other/index.md
+++ b/docs/other/index.md
@@ -3,5 +3,5 @@ title: Other Documents
layout: custom
has_children: true
has_toc: false
-nav_order: 6
+nav_order: 7
---
\ No newline at end of file
diff --git a/index.md b/index.md
index bbd553d..b42a6aa 100644
--- a/index.md
+++ b/index.md
@@ -4,9 +4,6 @@ layout: custom
nav_order: 0
---
# DevSecOps Curriculum 💻
->> Made by 2024 University of Washington Informatics Capstone Team Info Innovators
-
->> Sponsored by Boeing
Welcome to our open-source DevSecOps curriculum!
@@ -37,10 +34,3 @@ To understand the skills gap that new graduates face, refer to our [User Researc
## Contributing to the Curriculum 🤝
Contributions are welcome! Help us keep the curriculum relevant and effective by updating content, adding new exercises, or providing feedback.
-
-### Connect with the Creators 🔗
-- [Sirena Akopyan](https://www.linkedin.com/in/sirena-akopyan/)
-- [Bhavya Garlapati](https://www.linkedin.com/in/bhavya-garlapati-95ab46225/)
-- [Eric Kim](https://www.linkedin.com/in/taehyunnkim/)
-- [Mari Woodworth](https://www.linkedin.com/in/marikowoodworth/)
-- [Brandon Mendoza](https://www.linkedin.com/in/bwmendo/)
From c1ea00c99e7a0dcb9b199d38826796e07056e73d Mon Sep 17 00:00:00 2001
From: MorVered7
Date: Tue, 22 Apr 2025 09:35:20 -0700
Subject: [PATCH 04/30] added images
---
.../chapter-1-Intro-to-Cloud/index.md | 102 ++++++++++++++++++
.../Topic-6-DevSecOps-in-Industry/index.md | 0
images/introtocloudcapstone.png | Bin 0 -> 72713 bytes
3 files changed, 102 insertions(+)
create mode 100644 docs/course/Topic-5-Cloud/chapter-1-Intro-to-Cloud/index.md
create mode 100644 docs/course/Topic-6-DevSecOps-in-Industry/index.md
create mode 100644 images/introtocloudcapstone.png
diff --git a/docs/course/Topic-5-Cloud/chapter-1-Intro-to-Cloud/index.md b/docs/course/Topic-5-Cloud/chapter-1-Intro-to-Cloud/index.md
new file mode 100644
index 0000000..09d728b
--- /dev/null
+++ b/docs/course/Topic-5-Cloud/chapter-1-Intro-to-Cloud/index.md
@@ -0,0 +1,102 @@
+# Introduction to Cloud
+
+The cloud has become the foundation upon which DevSecOps practices are built. From scalable infrastructure to rapid deployment capabilities, understanding the cloud is key to implementing secure, efficient pipelines.
+
+---
+
+## What is Cloud Computing?
+
+Imagine needing a powerful computer to test your code, store large amounts of data, or run an app for millions of users. Instead of buying expensive hardware, you rent what you need—on demand, from someone else’s infrastructure. That, in essence, is cloud computing.
+
+Cloud computing provides on-demand access to computing resources—like servers, storage, and networking—delivered over the internet. Instead of managing physical hardware, teams can scale up or down their computing needs quickly and cost-effectively.
+
+> **NIST Definition**: "Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources."
+
+---
+
+## Key Benefits
+
+- **Scalability**: Adjust resources based on demand
+- **Cost efficiency**: Pay only for what you use
+- **Speed**: Rapid provisioning of infrastructure
+- **Accessibility**: Work from anywhere
+
+---
+
+## Example Scenario
+
+Ani is building a web app that lets users upload and edit videos. She needs a way to store large video files, process them quickly, and make the app available globally. Instead of setting up servers herself, Ani uses Amazon Web Services (AWS) to host her application, run processing jobs, and store videos in the cloud. The cloud lets her focus on building features—not managing hardware.
+
+---
+
+## Cloud Service Models
+
+Cloud services fall into three main categories. Think of them as layers of abstraction that handle more and more of the infrastructure for you:
+
+### 1. IaaS – Infrastructure as a Service
+You rent virtual machines, storage, and networking. You manage the OS and software.
+**Examples**: AWS EC2, Microsoft Azure Virtual Machines
+
+### 2. PaaS – Platform as a Service
+You build apps on top of a managed platform. The provider handles the OS, runtime, and infrastructure.
+**Examples**: Heroku, Google App Engine
+
+### 3. SaaS – Software as a Service
+You use the software over the internet without worrying about how it runs.
+**Examples**: Google Workspace, GitHub
+
+---
+
+## Cloud Deployment Models
+
+Different organizations use the cloud in different ways depending on their needs, size, and security posture.
+
+- **Public Cloud**
+ Services offered over the internet and shared across organizations.
+ *Examples*: AWS, Azure, GCP
+ *Use Case*: Startups, scalable applications
+
+- **Private Cloud**
+ Cloud environment dedicated to a single organization.
+ *Use Case*: Healthcare, financial institutions
+
+- **Hybrid Cloud**
+ Mix of public and private clouds.
+ *Use Case*: Enterprises with legacy systems
+
+- **Multi-Cloud**
+ Using services from multiple cloud providers.
+ *Use Case*: Large enterprises avoiding vendor lock-in
+
+---
+
+## Cloud Security Fundamentals
+
+Security in the cloud is a shared responsibility between the cloud provider and the customer.
+
+### Shared Responsibility Model
+
+- **Provider**: Security *of* the cloud (hardware, infrastructure, etc.)
+- **Customer**: Security *in* the cloud (data, apps, IAM)
+
+### Key Concepts
+
+- **IAM (Identity & Access Management)**: Control who can access what, and what actions they can take
+- **Encryption**: Protect data in transit and at rest
+- **Logging & Monitoring**: Track system activity for threats and auditing
+
+---
+
+## Summary
+
+Cloud computing is the backbone of modern DevSecOps. It allows teams to innovate quickly, deploy securely, and scale easily. From choosing the right service model to understanding your security responsibilities, cloud knowledge is essential for any DevSecOps practitioner.
+
+---
+
+## Resources
+
+- [Google Cloud Security Overview](https://cloud.google.com/blog/topics/developers-practitioners/google-cloud-security-overview)
+- [AWS Shared Responsibility Model](https://aws.amazon.com/compliance/shared-responsibility-model/)
+- [Azure Cloud Adoption Framework](https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/)
+- [NIST SP 800-145](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf)
+- [IBM – What is Cloud Computing](https://www.ibm.com/think/topics/cloud-computing)
diff --git a/docs/course/Topic-6-DevSecOps-in-Industry/index.md b/docs/course/Topic-6-DevSecOps-in-Industry/index.md
new file mode 100644
index 0000000..e69de29
diff --git a/images/introtocloudcapstone.png b/images/introtocloudcapstone.png
new file mode 100644
index 0000000000000000000000000000000000000000..b6bd764cf7709a78140dcf92ddb5f3d4499cfbcd
GIT binary patch
literal 72713
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