Skip to content

Commit eb90406

Browse files
authored
Merge pull request #13 from mnaimfaizy/feature/devops-cloud-computing-module
feat: Add DevOps & Cloud Computing Learning Module (#13)
2 parents 594a16f + 8fc29a8 commit eb90406

23 files changed

Lines changed: 4987 additions & 8 deletions

README.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
**🌐 Live Website**: [https://codexecutives.com](https://codexecutives.com)
66

7-
**✨ Now featuring 12 complete learning modules with 78+ interactive visualizations covering Git, JavaScript Engine, RxJS, Data Structures, Next.js, Big-O Notation, Python Programming, AI Fundamentals, Node.js Ecosystem, and a LeetCode-style playground with advanced debugging and gamification.**
7+
**✨ Now featuring 13 complete learning modules with 84+ interactive visualizations covering Git, JavaScript Engine, RxJS, Data Structures, Next.js, Big-O Notation, Python Programming, AI Fundamentals, Node.js Ecosystem, DevOps & Cloud Computing, and a LeetCode-style playground with advanced debugging and gamification.**
88

99
> **📌 Repository Maintainers**: See [REPOSITORY-ABOUT-QUICK-REFERENCE.md](./docs/REPOSITORY-ABOUT-QUICK-REFERENCE.md) for GitHub repository About section configuration (description, website, and topics).
1010
@@ -21,6 +21,7 @@
2121
- **Python Programming**: Complete Python tutorial covering philosophy, execution model, memory management, and concurrency
2222
- **AI Fundamentals**: Machine learning concepts from scratch — neural networks, gradient descent, embeddings, and RAG pipelines
2323
- **Node.js Ecosystem**: Deep dive into Event Loop, V8 memory, Streams, Clustering, module systems, package managers, frameworks, and runtime wars (Node vs Deno vs Bun)
24+
- **DevOps & Cloud Computing**: CI/CD pipelines, cloud service models (IaaS/PaaS/SaaS/FaaS), container orchestration with Kubernetes, Infrastructure as Code, observability, and modern DevOps roles
2425
- **LeetCode-Style Playground**: Interactive coding environment with debugging, visualizations, and gamification
2526

2627
### 🎮 **Interactive Visualizations**
@@ -324,6 +325,19 @@ Master machine learning concepts from the ground up with interactive visualizati
324325
- **Beginner Friendly**: Every section includes ELI10 boxes, real-world analogies, and key takeaways
325326
- **11 Interactive Sections**: Progressive visualizations guiding learners from zero ML knowledge to RAG pipelines
326327

328+
### ☁️ **DevOps & Cloud Computing (Complete)**
329+
330+
Comprehensive DevOps and cloud computing module with 6 interactive visualizations covering the entire DevOps lifecycle:
331+
332+
- **Introduction**: DevOps history, genesis timeline (2007-2011), the infinite DevOps loop, and Netflix case study
333+
- **CI/CD Pipeline**: Interactive pipeline simulation with 7 stages, terminal logs, deployment strategies (blue-green, canary, rolling)
334+
- **Cloud Service Models**: Interactive IaaS/PaaS/SaaS/FaaS comparison with pizza analogy, NIST characteristics, and management burden visualization
335+
- **Cloud Architecture**: SVG diagrams for monolith, microservices, serverless, and load-balanced patterns with trade-off analysis
336+
- **Container Orchestration**: Kubernetes pod simulator with auto-scaling, Docker fundamentals, container vs VM comparison
337+
- **Infrastructure as Code**: Terraform/Ansible/Docker code examples, declarative vs imperative approaches, GitOps workflow, and drift detection
338+
- **Modern Dev Roles**: Frontend cloud developer, backend serverless developer, DevOps/platform engineer, SRE roles, DevSecOps practices, and career paths
339+
- **Observability**: Three pillars (metrics, logs, traces) with interactive exploration, alerting best practices, incident management, DORA metrics, and future trends
340+
327341
### 🎯 **LeetCode-Style Playground (Complete)**
328342

329343
Interactive coding environment that transforms algorithm learning through visual debugging and gamification:
@@ -415,7 +429,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
415429
- 📧 **Issues**: Report bugs or request features via GitHub Issues
416430
- 💬 **Discussions**: Join community discussions for questions and ideas
417431
- 📖 **Documentation**: Comprehensive docs available in the `/docs` directory
418-
- 🎓 **Learning Modules**: 8 complete interactive modules with 80+ visualizations
432+
- 🎓 **Learning Modules**: 13 complete interactive modules with 84+ visualizations
419433
- 🎯 **Playground**: LeetCode-style coding environment with debugging and gamification
420434

421435
---

docs/DevOps and Cloud Computing Explained.md

Lines changed: 269 additions & 0 deletions
Large diffs are not rendered by default.

src/App.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ const SystemDesignPage = lazy(() => import('./features/systemdesign'));
2929
const TypeScriptPage = lazy(() => import('./features/typescript'));
3030
const AIFundamentalsPage = lazy(() => import('./features/ai'));
3131
const NodeJSPage = lazy(() => import('./features/nodejs'));
32+
const DevOpsPage = lazy(() => import('./features/devops'));
3233

3334
const App: React.FC = () => {
3435
// Initialize analytics on app mount
@@ -172,6 +173,14 @@ const App: React.FC = () => {
172173
</SuspenseRoute>
173174
}
174175
/>
176+
<Route
177+
path="/devops"
178+
element={
179+
<SuspenseRoute>
180+
<DevOpsPage />
181+
</SuspenseRoute>
182+
}
183+
/>
175184
</Routes>
176185
</main>
177186
</div>

src/components/Header.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {
1616
Boxes,
1717
Brain,
1818
Server,
19+
Cloud,
1920
} from 'lucide-react';
2021
import { useUI } from '../shared/contexts';
2122

@@ -123,6 +124,12 @@ const Header: React.FC = () => {
123124
icon: <Brain className="w-4 h-4" />,
124125
description: 'AI & Machine Learning fundamentals',
125126
},
127+
{
128+
label: 'DevOps',
129+
path: '/devops',
130+
icon: <Cloud className="w-4 h-4" />,
131+
description: 'DevOps & Cloud Computing',
132+
},
126133
],
127134
},
128135
];
@@ -188,6 +195,7 @@ const Header: React.FC = () => {
188195
if (path === '/bigo') return 'text-purple-600 bg-purple-50';
189196
if (path === '/ai') return 'text-rose-600 bg-rose-50';
190197
if (path === '/nodejs') return 'text-green-600 bg-green-50';
198+
if (path === '/devops') return 'text-sky-600 bg-sky-50';
191199
return 'text-gray-700 hover:bg-gray-50';
192200
};
193201

