ORO Platform Overview¶
ORO's entire technology platform runs on Google Cloud Platform across three fully isolated environments — development, staging, and production. Every component is defined as code, every deployment is automated and tracked, and every engineer operates on the same repeatable foundation. This page is the ten-minute read that gives a complete picture of what we've built and why it matters.
What We've Accomplished¶
- 100% infrastructure-as-code — no engineer has ever clicked "create" in the GCP console to provision a production resource. Every server, network rule, and database is version-controlled and reproducible.
- GitOps delivery pipeline — merging code to the main branch triggers an automated pipeline that validates, tests, and deploys to the target environment. The full audit trail of every change lives in git.
- Zero-trust security from day one — all service-to-service communication is encrypted and authenticated. No service can reach another unless explicitly permitted. Credentials are never hardcoded anywhere in the codebase.
- Three production-parity environments — development mirrors staging mirrors production. Bugs caught in dev stay in dev.
- Centralized observability — every service emits metrics, logs, and traces to a unified monitoring stack. The team sees a problem before users do.
- Safe, automated database migrations — schema changes go through a three-stage validation pipeline including a real dry-run on a disposable database clone before touching production data.
The Five Layers¶
Layer 1 — Infrastructure & Provisioning¶
The Automated Foundation
| Component | Technology | What it does |
|---|---|---|
| Cloud provider | Google Cloud Platform (GCP) | Hosts all compute, networking, storage, and managed services |
| Infrastructure-as-code | Terraform + Terragrunt | Defines every cloud resource as versioned configuration files |
| Networking | GCP VPC, Private Service Connect | Isolates each environment in its own private network; no public database endpoints |
Every piece of infrastructure — Kubernetes clusters, databases, load balancers, DNS entries, firewall rules — is declared in code and applied through an automated pipeline. There are no snowflake servers. If an environment were destroyed, it could be recreated from scratch with a single command.
Layer 2 — Delivery & Operations¶
Deployment Velocity & Reliability
| Component | Technology | What it does |
|---|---|---|
| CI/CD pipelines | Bitbucket Pipelines | Automates build, test, and deployment for every code change |
| GitOps deployments | ArgoCD | Watches the git repository and continuously syncs the running platform to the desired state |
| Metrics & dashboards | Prometheus + Grafana | Real-time visibility into CPU, memory, request rates, error rates, and latency across all services |
| Log aggregation | Loki | Centralized log storage and search — one place to debug any service |
Code goes from a developer's laptop to production through a fully automated pipeline. Deployments are reversible — rolling back to a previous version is a one-click operation. The team doesn't deploy on Fridays because there's nothing to fear about Monday morning, not because deployments are risky.
Layer 3 — Data & Intelligence¶
The Proprietary Data Moat
| Component | Technology | What it does |
|---|---|---|
| Relational database | Cloud SQL MySQL 8.0 | Primary structured data store — each microservice owns its own isolated schema |
| Document database | MongoDB (Percona PSMDB Operator) | Flexible document storage for unstructured or semi-structured data, HA in staging/prod |
| Cache | Cloud Memorystore Redis | High-speed in-memory cache for session data and frequently accessed records |
| Event streaming | Apache Kafka | Asynchronous messaging between services — decouples producers from consumers |
| Schema migrations | Flyway (via oro-database-migrations) |
Version-controlled, automated database schema changes with rollback support |
Data is isolated by design. No microservice can read another service's database — all cross-service data sharing happens through APIs or Kafka events. Schema changes are never applied manually: they go through a three-stage automated pipeline (validation → dry-run on a clone → apply) so a bad migration can never silently corrupt production.
Kafka topics in production:
| Topic | Purpose |
|---|---|
check-health-topic |
Service health events |
service-log-topic |
Service-level log events |
client-log-topic |
Client-level log events |
account-event-log-topic |
Account lifecycle events |
Layer 4 — Service & Application¶
Modular Core Architecture
| Component | Technology | What it does |
|---|---|---|
| Container orchestration | GKE (Google Kubernetes Engine) | Runs, scales, and heals containerized services automatically |
| Service mesh | Istio | Encrypts all service-to-service communication; enforces traffic policies at the network level |
| Core microservices | 4 services | Identity, core business logic (monolith), communication, analytics — each independently deployable |
| API gateways | 4 gateways | Separate entry points for different client types and partner integrations |
The platform is built on a microservices architecture: four independently deployable services, each with its own database, deployment pipeline, and team ownership. Services communicate over an encrypted mesh (mutual TLS — both sides verify each other's identity before any data is exchanged). Adding a new service or scaling an existing one has zero impact on the others.
Service map:
┌──────────────────────────────────────────┐
│ API Gateways (×4) │
│ oro · orofi · communication · analytics │
└──────────────┬───────────────────────────┘
│ mTLS (encrypted, authenticated)
┌───────────────┬────────┴──────────┬──────────────────┐
▼ ▼ ▼ ▼
microservice- microservice- microservice- microservice-
identity monolith communication analytics
│ │ │ │
▼ ▼ ▼ ▼
MySQL DB MySQL DB MySQL DB MySQL DB
│
MongoDB ── Redis ── Kafka
Layer 5 — Client & Interaction¶
The User-Facing Edge
| Component | Technology | What it does |
|---|---|---|
| API gateways | 4 Istio-backed gateways | Routes external traffic (web, mobile, partner APIs) to the correct internal service |
| TLS termination | Istio ingress gateway + cert-manager | Automatically provisions and renews SSL/TLS certificates for all public endpoints |
| DNS | GCP Cloud DNS | Manages all domain routing for *.dev.orofi.xyz, *.stage.orofi.xyz, *.orofi.xyz |
| DDoS & rate limiting | GCP Load Balancer | First line of defense before traffic enters the platform |
All public traffic enters through one of four API gateways, each scoped to a different client type. No internal service is ever directly reachable from the internet. TLS certificates are provisioned and rotated automatically — the team has never manually renewed a certificate.
Security & Compliance¶
ORO operates a five-layer zero-trust security model. "Zero trust" means no component is trusted by default — every request must be authenticated and authorized, even between internal services.
| Layer | What it protects | How |
|---|---|---|
| Network | Perimeter | Private VPCs per environment; no public database or internal service endpoints |
| Identity | Who can act | GCP Workload Identity — every service runs as a named service account with the minimum permissions needed |
| Transport | Data in motion | Istio mutual TLS — all service-to-service traffic is encrypted and both sides verify identity |
| Secrets | Credentials | GCP Secret Manager — zero hardcoded passwords or API keys anywhere in the codebase |
| Application | API access | JWT tokens + API keys validated at the gateway; OAuth2 Proxy for internal tooling |
Additional controls:
- Encryption at rest — the identity service encrypts sensitive data with Cloud KMS (Google's key management service) before writing to the database
- Least-privilege access — engineers have read-only access to production by default; changes require explicit approval
- Full audit trail — all infrastructure changes are tracked in git; GCP audit logs are retained for 400 days
- Automated certificate rotation — TLS certificates for all public endpoints are renewed automatically via cert-manager
Compliance certifications
SOC 2 / ISO 27001 / GDPR certification status: [NEEDS TEAM INPUT]. The technical controls are in place — formal certification is a process decision.
Cost & Efficiency¶
Cost visibility: KubeCost (a Kubernetes cost monitoring tool) breaks down GCP spending per service, per namespace, and per environment — giving the team a clear view of what each part of the platform costs and where to optimize.
Built-in cost controls:
| Mechanism | Savings |
|---|---|
| Dev environment auto-shutdown | Dev cluster scales to zero outside working hours — no idle spend |
| Staging at reduced tiers | Staging mirrors production architecture but at lower resource tiers |
| Committed Use Discounts (available) | 30–55% savings on compute for predictable workloads |
| Spot/preemptible nodes (available) | Up to 80% savings on non-critical workloads |
Spend figures
Actual monthly GCP spend by environment: [NEEDS TEAM INPUT — provide figures from GCP billing console or KubeCost export].
Key Numbers at a Glance¶
| What | Value |
|---|---|
| Cloud provider | Google Cloud Platform |
| Environments | 3 — dev, staging, production |
| Core microservices | 4 |
| API gateways | 4 |
| Relational databases | 4 isolated MySQL schemas (Cloud SQL 8.0) |
| Document database | MongoDB (Percona, HA in prod/staging) |
| Cache | Cloud Memorystore Redis |
| Event streaming | Apache Kafka (4 topics) |
| Deployment model | GitOps via ArgoCD |
| IaC coverage | 100% — Terraform + Terragrunt |
| Secrets management | GCP Secret Manager — zero hardcoded credentials |
| Observability | Prometheus + Grafana + Loki |
| Database migration safety | 3-stage automated pipeline (validate → dry-run clone → apply) |
| TLS certificates | Automatically provisioned and renewed |
| Audit log retention | 400 days (GCP Cloud Audit Logs) |
Architecture at a Glance¶
graph TB
Internet["🌐 Internet (Web / Mobile / Partners)"]
subgraph Edge["Layer 5 — Edge"]
GW["API Gateways ×4\n(Istio Ingress + TLS)"]
end
subgraph Services["Layer 4 — Services (GKE + Istio mTLS)"]
ID["microservice-identity"]
MN["microservice-monolith"]
CM["microservice-communication"]
AN["microservice-analytics"]
end
subgraph Data["Layer 3 — Data"]
SQL["Cloud SQL MySQL\n(4 isolated schemas)"]
MDB["MongoDB\n(Percona HA)"]
RDS["Redis Cache"]
KFK["Kafka\n(Event Streaming)"]
end
subgraph Infra["Layer 1 — Infrastructure (GCP + Terraform)"]
GKE["GKE Kubernetes Cluster"]
VPC["Private VPC Network"]
end
Internet --> GW
GW --> ID & MN & CM & AN
ID --> SQL
MN --> SQL & MDB & RDS & KFK
CM --> SQL & KFK
AN --> SQL
Further Reading¶
| Topic | Link |
|---|---|
| Detailed system architecture | System Overview |
| Architecture decisions and why | Architecture Overview |
| Full security controls | Security Model |
| All services and their owners | Service Catalog |
| Cost breakdown and optimization | Cost Overview |
| Compliance control inventory | Compliance |
| Database migration process | Database Migrations |