Aspekty návrhu hybridních aplikacíHybrid app design considerations

Microsoft Azure je jediným konzistentním hybridním cloudem.Microsoft Azure is the only consistent hybrid cloud. Umožňuje znovu použít své investice do vývoje a povolit aplikace, které můžou zahrnovat globální Azure, cloudové cloudy Azure a Azure Stack, což je rozšíření Azure ve vašem datovém centru.It allows you to reuse your development investments and enables apps that can span global Azure, the sovereign Azure clouds, and Azure Stack, which is an extension of Azure in your datacenter. Aplikace, které zahrnují cloudy, se také označují jako hybridní aplikace.Apps that span clouds are also referred to as hybrid apps.

Průvodce architekturou aplikací Azure popisuje strukturovaný přístup k návrhu aplikací, které jsou škálovatelné, odolné a vysoce dostupné.The Azure Application Architecture Guide describes a structured approach for designing apps that are scalable, resilient, and highly available. Požadavky popsané v příručce aplikační architektura Azure se vztahují i na aplikace, které jsou navržené pro jeden Cloud a pro aplikace, které využívají cloudy.The considerations described in the Azure Application Architecture Guide equally apply to apps that are designed for a single cloud and for apps that span clouds.

Tento článek rozšiřuje pilíře kvality softwaru popsané v Průvodci architekturou aplikací Azure a zaměřuje se konkrétně na návrh hybridních aplikací.This article augments the Pillars of software quality discussed in the Azure Application Architecture Guide, focusing specifically on designing hybrid apps. Kromě toho přidáme pilíře umístění , protože hybridní aplikace nejsou výhradně v jednom cloudu nebo v jednom místním datovém centru.In addition, we add a placement pillar as hybrid apps aren't exclusive to one cloud or one on-premises datacenter.

Hybridní scénáře se značně liší u prostředků, které jsou k dispozici pro vývoj, a zahrnují okolnosti, jako je zeměpisná, zabezpečení, přístup k Internetu a další požadavky.Hybrid scenarios vary greatly with the resources that are available for development, and span considerations such as geography, security, internet access, and other considerations. I když v této příručce nejde vytvořit výčet konkrétních důležitých informací, může vám poskytnout několik klíčových pokynů a osvědčených postupů, které můžete sledovat.Although this guide can't enumerate your specific considerations, it can provide some key guidelines and best practices for you to follow. Úspěšné navrhování, konfigurace, nasazení a údržba architektury hybridních aplikací zahrnuje mnoho hledisek návrhu, které vám nemusí být pro vás podstatou známo.Successfully designing, configuring, deploying, and maintaining a hybrid app architecture involves many design considerations that might not be inherently known to you.

Tento dokument se zaměřuje na agregaci možných otázek, které mohou nastat při implementaci hybridních aplikací, a poskytuje aspekty (Tyto pilíře) a osvědčené postupy, jak s nimi pracovat.This document aims to aggregate the possible questions that might arise when implementing hybrid apps and provides considerations (these pillars) and best practices to work with them. Po vyřešení těchto otázek během fáze návrhu se vyhnete problémům, které by mohly způsobovat v produkčním prostředí.By addressing these questions during the design phase, you'll avoid the issues they could cause in production.

V podstatě se jedná o otázky, které je potřeba vzít v úvahu před vytvořením hybridní aplikace.Essentially, these are questions you need to think about before creating a hybrid app. Chcete-li začít, je třeba provést následující akce:To get started, you need to do the following things:

  • Identifikujte a vyhodnoťte součásti aplikace.Identify and evaluate the app components.
  • Vyhodnotit komponenty aplikace na pilířích.Evaluate app components against the pillars.

Vyhodnotit součásti aplikaceEvaluate the app components

Každá součást aplikace má svou vlastní konkrétní roli v rámci větší aplikace a měla by být prověřena všemi důležitými hledisky návrhu.Each component of an app has its own specific role within the larger app and should be reviewed with all design considerations. Požadavky a funkce každé součásti by měly být namapovány na tyto otázky, které vám pomůžou určit architekturu aplikace.Each component's requirements and features should map to these considerations to help determine the app architecture.

Rozložíte svou aplikaci na své součásti tím, že prostudujte architekturu vaší aplikace a určíte, co se skládá z.Decompose your app into its components by studying your app's architecture and determining what it consists of. Součástí můžou být i další aplikace, se kterými vaše aplikace komunikuje.Components can also include other apps that your app interacts with. Jak identifikujete komponenty, vyhodnoťte své zamýšlené hybridní operace podle jejich vlastností, a to tak, že požádáte o tyto otázky:As you identify the components, evaluate your intended hybrid operations according to their characteristics by asking these questions:

  • Jaký je účel komponenty?What is the purpose of the component?
  • Jaké jsou vzájemné závislosti mezi součástmi?What are the interdependencies between the components?

Například aplikace může mít front-end a back-end definované jako dvě součásti.For example, an app can have a front end and back end defined as two components. V hybridním scénáři je front-end v jednom cloudu a back-end je v druhém.In a hybrid scenario, the front end is in one cloud and the back end is in the other. Aplikace poskytuje komunikační kanály mezi front-end a uživatelem a také mezi front-end a back-end.The app provides communication channels between the front end and the user, and also between the front end and the back end.

