diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..add983a1c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,80 @@ +name: CI + +on: + push: + branches: [main] + paths: + - 'app/**' + - '.github/workflows/ci.yml' + pull_request: + branches: [main] + paths: + - 'app/**' + - '.github/workflows/ci.yml' + +permissions: + contents: read + +jobs: + vet: + name: Vet (${{ matrix.go-version }}) + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + go-version: ['1.23', '1.24'] + defaults: + run: + working-directory: app + steps: + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.2.2 + - uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0 + with: + go-version: ${{ matrix.go-version }} + cache: true + cache-dependency-path: app/go.sum + - run: go vet ./... + + test: + name: Test (${{ matrix.go-version }}) + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + go-version: ['1.23', '1.24'] + defaults: + run: + working-directory: app + steps: + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.2.2 + - uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0 + with: + go-version: ${{ matrix.go-version }} + cache: true + cache-dependency-path: app/go.sum + - run: go test -race -count=1 ./... + + lint: + name: Lint + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.2.2 + - uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0 + with: + go-version: '1.24' + cache: true + cache-dependency-path: app/go.sum + - name: Run golangci-lint + uses: golangci/golangci-lint-action@82606bf257cbaff209d206a39f5134f0cfbfd2ee # v9.2.1 + with: + version: v2.5.0 + working-directory: app + + ci-ok: + name: CI OK + if: always() + needs: [vet, test, lint] + runs-on: ubuntu-24.04 + steps: + - run: | + test "${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}" = "false" diff --git a/app/go.mod b/app/go.mod index b76e91cf9..60ef39dde 100644 --- a/app/go.mod +++ b/app/go.mod @@ -1,3 +1,3 @@ module quicknotes -go 1.24 +go 1.23 diff --git a/app/index.html b/app/index.html new file mode 100644 index 000000000..ece7bac66 --- /dev/null +++ b/app/index.html @@ -0,0 +1,545 @@ + + + + + + DevOps Introduction + + + + + + + + +
+ +
+ +
+

DevOps Introduction

+

Master modern DevOps practices through hands-on labs covering Git, CI/CD, Containers, Kubernetes, Cloud & WASM

+
+
+ 12 + Hands-on Labs +
+
+ 10 + Core Topics +
+
+ 15 + Weeks +
+
+
+ View Course Repository β†’ +
+ +
+

Course Overview

+

This comprehensive course provides a solid foundation in modern DevOps practices through practical, hands-on experience. You'll learn industry-standard tools and workflows used by leading tech companies.

+ +
+
+ πŸ“ +

Hands-On Learning

+

Every concept is reinforced through practical labs. Build real projects and submit them via GitHub Pull Requests for review.

+ 12 Comprehensive Labs +
+
+ πŸ”§ +

Industry Tools

+

Work with production-grade tools: Docker, Kubernetes, GitHub Actions, Terraform, Ansible, Prometheus, and more.

+ 15+ Technologies +
+
+ πŸš€ +

Modern Practices

+

Learn GitOps, Progressive Delivery, SRE principles, Infrastructure as Code, and emerging technologies like WebAssembly.

+ Cutting-Edge Topics +
+
+
+ +
+

What You'll Learn

+

Master DevOps through 12 progressive hands-on labs, each building real-world skills with production-grade tools.

+ +
+
+ πŸ”€ +

Lab 1: Git Workflows

+

Master Git branching strategies, collaborative workflows, pull requests, and version control best practices.

+
+
+ βš™οΈ +

Lab 2: GitHub Actions

+

Build automated CI/CD pipelines with GitHub Actions for testing, building, and deploying applications.

+
+
+ 🐳 +

Lab 3: Docker Basics

+

Learn Docker containerization, write Dockerfiles, and implement multi-stage builds for optimized images.

+
+
+ πŸ”— +

Lab 4: Docker Compose

+

Orchestrate multi-container applications with Docker Compose, manage networks and volumes.

+
+
+ ☸️ +

Lab 5: Kubernetes Basics

+

Deploy applications to Kubernetes, work with pods, services, and ingress controllers.

+
+
+ πŸŽ›οΈ +

Lab 6: K8s Advanced

+

Master ConfigMaps, Secrets, Helm charts, and advanced Kubernetes resource management.

+
+
+ πŸ—οΈ +

Lab 7: Terraform IaC

+

Implement Infrastructure as Code with Terraform, manage cloud resources declaratively.

+
+
+ πŸ€– +

Lab 8: Ansible Automation

+

Automate configuration management with Ansible playbooks, roles, and inventory management.

+
+
+ πŸ“Š +

Lab 9: Monitoring Stack

+

Set up observability with Prometheus for metrics collection and Grafana for visualization.

+
+
+ πŸ”„ +

Lab 10: GitOps with ArgoCD

+

Implement GitOps workflows using ArgoCD for declarative, Git-based application delivery.

+
+
+ πŸ”’ +

Lab 11: DevSecOps

+

Integrate security scanning, vulnerability detection, and automated security testing into CI/CD.

+
+
+ πŸš€ +

Lab 12: WASM vs Docker

+

Compare WebAssembly containers with traditional Docker, deploy to Spin Cloud for serverless WASM.

+
+
+
+ +
+

Lab Assignments

+

Each lab is designed to build practical skills through real-world scenarios. Submit your work via Pull Requests for instructor review and feedback.

+
    +
  1. Git Workflow & Branching Strategies
  2. +
  3. GitHub Actions CI/CD Pipeline
  4. +
  5. Docker Containerization & Multi-Stage Builds
  6. +
  7. Docker Compose & Container Orchestration
  8. +
  9. Kubernetes Deployment & Services
  10. +
  11. Kubernetes ConfigMaps, Secrets & Helm
  12. +
  13. Infrastructure as Code with Terraform
  14. +
  15. Configuration Management with Ansible
  16. +
  17. Monitoring with Prometheus & Grafana
  18. +
  19. GitOps with ArgoCD
  20. +
  21. Security Scanning & DevSecOps
  22. +
  23. WebAssembly Containers vs Traditional (Spin Cloud)
  24. +
+
+ +
+

Course Resources

+

All course materials, lab instructions, and submission guidelines are available on GitHub.

+ +
+

Ready to Start Your DevOps Journey?

+

+ Fork the repository, follow the lab instructions, and submit your work via Pull Requests. Get hands-on experience with industry-standard DevOps practices. +

+ + πŸ“š + Access Course Repository + +
+ +
+
+ πŸ“– +

Lab Instructions

+

Detailed step-by-step guides for each lab with acceptance criteria and submission guidelines.

+
+
+ πŸ’¬ +

Course Communication

+

Use GitHub Issues for questions and Discussions for course-related conversations.

+
+
+ 🎯 +

Grading & Feedback

+

Receive detailed feedback on your Pull Requests and track your progress through the course.

+
+
+
+ + + +