# CSD-4503 DevOps: Tools and Practices
Assignment 2: DevOps Pipeline Implementation and Operation
Value: 20% of final grade**
Due Date: November 11
### Overview
In this assignment, you will expand upon your Assignment 1 TypeScript application by implementing and operating a complete CI/CD pipeline process using GitHub.
You will role-play as DevOps engineers responsible for maintaining code quality, processing daily Git Issues, and ensuring smooth pipeline operation.
### Prerequisites
- Completed Assignment 1 TypeScript application
- GitHub repository with initial codebase
- Basic understanding of Git Issues and Actions
### Learning Objectives
1. Implement and maintain a CI/CD pipeline using GitHub Actions
2. Process and resolve Git Issues effectively
3. Use traceability matrix as a product roadmap to asses how to best implement code changes and testing in response to Defects and New Product Feature Requests.
4. Implement automated testing with Jest.
5. Deploy applications using Docker containers. We will see how to set up GIT ACTIONS to containerize into a Kubernetics Container your updated code base and ftp that Container to where ever it needs to go.
Part 1: Pipeline Setup (30%)
1.1 Pipeline Configuration
- Create `.github/workflows/ci.yml` file implementing:
yml : yet another markup language: yml is the scripting language to configure GIT Actions.
- Automated builds on push/pull requests
- Jest test execution
- Code linting
- TypeScript compilation
- Docker image creation *** New learning topic
- Implement Jest testing framework
- Create test cases based on your Traceability matrix
- Ensure tests cover major functionality
- Configure test automation in pipeline
1.3 Docker Integration
- Create Dockerfile for application
- Implement Docker image building in pipeline
- Configure container deployment process
Part 2: Daily DevOps Operations (40%)
2.1 Git Issues Management
- Process some Git Issues each week
- Document issue resolution process
- Link commits to issues
- Maintain clean issue tracking
2.2 Code Reviews (our in class simulations will mirror the ways of Agile as closely as practical)
- Participate in daily code reviews
- Document review findings
- Implement feedback from reviews
- Use traceability matrix to what changes in the code base are appropriate
2.3 Pipeline Monitoring: Play the role of Dev Ops Engineers
- Monitor pipeline execution and operation
- Document and resolve failures
- Maintain pipeline health metrics
- Implement pipeline improvements
Part 3: Documentation and Reporting (30%)
#### 3.1 Technical Documentation
- Maintain up-to-date README.md
- Document pipeline configuration
- Create troubleshooting guide
- Document testing strategy
3.2 Process Documentation
- Document daily DevOps procedures
- Create issue resolution workflows
- Document code review process
- Maintain traceability matrix
3.3 Final Report
- Submit comprehensive report including:
- Pipeline implementation details
- Issue management statistics
Deliver POWERBI dashboard-based Analytics Reports
- Lessons learned
- Recommendations for improvement
Deliverables
1. GitHub repository containing:
- Complete CI/CD pipeline configuration
- Jest test suite
- Docker configuration
- Technical documentation: Latex with Overleaf.com
2. Documentation package including:
- Process documentation: Instruction manual for a new Devops Engineer
- Updated traceability matrix and all other UP Artifacts
- Issue management logs
- Code review records
3. Final report (2000 words maximum)
### Grading Rubric
Your Documentation report will be presented in Latex.
Detailed Scoring Breakdown
**Pipeline Implementation (30 points)**
- Pipeline Configuration (10 points)
- Complete workflow file (3)
- Correct trigger configuration (2)
- Error handling (2)
- Environment configuration (3)
- Testing Framework (10 points)
- Jest configuration (3)
- Test coverage (4)
- Test quality (3)
- Docker Integration (10 points)
- Dockerfile configuration (4)
- Build process (3)
- Deployment configuration (3)
**DevOps Operations (40 points)**
- Issue Management (15 points)
- Regular processing (5)
- Resolution quality (5)
- Documentation (5)
- Code Reviews (15 points)
- Participation (5)
- Feedback quality (5)
- Implementation of changes (5)
- Pipeline Maintenance (10 points)
- Monitoring (4)
- Problem resolution (3)
- Improvements (3)
**Documentation (30 points)**
- Technical Documentation (10 points)
- Completeness (4)
- Clarity (3)
- Organization (3)
- Process Documentation (10 points)
- Workflows (4)
- Procedures (3)
- Traceability (3)
- Final Report (10 points)
- Analysis (4)
- Insights (3)
- Recommendations (3)
Submission Guidelines
1. Ensure your GitHub repository is up-to-date
2. Submit documentation package via Moodle
3. Submit final report as PDF via Moodle
4. Include repository URL in submission
### Academic Integrity
- All work must be original
- Cite any external resources used
- Collaboration is encouraged for learning but submit individual work
- Follow Lambton College academic integrity policies
### Support Resources
- Course lecture materials
- DevOps documentation
- GitHub Actions documentation
- Jest documentation
- Docker documentation
### Tips for Success
1. Start early - pipeline setup takes time
2. Test thoroughly before submission
3. Document continuously
4. Participate actively in code reviews
5. Maintain regular issue processing schedule