Komponenta aplikace je definována mnoha formuláři a scénáři.An app component is defined by many forms and scenarios. Nejdůležitější úlohy je identifikují a jejich cloudové nebo místní umístění.The most important task is identifying them and their cloud or on-premises location.

Společné součásti aplikací, které se mají zahrnout do inventáře, jsou uvedené v tabulce 1.The common app components to include in your inventory are listed in Table 1.

Tabulka 1.Table 1. Společné součásti aplikacíCommon app components

KomponentaComponent Doprovodné materiály k hybridní aplikaciHybrid app guidance
Připojení klientůClient connections Vaše aplikace (na jakémkoli zařízení) má přístup k uživatelům různými způsoby z jednoho vstupního bodu, a to včetně následujících způsobů:Your app (on any device) can access users in various ways, from a single-entry point, including the following ways:
– Model klient-server, který vyžaduje, aby uživatel měl nainstalovaného klienta pro práci s aplikací.- A client-server model that requires the user to have a client installed to work with the app. Aplikace založená na serveru, ke které se přistupoval z prohlížeče.A server-based app that's accessed from a browser.
-Klientská připojení můžou zahrnovat oznámení v případě, že dojde k přerušení připojení nebo upozornění, když můžou platit poplatky za roaming.- Client connections can include notifications when the connection is broken or alerts when roaming charges may apply.
AuthenticationAuthentication Ověřování může být vyžadováno pro uživatele, který se připojuje k aplikaci, nebo z jedné součásti, která se připojuje k jiné.Authentication can be required for a user connecting to the app, or from one component connecting to another.
Rozhraní APIAPIs Vývojářům můžete poskytnout programový přístup k vaší aplikaci pomocí sad rozhraní API a knihoven tříd a poskytovat rozhraní připojení na základě standardů sítě Internet.You can provide developers with programmatic access to your app with API sets and class libraries and provide a connection interface based on internet standards. Rozhraní API můžete použít také k rozloží aplikace na nezávisle provozní logické jednotky.You can also use APIs to decompose an app into independently operating logical units.
SlužbyServices Pro poskytování funkcí aplikace můžete využívat stručné služby.You can employ succinct services to provide the features for an app. Služba může být modul, na kterém je aplikace spuštěná.A service can be the engine that the app runs on.
FrontyQueues Fronty můžete použít k uspořádání stavu životního cyklu a stavů komponent aplikace.You can use queues to organize the status of the life cycles and states of your app's components. Tyto fronty můžou poskytovat možnosti zasílání zpráv, oznámení a ukládání do vyrovnávací paměti pro odběr stran.These queues can provide messaging, notifications, and buffering capabilities to subscribing parties.
Úložiště datData storage Aplikace může být Bezstavová nebo stavová.An app can be stateless or stateful. Stavové aplikace potřebují úložiště dat, které může být splněno řadou formátů a svazků.Stateful apps need data storage that can be met by numerous formats and volumes.
Ukládání dat do mezipamětiData caching Komponenta pro ukládání dat do mezipaměti v návrhu může navrhovat problémy s latencí při řešení potíží a hrát roli při aktivaci shlukování cloudu.A data caching component in your design can strategically address latency issues and play a role in triggering cloud bursting.
Přijímání datData ingestion Data je možné odeslat do aplikace mnoha různými způsoby, od uživatelem zaslaných hodnot ve webovém formuláři až po nepřetržitý tok dat s velkým objemem.Data can be submitted to an app in many ways, ranging from user-submitted values in a web form to continuously high-volume data flow.
Zpracování datData processing Vaše úlohy zpracování dat (například sestavy, analýzy, dávkové exporty a transformace dat) je možné zpracovat buď ve zdroji, nebo v samostatné komponentě pomocí kopie dat.Your data processing tasks (such as reports, analytics, batch exports, and data transformation) can either be processed at the source or offloaded on a separate component using a copy of the data.

Posouzení součástí aplikace pro pilířeAssess app components for pillars

Pro každou komponentu vyhodnoťte své charakteristiky pro každý pilíř.For each component, evaluate its characteristics for each pillar. Když vyhodnocujete jednotlivé komponenty se všemi pilíři, může se vám stát, že vám budou vědět, že se vám bude týkat návrh hybridní aplikace.As you evaluate each component with all of the pillars, questions you might not have considered may become known to you that affect the design of the hybrid app. Vyjednání s těmito hledisky by mohla do optimalizace aplikace přidat hodnotu.Acting on these considerations could add value in optimizing your app. Tabulka 2 poskytuje popis každého pilíře v souvislosti s hybridními aplikacemi.Table 2 provides a description of each pillar as it relates to hybrid apps.

Tabulka 2.Table 2. PilířePillars

PilířPillar PopisDescription
UmístěníPlacement Strategické umístění komponent v hybridních aplikacích.The strategic positioning of components in hybrid apps.
ŠkálovatelnostScalability Schopnost systému zvládnout zvýšenou zátěžThe ability of a system to handle increased load.
DostupnostAvailability Poměr doby, po kterou je hybridní aplikace funkční a funguje.The proportion of time that a hybrid app is functional and working.
OdolnostResiliency Možnost obnovení hybridní aplikace.The ability for a hybrid app to recover.
Možnosti správyManageability Provozní procesy, které udržují systém spuštěný v produkčním prostředí.Operations processes that keep a system running in production.
ZabezpečeníSecurity Ochrana hybridních aplikací a dat před hrozbamiProtecting hybrid apps and data from threats.

