diff --git a/{{cookiecutter.project_slug}}/README.md b/{{cookiecutter.project_slug}}/README.md index b9bec0bf..d1753fc2 100644 --- a/{{cookiecutter.project_slug}}/README.md +++ b/{{cookiecutter.project_slug}}/README.md @@ -72,3 +72,43 @@ To create a superuser use the following commands: If React frontend was selected during the project creation (using our [cookiecutter](https://github.com/sixfeetup/cookiecutter-sixiedjango)), you can access it at [http://localhost:3000/](http://localhost:3000/). + +## Architecture + +Here is what a cookiecutter deployment looks like in practice: + +```mermaid +flowchart LR + PR["PR Merge"] --> CIDCD["CI/CD Pipeline"] + CIDCD -->|Build & Push Images| AWSECR["AWS ECR Repo"] + CIDCD -->|Update Image Tags| Kustomize + CIDCD -->|Build & Push Static Content| S3 + Kustomize --> ArgoCD + Cloudfront + S3 + subgraph ControlPlaneCluster["Control Plane Cluster"] + Loki["Grafana Loki"] + Prometheus + ArgoCD + end + subgraph K8sCluster["Kubernetes Cluster"] + Django + NextJS + CloudNativePG + Redis + Celery + Mailhog + end + ArgoCD -->|Deploy| K8sCluster + Sentry + Django -->|Sends Error Logs| Sentry + NextJS -->|Sends Error Logs| Sentry + K8sCluster -->|Sends Logs| Loki + K8sCluster -->|Sends Metrics| Prometheus + Cloudfront -->|Requests for API and Frontend Views| K8sCluster + Cloudfront -->|Requests for Static Content and Media| S3 + + style K8sCluster fill:#FFC107, stroke:#FFFFFF, stroke-width:1px + style ControlPlaneCluster fill:#ff6361, stroke:#FFFFFF, stroke-width:1px + +```