This repository contains solution to the project "Give Your Application Auto-Deploy Superpowers"
A CI-CD pipeline for a client/server TypeScript project with backend hosted on AWS EC2 and frontend on AWS S3 bucket and served via CloudFront, monitored with Prometheus with Slack used for alerts. AWS Infrastructure created with Cloud Formation Templates, Ansible used in server configuration and Prometheus configuration
the fictional "UdaPeople" Product is a (Cloud-Based Software) Product, a revolutionary concept in Human Resources which promises to help small businesses care better for their most valuable resource: their people."
■ As we know, technology plays a crucial role in driving business growth and competitiveness. it's essential to stay up-to-date with the latest tools and practices. One such practice is Continuous Integration and Continuous Deployment (CI/CD).
■ CI/CD (Continuous Integration/Continuous Deployment) is a software development practice that helps teams automate the building, testing, and deployment of software.
■ Continuous Integration (CI) is the process of automatically compiling and testing code changes as they are made by developers. Every time a developer checks in their code to a shared repository, the CI tool automatically builds the application and runs tests to ensure that the code changes do not break any existing functionality. This helps to catch issues early in the development process, reducing the risk of bugs and errors creeping into the software.
■ Continuous Deployment (CD) is the process of automatically deploying new code changes to production environments. Once the code has been built and tested by the CI system, it can be automatically deployed to the cloud-based infrastructure where the application is hosted. This process ensures that the most up-to-date version of the software is always running in production, without any manual intervention needed.
- Circle CI - Cloud-based CI/CD service
- Amazon AWS - Cloud services
- AWS CLI - Command-line tool for AWS
- CloudFormation - Infrastrcuture as code
- Ansible - Configuration management tool
- Prometheus - Monitoring tool
- Nodejs 13
- Docker
- GitHub account
- CircleCi account
- AWS account
- kvdb api bucket
- Slack api App and Workspace
Relevant project files
-
Frontend Folder : Contains the frontend files of the application, access the README on how to use locally
-
Backend Folder : Contains the backend files of the application, access the README on how to use locally
-
Circleci Folder: Contains the circleci config file for the CI/CD pipeline as well as the ansible folder with the different playbooks for server configuration. The files folder contains the cloud formation templates for AWS infrastructure provisioning.