UmístěníPlacement

Hybridní aplikace má v podstatě nějaký aspekt umístění, třeba pro datové centrum.A hybrid app inherently has a placement consideration, like for the datacenter.

Umístění je důležitým úkolem umístění komponent, aby mohli nejlépe vystavovat hybridní aplikaci.Placement is the important task of positioning components so that they can best service a hybrid app. Podle definice hybridní aplikace rozdělují umístění, například z místního prostředí do cloudu a mezi různými cloudy.By definition, hybrid apps span locations, like from on-premises to the cloud and among different clouds. Komponenty aplikace můžete umístit na cloudy dvěma způsoby:You can place components of the app on clouds in two ways:

  • Vertikální hybridní aplikaceVertical hybrid apps
    Komponenty aplikace jsou distribuovány napříč umístěními.App components are distributed across locations. Každá jednotlivá součást může mít více instancí, které se nachází pouze v jednom umístění.Each individual component can have multiple instances located only in a single location.

  • Horizontální hybridní aplikaceHorizontal hybrid apps
    Komponenty aplikace jsou distribuovány napříč umístěními.App components are distributed across locations. Každá jednotlivá součást může mít více instancí, které jsou rozloženy do více umístění.Each individual component can have multiple instances spanning multiple locations.

    Některé součásti si můžou uvědomit o jejich umístění, zatímco jiné nemají žádné znalosti o jejich umístění a umístění.Some components can be aware of their location while others don't have any knowledge of their location and placement. Tento virtuousness je možné dosáhnout pomocí abstraktní vrstvy.This virtuousness can be achieved with an abstraction layer. Tato vrstva s moderní aplikační architekturou, jako jsou mikroslužby, může definovat způsob, jakým se aplikace obsluhuje umístěním součástí aplikace, které fungují na uzlech napříč cloudy.This layer, with a modern app framework like microservices, can define how the app is serviced by the placement of app components operating on nodes across clouds.

Kontrolní seznam umístěníPlacement checklist

Ověřte požadovaná umístění.Verify required locations. Ujistěte se, že aplikace nebo některá její součást je nutná k provozu v nebo vyžadovat certifikaci pro konkrétní Cloud.Make sure the app or any of its components are required to operate in, or require certification for, a specific cloud. To může zahrnovat požadavky na svrchovanost z vaší společnosti nebo podle zákona.This can include sovereignty requirements from your company or dictated by law. Také určete, zda jsou některé místní operace požadovány pro konkrétní umístění nebo národní prostředí.Also, determine if any on-premises operations are required for a particular location or locale.

Zjišťuje závislosti připojení.Ascertain connectivity dependencies. Požadovaná umístění a další faktory mohou určovat závislosti připojení mezi vašimi komponentami.Required locations and other factors can dictate the connectivity dependencies among your components. Když umístíte komponenty, určete optimální konektivitu a zabezpečení pro komunikaci mezi nimi.As you place the components, determine the optimal connectivity and security for communication among them. Mezi možnosti patří VPN, ExpressRoute a Hybrid Connections.Choices include VPN, ExpressRoute, and Hybrid Connections.

Vyhodnoťte možnosti platformy.Evaluate platform capabilities. U každé součásti aplikace Zjistěte, jestli je požadovaný poskytovatel prostředků pro součást aplikace dostupný v cloudu a jestli šířka pásma může vyhovovat očekávané propustnosti a požadavkům na latenci.For each app component, see if the required resource provider for the app component is available on the cloud and if the bandwidth can accommodate the expected throughput and latency requirements.

Plánování přenositelnosti.Plan for portability. Použijte moderní architektury aplikací, jako jsou kontejnery nebo mikroslužby, k naplánování operací přesunutí a zabránění závislostem služeb.Use modern app frameworks, like containers or microservices, to plan for moving operations and to prevent service dependencies.

Určete požadavky na suverenitu dat.Determine data sovereignty requirements. Hybridní aplikace jsou zaměřené na izolaci dat, jako je například v místním datovém centru.Hybrid apps are geared for accommodating data isolation, such as on a local datacenter. Projděte si umístění vašich prostředků a optimalizujte úspěšnost tohoto požadavku.Review the placement of your resources to optimize the success for accommodating this requirement.

Plánování latence.Plan for latency. Mezi součásti aplikace může mezi jednotlivými cloudovou operací zavádět fyzickou vzdálenost.Inter-cloud operations can introduce physical distance between the app components. Zjistíte, že požadavky budou vyhovovat libovolné latenci.Ascertain the requirements to accommodate any latency.

Řízení toků provozu.Control traffic flows. Využívání špičkové služby a příslušné a zabezpečené komunikace pro osobní údaje údajů, které jsou přístupné pro front-end ve veřejném cloudu.Handle peak usage and the appropriate and secured communications for personal identifiable information data when accessed by the front end in a public cloud.

ŠkálovatelnostScalability

