Distributed architecture patterns

When migrating from a non-hybrid or non-multicloud computing environment to ahybrid or multicloud architecture, first consider the constraints of yourexisting applications and how those constraints could lead to applicationfailure. Thisconsideration becomes more important when your applications or applicationcomponents operate in a distributed manner across different environments. Afteryou have considered your constraints, develop a plan to avoid or overcome them.Make sure to consider the unique capabilities of each computing environment in adistributed architecture.

Note: You can apply different architecture patterns to different applications,based on their use cases and requirements. This means that you might havemultiple applications with different hybrid and multicloud architecture patternsoperating at the same time.

Design considerations

The following design considerations apply to distributed deployment patterns.Depending on the target solution and business objectives, the priority and theeffect of each consideration can vary.

Latency

In any architecture pattern that distributes application components (frontends,backends, or microservices) across different computing environments,communication latency can occur. This latency is influenced by the hybridnetwork connectivity (Cloud VPN and Cloud Interconnect) and thegeographical distance between the on-premises site and the cloudregions,or between cloud regions in a multicloud setup. Therefore, it's crucial toassess the latency requirements of your applications and their sensitivity tonetwork delays. Applications that can tolerate latency are more suitablecandidates for initial distributed deployment in a hybrid or multicloudenvironment.

Temporary versus final state architecture

To specify the expectations and any potential implications for cost, scale, andperformance, it's important to analyze what type of architecture you need andthe intended duration as part of the planning stage. For example, if you plan touse a hybrid or multicloud architecture for a long time or permanently, youmight want to consider usingCloud Interconnect.To reduce outbound data transfer costs and to optimize hybrid connectivitynetwork performance, Cloud Interconnect discounts the outbound data transfer charges that meet thediscounted data transfer rate conditions.

Reliability

Reliability is a major consideration when architecting IT systems.Uptime availability is an essential aspect of system reliability. In Google Cloud, you canincrease the resiliency of an application by deploying redundant components ofthat application across multiple zones in a single region1, or acrossmultiple regions, with switchover capabilities. Redundancy is one of the keyelements to improve the overall availability of an application. For applicationswith a distributed setup across hybrid and multicloud environments, it'simportant to maintain a consistent level of availability.

To enhance the availability of a system in an on-premises environment, or inother cloud environments, consider what hardware or software redundancy—withfailover mechanisms—you need for your applications and their components.Ideally, you should consider the availability of a service or an applicationacross the various components and supporting infrastructure (includinghybrid connectivity availability)across all the environments. This concept is also referred to as the compositeavailability of an application or service.

Based on the dependencies between the components or services, the compositeavailability for an application might be higher or lower than for an individualservice or component. For more information, seeComposite availability: calculating the overall availability of cloud infrastructure.

To achieve the level of system reliability that you want, define clearreliability metrics and design applications to self-heal and endure disruptions effectively across the different environments. To help you define appropriateways to measure the customer experience of your services, seeDefine reliability based on user-experience goals.

Hybrid and multicloud connectivity

The requirements of the communication between the distributed applicationscomponents should influence your selection of a hybrid network connectivityoption. Each connectivity option has its advantages and disadvantages, as wellas specific drivers to consider, such as cost, traffic volume, security, and soforth. For more information, see theconnectivity design considerations section.

Manageability

Consistent and unified management and monitoring tools are essential forsuccessful hybrid and multicloud setups (with or without workload portability).In the short term, these tools can add development, testing, and operationscosts. Technically, the more cloud providers you use, the more complexmanaging your environments becomes. Most public cloud vendors not only have different features, but alsohave varying tools, SLAs, and APIs for managing cloud services. Therefore, weighthe strategic advantages of your selected architecture against the potentialshort-term complexity versus the long-term benefits.

Cost

Each cloud service provider in a multicloud environment has its own billingmetrics and tools. To provide better visibility and unified dashboards, considerusing multicloud cost management and optimization tooling. For example, whenbuilding cloud-first solutions across multiple cloud environments eachprovider's products, pricing, discounts, and management tools can create costinconsistencies between those environments.

We recommend having a single, well-defined method for calculating the full costsof cloud resources, and to provide cost visibility. Cost visibility is essentialfor cost optimization. For example, by combining billing data from the cloudproviders you use and using Google CloudLooker Cloud Cost Management Block,you can create a centralized view of your multicloud costs. This view can helpprovide a consolidated reporting view of your spend across multiple clouds. Formore information, seeThe strategy for effectively optimizing cloud billing cost management.

We also recommend using FinOps practice to make costs visible.As a part of a strong FinOps practice, a central team can delegate the decision making for resource optimization to any other teams involved in a project toencourage individual accountability.In this model, the central team should standardize the process, the reporting,and the tooling for cost optimization. For more information about the differentcost optimization aspects and recommendations that you should consider, seeGoogle Cloud Well-Architected Framework: Cost optimization.

Data movement

Data movement is an important consideration for hybrid and multicloud strategy andarchitecture planning, especially for distributed systems. Enterprises need toidentify their different business use cases, the data that powers them, and howthe data is classified (for regulated industries). They should also consider howdata storage, sharing, and access for distributed systems across environmentsmight affect application performance and data consistency. Those factors mightinfluence the application and the data pipeline architecture.Google Cloud's comprehensive set ofdata movement options makes it possible for businesses to meet their specific needs and adopt hybridand multicloud architectures without compromising simplicity, efficiency, orperformance.

Security

When migrating applications to the cloud, it's important to considercloud-first security capabilities like consistency, observability, and unifiedsecurity visibility. Each public cloud provider has its own approach, bestpractices, and capabilities for security. It's important to analyze and alignthese capabilities to build a standard, functional security architecture. StrongIAM controls, data encryption, vulnerability scanning, andcompliance with industry regulations are also important aspects ofcloud security.

When planning a migration strategy, we recommend that you analyze thepreviously mentioned considerations. They can help you minimize the chances ofintroducing complexities to the architecture as your applications or trafficvolumes grow. Also, designing and building a landing zone is almost always aprerequisite to deploying enterprise workloads in a cloud environment. A landingzone helps your enterprise deploy, use, and scale cloud services more securelyacross multiple areas and includes different elements, such as identities,resource management, security, and networking. For more information, seeLanding zone design in Google Cloud.

The following documents in this series describe other distributed architecturepatterns:


  1. For more information about region-specific considerations, seeGeography and regions

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2024-10-29 UTC.