- Introduction
- Project Overview
- Team Members
- Project Goals and Objectives
- Scope
- Project Deliverables
- Technologies
- Deployment Process
- Best Practices Implemented
- Lessons Learned
- Conclusion
- Acknowledgments
This document serves as the documentation for the capstone project conducted by group 12 of the Alt School Cloud Engineering Students. The primary objective of this project was to deploy a school open-source app while incorporating best practices in the deployment process. The app aimed to provide essential features for managing various aspects of a school's operations.
The project focused on deploying a school NGO app that would enhance the management of student information, course schedules, attendance tracking, and other administrative tasks. The app aimed to streamline processes, improve efficiency, and provide a user-friendly interface for administrators, teachers, and students allowing for volunteers to sign up to teach and also donate funds for the NGO.
- CI/CD TEAM: Bukola Testimony, Faboya Korede, Salu Teslim
- FINOPS TEAM: George Omoja, Akunne Chidi
- INFRASTRUCTURE TEAM: Salu Teslim, Gladys Oviawe, Kyazike Samaka Gloria
- SRE TEAM: Faboya Korede, Omokolade Adelekan
- TECHNICAL WRITING: Gladys Oviawe, Osarobe Divine
The primary goals and objectives of the project were as follows
- Deploy a school open-source app.
- Implement best practices in the deployment process.
- Ensure data security and protection of sensitive information.
- Deployment of the app on a scalable infrastructure.
- Implementation of continuous integration and continuous deployment (CI/CD) pipelines.
- Monitoring and logging of the deployed application.
- Implementation of security measures to protect user data.
The following deliverables were produced as part of the project:
- Deployed school open-source app accessible through a web interface.
- Documentation of the deployment process and best practices employed.
- Source code repository with version control history.
- Test cases and quality assurance reports.
- Infrastructure setup and configuration scripts.
- Monitoring and logging setup documentation.
The team utilized a range of technologies to complete the project:
- Programming Languages: Hcl, yaml
- Database: MongoDB
- Cloud Platform: AWS (Amazon Web Services)
- Infrastructure-as-Code: Terraform
- Containerization: Docker
- Orchestration: Kubernetes
- CI/CD: Git Actions
- Monitoring: Prometheus, Grafana
- Version Control: Git
The deployment process involved the following steps:
- Infrastructure Setup: Provisioning the required infrastructure using Terraform scripts. This included provisioning kubernetes clusters, monitoring stack, and networking components on AWS.
- Containerization: Dockerizing the application components to ensure consistency and portability across different environments.
- Orchestration: Utilizing Kubernetes for container orchestration and managing scalability, load balancing, and fault tolerance.
- CI/CD Pipelines: Configuring Github Actions to automate the build, test, and deployment process. This involved setting up webhook triggers from the version control system and defining pipeline stages.
- Security Measures: Implementing SSL/TLS certificates, firewalls, and access controls to protect sensitive data and secure the application.
- Monitoring and Logging: Setting up Prometheus for monitoring application metrics and grafana for visualization of the metrics.
- Documentation: Documenting the deployment process, including infrastructure setup, configuration steps, and troubleshooting guidelines.
Every code both terraform, git workflows, kubernetes manifests are all found in this repository folders, all well labelled for easy understanding and deployment, they are written declaratively, therefore making it reusable.
To deploy the app with the configurations already set up here, fork this repo: https://github.com/Capstone-12/ and
The project provided valuable learning opportunities for the team members. Key lessons learned include:
- Importance of Collaboration: Effective communication and collaboration are crucial for successful project execution, particularly in cross-functional teams.
- Continuous Testing and Feedback: Regular testing and feedback loops are essential to identify and address issues early
We are glad that we finally graduated from ALTSCHOOL AFRICA
Special thanks to God, Our tutors: Kunrad, Valentine and Abuango for the opportunity to learn and grow. Special thanks to Altschool Africa