Škálovatelnost je schopnost systému zvládnout zvýšené zatížení aplikace, které se může v průběhu času měnit, protože jiné faktory a síly ovlivňují velikost cílové skupiny, a to i podle velikosti a rozsahu aplikace.Scalability is the ability of a system to handle increased load on an app, which can vary over time as other factors and forces affect the audience size, in addition to the size and scope of the app.

Základní diskusi k tomuto pilíři najdete v tématu škálovatelnost v pěti pilířích kvality architektury.For the core discussion of this pillar, see Scalability in the five pillars of architecture excellence.

Horizontální přístup k škálování pro hybridní aplikace umožňuje přidat další instance pro splnění požadavků a pak je v tichých intervalech zakázat.A horizontal scaling approach for hybrid apps allows for adding more instances to meet demand and then disabling them during quieter periods.

V hybridních scénářích je potřeba při rozšiřování jednotlivých komponent mezi cloudy zvážit další aspekty.In hybrid scenarios, scaling out individual components requires additional consideration when components are spread across clouds. Škálování jedné části aplikace může vyžadovat jiné škálování.Scaling one part of the app can require the scaling of another. Například pokud se počet připojení klientů zvyšuje, ale webové služby aplikace nebudou škálovat správně, zatížení databáze může sytost aplikace navýšit.For example, if the number of client connections increases but the app's web services aren't scaled out appropriately, the load on the database might saturate the app.

Některé součásti aplikace se můžou škálovat lineárně, zatímco ostatní mají závislosti na škálování a můžou být omezené na to, jaký rozsah si dokáže škálovat.Some app components can scale out linearly, while others have scaling dependencies and might be limited to what extent they're able to scale. Například tunel VPN, který poskytuje hybridní připojení pro umístění součástí aplikace, má omezení šířky pásma a latence, na kterou lze škálovat.For example, a VPN tunnel providing hybrid connectivity for the app components locations has a limit to the bandwidth and latency it can be scaled to. Jak se škálují komponenty aplikace, aby se zajistilo splnění těchto požadavků?How are components of the app scaled to ensure these requirements are met?

Kontrolní seznam ke škálovatelnostiScalability checklist

Zjišťuje prahové hodnoty škálování.Ascertain scaling thresholds. Pokud chcete zpracovat různé závislosti ve vaší aplikaci, určete rozsah, ve kterém se součásti aplikace v různých cloudech můžou nezávisle škálovat, a přitom splní požadavky na spuštění aplikace.To handle the various dependencies in your app, determine the extent to which app components in different clouds can scale independently of each other, while still meeting the requirements to run the app. Hybridní aplikace často potřebují škálovat konkrétní oblasti v aplikaci tak, aby se při interakci s funkcí pracovaly a ovlivněny zbývající část aplikace.Hybrid apps often need to scale particular areas in the app to handle a feature as it interacts and affects the rest of the app. Například překročení počtu front-endové instancí může vyžadovat škálování back-endu.For example, exceeding a number of front-end instances may require scaling the back end.

Definujte plány škálování.Define scale schedules. Většina aplikací má zaneprázdněné doby, takže potřebujete agregovat dobu špičky v plánech, abyste mohli koordinovat optimální škálování.Most apps have busy periods, so you need to aggregate their peak times into schedules to coordinate optimal scaling.

Použijte centralizovaný systém monitorování.Use a centralized monitoring system. Funkce monitorování platforem můžou poskytovat automatické škálování, ale hybridní aplikace potřebují centralizovaný monitorovací systém, který agreguje stav systému a zatížení.Platform monitoring capabilities can provide autoscaling, but hybrid apps need a centralized monitoring system that aggregates system health and load. Centralizovaný monitorovací systém může iniciovat škálování prostředku v jednom umístění a škálování v závislosti na prostředku v jiném umístění.A centralized monitoring system can initiate scaling a resource in one location and scaling depending on resource in another location. Kromě toho může centrální monitorovací systém sledovat, které cloudy mají prostředky automatického škálování a které ne.Additionally, a central monitoring system can track which clouds autoscale resources and which clouds don't.

Využijte možnosti automatického škálování (jako k dispozici).Leverage autoscaling capabilities (as available). Pokud jsou možnosti automatického škálování součástí vaší architektury, implementujete automatické škálování nastavením prahových hodnot, které definují, kdy musí být součást aplikace rozdělená nahoru, dolů, dolů nebo v.If autoscaling capabilities are part of your architecture, you implement autoscaling by setting thresholds that define when an app component needs to be scaled up, out, down, or in. Příkladem automatického škálování je připojení klienta, které se automaticky škáluje v jednom cloudu tak, aby se zvýšila větší kapacita, ale v různých cloudech se také rozšířily i další závislosti aplikace.An example of autoscaling is a client connection that's autoscaled in one cloud to handle increased capacity, but causes other dependencies of the app, spread across different clouds, to also be scaled. Funkce automatického škálování těchto závislých komponent musí být zjišťovány.The autoscaling capabilities of these dependent components must be ascertained.

Pokud není k dispozici automatické škálování, zvažte implementaci skriptů a dalších prostředků pro zajištění ručního škálování aktivovaného mezními hodnotami v centralizovaném monitorovacím systému.If autoscaling isn't available, consider implementing scripts and other resources to accommodate manual scaling, triggered by thresholds in the centralized monitoring system.

