Ecom Express Client Project – Workshop

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.

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.

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.

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 and src folders).
    • Pushing shared libraries to GitHub.
    • Configuring shared libraries in Jenkins.

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:

  1. Build, containerize, and test Python applications.
  2. Create CI/CD pipelines for minimalistic, extensive, and nightly builds.
  3. Use Terraform for infrastructure management.
  4. Integrate Jira with Jenkins for workflow automation.
  5. Deploy applications using Kubernetes.