Skip to main content

Architecture Overview

High-Level Description

This document describes the deployment of a React 18 frontend and Django 4.2.7 backend application on Google Cloud Platform for SMART360, utilizing a microservices architecture with containerized deployments on Google Kubernetes Engine (GKE). The application uses REST APIs for communication between frontend and backend services.

Architecture Diagram


gcp-bynry-arch.drawio-18-06.png


Technology Stack

  • Frontend: React 18
  • Backend: Django 4.2.7 with Django REST Framework
  • Container Orchestration: Google Kubernetes Engine (GKE) Standard Mode
  • Caching: Redis
  • Database: PostgreSQL (Single instance per environment)
  • CI/CD: Jenkins
  • Cloud Provider: Google Cloud Platform
  • Load Balancing: Google Cloud Load Balancer
  • CDN: Google Cloud CDN
  • Storage: Google Cloud Storage (Static files)
  • Monitoring: Google Cloud Console & Monitoring

Communication Architecture

  • React frontend communicates with Django backend via REST APIs
  • Redis is used for caching to improve application performance
  • Frontend : Static files (React build artifacts) are served via Cloud CDN



Prerequisites

Required Tools and Access

  • Google Cloud SDK (gcloud CLI)
  • kubectl command-line tool
  • Docker
  • Jenkins access with Jenkinsfile configuration
  • GitHub repository access
  • Required GCP IAM permissions for:
    • GKE cluster management
    • Container Registry access
    • Cloud Storage management
    • Load Balancer configuration

GCP Services Enabled

  • Google Kubernetes Engine API
  • Cloud Load Balancing API
  • Cloud CDN API
  • Cloud Storage API
  • Cloud SQL API
  • Container Registry API
  • Cloud Logging API
  • Cloud Monitoring API
  • Google Cert Manager



Infrastructure Components

Google Cloud Project Setup

Regions: us-central1 (Multi-Region US) 

Environments: Development and Staging

Google Kubernetes Engine (GKE) Clusters

Development Environment

  • Cluster Name: dev-smart360-gke
  • Mode: GKE Standard
  • Location: us-central1
  • Environment: Development
  • Domain: platform-dev.bynry.com

Staging Environment

  • Cluster Name: qa-smart360-gke
  • Mode: GKE Standard
  • Location: us-central1
  • Environment: Staging
  • Domain: platform-staging.bynry.com

Networking

VPC Configuration

  • VPC: Google Managed VPC (Default VPC)
  • Load Balancing: Cloud Load Balancing with Application Load Balancer (ALB)
  • CDN: Cloud CDN for static file delivery
  • SSL/TLS: Google-managed SSL certificates

Platform DNS Configuration

  • Development: platform-dev.bynry.com
  • Staging: platform-staging.bynry.com