Určete očekávané zatížení podle umístění.Determine expected load by location. Hybridní aplikace, které zpracovávají požadavky klientů, se můžou primárně spoléhat na jedno místo.Hybrid apps that handle client requests might primarily rely on a single location. Pokud zatížení požadavků klientů překročí prahovou hodnotu, mohou být další prostředky přidány v jiném umístění pro distribuci zatížení příchozích požadavků.When the load of client requests exceeds a threshold, additional resources can be added in a different location to distribute the load of inbound requests. Ujistěte se, že připojení klientů mohou zpracovávat zvýšené zátěže a také určit automatické postupy pro připojení klientů pro zpracování zatížení.Make sure that the client connections can handle the increased loads and also determine any automated procedures for the client connections to handle the load.

DostupnostAvailability

Dostupnost je čas, kdy je systém funkční a funguje.Availability is the time that a system is functional and working. Dostupnost se měří jako procento doby provozu.Availability is measured as a percentage of uptime. Všechny chyby aplikace, problémy s infrastrukturou a zatížení systému můžou snížit dostupnost.App errors, infrastructure problems, and system load can all reduce availability.

Základní diskusi k tomuto pilíři najdete v tématu dostupnost v pěti pilířích kvality architektury.For the core discussion of this pillar, see Availability in the five pillars of architecture excellence.

Kontrolní seznam k dostupnostiAvailability checklist

Poskytněte redundanci připojení.Provide redundancy for connectivity. Hybridní aplikace vyžadují připojení mezi cloudy, mezi kterými se aplikace rozprostře.Hybrid apps require connectivity among the clouds that the app is spread across. Máte možnost zvolit si technologie hybridního připojení, takže kromě vaší primární technologie můžete použít jinou technologii k zajištění redundance s automatizovanými možnostmi převzetí služeb při selhání, pokud primární technologie selže.You have a choice of technologies for hybrid connectivity, so in addition to your primary technology choice, use another technology to provide redundancy with automated failover capabilities should the primary technology fail.

Klasifikace domén selhání.Classify fault domains. Aplikace odolné proti chybám vyžadují více domén selhání.Fault-tolerant apps require multiple fault domains. Domény selhání umožňují izolovat bod selhání, například pokud dojde k selhání jednoho pevného disku v místním prostředí, pokud se nejedná o přepínač nejvyšší úrovně, nebo pokud celé datové centrum není k dispozici.Fault domains help isolate the point of failure, such as if a single hard disk fails on premises, if a top-of-rack switch goes down, or if the full datacenter is unavailable. V hybridní aplikaci může být umístění klasifikované jako doména selhání.In a hybrid app, a location can be classified as a fault domain. Čím víc je požadavků na dostupnost, budete potřebovat vyhodnotit, jak by měla být klasifikována jedna doména selhání.With more availability requirements, the more you need to evaluate how a single fault domain should be classified.

Klasifikujte domény upgradu.Classify upgrade domains. Domény upgradu slouží k zajištění dostupnosti instancí součástí aplikace, zatímco jiné instance stejné komponenty se účtují s aktualizacemi nebo upgrady funkcí.Upgrade domains are used to ensure that instances of app components are available, while other instances of the same component are being serviced with updates or feature upgrades. Stejně jako u domén selhání mohou být upgradované domény klasifikovány podle jejich umístění napříč umístěními.As with fault domains, upgrade domains can be classified by their placement across locations. Musíte určit, jestli se komponenta aplikace může pojmout při upgradu na jednom umístění, než se upgraduje v jiném umístění, nebo jestli se vyžadují jiné konfigurace domény.You must determine if an app component can accommodate getting upgraded in one location before it's upgraded in another location, or if other domain configurations are required. Jedno samotné umístění může mít více domén upgradu.A single location itself can have multiple upgrade domains.

Sledujte instance a dostupnost.Track instances and availability. Komponenty aplikace s vysokou dostupností můžou být dostupné prostřednictvím vyrovnávání zatížení a synchronní replikace dat.Highly available app components can be available through load balancing and synchronous data replication. Před přerušením služby musíte určit, kolik instancí může být offline.You must determine how many instances can be offline before the service is interrupted.

Implementujte samočinně.Implement self-healing. V případě, že problém způsobuje přerušení dostupnosti aplikace, detekce systému monitorování by mohla iniciovat aktivity samočinného retušování aplikace, jako je vyprazdňování neúspěšné instance a její opětovné nasazení.In the event an issue causes an interruption to the app availability, a detection by a monitoring system could initiate self-healing activities to the app, such as draining the failed instance and redeploying it. Nejpravděpodobnější příčinou je, že je k dispozici řešení centrálního monitorování, které je integrováno do kanálu hybridní průběžné integrace a průběžného doručování (CI/CD).Most likely this requires a central monitoring solution, integrated with a hybrid Continuous Integration, and Continuous Delivery (CI/CD) pipeline. Aplikace je integrovaná do monitorovacího systému, aby identifikovala problémy, které by mohly vyžadovat opětovné nasazení součásti aplikace.The app is integrated with a monitoring system to identify issues that could require redeployment of an app component. Monitorovací systém může také aktivovat hybridní CI/CD pro opětovné nasazení komponenty aplikace a potenciálně další závislé součásti ve stejném nebo jiném umístění.The monitoring system can also trigger hybrid CI/CD to redeploy the app component and potentially any other dependent components in the same or other locations.

