Master continuous integration and continuous deployment (CI / CD). Gain hands-on experience on managing Software Development Lifecycles.
-
Comprehensive Learning
Gain a solid understanding of CI - CD principles.
-
Hands-On Experience
Setting up and managing CI - CD pipelines using Jenkins or GitLab.
-
Career Advancement
Comprehensive view of Software Development Lifecycles and how CI - CD fits in.
Module #1 : Introduction & Fundamentals
Session 1: Introduction to CI/CD
- Understanding CI/CD concepts and benefits.
- Overview of the Software Development Lifecycle (SDLC).
- Key differences between CI, CD, and traditional development methods.
Session 2: CI/CD Architecture & Pipelines
- CI/CD architecture and best practices.
- Designing and setting up CI/CD pipelines.
- Introduction to pipeline stages: build, test, deploy, monitor.
Session 3: Hands-On Exercise
- Setting up a local development environment.
- Introduction to Jenkins/GitLab.
- Creating a basic CI/CD pipeline using Jenkins/GitLab.
Module #2 : Tools & Integration
Day 2: Deep Dive into Tools & Integration
Session 4: CI/CD Tool Setup
- Installing and configuring Jenkins/GitLab.
- Exploring Jenkins plugins and GitLab runners.
- Integrating version control systems (e.g., Git).
Session 5: Testing & Deployment
- Automated testing and its importance in CI/CD.
- Integration testing with open-source tools.
- Deployment strategies: rolling, blue-green, canary.
Session 6: Hands-On Exercise
- Creating a Jenkins/GitLab pipeline that includes build, test, and deploy stages.
- Implementing automated tests using a sample project.
- Deploying the sample project to a staging environment.
Module #3: Monitoring & Advanced Topics
Session 7: Monitoring & Feedback Loops
- Importance of monitoring in CI/CD.
- Setting up monitoring tools (e.g., Prometheus, Grafana).
- Integrating feedback loops for continuous improvement.
Session 8: Advanced CI/CD Practices
- Infrastructure as Code (IaC) with tools like Terraform.
- Security in CI/CD pipelines.
- Scaling CI/CD pipelines for large teams/projects.
Session 9: Final Hands-On Exercise
- Building a full-fledged CI/CD pipeline with Jenkins/GitLab for a web application.
- Integrating monitoring and feedback loops.
- Reviewing and optimizing the pipeline for efficiency and reliability.
Module #5 : CI/CD Pipeline Exercise with Jenkins/GitLab
Objective:
Implement a simple CI/CD pipeline using open-source tools (Jenkins or GitLab).
Steps:
Setup:
Install Jenkins/GitLab on your local machine or use a cloud-based instance.
Connect Jenkins/GitLab to your version control system (e.g., GitHub).
Create a Sample Project:
- Clone/Create a sample project repository (e.g., a “Hello World” web application).
Pipeline Configuration:
- Create a new pipeline in Jenkins/GitLab. – Define stages: build, test, deploy.
- Configure automated build triggers (e.g., on every commit or pull request).
Automated Testing:
- Add unit and integration tests to your project.
- Configure the pipeline to run these tests automatically.
Deployment:
- Define deployment scripts (e.g., shell scripts, Ansible playbooks).
- Set up deployment to a staging environment (e.g., Docker container, virtual machine).
Monitoring:
- Integrate monitoring tools (e.g., Prometheus, Grafana) to monitor the deployed application.
- Set up alerts for failures or performance issues.
Review & Optimize:
- Review the pipeline setup.
- Optimize for efficiency (e.g., parallel stages, caching).
- Document the process and key learnings.

