Skip to main content

Infrastructure

This section documents our infrastructure architecture, implementation, and management practices. We've built a robust, scalable infrastructure that supports our applications and services across multiple environments.

Contents

Infrastructure Philosophy

Our infrastructure is designed around several core principles:

  • Infrastructure as Code: All infrastructure is managed through code, enabling version control, testing, and automation.
  • GitOps: Git repositories serve as the source of truth for infrastructure and application deployments.
  • Scalability: Systems are designed to scale horizontally to handle varying workloads.
  • Reliability: Multi-AZ deployments and redundant components ensure high availability.
  • Security: Defense-in-depth approach with multiple security layers.
  • Cost Optimization: Resources are sized appropriately and monitored for cost effectiveness.

Environment Strategy

We maintain multiple environments to support the development lifecycle:

  • Development: For active development and early testing
  • Staging: For pre-production validation
  • Production: For live customer-facing systems

Each environment follows the same infrastructure patterns with appropriate scaling and security considerations.

Getting Started

New team members should start by understanding:

  1. AWS Architecture Overview
  2. Terragrunt Overview
  3. Kubernetes Overview

Before making changes to production infrastructure, consult with the infrastructure team and follow our change management processes.