Udržujte smlouvy o úrovni služeb (SLA).Maintain service-level agreements (SLAs). Dostupnost je zásadní pro jakékoli smlouvy, aby se zachovalo připojení ke službám a aplikacím, které máte ve svých zákaznících.Availability is critical for any agreements to maintain connectivity to the services and apps that you have with your customers. Každé umístění, na kterém vaše hybridní aplikace spoléhá, může mít svou vlastní smlouvu SLA.Each location that your hybrid app relies on might have its own SLA. Tyto různé SLA můžou mít vliv na celkovou smlouvu SLA vaší hybridní aplikace.These different SLAs can affect the overall SLA of your hybrid app.

OdolnostResiliency

Odolnost proti chybám je schopnost hybridní aplikace a systému obnovit selhání a nadále fungovat.Resiliency is the ability for a hybrid app and system to recover from failures and continue to function. Cílem odolnosti proti chybám je vrácení aplikace do plně funkčního stavu po selhání.The goal of resiliency is to return the app to a fully functioning state after a failure occurs. Strategie odolnosti proti chybám zahrnují řešení, jako je zálohování, replikace a zotavení po havárii.Resiliency strategies include solutions like backup, replication, and disaster recovery.

Základní diskusi k tomuto pilíři najdete v tématu odolnost proti chybám v pěti pilířích vynikající architektury.For the core discussion of this pillar, see Resiliency in the five pillars of architecture excellence.

Kontrolní seznam k odolnostiResiliency checklist

Odhalte závislosti zotavení po havárii.Uncover disaster-recovery dependencies. Zotavení po havárii v jednom cloudu může vyžadovat změny součástí aplikace v jiném cloudu.Disaster recovery in one cloud might require changes to app components in another cloud. Pokud je jedna nebo víc komponent z jednoho cloudu převzetí služeb při selhání do jiného umístění, buď ve stejném cloudu, nebo v jiném cloudu, je potřeba, abyste tyto změny věděli i na závislých součástech.If one or multiple components from one cloud are failed-over to another location, either within the same cloud or to another cloud, the dependent components need to be made aware of these changes. To zahrnuje i závislosti připojení.This also includes the connectivity dependencies. Odolnost proti chybám vyžaduje plně testovaný plán pro obnovení aplikací pro každý Cloud.Resiliency requires a fully tested app recovery plan for each cloud.

Navažte tok obnovení.Establish recovery flow. Účinný návrh toku obnovení vyhodnotil součásti aplikace, aby mohla přizpůsobit vyrovnávací paměti, opakování, Opakování neúspěšného přenosu dat a v případě potřeby se vrátí do jiné služby nebo pracovního postupu.An effective recovery flow design has evaluated app components for their ability to accommodate buffers, retries, retrying failed data transfer, and, if necessary, fall back to a different service or workflow. Musíte určit, jaký záložní mechanismus se má použít, jak postup obnovení zahrnuje a jak často se testuje.You must determine what back-up mechanism to use, what its restore procedure involves, and how often it's tested. Měli byste také určit četnost přírůstkových i úplných záloh.You should also determine the frequency for both incremental and full backups.

Test částečné obnovy.Test partial recoveries. Částečná obnova v části aplikace může poskytovat reassurance uživatelům, kteří nejsou k dispozici.A partial recovery for part of the app can provide reassurance to users that all isn't unavailable. Tato část plánu by měla zajistit, že částečné obnovení nemá žádné vedlejší účinky, jako je například služba zálohování a obnovení, která komunikuje s aplikací, aby ji před provedením zálohování řádně ukončila.This part of the plan should ensure that a partial restore doesn't have any side effects, such as a backup and restore service that interacts with the app to gracefully shut it down before the backup is made.

Určete návod pro zotavení po havárii a přiřaďte zodpovědnost.Determine disaster-recovery instigators and assign responsibility. Plán obnovení by měl obsahovat informace o tom, kdo a jaké role můžou zahájit akce zálohování a obnovení kromě toho, co se dá zálohovat a obnovit.A recovery plan should describe who, and what roles, can initiate backup and recovery actions in addition to what can be backed up and restored.

Porovnejte prahové hodnoty pro samočinné retušování pomocí zotavení po havárii.Compare self-healing thresholds with disaster recovery. Určete možnosti automatického retušování aplikace pro automatické zahájení obnovení a dobu potřebnou k automatickému retušování aplikace, aby byla považována za selhání nebo úspěšnost.Determine an app's self-healing capabilities for automatic recovery initiation and the time required for an app's self- healing to be considered a failure or success. Určete prahové hodnoty pro každý Cloud.Determine the thresholds for each cloud.

Ověřte dostupnost funkcí odolnosti proti chybám.Verify availability of resiliency features. Určete dostupnost funkcí a schopností odolnosti proti chybám pro každé umístění.Determine the availability of resiliency features and capabilities for each location. Pokud umístění neposkytuje požadované možnosti, zvažte integraci tohoto umístění do centralizované služby, která poskytuje funkce odolnosti.If a location doesn't provide the required capabilities, consider integrating that location into a centralized service that provides the resiliency features.

