Cloud & Platform Architecture Decisions
Introduction​
Cloud and platform architecture is one of the most consequential decision domains for modern technology organizations. The adoption of cloud platforms has transformed how systems are built, deployed, and operated, but it has not eliminated architecture decisions. In fact, it has introduced a new and expansive set of choices that demand careful evaluation.
When designing systems for the cloud, architects must navigate decisions around deployment models, platform services, scalability, resilience, networking, security, cost, operational responsibility, portability, and governance. The correct choice is never determined by technology alone. It depends on business context, architecture drivers, and a clear-eyed assessment of trade-offs.
This page serves as a structured knowledge hub for cloud and platform architecture decisions. It provides a framework for thinking about these choices, common patterns, key trade-offs, and connections to other architecture domains. The goal is to help architects make explicit, contextual, and revisitable decisions that align with business outcomes.
What Is Cloud & Platform Architecture?​
Cloud Architecture refers to the design of systems that leverage cloud infrastructure and managed services. It encompasses compute, storage, networking, security, and operations within cloud environments. Cloud architecture decisions determine how workloads are deployed, scaled, and recovered.
Platform Architecture focuses on the shared capabilities, runtime environments, infrastructure abstractions, and engineering platforms that enable application teams to deliver software efficiently. It includes internal developer platforms, Kubernetes clusters, CI/CD pipelines, observability stacks, and infrastructure-as-code tooling.
These two domains are deeply intertwined. A cloud architecture may consume platform services, and a platform architecture is typically built on top of cloud infrastructure. Together, they form the foundation upon which application architectures are built.
The relationship between enterprise architecture, cloud strategy, platform architecture, and application architecture can be understood as follows:
This hierarchy illustrates directional influence. Enterprise architecture defines business capabilities and technology standards. Cloud strategy translates these into high-level cloud adoption principles. Platform architecture operationalizes the cloud strategy by providing shared infrastructure and developer services. Application architecture designs individual systems that run on the platform.
It is important to note that this is not a rigid top-down waterfall. Feedback flows upward as well. Application requirements drive platform evolution, and platform constraints inform cloud strategy and enterprise standards.
Why Cloud and Platform Decisions Matter​
Cloud and platform decisions have far-reaching consequences across multiple dimensions of system design and organizational effectiveness.
Scalability and Availability. The choice of compute model, deployment topology, and resilience patterns directly determines how a system handles load and recovers from failures. Autoscaling, multi-zone deployment, and load balancing are not free features — they come with complexity and cost trade-offs.
Security and Compliance. Cloud platforms offer extensive security controls, but their configuration and management are architecture decisions. Misconfigured identity and access management or network policies can expose systems to risks that are difficult to remediate.
Cost and Operational Complexity. Cloud services shift cost models from capital expenditure to operational expenditure, but they also introduce new forms of operational overhead. The cost of a system is not just cloud infrastructure spend — it includes engineering time, support burden, and the cognitive load of managing distributed systems.
Developer Productivity. Well-designed platforms accelerate feature delivery by providing golden paths, self-service capabilities, and standardized tooling. Poorly designed platforms become bottlenecks that frustrate developers and slow down releases.
Vendor Dependency and Business Agility. Heavy reliance on managed services improves time-to-market but increases migration costs and vendor lock-in. Architects must assess whether the short-term benefits of a service outweigh the long-term constraints it imposes.
Cloud architecture decisions are not one-time events. They require ongoing governance, review, and adaptation as business requirements evolve and cloud platforms introduce new capabilities.
Core Cloud & Platform Decision Areas​
The following decision areas represent the most common and impactful choices architects face when designing cloud and platform architectures.
Cloud Strategy​
Cloud strategy defines the overarching approach to cloud adoption. Key decisions include:
- Single Cloud: Using a single cloud provider for all workloads. This approach maximizes integration benefits, simplifies operations, and reduces the skills required.
- Multi-Cloud: Using multiple cloud providers to avoid vendor dependency, improve resilience, or leverage best-of-breed services from different providers. This introduces significant complexity in networking, security, and operations.
- Hybrid Cloud: Combining private infrastructure with public cloud services. This is common in regulated industries or when migrating legacy systems gradually.
- Cloud-First vs. Cloud-Appropriate: Cloud-first means assuming all new workloads will run on cloud. Cloud-appropriate means evaluating each workload individually based on its specific requirements.
The optimal cloud strategy is driven by business, regulatory, technical, and operational requirements. There is no universally correct answer.
Compute Strategy​
The choice of compute abstraction determines the level of control, operational responsibility, and developer experience. Common options include:
- Virtual Machines: Provides full control over the operating system and runtime environment. Suitable for legacy applications or workloads with specific compliance requirements.
- Containers: Standardized packaging and execution that enhances portability and consistency across environments.
- Kubernetes: Container orchestration for complex applications requiring autoscaling, service discovery, and declarative configuration.
- Serverless / Function-as-a-Service: Abstracted compute that scales automatically and charges per invocation. Reduces operational overhead but introduces constraints on runtime and execution duration.
- Platform-as-a-Service: Higher-level abstractions that manage the runtime environment, often including built-in scaling and middleware.
The trade-off is between control and operational simplicity. Each option is appropriate for different workload characteristics and team capabilities.
Platform Engineering​
Platform engineering is the discipline of building and operating internal developer platforms that provide self-service capabilities and standardization. Decisions include:
- Internal Developer Platform (IDP): A curated set of tools, APIs, and workflows that abstract infrastructure complexity and provide golden paths for developers.
- Infrastructure as Code (IaC): Declarative provisioning and management of infrastructure, enabling version control, review, and automated deployment.
- Developer Self-Service: Allowing teams to provision environments, deploy applications, and manage configuration without manual intervention.
- Standardization: Defining approved technology stacks, deployment practices, and operational patterns.
Platform engineering creates significant value in organizations with multiple teams and frequent software delivery. However, building a platform before identifying real developer needs often results in unnecessary complexity and low adoption.
Scalability and Resilience​
Architects must decide how systems will scale and recover from failures. Key considerations include:
- Horizontal Scaling: Adding more instances to handle increased load. Effective for stateless workloads but requires load balancing and distributed state management for stateful workloads.
- Autoscaling: Dynamic adjustment of capacity based on demand. Requires robust metrics and careful threshold configuration to avoid oscillation or over-provisioning.
- Multi-Zone Deployment: Distributing instances across availability zones within a region to protect against zone failures.
- Multi-Region Deployment: Running systems in multiple geographic regions to protect against regional outages and reduce latency for global users.
- Disaster Recovery: Defining recovery point objectives (RPO) and recovery time objectives (RTO) and designing architecture to meet them.
Availability requirements directly influence these decisions. A 99.9% availability target may be achievable with single-region multi-zone deployment, while 99.99% likely requires multi-region active-active or active-passive configurations.
Cost and FinOps​
Cloud cost is not just a financial concern — it is an architecture decision. Architects must consider:
- Infrastructure Cost: Compute, storage, and network costs based on resource consumption.
- Managed Services: Services that reduce operational overhead typically come with higher per-unit costs but lower total cost of ownership when engineering time is factored in.
- Capacity Planning: Choosing between reserved instances, spot instances, and on-demand pricing based on workload predictability.
- Operational Overhead: The engineering effort required to manage, monitor, and troubleshoot systems.
- FinOps: Implementing financial accountability by tracking, analyzing, and optimizing cloud spend across teams.
The lowest infrastructure price does not necessarily mean the lowest total cost. Architects must evaluate the entire cost picture, including developer time, downtime costs, and opportunity costs.
Portability and Vendor Lock-in​
Portability refers to the ease of moving workloads between cloud providers or between cloud and on-premises environments. Vendor lock-in is the degree to which a system depends on provider-specific services or APIs.
Key decisions include:
- Managed Service Dependency: Using provider-specific services such as managed databases, queues, or storage systems reduces operational burden but increases lock-in.
- Open Standards: Preferring open standards, open-source software, and portable abstractions (such as containers and Kubernetes) can improve portability.
- Abstraction Layers: Adding abstraction layers to decouple applications from infrastructure can improve portability but introduces complexity and performance overhead.
- Migration Cost: Assessing the cost and effort required to migrate workloads in the future.
Avoiding all lock-in is often unrealistic and can itself be a costly strategy. Lock-in should be treated as an architectural trade-off, evaluated based on the expected lifespan of the system and the strategic value of the provider's services.
Common Cloud Architecture Patterns​
The following patterns represent recurring solutions to common cloud and platform architecture challenges.
Cloud-Native Architecture​
An approach that fully embraces cloud characteristics — elastic scalability, distributed resilience, managed services, and DevOps practices. Suitable for greenfield applications with high scalability and agility requirements. Trade-offs include reliance on managed services and the need for organizational maturity.
Multi-Region Architecture​
Systems deployed across multiple geographic regions to achieve high availability, disaster recovery, and low-latency access for global users. Suitable for mission-critical applications and global user bases. Trade-offs include significant cost increases and architectural complexity in data replication and consistency.
Hybrid Cloud Architecture​
Combines public cloud resources with private data centers or on-premises infrastructure. Suitable for organizations with regulatory constraints, legacy systems, or gradual migration strategies. Trade-offs include operational complexity, network security challenges, and inconsistent developer experience across environments.
Landing Zone Architecture​
A structured approach to organizing and securing cloud environments for enterprise adoption. Includes account structure, network design, security policies, and governance controls. Suitable for large organizations implementing cloud at scale. Trade-offs include upfront design overhead and the need for ongoing governance.
Container Platform Architecture​
A Kubernetes-based platform that provides container orchestration, service discovery, and declarative application management. Suitable for microservices and complex distributed systems. Trade-offs include operational overhead for managing Kubernetes clusters and the need for platform engineering expertise.
Serverless Architecture​
Systems built entirely or primarily using Function-as-a-Service and managed services. Suitable for event-driven workloads, intermittent applications, and teams seeking maximum operational simplicity. Trade-offs include cold start latency, limited execution environments, and vendor dependency.
Internal Developer Platform​
An engineering platform that provides self-service capabilities, abstracted infrastructure, and golden paths for development teams. Suitable for organizations with multiple product teams and frequent delivery. Trade-offs include the cost of building and maintaining the platform and the risk of building the wrong abstractions.
Platform Engineering Model​
A maturity model approach that defines platform capabilities based on organizational needs and team structures. Suitable for evolving platform capabilities in alignment with business growth. Trade-offs include the need for continuous investment and adaptation.
Featured Decision Guides​
This section contains in-depth decision guides for specific cloud and platform architecture choices.
Single Cloud vs Multi-Cloud Strategy​
/architecture-decisions/cloud-platform/single-vs-multi-cloud/
This guide evaluates cloud strategy options based on business requirements, resilience needs, regulatory constraints, operational complexity, and vendor dependency. It provides a structured decision framework to determine whether a single cloud, multi-cloud, or hybrid approach is appropriate for your organization.
Kubernetes vs Serverless​
/architecture-decisions/cloud-platform/kubernetes-vs-serverless/
This guide examines Kubernetes and serverless from multiple perspectives — operational responsibility, scalability, workload characteristics, team capabilities, portability, and cost. It helps architects choose the compute abstraction that best aligns with their architecture drivers.
Additional cloud and platform decision guides will be added to this section as the content library expands.
A Cloud Architecture Decision Framework​
Making good cloud architecture decisions requires a structured process. The following framework provides a systematic approach to evaluating options and reaching justifiable conclusions.
Business Goals: Start with the organization's strategic objectives. What outcomes is the system expected to deliver? What time-to-market, innovation, or cost targets exist?
Architecture Drivers: Translate business goals into architectural requirements — scalability, availability, security, performance, compliance, cost, and operational constraints.
Workload Characteristics: Analyze the workload itself. Is it stateful or stateless? What are its traffic patterns, data volumes, and latency requirements? Does it have predictable load or spiky demand?
Platform Options: Identify viable platform options that could satisfy the architecture drivers and workload characteristics. Include cloud-provider services, open-source platforms, and internal solutions.
Trade-off Analysis: For each option, evaluate its strengths and weaknesses across multiple dimensions. Document the trade-offs explicitly so they can be revisited later.
Risk & Cost Assessment: Assess implementation risks, operational risks, and total cost of ownership. Include migration effort, learning curves, and vendor dependency considerations.
Architecture Decision: Make a decision based on the accumulated analysis. Document the decision, its rationale, and the context in which it was made.
Validation & Evolution: After implementation, validate that the decision has met expectations. Revisit decisions periodically as requirements change and new options emerge.
This framework is not a one-time exercise. It is a continuous cycle that ensures cloud architecture decisions remain aligned with business outcomes over time.
Key Cloud Architecture Trade-offs​
The following table summarizes common trade-offs in cloud and platform architecture decisions. Each decision must be evaluated in context — the optimal choice depends on specific requirements and constraints.
| Decision Area | Option A | Option B | Key Trade-off |
|---|---|---|---|
| Cloud Strategy | Single Cloud | Multi-Cloud | Simplicity, cost-efficiency, and integration vs. resilience, portability, and bargaining power |
| Compute Abstraction | Kubernetes | Serverless | Control, portability, and customization vs. operational simplicity, auto-scaling, and cost for bursty workloads |
| Service Model | Managed Services | Self-Hosted | Reduced operational burden and faster time-to-market vs. control, flexibility, and lower direct infrastructure cost |
| Deployment Topology | Single Region | Multi-Region | Lower cost and operational complexity vs. geo-redundancy, disaster recovery, and global latency |
| Platform Approach | Standardized Platform | Team-Owned Infrastructure | Developer productivity, governance, and consistency vs. team autonomy, innovation, and flexibility |
| Portability Strategy | Provider-Agnostic Abstraction | Provider-Specific Services | Portability and reduced lock-in vs. access to unique features and operational simplicity |
| Cost Management | Reserved Capacity | On-Demand / Spot | Predictable cost and lower rate vs. flexibility and cost optimization for variable workloads |
| Infrastructure Provisioning | Manual / GUI | Infrastructure as Code | Faster initial setup vs. repeatability, versioning, and auditability |
Common Mistakes​
Avoiding common pitfalls is as important as following best practices. The following mistakes frequently appear in cloud and platform architecture initiatives.
Adopting cloud services without clear architecture drivers. Choosing a service because it is "cool" or widely used, without understanding whether it addresses a real requirement. This leads to over-engineered solutions and unnecessary complexity.
Choosing Kubernetes by default. Kubernetes is a powerful platform, but it is not the right choice for every workload. Organizations often adopt Kubernetes because of industry hype, only to discover it introduces more operational overhead than it eliminates.
Assuming multi-cloud is automatically more resilient. Multi-cloud does not guarantee high availability — it increases complexity and can actually reduce resilience if not designed carefully. Resilience requires deliberate architecture, not just multiple providers.
Ignoring operational complexity. Cloud services abstract infrastructure, but they do not eliminate operational concerns. Monitoring, alerting, troubleshooting, and incident management remain essential. Underestimating operational complexity is a common source of surprises.
Optimizing cloud infrastructure cost without considering engineering cost. Reducing cloud spend by moving to cheaper services may increase engineering effort, resulting in higher total cost. Architects must consider the entire cost picture.
Overengineering portability. Building excessive abstraction layers to ensure vendor portability often increases complexity and reduces the ability to leverage cloud-native features. Portability should be proportionate to the likelihood and impact of migration.
Creating an internal platform before identifying real developer needs. Building a platform without understanding developer pain points results in low adoption and wasted investment. Platform engineering should be demand-driven, not solution-driven.
Treating cloud migration as a purely infrastructure project. Cloud migration involves application architecture, data architecture, security, and people. Treating it as infrastructure-only ignores critical dependencies and increases the risk of failure.
Best Practices​
The following practices provide a foundation for effective cloud and platform architecture decision-making.
Start with workload and business requirements. Every cloud architecture decision should trace back to business outcomes. Start with the what and why, then move to the how.
Define architecture drivers before selecting cloud services. Architecture drivers such as scalability, availability, security, and cost should be documented and prioritized before evaluating options. This prevents decisions from being driven by vendor marketing.
Evaluate total cost rather than infrastructure price alone. Include engineering effort, operational overhead, migration costs, and opportunity costs in the evaluation. The cheapest infrastructure is not always the cheapest solution.
Treat operational responsibility as an architecture decision. The division of operational responsibility between the platform team, application teams, and cloud provider should be explicit and intentional.
Use managed services when their operational benefits justify their constraints. Managed services are powerful tools for reducing toil. However, they impose constraints on configuration, integration, and migration. Evaluate these constraints carefully.
Introduce platform engineering when repeatability and developer productivity justify the investment. Platform engineering is not a free lunch. Invest in it when the organization has multiple teams and the cost of inconsistency exceeds the cost of building a platform.
Make vendor lock-in explicit rather than treating it as automatically negative. Lock-in is a trade-off, not a sin. Document it, assess its impact, and decide if the benefits outweigh the risks.
Design resilience according to business impact and recovery requirements. Resilience patterns should be driven by RPO and RTO targets, not by a desire to use a particular technology.
Prefer the simplest architecture that satisfies the requirements. Complexity is the enemy of agility, reliability, and operability. Choose simpler solutions whenever possible, and revisit complexity only when requirements demand it.
Relationship With Other Architecture Decision Domains​
Cloud and platform architecture decisions do not exist in isolation. They must align with and support decisions in other architecture domains.
Application Architecture determines how individual applications are structured and how they interact. Cloud decisions such as compute abstraction and service models directly influence application design choices. Learn more about Application Architecture
Distributed Systems deals with communication, consistency, and coordination across multiple nodes. Cloud platforms provide many building blocks for distributed systems, but architects must still make fundamental decisions about message delivery, state management, and failure handling. Learn more about Distributed Systems
Data Architecture covers data storage, processing, and integration. Cloud platforms offer a wide range of data services, from relational and NoSQL databases to data lakes and streaming platforms. Learn more about Data Architecture
Security Architecture encompasses identity, access control, network security, and compliance. Cloud platforms provide security capabilities but require intentional architecture to ensure they are properly integrated. Learn more about Security Architecture
DevOps & Operations focuses on continuous delivery, observability, and incident management. Platform architecture directly enables or constrains operational practices. Learn more about DevOps & Operations
Technology Strategy defines the long-term technology direction and investment priorities. Cloud and platform decisions are key components of technology strategy. Learn more about Technology Strategy
Enterprise Architecture provides the overarching business context and governance framework. Cloud strategy and platform architecture must align with enterprise architecture standards and roadmaps. Learn more about Enterprise Architecture
Cloud and platform decisions should not be made independently from these other domains. Cross-domain alignment is essential for coherent and effective architecture.
Recommended Reading​
The following articles provide deeper dives into related architecture decisions:
- Microservices vs Modular Monolith
- Event-Driven Architecture vs Request-Response
- SQL vs NoSQL: Architecture Decision Guide
- Build vs Buy vs Open Source
- Managed Services vs Self-Hosted Platforms
- Architecture Decision Matrix
Key Takeaways​
- Cloud does not remove architecture trade-offs — it introduces new ones that require explicit evaluation.
- Platform choices should follow workload and business requirements, not industry trends or vendor momentum.
- Operational complexity is an architectural concern that must be evaluated alongside technical capabilities.
- Cost, resilience, portability, and developer productivity must be evaluated together, not in isolation.
- There is no universally best cloud architecture — the right choice is contextual and revisitable.
- Good cloud architecture decisions are explicit, well-documented, and subject to ongoing validation and evolution.
- Cloud and platform architecture must align with application, data, security, and enterprise architecture domains.
- Simplicity remains a powerful architectural principle, even in complex cloud environments.