Update README.md
This commit is contained in:
68
README.md
68
README.md
@@ -1,2 +1,70 @@
|
|||||||
# nvhi-atsila-microservice
|
# nvhi-atsila-microservice
|
||||||
|
|
||||||
|
# AWS ECS CI/CD Pipeline with Terraform, Ansible & Jenkins
|
||||||
|
|
||||||
|
A complete CI/CD pipeline for deploying microservices to AWS ECS using infrastructure as code and configuration management.
|
||||||
|
|
||||||
|
## 🚀 Overview
|
||||||
|
|
||||||
|
This project implements an end-to-end CI/CD pipeline that automates the build, test, and deployment of microservices to AWS ECS. The pipeline leverages DevOps best practices to create a reproducible, scalable deployment solution optimized for AWS Free Tier.
|
||||||
|
|
||||||
|
## 🛠️ Technology Stack
|
||||||
|
|
||||||
|
- **Terraform** - Provisions all AWS infrastructure
|
||||||
|
- **Ansible** - Configures EC2 instances with Docker and ECS agent
|
||||||
|
- **Jenkins** - Orchestrates the entire CI/CD workflow
|
||||||
|
- **Artifactory** - Hosts Docker images
|
||||||
|
- **SonarQube** - Enforces code quality gates
|
||||||
|
- **Gitea** - Git repository hosting
|
||||||
|
- **AWS ECS** - Container orchestration (EC2-backed)
|
||||||
|
|
||||||
|
## 📋 Pipeline Workflow
|
||||||
|
|
||||||
|
1. Developer pushes code to Gitea
|
||||||
|
2. Jenkins webhook triggers the pipeline
|
||||||
|
3. SonarQube scans code for quality compliance
|
||||||
|
4. Docker image is built from approved code
|
||||||
|
5. Image is pushed to Artifactory registry
|
||||||
|
6. Terraform provisions/updates AWS infrastructure
|
||||||
|
7. Ansible configures EC2 instances for ECS
|
||||||
|
8. Microservice is deployed to ECS cluster
|
||||||
|
|
||||||
|
## 🏗️ Infrastructure Components
|
||||||
|
|
||||||
|
### AWS Resources (Managed by Terraform)
|
||||||
|
- VPC with public/private subnets
|
||||||
|
- ECS cluster with EC2 container instances
|
||||||
|
- Application Load Balancer (ALB)
|
||||||
|
- Security groups and IAM roles
|
||||||
|
- Auto-scaling capabilities
|
||||||
|
|
||||||
|
### DevOps Tools (Self-hosted)
|
||||||
|
All DevOps tools run on a dedicated Linux server:
|
||||||
|
- Jenkins for CI/CD automation
|
||||||
|
- Gitea for version control
|
||||||
|
- SonarQube for code analysis
|
||||||
|
- Artifactory for artifact management
|
||||||
|
|
||||||
|
## 📁 Project Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
├── terraform/ # Infrastructure as Code
|
||||||
|
├── ansible/ # Configuration management
|
||||||
|
├── jenkins/ # CI/CD pipeline definitions
|
||||||
|
├── microservice/ # Sample application
|
||||||
|
├── scripts/ # Setup and utility scripts
|
||||||
|
└── docs/ # Documentation
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔒 Key Features
|
||||||
|
|
||||||
|
- **Fully Automated** - Push code and deploy automatically
|
||||||
|
- **Quality Gates** - SonarQube ensures code standards
|
||||||
|
- **Infrastructure as Code** - All resources defined in Terraform
|
||||||
|
- **Configuration Management** - Ansible ensures consistent server setup
|
||||||
|
- **AWS Free Tier** - Optimized for minimal AWS costs
|
||||||
|
- **Modular Design** - Easy to extend and customize
|
||||||
|
|
||||||
|
## 📄 License
|
||||||
|
|
||||||
|
This project is licensed under the MIT License.
|
Reference in New Issue
Block a user