src/components/Sidebar.tsx

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,13 @@ const getThemeColorClass = (
6666
buttonHover: 'hover:text-green-600',
6767
border: 'border-green-100',
6868
},
69+
sky: {
70+
active: 'bg-sky-100 text-sky-800 border-sky-500',
71+
hover: 'hover:bg-sky-50 hover:text-sky-700',
72+
buttonActive: 'text-sky-600 hover:text-sky-700',
73+
buttonHover: 'hover:text-sky-600',
74+
border: 'border-sky-100',
75+
},
6976
};
7077

7178
const colors = colorMap[theme.primary] || colorMap.blue;
@@ -338,6 +345,16 @@ const sidebarSections: Record<string, Array<SidebarItem>> = {
338345
{ label: 'Frameworks', path: '/nodejs?section=Frameworks' },
339346
{ label: 'Runtime Wars', path: '/nodejs?section=Runtime%20Wars' },
340347
],
348+
'/devops': [
349+
{ label: 'Introduction', path: '/devops?section=Introduction' },
350+
{ label: 'CI/CD Pipeline', path: '/devops?section=CI%2FCD%20Pipeline' },
351+
{ label: 'Cloud Service Models', path: '/devops?section=Cloud%20Service%20Models' },
352+
{ label: 'Cloud Architecture', path: '/devops?section=Cloud%20Architecture' },
353+
{ label: 'Container Orchestration', path: '/devops?section=Container%20Orchestration' },
354+
{ label: 'Infrastructure as Code', path: '/devops?section=Infrastructure%20as%20Code' },
355+
{ label: 'Modern Dev Roles', path: '/devops?section=Modern%20Dev%20Roles' },
356+
{ label: 'Observability', path: '/devops?section=Observability' },
357+
],
341358
'/': [],
342359
'/about': [],
343360
};
@@ -364,7 +381,9 @@ const Sidebar: React.FC = () => {
364381
| 'systemdesign'
365382
| 'typescript'
366383
| 'ai'
367-
| 'nodejs' => {
384+
| 'nodejs'
385+
| 'devops' => {
386+
if (path.includes('/devops')) return 'devops';
368387
if (path.includes('/nodejs')) return 'nodejs';
369388
if (path.includes('/ai')) return 'ai';
370389
if (path.includes('javascript')) return 'javascript';

src/features/devops/DevOpsPage.tsx

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import React, { Suspense } from 'react';
2+
import { useLocation } from 'react-router-dom';
3+
4+
// Lazy load section components for better performance
5+
import Introduction from './components/sections/Introduction';
6+
const CICDPipeline = React.lazy(() => import('./components/sections/CICDPipeline'));
7+
const CloudServiceModels = React.lazy(() => import('./components/sections/CloudServiceModels'));
8+
const CloudArchitecture = React.lazy(() => import('./components/sections/CloudArchitecture'));
9+
const ContainerOrchestration = React.lazy(
10+
() => import('./components/sections/ContainerOrchestration')
11+
);
12+
const InfrastructureAsCode = React.lazy(() => import('./components/sections/InfrastructureAsCode'));
13+
const ModernDevRoles = React.lazy(() => import('./components/sections/ModernDevRoles'));
14+
const Observability = React.lazy(() => import('./components/sections/Observability'));
15+
16+
const sectionComponents: Record<string, React.ComponentType> = {
17+
Introduction,
18+
'CI/CD Pipeline': CICDPipeline,
19+
'Cloud Service Models': CloudServiceModels,
20+
'Cloud Architecture': CloudArchitecture,
21+
'Container Orchestration': ContainerOrchestration,
22+
'Infrastructure as Code': InfrastructureAsCode,
23+
'Modern Dev Roles': ModernDevRoles,
24+
Observability,
25+
};
26+
27+
function useQuery(): URLSearchParams {
28+
return new URLSearchParams(useLocation().search);
29+
}
30+
31+
const DevOpsPage: React.FC = () => {
32+
const query = useQuery();
33+
const section = query.get('section') || 'Introduction';
34+
const Component = sectionComponents[section] || Introduction;
35+
36+
return (
37+
<div className="p-4 sm:p-6">
38+
<Suspense
39+
fallback={
40+
<div className="flex items-center justify-center h-64">
41+
<div className="animate-spin rounded-full h-12 w-12 border-b-2 border-sky-600"></div>
42+
</div>
43+
}
44+
>
45+
<Component />
46+
</Suspense>
47+
</div>
48+
);
49+
};
50+
51+
export default DevOpsPage;
Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
import React from 'react';
2+
import ThemeCard from '../../../../components/shared/ThemeCard';
3+
import CICDPipelineViz from '../visualizations/2d/CICDPipelineViz';
4+
import { GitBranch, CheckCircle, AlertTriangle, Lightbulb } from 'lucide-react';
5+
6+
const CICDPipeline: React.FC = () => {
7+
return (
8+
<div className="max-w-5xl mx-auto space-y-8">
9+
{/* Header */}
10+
<div className="bg-gradient-to-br from-sky-50 via-white to-cyan-50 rounded-2xl p-8 border border-sky-100 shadow-lg">
11+
<div className="flex items-center gap-4 mb-4">
12+
<div className="bg-sky-100 p-3 rounded-full">
13+
<GitBranch className="w-8 h-8 text-sky-600" />
14+
</div>
15+
<div>
16+
<h1 className="text-3xl font-bold text-gray-900">CI/CD Pipeline</h1>
17+
<p className="text-gray-600">Continuous Integration &amp; Continuous Delivery</p>
18+
</div>
19+
</div>
20+
<p className="text-lg text-gray-700 leading-relaxed">
21+
A CI/CD pipeline automates the journey from code commit to production deployment. Every
22+
code change is automatically built, tested, scanned for security vulnerabilities, and
23+
deployed — reducing human error and enabling teams to deploy hundreds of times per day.
24+
</p>
25+
</div>
26+
27+
{/* Interactive Pipeline Visualization */}
28+
<ThemeCard>
29+
<h2 className="text-2xl font-bold text-gray-900 mb-4">Interactive Pipeline</h2>
30+
<p className="text-gray-700 mb-6 leading-relaxed">
31+
Watch a complete CI/CD pipeline execute. Each stage runs automatically, and the pipeline
32+
halts if any stage fails — this is the &quot;fail fast&quot; principle.
33+
</p>
34+
<CICDPipelineViz />
35+
</ThemeCard>
36+
37+
{/* CI vs CD explanation */}
38+
<div className="grid md:grid-cols-2 gap-6">
39+
<ThemeCard>
40+
<h3 className="text-xl font-bold text-gray-900 mb-4 flex items-center gap-2">
41+
<CheckCircle className="w-5 h-5 text-sky-600" /> Continuous Integration (CI)
42+
</h3>
43+
<p className="text-gray-700 mb-4 leading-relaxed">
44+
Developers merge their code changes into a shared repository multiple times a day. Each
45+
merge triggers an automated build and test suite.
46+
</p>
47+
<div className="bg-sky-50 rounded-lg p-4 border border-sky-200">
48+
<h4 className="font-semibold text-sky-800 mb-2">CI Best Practices:</h4>
49+
<ul className="space-y-1.5 text-sm text-gray-700">
50+
<li>• Commit to mainline at least once a day</li>
51+
<li>• Every commit triggers automated tests</li>
52+
<li>• Fix broken builds immediately (priority #1)</li>
53+
<li>• Keep the build fast (&lt; 10 minutes)</li>
54+
</ul>
55+
</div>
56+
</ThemeCard>
57+
58+
<ThemeCard>
59+
<h3 className="text-xl font-bold text-gray-900 mb-4 flex items-center gap-2">
60+
<CheckCircle className="w-5 h-5 text-emerald-600" /> Continuous Delivery (CD)
61+
</h3>
62+
<p className="text-gray-700 mb-4 leading-relaxed">
63+
Every change that passes the automated pipeline is <strong>ready to deploy</strong> to
64+
production. Continuous Deployment goes further — deploying automatically without human
65+
approval.
66+
</p>
67+
<div className="bg-emerald-50 rounded-lg p-4 border border-emerald-200">
68+
<h4 className="font-semibold text-emerald-800 mb-2">Deployment Strategies:</h4>
69+
<ul className="space-y-1.5 text-sm text-gray-700">
70+
<li>
71+
<strong>Blue-Green:</strong> Two identical environments, swap traffic
72+
</li>
73+
<li>
74+
<strong>Canary:</strong> Roll out to 5% of users first
75+
</li>
76+
<li>
77+
<strong>Rolling:</strong> Gradually replace old instances
78+
</li>
79+
<li>
80+
<strong>Feature Flags:</strong> Toggle features without deploy
81+
</li>
82+
</ul>
83+
</div>
84+
</ThemeCard>
85+
</div>
86+
87+
{/* Popular CI/CD Tools */}
88+
<ThemeCard>
89+
<h2 className="text-2xl font-bold text-gray-900 mb-4">Popular CI/CD Tools</h2>
90+
<div className="grid grid-cols-2 md:grid-cols-4 gap-4">
91+
{[
92+
{ name: 'GitHub Actions', icon: '🐙', desc: 'Native GitHub CI/CD' },
93+
{ name: 'Jenkins', icon: '🔧', desc: 'Open-source automation' },
94+
{ name: 'GitLab CI', icon: '🦊', desc: 'All-in-one DevOps' },
95+
{ name: 'CircleCI', icon: '⭕', desc: 'Cloud-native CI/CD' },
96+
{ name: 'ArgoCD', icon: '🚢', desc: 'GitOps for Kubernetes' },
97+
{ name: 'Spinnaker', icon: '🎡', desc: 'Multi-cloud deploy' },
98+
{ name: 'Travis CI', icon: '🏠', desc: 'Open-source CI' },
99+
{ name: 'AWS CodePipeline', icon: '☁️', desc: 'AWS native pipeline' },
100+
].map((tool, i) => (
101+
<div
102+
key={i}
103+
className="bg-gray-50 rounded-xl p-4 text-center border border-gray-200 hover:shadow-md transition-shadow"
104+
>
105+
<span className="text-2xl">{tool.icon}</span>
106+
<h4 className="font-semibold text-gray-900 mt-2 text-sm">{tool.name}</h4>
107+
<p className="text-xs text-gray-600 mt-1">{tool.desc}</p>
108+
</div>
109+
))}
110+
</div>
111+
</ThemeCard>
112+
113+
{/* Anti-patterns */}
114+
<ThemeCard>
115+
<h2 className="text-2xl font-bold text-gray-900 mb-4 flex items-center gap-2">
116+
<AlertTriangle className="w-6 h-6 text-amber-500" /> Common CI/CD Anti-Patterns
117+
</h2>
118+
<div className="grid md:grid-cols-2 gap-4">
119+
{[
120+
{
121+
bad: 'Long-lived feature branches (weeks/months)',
122+
fix: 'Merge to main daily, use feature flags',
123+
},
124+
{
125+
bad: 'Skipping tests to "ship faster"',
126+
fix: 'Tests ARE the safety net — never skip',
127+
},
128+
{ bad: 'Manual deployment steps', fix: 'Automate everything, including rollbacks' },
129+
{ bad: 'No security scanning', fix: 'Add SAST/DAST/dependency scanning to pipeline' },
130+
].map((item, i) => (
131+
<div key={i} className="bg-amber-50 rounded-lg p-4 border border-amber-200">
132+
<div className="flex items-start gap-2 mb-2">
133+
<span className="text-red-500 font-bold"></span>
134+
<span className="text-sm text-gray-700">{item.bad}</span>
135+
</div>
136+
<div className="flex items-start gap-2">
137+
<span className="text-emerald-500 font-bold"></span>
138+
<span className="text-sm text-gray-700 font-medium">{item.fix}</span>
139+
</div>
140+
</div>
141+
))}
142+
</div>
143+
</ThemeCard>
144+
145+
{/* ELI10 */}
146+
<div className="bg-gradient-to-r from-amber-50 to-yellow-50 rounded-2xl p-6 border border-amber-200">
147+
<div className="flex items-start gap-4">
148+
<div className="bg-amber-100 p-2 rounded-full flex-shrink-0">
149+
<Lightbulb className="w-6 h-6 text-amber-600" />
150+
</div>
151+
<div>
152+
<h3 className="text-lg font-bold text-amber-900 mb-2">
153+
Think of it like a factory assembly line 🏭
154+
</h3>
155+
<p className="text-gray-700 leading-relaxed">
156+
Imagine a toy factory. When you design a new toy, it goes through stations — each
157+
station checks something: &quot;Is the paint right? Are the wheels on? Is it
158+
safe?&quot; Only if the toy passes ALL stations does it go into a box and ship to
159+
stores. That&apos;s exactly what a CI/CD pipeline does for code — each stage verifies
160+
quality automatically!
161+
</p>
162+
</div>
163+
</div>
164+
</div>
165+
</div>
166+
);
167+
};
168+
169+
export default CICDPipeline;

0 commit comments

Comments
 (0)