Určete prostoje.Determine downtimes. Určete očekávané výpadky z důvodu údržby aplikace jako celku a jako součásti aplikace.Determine the expected downtime due to maintenance for the app as a whole and as app components.

Postupy řešení potíží v dokumentu.Document troubleshooting procedures. Definujte postupy řešení potíží pro opětovné nasazení prostředků a součástí aplikací.Define troubleshooting procedures for redeploying resources and app components.

Možnosti správyManageability

Důležité informace týkající se správy hybridních aplikací jsou důležité při návrhu vaší architektury.The considerations for how you manage your hybrid apps are critical in designing your architecture. Dobře spravovaná hybridní aplikace poskytuje infrastrukturu jako kód, který umožňuje integraci konzistentního kódu aplikace ve společném vývojovém kanálu.A well-managed hybrid app provides an infrastructure as code that enables the integration of consistent app code in a common development pipeline. Implementací konzistentního systému a individuálního testování změn infrastruktury můžete zajistit integrované nasazení, pokud změny projde testy, což umožňuje jejich sloučení do zdrojového kódu.By implementing consistent system-wide and individual testing of changes to the infrastructure, you can ensure an integrated deployment if the changes pass the tests, allowing them to be merged into the source code.

Základní diskusi k tomuto pilíři najdete v tématu DevOps v pěti pilířích špičkové architektury.For the core discussion of this pillar, see DevOps in the five pillars of architecture excellence.

Kontrolní seznam spravovatelnostiManageability checklist

Implementujte monitorování.Implement monitoring. Pomocí centralizovaného monitorovacího systému komponent aplikace rozšíříte napříč cloudy, abyste zajistili agregované zobrazení jejich stavu a výkonu.Use a centralized monitoring system of app components spread across clouds to provide an aggregated view of their health and performance. Tento systém zahrnuje monitorování součástí aplikace i souvisejících funkcí platformy.This system includes monitoring both the app components and related platform capabilities.

Určete části aplikace, které vyžadují monitorování.Determine the parts of the app that require monitoring.

Zásady souřadnic.Coordinate policies. Každé umístění, které hybridní aplikace pokrývá, může mít vlastní zásady, které pokrývají povolené typy prostředků, konvence pojmenování, značky a další kritéria.Each location that a hybrid app spans can have its own policy that covers allowed resource types, naming conventions, tags, and other criteria.

Definujte a používejte role.Define and use roles. Jako správce databáze potřebujete určit oprávnění požadovaná pro různé osoby (například vlastníka aplikace, správce databáze a koncového uživatele), které potřebují přístup k prostředkům aplikace.As a database admin, you need to determine the permissions required for different personas (like an app owner, a database admin, and an end user) that need to access app resources. Tato oprávnění je nutné nakonfigurovat u prostředků a uvnitř aplikace.These permissions need to be configured on the resources and inside the app. Systém řízení přístupu na základě role (RBAC) umožňuje nastavit tato oprávnění pro prostředky aplikace.A role-based access control (RBAC) system allows you to set these permissions on the app resources. Tato přístupová práva jsou náročná na to, že jsou všechny prostředky nasazeny v jednom cloudu, ale vyžadují ještě větší pozornost, pokud jsou prostředky rozloženy mezi cloudy.These access rights are challenging when all resources are deployed in a single cloud but require even more attention when the resources are spread across clouds. Oprávnění k prostředkům nastaveným v jednom cloudu se nevztahují na prostředky nastavené v jiném cloudu.Permissions on resources set in one cloud don't apply to resources set in another cloud.

Použijte kanály CI/CD.Use CI/CD pipelines. Kanál průběžné integrace a průběžného vývoje (CI/CD) může poskytovat konzistentní proces pro vytváření a nasazování aplikací, které jsou napříč cloudy, a zajištění kvality pro svou infrastrukturu a aplikaci.A Continuous Integration and Continuous Development (CI/CD) pipeline can provide a consistent process for authoring and deploying apps that span across clouds, and to provide quality assurance for their infrastructure and app. Tento kanál umožňuje testování infrastruktury a aplikace na jednom cloudu a nasazení na jiném cloudu.This pipeline enables the infrastructure and app to be tested on one cloud and deployed on another cloud. Kanál dokonce umožňuje nasadit určité komponenty hybridní aplikace do jednoho cloudu a dalších součástí do jiného cloudu, v podstatě tak, aby bylo základem nasazení hybridní aplikace.The pipeline even allows you to deploy certain components of your hybrid app to one cloud and other components to another cloud, essentially forming the foundation for hybrid app deployment. Systém CI/CD je velmi důležitý pro zpracování komponent aplikace závislosti v průběhu instalace, jako je třeba webová aplikace, která vyžaduje připojovací řetězec k databázi.A CI/CD system is critical for handling the dependencies app components have for each other during installation, such as the web app needing a connection string to the database.

Spravujte životní cyklus.Manage the life cycle. Vzhledem k tomu, že prostředky hybridní aplikace můžou zahrnovat umístění, musí být každá funkce správy životního cyklu jednoho umístění agregovaná do jedné jednotky pro správu životního cyklu.Because resources of a hybrid app can span locations, each single location's life-cycle management capability needs to be aggregated into a single life-cycle management unit. Vezměte v úvahu, jak se vytvářejí, aktualizují a odstraňují.Consider how they're created, updated, and deleted.

