Workshop Title: End-to-End DevOps
Workflow: Building, Testing, and Deploying Modern Applications
Duration: 5 Days (6–7 hours/day)
Day 1: Python and Docker Foundations
Session 1: Building Python Applications
- Objective: Develop and execute a Python application locally.
- Topics Covered:
- Writing Python scripts (
app.py
). - Executing Python scripts locally.
- Writing Python scripts (
Session 2: Docker Basics and Image Management
- Objective: Containerize and manage Python applications using Docker.
- Tasks:
- Creation of
Dockerfile
. - Building Docker images locally.
- Pushing images to Docker Hub.
- Creation of
Day 2: CI/CD Essentials
Session 3: Test Automation and GitHub Setup
- Objective: Add testing and code coverage for Python apps.
- Tasks:
- Create
test.py
for test cases. - Code coverage using tools like
coverage.py
. - GitHub repository setup and file management.
- Create
Session 4: Minimalistic CI with Jenkins
- Objective: Build a basic CI pipeline.
- Tasks:
- Jenkins installation and setup.
- Creation of a Jenkinsfile for minimal CI.
- Execution of minimalistic CI.
Day 3: Advanced CI Practices
Session 5: Extensive CI Implementation
- Objective: Develop an advanced CI pipeline with multiple stages.
- Tasks:
- Add test cases, code coverage, and credential scanning.
- Integrate image scanning tools (e.g., Trivy).
- Execute extensive CI.
Session 6: Nightly CI Automation
- Objective: Automate CI pipeline scheduling.
- Tasks:
- Configure nightly CI pipelines.
- Schedule and test nightly builds.
Day 4: Shared Libraries and Pipeline Automation
Session 7: Jenkins Shared Library Setup
- Objective: Standardize pipelines with shared libraries.
- Tasks:
- Structuring shared libraries (
vars
andsrc
folders). - Pushing shared libraries to GitHub.
- Configuring shared libraries in Jenkins.
- Structuring shared libraries (
Session 8: Pipeline Automation and Verification
- Objective: Automate and test pipelines using DSL jobs.
- Tasks:
- Creating CI skeletons for extensive, minimalistic, and nightly pipelines.
- Configuring and approving seed jobs.
- Verifying CI pipelines.
Day 5: Integration, Infra, and Deployment
Session 9: Jira Integration with Jenkins
- Objective: Automate workflows with Jira and Jenkins.
- Tasks:
- Setting up Jira webhooks.
- Parsing Jira webhook data in Jenkins.
- Configuring Jira-based triggers for deployments.
Session 10: Infrastructure as Code (IaC) with Terraform
- Objective: Create and manage infrastructure using Terraform.
- Tasks:
- Writing Terraform files and managing state.
- Resource provisioning and creating reusable modules.
- Implementing wrapper classes for Terraform.
Session 11: Continuous Deployment and Kubernetes
- Objective: Deploy applications to Kubernetes with CI/CD pipelines.
- Tasks:
- Integrate AWS ECR for Docker image storage.
- Set up Kubernetes clusters (EKS).
- Deploy pods, services, and deployments in Kubernetes.
- Integrate Jenkins with Kubernetes for CI/CD workflows.
Key Outcomes:
By the end of the workshop, participants will:
- Build, containerize, and test Python applications.
- Create CI/CD pipelines for minimalistic, extensive, and nightly builds.
- Use Terraform for infrastructure management.
- Integrate Jira with Jenkins for workflow automation.
- Deploy applications using Kubernetes.