{"id":30355023,"url":"https://github.com/amid68/java_microservice_infrastructure","last_synced_at":"2026-02-10T00:33:18.619Z","repository":{"id":306652339,"uuid":"1026855586","full_name":"Amid68/java_microservice_infrastructure","owner":"Amid68","description":"A complete DevOps pipeline demonstration featuring a Java Spring Boot microservice with automated CI/CD, containerization, and infrastructure as code.","archived":false,"fork":false,"pushed_at":"2025-07-26T19:35:34.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-26T23:31:28.770Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Amid68.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-26T18:56:29.000Z","updated_at":"2025-07-26T19:35:37.000Z","dependencies_parsed_at":"2025-07-26T23:31:29.809Z","dependency_job_id":"228d404f-84eb-4b30-943f-210d696515ab","html_url":"https://github.com/Amid68/java_microservice_infrastructure","commit_stats":null,"previous_names":["amid68/java_microservice_infrastructure"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/Amid68/java_microservice_infrastructure","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amid68%2Fjava_microservice_infrastructure","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amid68%2Fjava_microservice_infrastructure/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amid68%2Fjava_microservice_infrastructure/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amid68%2Fjava_microservice_infrastructure/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Amid68","download_url":"https://codeload.github.com/Amid68/java_microservice_infrastructure/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amid68%2Fjava_microservice_infrastructure/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271097705,"owners_count":24698745,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-19T04:09:10.992Z","updated_at":"2026-02-10T00:33:13.601Z","avatar_url":"https://github.com/Amid68.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Java Microservice Infrastructure\n\n[![Build Status](https://img.shields.io/badge/build-passing-brightgreen)]()\n[![Coverage](https://img.shields.io/badge/coverage-85%25-green)]()\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Java Version](https://img.shields.io/badge/Java-17-blue)]()\n\nA production-ready demonstration of modern DevOps practices featuring a Java Spring Boot microservice with complete CI/CD automation, infrastructure as code, and container orchestration.\n\n## 🏗️ Architecture Overview\n\nThis project demonstrates a complete DevOps pipeline for a user management microservice, showcasing industry best practices for:\n\n- **Continuous Integration/Continuous Deployment (CI/CD)**\n- **Infrastructure as Code (IaC)**\n- **Container Orchestration**\n- **Monitoring and Observability**\n- **Security and Compliance**\n\n## 🚀 Technology Stack\n\n| Category | Technologies |\n|----------|-------------|\n| **Application** | Java 17, Spring Boot 3.x, PostgreSQL |\n| **Containerization** | Docker, Docker Compose |\n| **CI/CD** | Jenkins, GitHub Actions |\n| **Infrastructure** | Terraform, AWS (ECS, RDS, VPC) |\n| **Monitoring** | Prometheus, Grafana, ELK Stack |\n| **Security** | OWASP ZAP, Trivy, SonarQube |\n\n## 📋 Features\n\n### Application Features\n- ✅ RESTful API for user management\n- ✅ JWT-based authentication\n- ✅ PostgreSQL database integration\n- ✅ Comprehensive test coverage (\u003e85%)\n- ✅ OpenAPI 3.0 documentation\n- ✅ Health checks and metrics endpoints\n\n### DevOps Features\n- ✅ Automated CI/CD pipeline\n- ✅ Infrastructure as Code with Terraform\n- ✅ Multi-environment deployments (dev/staging/prod)\n- ✅ Container security scanning\n- ✅ Blue-green deployment strategy\n- ✅ Automated rollback capabilities\n- ✅ Centralized logging and monitoring\n\n## 🏃‍♂️ Quick Start\n\n### Prerequisites\n\n- Docker and Docker Compose\n- AWS CLI configured\n- Terraform \u003e= 1.0\n- Java 17\n- Maven 3.8+\n\n### Local Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/Amid68/java_microservice_infrastructure.git\ncd java_microservice_infrastructure\n\n# Start local environment\ndocker-compose up -d\n\n# Run the application\ncd app\n./mvnw spring-boot:run\n\n# API will be available at http://localhost:8080\n# Swagger UI: http://localhost:8080/swagger-ui.html\n```\n\n### Infrastructure Deployment\n\n```bash\n# Initialize Terraform\ncd infrastructure/terraform/environments/dev\nterraform init\n\n# Plan deployment\nterraform plan\n\n# Apply infrastructure\nterraform apply\n```\n\n## 📊 CI/CD Pipeline\n\nThe pipeline includes the following stages:\n\n1. **Code Quality** - Static analysis with SonarQube\n2. **Testing** - Unit tests, integration tests, and contract tests\n3. **Security Scanning** - Dependency and container vulnerability scans\n4. **Build \u0026 Package** - Maven build and Docker image creation\n5. **Deploy to Staging** - Automated deployment to staging environment\n6. **Integration Tests** - End-to-end testing in staging\n7. **Production Deployment** - Blue-green deployment with manual approval\n\n## 🌍 Infrastructure\n\n### AWS Architecture\n\n```\n┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐\n│   Application   │    │    Load          │    │   Database      │\n│   Load Balancer │◄───┤    Balancer      ├───►│   (RDS)         │\n│   (ALB)         │    │                  │    │   PostgreSQL    │\n└─────────────────┘    └──────────────────┘    └─────────────────┘\n         │                       │                       │\n         ▼                       ▼                       ▼\n┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐\n│   ECS Cluster   │    │   VPC \u0026 Subnets  │    │   Security      │\n│   (Fargate)     │    │   Public/Private │    │   Groups        │\n└─────────────────┘    └──────────────────┘    └─────────────────┘\n```\n\n### Key Infrastructure Components\n\n- **VPC** with public and private subnets across multiple AZs\n- **ECS Fargate** for container orchestration\n- **RDS PostgreSQL** with automated backups\n- **Application Load Balancer** with SSL termination\n- **CloudWatch** for logging and monitoring\n- **IAM roles** following least privilege principle\n\n## 📈 Monitoring \u0026 Observability\n\n### Metrics \u0026 Monitoring\n- Application metrics via Micrometer\n- Infrastructure monitoring with CloudWatch\n- Custom business metrics dashboard\n- Automated alerting for critical issues\n\n### Logging\n- Centralized logging with ELK stack\n- Structured JSON logging\n- Log aggregation across all services\n- Log retention policies\n\n## 🔒 Security\n\n### Security Measures Implemented\n- Container image vulnerability scanning\n- Dependency vulnerability checks\n- OWASP security testing\n- Secrets management with AWS Secrets Manager\n- Network security with security groups\n- Encrypted data at rest and in transit\n\n## 🧪 Testing Strategy\n\n### Test Types\n- **Unit Tests** - 90%+ coverage requirement\n- **Integration Tests** - Database and external service integration\n- **Contract Tests** - API contract validation\n- **End-to-End Tests** - Full user journey testing\n- **Performance Tests** - Load and stress testing\n\n### Test Automation\n- Automated test execution in CI pipeline\n- Test results reporting and trending\n- Quality gates for deployment progression\n\n## 📁 Project Structure\n\n```\n├── app/                    # Java Spring Boot application\n├── infrastructure/         # Terraform IaC modules\n├── ci-cd/                 # CI/CD pipeline configurations\n├── monitoring/            # Monitoring and alerting setup\n├── scripts/               # Automation scripts\n└── docs/                  # Project documentation\n```\n\n## 🔧 Environment Configuration\n\n| Environment | Purpose | Infrastructure |\n|-------------|---------|----------------|\n| **Development** | Local development and testing | Docker Compose |\n| **Staging** | Pre-production testing | AWS ECS (1 instance) |\n| **Production** | Live environment | AWS ECS (3+ instances) |\n\n## 📚 Documentation\n\n- [API Documentation](docs/api-documentation.md)\n- [Deployment Guide](docs/deployment-guide.md)\n- [Architecture Decision Records](docs/adr/)\n- [Runbooks](docs/runbooks/)\n\n## 🤝 Contributing\n\nThis project follows standard Git workflow practices:\n\n1. Create feature branch from `main`\n2. Implement changes with tests\n3. Ensure all CI checks pass\n4. Create pull request for review\n5. Deploy after approval\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 📞 Contact\n\nFor questions about this project's implementation or DevOps practices demonstrated:\n\n- [LinkedIn](https://www.linkedin.com/in/ameed-othman/)\n- Email: [othman.ameed@gmail.com]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famid68%2Fjava_microservice_infrastructure","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famid68%2Fjava_microservice_infrastructure","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famid68%2Fjava_microservice_infrastructure/lists"}