Projděte si strategie odstraňování potíží.Examine troubleshooting strategies. Řešení potíží s hybridní aplikací zahrnuje více součástí aplikace než stejná aplikace, která běží v jednom cloudu.Troubleshooting a hybrid app involves more app components than the same app that's running in a single cloud. Kromě připojení mezi cloudy je aplikace spuštěná na dvou platformách, nikoli na jednom.Besides the connectivity between the clouds, the app is running on two platforms instead of one. Důležitou úlohou při řešení potíží s hybridními aplikacemi je prozkoumávat agregované monitorování stavu a sledování výkonu komponent aplikace.An important task in troubleshooting hybrid apps is to examine the aggregated health and performance monitoring of the app components.

ZabezpečeníSecurity

Zabezpečení je jedním z hlavních předpokladů pro jakoukoli cloudovou aplikaci a je ještě důležitější pro hybridní cloudové aplikace.Security is one of the primary considerations for any cloud app and it becomes even more critical for hybrid cloud apps.

Základní diskusi k tomuto pilíři najdete v tématu zabezpečení v pěti pilířích kvality architektury.For the core discussion of this pillar, see Security in the five pillars of architecture excellence.

Kontrolní seznam zabezpečeníSecurity checklist

Předpokládejte, že došlo k porušení.Assume breach. Pokud dojde k ohrožení jedné části aplikace, zajistěte, aby byla k dispozici řešení pro minimalizaci rozšíření porušení, nikoli jenom ve stejném umístění, ale i v různých umístěních.If one part of the app is compromised, ensure there are solutions in place to minimize the spread of the breach, not only within the same location but also across locations.

Monitorovat povolený přístup k síti.Monitor allowed network access. Určete zásady přístupu k síti pro aplikaci, jako je jenom přístup k aplikaci z konkrétní podsítě, a povolte jenom minimální porty a protokoly mezi součástmi, které aplikace potřebuje k tomu, aby správně fungovala.Determine the network access policies for the app, such as only accessing the app from a specific subnet and only allow the minimum ports and protocols between the components required for the app to function properly.

Využívají robustní ověřování.Employ robust authentication. Robustní schéma ověřování je důležité pro zabezpečení vaší aplikace.A robust authentication scheme is critical for the security of your app. Zvažte použití federovaného poskytovatele identity, který poskytuje možnosti jednotného přihlašování a používá jedno nebo několik následujících schémat: uživatelské jméno a přihlášení k heslům, veřejné a privátní klíče, dvojúrovňové nebo vícefaktorové ověřování a důvěryhodné skupiny zabezpečení.Consider using a federated identity provider that provides single sign-on capabilities and employs one or more of the following schemes: username and password sign-on, public and private keys, two-factor or multi-factor authentication, and trusted security groups. Kromě typů certifikátů a jejich požadavků určete vhodné prostředky pro ukládání citlivých dat a dalších tajných kódů pro ověřování aplikací.Determine the appropriate resources to store sensitive data and other secrets for app authentication in addition to certificate types and their requirements.

Použijte šifrování.Use encryption. Určete, které oblasti aplikace používají šifrování, například pro úložiště dat nebo komunikaci klientů a přístup.Identify which areas of the app use encryption, such as for data storage or client communication and access.

Používejte zabezpečené kanály.Use secure channels. Zabezpečený kanál napříč cloudy je důležitý pro poskytování kontrol zabezpečení a ověřování, ochrany v reálném čase, karantény a dalších služeb napříč cloudy.A secure channel across the clouds is critical for providing security and authentication checks, real-time protection, quarantine, and other services across clouds.

Definujte a používejte role.Define and use roles. Implementujte role pro konfigurace prostředků a přístup s jednou identitou napříč cloudy.Implement roles for resource configurations and single-identity access across clouds. Určete požadavky na řízení přístupu na základě role (RBAC) pro aplikaci a její prostředky platformy.Determine the role-based access control (RBAC) requirements for the app and its platform resources.

Auditovat systém.Audit your system. Sledování systému může protokolovat a agregovat data z komponent aplikace i souvisejících operací cloudové platformy.System monitoring can log and aggregate data from both the app components and the related cloud platform operations.

SouhrnSummary

Tento článek poskytuje kontrolní seznam položek, které je důležité zvážit během vytváření a navrhování hybridních aplikací.This article provides a checklist of items that are important to consider during the authoring and designing of your hybrid apps. Před tím, než aplikaci nasadíte, si Projděte tyto pilíře, abyste se nemuseli spouštět na tyto otázky v produkčních výpadkech a případně vyžadovali, abyste přenavštívili návrh.Reviewing these pillars before you deploy your app prevents you from running into these questions in production outages and potentially requiring you to revisit your design.

Může se zdát jako časově náročný úkol předem, ale pokud navrhujete svou aplikaci na základě těchto pilířů, snadno získáte návratnost investic.It can seem like a time-consuming task beforehand, but you easily get your return on investment if you design your app based on these pillars.

Další krokyNext steps

Další informace naleznete v následujících zdrojích:For more information, see the following resources: