Skip to main content

Architecture Overview

This is an illustrative example of a general application.

craftech-reference-architecture

Sleakops implements a well-defined infrastructure architecture designed to optimize operational excellence while ensuring a secure and scalable environment for users. The architecture consists of four accounts, each serving distinct purposes and isolated from one another.

Each account has a VPN instance generated upon the creation of the first cluster.

Security Account

  • The Security Account serves as a centralized hub for managing IAM users and their access to the system. learn how to switch between accounts in AWS Console Autentication

Management Account (Management Environment)

  • Contains an EKS cluster with integrated CI/CD (GitHub and HashiCorp Vault).
  • Vault manages credentials for CloudWatch, enhancing monitoring capabilities.
  • VPC Peering enables private connections to other accounts.

Production Account (Production Environment)

  • Supports external users and requires a fully functional database (RDS Master).
  • Utilizes Private DB Subnet for RDS Master, RDS Slave, and ElastiCache, each on different Availability Zones (AZs) for high availability.
  • Backend Deployment with replicas distributed across different AZs.
  • Frontend Deployment with LoadBalancer for even distribution of network load.
  • Route53 serves as DNS and performs health checks for the application.
  • AWS CloudFront serves static frontend content from an S3 bucket.
  • RDS Slave acts as a replica of RDS Master for failover scenarios, maximizing uptime.

Development Account (dev, qa, and staging Environments)

  • Contains three environments: dev, qa, and staging.
  • Replicas of the prod environment for code writing, testing, and pre-releases.
  • Ensures isolated testing to prevent issues for external users.
  • Similar architecture to prod but without RDS Slave for reduced high availability requirements.

Sleakops' architecture provides users with a powerful, scalable, and secure environment for deploying and managing applications. The clear separation of accounts and environments allows for efficient development, testing, and production workflows with maximum control over resources.