Project 1: Building a CI/CD Pipeline for Web Application
Objective:
Create an automated CI/CD pipeline for a simple web application, emphasizing automated testing and streamlined deployments.
Hands-on Components:
- Version Control & Collaboration:
- Create and manage repositories on GitHub or GitLab.
- Practice branching and merging strategies (feature branch workflow).
- Pipeline Automation:
- Configure Jenkins or GitLab CI to automate the build, test, and deployment phases.
- Implement automated unit and integration tests within pipelines.
- Continuous Deployment:
- Deploy web application artifacts to a staging environment automatically.
Real-world Scenario:
- Simulate a modern development team’s workflow where code commits automatically trigger testing and deployments, providing rapid feedback and reliable releases.
Project 2: Infrastructure Provisioning with Infrastructure as Code (IaC)
Objective:
Deploy infrastructure for a multi-tier application using Terraform and Ansible, automating provisioning and configuration management.
Hands-on Components:
• Terraform:
• Write scripts to provision cloud resources such as VMs, load balancers, storage, and networks.
• Ansible:
• Automate configuration and deployment of applications onto provisioned infrastructure.
• Versioning and Modularization:
• Organize code into reusable modules and maintain clear versioning in Git repositories.