Skip to content

gayanukabulegoda/Enterprise-Cloud-Architecture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Enterprise Cloud Architecture - Practical Microservices & Multi-Cloud Patterns

πŸ‘€ Gayanuka Bulegoda
πŸŽ“ Student ID: 2301682023
πŸ“§ Email: gayanukariviru@gmail.com


Enterprise-Cloud-Architecture - A hands-on, practical collection showing how to containerize, build, and deploy microservices across local Docker and cloud environments (AWS & GCP). Focus: Spring Boot backends, React frontend, MySQL & MongoDB, and media storage patterns (local β†’ S3/GCS).

Read on Notion Watch β€” AWS RDS (YouTube) Watch β€” GCP Cloud SQL (YouTube)


πŸ—‚ Repository Overview

This repo contains two main, ready-to-play-with project suites:

1) docker-intro-app - Docker containerization hands-on

A practical, full-stack demo showing how to containerize a microservice system for local development:

  • Spring Boot backends and a React frontend packaged for Docker.
  • MySQL and MongoDB containerized (latest LTS images recommended).
  • docker-compose.yml to orchestrate services for local development and tests.
  • Updated backend configs to connect to containerized DBs.

2) cloud-enabled-deployment-in-action-with-aws - Cloud deployment patterns

An introductory multi-cloud deployment blueprint and configs:

  • course-service (Spring Boot + MySQL) - cloud deployment scaffolding for AWS & GCP.
  • student-service (Spring Boot + MongoDB) - infra & deployment notes (AWS/GCP pending).
  • media-service - local file storage now; instructions and code to integrate S3/MinIO.
  • frontend-app - React + TypeScript build & cloud hosting patterns.
  • Build scripts and sample deployment configs.

πŸ”— IMPORTANT NOTES & QUICK REFERENCES

⭐ These links contain practical, fast demonstrations that complement the repo - watch them to speed up database provisioning and cloud connections.


πŸ“ Repo Structure

Enterprise-Cloud-Architecture/
β”œβ”€ 01) docker-intro-app/
β”‚  β”œβ”€ course-service/
β”‚  β”œβ”€ student-service/
β”‚  β”œβ”€ media-service/
β”‚  β”œβ”€ frontend/
β”‚  └─ docker-compose.yml
β”œβ”€ 02) cloud-enabled-deployment-in-action-with-aws/
β”‚  β”œβ”€ course-service/
β”‚  β”œβ”€ student-service/
β”‚  β”œβ”€ media-service/
β”‚  β”œβ”€ frontend-app/
β”‚  └─ deployment-configs/ (k8s / IaC / templates)
β”œβ”€ LICENSE
└─ README.md (this file)

⚑ Quickstart - Run Locally with Docker Compose

Prerequisites: Docker & Docker Compose installed. (Java, Node optional for building locally)

# clone
git clone https://github.com/gayanukabulegoda/Enterprise-Cloud-Architecture.git
cd "01) docker-intro-app"

# see docker-compose.yml and .env.example
# start local environment
docker compose up --build
  • Frontend: typically available at http://localhost:3000.
  • Backend APIs: exposed per service (see each service README or application.properties).

Stop:

docker compose down --volumes

☁️ Cloud Deployment Guidance

AWS (quick routes)

  • Databases: Use RDS (MySQL) for course-service. For MongoDB, consider DocumentDB, MongoDB Atlas, or self-managed on EKS.
  • Storage: Use S3 for media-service. Use IAM roles with least privilege + pre-signed URLs for client uploads.
  • Compute: ECS Fargate (quick) or EKS (Kubernetes) for production. Frontend: S3 + CloudFront for static hosting.
  • Secrets: Store credentials in Secrets Manager / Parameter Store.
  • Artifact registry: ECR for Docker images.
  • CI/CD: GitHub Actions β†’ build β†’ push β†’ deploy (ECS/EKS/Terraform).

GCP (equivalent patterns)

  • Cloud SQL for MySQL, GCS for object storage, Cloud Run (serverless) or GKE for containers.
  • Use Secret Manager, Artifact Registry, and Cloud Build or GitHub Actions for CI.

🧭 Architecture

flowchart LR
  Browser --> CDN_ALB["Frontend (React)"]
  CDN_ALB --> FrontendApp(("Frontend App"))
  FrontendApp --> API_Gateway["API Gateway"]
  API_Gateway --> CourseService["Course Service"]
  API_Gateway --> StudentService["Student Service"]
  API_Gateway --> MediaService["Media Service"]
  CourseService --> RDS[(MySQL RDS)]
  StudentService --> MongoDB[(MongoDB / Atlas)]
  MediaService --> ObjectStorage[(S3 / GCS)]
  Observability(("Monitoring & Tracing"))
  CourseService --> Observability
  StudentService --> Observability
  MediaService --> Observability
Loading

🀝 Contributing

Contributions welcome! Please:

  • Open issues for bugs / feature requests.
  • Use pull requests with clear descriptions.
  • Never commit secrets β€” use .env.example for sample variables.

Security disclosure contact: grbulegoda@gmail.com


πŸ“œ License

This repository is provided under the license in the root LICENSE file. (Please check that file for terms.)


πŸ’‘ If you find this project useful, consider giving it a ⭐ on GitHub!

πŸš€ Thank you for visiting! Stay connected & keep innovating! πŸŽ‰

Β© 2025 Gayanuka Bulegoda


About

Practical enterprise cloud architecture with Docker & multi-cloud deployments (AWS/GCP). Includes containerized microservices (Spring Boot, React, MySQL, MongoDB) and deployment blueprints with CI/CD, storage, and database patterns.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Contributors