How do you approach a new cloud architecture? Start with business outcomes, user patterns, integrations, data classification, compliance, availability, latency, RTO/RPO, and budget. Build a current-state view. Design covers identity, network, compute, data, security, observability, deployment, resilience, and cost governance. Validate risky assumptions with focused PoCs before committing.
What are the well-architected pillars? Operational excellence, Security, Reliability, Performance efficiency, Cost optimization, Sustainability. I also explicitly include Governance, Data management, Compliance, and Organizational readiness. Maximizing one dimension — like availability — without considering cost and operational capability produces an impractical design.
Hub-and-spoke vs mesh networking? Hub-and-spoke centralizes shared connectivity, inspection, DNS, egress, and hybrid links — simplifies governance, my default for most enterprises. Full mesh provides direct connectivity but becomes unmanageable at scale. At scale: AWS Transit Gateway, Azure Virtual WAN, or GCP Network Connectivity Center. Don't make the hub a throughput bottleneck.
How do you design a multi-tenant cloud platform? Identify isolation level: shared app+DB with tenant keys → separate schemas → separate DBs → separate namespaces → separate accounts. Propagate tenant identity through auth, authz, data access, caches, queues, logs, encryption, and billing. Include noisy-neighbor controls, tenant quotas, and automated onboarding/offboarding.
How do you optimize cloud cost? Establish ownership first (accounts, tags, budgets, showback). Then: rightsizing, autoscaling, commitment discounts for stable demand, spot/preemptible for tolerant workloads, storage lifecycle, managed service tier selection, data-transfer paths, log retention, non-prod scheduling. Assess cost per business transaction — not just the monthly bill.
Cloud bill doubles after moving to K8s — what do you examine? Overprovisioned node groups, inflated pod requests, low utilization due to scheduling constraints, unused LBs and public IPs, NAT Gateway egress charges, cross-zone traffic, excessive logging, orphaned volumes and snapshots, non-prod clusters running continuously, idle GPU nodes, missing autoscaler consolidation.