Hibrit uygulama tasarımında dikkat edilmesi gerekenlerHybrid app design considerations

Tek tutarlı karma bulutunuz Microsoft Azure.Microsoft Azure is the only consistent hybrid cloud. Geliştirme yatırımlarınızı yeniden kullanmanıza ve küresel Azure, egeign Azure bulutlarını ve Azure Stack veri merkezinizde bir Azure uzantısı olan uygulamalara olanak tanır.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. Bulutları kapsayan uygulamalar da karma uygulamalarolarak adlandırılır.Apps that span clouds are also referred to as hybrid apps.

Azure Uygulama Mimarisi Kılavuzu , ölçeklenebilir, dayanıklı ve yüksek oranda kullanılabilir uygulamalar tasarlamak için yapılandırılmış bir yaklaşım açıklamaktadır.The Azure Application Architecture Guide describes a structured approach for designing apps that are scalable, resilient, and highly available. Azure uygulama mimarisi kılavuzunda açıklanan noktalar, tek bir bulut için tasarlanan uygulamalar ve bulutların yayılacağı uygulamalar için de geçerlidir.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.

Bu makalede, Azure Uygulama Mimarisi Kılavuzu 'nda ele alınan yazılım kalitesinin ve özellikle karma uygulamalar tasarlamaya odaklanılan yazılım kalitesinin her ikisi de anlatılmaktadır.This article augments the Pillars of software quality discussed in the Azure Application Architecture Guide, focusing specifically on designing hybrid apps. Ayrıca, karma uygulamalar tek bir buluta veya bir şirket içi veri merkezine özel olmadığından, bir yerleşim de ekleyeceğiz.In addition, we add a placement pillar as hybrid apps aren't exclusive to one cloud or one on-premises datacenter.

Karma senaryolar, geliştirme için kullanılabilen kaynaklarla büyük ölçüde farklılık gösterir ve coğrafya, güvenlik, internet erişimi ve diğer konular gibi önemli noktalara dikkat edin.Hybrid scenarios vary greatly with the resources that are available for development, and span considerations such as geography, security, internet access, and other considerations. Bu kılavuz, belirli konuları numaralandıramasa da, izlemeniz için bazı önemli yönergeler ve en iyi uygulamalar sağlayabilir.Although this guide can't enumerate your specific considerations, it can provide some key guidelines and best practices for you to follow. Karma uygulama mimarisini başarıyla tasarlama, yapılandırma, dağıtma ve sürdürme, sizin için doğal olarak tanınmayan birçok tasarım ile ilgilidir.Successfully designing, configuring, deploying, and maintaining a hybrid app architecture involves many design considerations that might not be inherently known to you.

Bu belge, hibrit uygulamalar uygulama sırasında ortaya çıkabilecek olası soruların toplanmasını ve bunlarla çalışmak için önemli noktalar (Bu işlem noktaları) ve en iyi yöntemleri sağlar.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. Tasarım aşamasında bu sorulara değinerek üretimde neden olabilecek sorunlardan kaçınabilirsiniz.By addressing these questions during the design phase, you'll avoid the issues they could cause in production.

Temelde, bu, karma uygulama oluşturmadan önce düşünmek için gereken sorulardır.Essentially, these are questions you need to think about before creating a hybrid app. Başlamak için aşağıdaki işlemleri yapmanız gerekir:To get started, you need to do the following things:

  • Uygulama bileşenlerini tanımlayıp değerlendirin.Identify and evaluate the app components.
  • Uygulama bileşenlerini bu şekilde değerlendirin.Evaluate app components against the pillars.

Uygulama bileşenlerini değerlendirEvaluate the app components

Bir uygulamanın her bileşeni, daha büyük uygulama içinde kendi özel rolüne sahiptir ve tüm tasarım konuları ile incelenmelidir.Each component of an app has its own specific role within the larger app and should be reviewed with all design considerations. Her bileşenin gereksinimleri ve özellikleri, uygulama mimarisini belirlemede yardımcı olması için bu noktalara eşlenmelidir.Each component's requirements and features should map to these considerations to help determine the app architecture.

Uygulamanızın mimarisini gerçekleştirerek ve ne içerdiğini belirleyerek uygulamanızı bileşenlerine ayırın.Decompose your app into its components by studying your app's architecture and determining what it consists of. Bileşenler, uygulamanızın etkileşimde bulunduğu diğer uygulamaları da içerebilir.Components can also include other apps that your app interacts with. Bileşenleri tanımladığınıza göre, bu soruları isteyerek amaçlanan karma işlemlerinizi özelliklerine göre değerlendirin:As you identify the components, evaluate your intended hybrid operations according to their characteristics by asking these questions:

  • Bileşenin amacı nedir?What is the purpose of the component?
  • Bileşenler arasında bağımlılıkları nelerdir?What are the interdependencies between the components?

Örneğin, bir uygulamanın ön uç ve arka ucu iki bileşen olarak tanımlanmış olabilir.For example, an app can have a front end and back end defined as two components. Karma bir senaryoda, ön uç bir bulutta, arka ucu ise diğeri de olur.In a hybrid scenario, the front end is in one cloud and the back end is in the other. Uygulama, ön uç ve Kullanıcı arasında ve ayrıca ön uç ve arka uç arasında iletişim kanalları sağlar.The app provides communication channels between the front end and the user, and also between the front end and the back end.

Bir uygulama bileşeni birçok form ve senaryo tarafından tanımlanır.An app component is defined by many forms and scenarios. En önemli görev bunları ve bunların bulutlarını ve şirket içi konumunu tanımlar.The most important task is identifying them and their cloud or on-premises location.

Stokunuzda içerilecek ortak uygulama bileşenleri Tablo 1 ' de listelenmiştir.The common app components to include in your inventory are listed in Table 1.

Tablo 1.Table 1. Ortak uygulama bileşenleriCommon app components

BileşenComponent Karma Uygulama KılavuzuHybrid app guidance
İstemci bağlantılarıClient connections Uygulamanız (herhangi bir cihazda), aşağıdaki yöntemlerle birlikte tek bir giriş noktasından farklı yollarla kullanıcılara erişebilir:Your app (on any device) can access users in various ways, from a single-entry point, including the following ways:
-Kullanıcının uygulamayla çalışmak için bir istemcisinin yüklü olmasını gerektiren bir istemci-sunucu modeli.- A client-server model that requires the user to have a client installed to work with the app. Tarayıcıdan erişilen sunucu tabanlı bir uygulama.A server-based app that's accessed from a browser.
-İstemci bağlantıları, dolaşım ücretleri uygulanabileceğini, bağlantı kesildiğinde veya uyarıladığınızda bildirimleri içerebilir.- Client connections can include notifications when the connection is broken or alerts when roaming charges may apply.
Kimlik DoğrulamasıAuthentication Uygulamaya bağlanan bir kullanıcı veya başka bir bileşen için kimlik doğrulaması gerekli olabilir.Authentication can be required for a user connecting to the app, or from one component connecting to another.
API'lerAPIs Geliştiricilere, API kümeleri ve sınıf kitaplıkları ile uygulamanıza programlı erişim sağlayabilir ve internet standartlarına dayalı bir bağlantı arabirimi sağlayabilirsiniz.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. API 'Leri, bir uygulamayı bağımsız işletim mantıksal birimlerine ayırmak için de kullanabilirsiniz.You can also use APIs to decompose an app into independently operating logical units.
HizmetlerServices Bir uygulamaya yönelik özellikleri sağlamak için kısa hizmetlerini kullanabilirsiniz.You can employ succinct services to provide the features for an app. Bir hizmet, uygulamanın çalıştığı altyapı olabilir.A service can be the engine that the app runs on.
KuyruklarQueues Kullanım ömürlerini ve uygulamanızın bileşenlerinin durumunu düzenlemek için kuyrukları kullanabilirsiniz.You can use queues to organize the status of the life cycles and states of your app's components. Bu kuyruklar, abone tarafların mesajlaşma, bildirim ve arabelleğe alma özelliklerini sağlayabilir.These queues can provide messaging, notifications, and buffering capabilities to subscribing parties.
Veri depolamaData storage Bir uygulama durum bilgisiz veya durum bilgisi olabilir.An app can be stateless or stateful. Durum bilgisi olan uygulamalarda çok sayıda biçim ve birim tarafından karşılanabileceği veri depolaması gerekir.Stateful apps need data storage that can be met by numerous formats and volumes.
Verileri önbelleğe almaData caching Tasarımınızda bir veri önbelleği bileşeni, gecikme sorunlarını gidermek ve bulut patlamasını tetikleyerek bir rol oynatabilir.A data caching component in your design can strategically address latency issues and play a role in triggering cloud bursting.
Veri alımıData ingestion Veriler, bir Web formundaki Kullanıcı tarafından gönderilen değerlerden sürekli olarak yüksek hacimli veri akışına kadar birçok şekilde bir uygulamaya gönderilebilir.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.
Veri işlemeData processing Veri işleme görevleriniz (raporlar, analiz, toplu dışarı aktarmalar ve veri dönüştürme gibi), kaynakta işlenebilir veya verilerin bir kopyası kullanılarak ayrı bir bileşende boşaltılır.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.

Uygulama bileşenlerini, pilde için değerlendirAssess app components for pillars

Her bir bileşen için her bir şekilde özelliklerini değerlendirin.For each component, evaluate its characteristics for each pillar. Her bir bileşeni tüm pillerle değerlendirirken, kabul edilmeyebilirsiniz, karma uygulamanın tasarımını etkileyen, sizin de dikkate alınamayabilirsiniz.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. Bu noktalara işlem yapmak, uygulamanızı iyileştirmek için değer ekleyebilirler.Acting on these considerations could add value in optimizing your app. Tablo 2, karma uygulamalarla ilgili olarak her bir bir açıklama sağlar.Table 2 provides a description of each pillar as it relates to hybrid apps.

Tablo 2.Table 2. Yapı taşlarıPillars

Yapı TaşıPillar AçıklamaDescription
YerleştirmePlacement Karma uygulamalardaki bileşenlerin stratejik konumlandırması.The strategic positioning of components in hybrid apps.
ÖlçeklenebilirlikScalability Sistemin artan yükü idare edebilme özelliği.The ability of a system to handle increased load.
KullanılabilirlikAvailability Karma uygulamanın işlevsel ve çalışır olduğu sürenin oranı.The proportion of time that a hybrid app is functional and working.
DayanıklılıkResiliency Karma uygulama için kurtarma özelliği.The ability for a hybrid app to recover.
YönetilebilirlikManageability Sistemi üretimde çalışır durumda tutan operasyon süreçleri.Operations processes that keep a system running in production.
GüvenlikSecurity Karma uygulamaları ve verileri tehditlere karşı koruma.Protecting hybrid apps and data from threats.

YerleştirmePlacement

Karma uygulama doğal olarak, veri merkezi gibi bir yerleşim değerlendirmesi içerir.A hybrid app inherently has a placement consideration, like for the datacenter.

Yerleştirme, bileşenlerin bir karma uygulamayı en iyi şekilde hizmet edebilmesi için konumlama açısından önemli bir görevdir.Placement is the important task of positioning components so that they can best service a hybrid app. Tanım, karma uygulamalar, Şirket içinden buluta ve farklı bulutlar arasında yer alır.By definition, hybrid apps span locations, like from on-premises to the cloud and among different clouds. Uygulama bileşenlerini bulutlara iki şekilde yerleştirebilirsiniz:You can place components of the app on clouds in two ways:

  • Dikey karma uygulamalarVertical hybrid apps
    Uygulama bileşenleri konumlar arasında dağıtılır.App components are distributed across locations. Her ayrı bileşen yalnızca tek bir konumda bulunan birden çok örneğe sahip olabilir.Each individual component can have multiple instances located only in a single location.

  • Yatay karma uygulamalarHorizontal hybrid apps
    Uygulama bileşenleri konumlar arasında dağıtılır.App components are distributed across locations. Her bir bileşenin birden çok konumu kapsayan birden fazla örneği olabilir.Each individual component can have multiple instances spanning multiple locations.

    Bazı bileşenler, başkalarının konumu ve yerleştirmesi hakkında bilgi sahibi olmayan konumlarından haberdar olabilir.Some components can be aware of their location while others don't have any knowledge of their location and placement. Bu virtuousness bir soyutlama katmanıyla elde edilebilir.This virtuousness can be achieved with an abstraction layer. Mikro hizmetler gibi modern bir uygulama çerçevesi olan bu katman, bulut genelinde düğümlerde çalışan uygulama bileşenlerinin yerleştirilmesiyle uygulamanın nasıl hizmet vermesini tanımlayabilir.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.

Yerleştirme denetim listesiPlacement checklist

Gerekli konumları doğrulayın.Verify required locations. Uygulamanın veya bileşenlerinden birinin, belirli bir bulut için üzerinde çalışması veya sertifika gerektirmesi için gerekli olduğundan emin olun.Make sure the app or any of its components are required to operate in, or require certification for, a specific cloud. Bu, şirketinizdeki veya yasalar tarafından dikte edilen egemenlik gereksinimlerini içerebilir.This can include sovereignty requirements from your company or dictated by law. Ayrıca, belirli bir konum veya yerel ayar için herhangi bir şirket içi işlemin gerekli olup olmadığını belirleyebilirsiniz.Also, determine if any on-premises operations are required for a particular location or locale.

Yokermesi bağlantı bağımlılıkları.Ascertain connectivity dependencies. Gerekli konumlar ve diğer faktörler, bileşenlerinizin arasında bağlantı bağımlılıklarını dikte edebilir.Required locations and other factors can dictate the connectivity dependencies among your components. Bileşenleri yerleştirirken, aralarında iletişimin en iyi bağlantısını ve güvenliğini saptayın.As you place the components, determine the optimal connectivity and security for communication among them. VPN, ExpressRoute ve karma bağlantılar seçenekleri bulunur.Choices include VPN, ExpressRoute, and Hybrid Connections.

Platform yeteneklerini değerlendirin.Evaluate platform capabilities. Her uygulama bileşeni için, uygulama bileşeni için gerekli kaynak sağlayıcısının bulutta kullanılabilir olup olmadığını ve bant genişliğinin beklenen aktarım hızını ve gecikme süresi gereksinimlerini barındırabilmesine olanak sağlamak için bkz..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.

Taşınabilirlik için plan yapın.Plan for portability. Taşıma işlemlerini planlamak ve hizmet bağımlılıklarını engellemek için kapsayıcılar veya mikro hizmetler gibi modern uygulama çerçeveleri kullanın.Use modern app frameworks, like containers or microservices, to plan for moving operations and to prevent service dependencies.

Veri egemenlik gereksinimlerini belirleme.Determine data sovereignty requirements. Karma uygulamalar, yerel bir veri merkezinde olduğu gibi veri yalıtımına yönelik olarak tasarlanmıştır.Hybrid apps are geared for accommodating data isolation, such as on a local datacenter. Bu gereksinimi karşılamak için başarıyı iyileştirmek üzere kaynaklarınızın yerleşimini gözden geçirin.Review the placement of your resources to optimize the success for accommodating this requirement.

Gecikme için plan yapın.Plan for latency. Bulut tabanlı işlemler, uygulama bileşenleri arasında fiziksel mesafe ortaya çıkarabilir.Inter-cloud operations can introduce physical distance between the app components. Herhangi bir gecikmeyi karşılamak için gereksinimleri yokler.Ascertain the requirements to accommodate any latency.

Trafik akışlarını denetleme.Control traffic flows. Genel bir bulutta ön uç tarafından erişildiğinde, kişisel olarak tanımlanabilen bilgi verileri için en yüksek kullanımı ve uygun ve güvenli iletişimleri işleyin.Handle peak usage and the appropriate and secured communications for personal identifiable information data when accessed by the front end in a public cloud.

ÖlçeklenebilirlikScalability

Ölçeklenebilirlik, sistemin, uygulamanın boyutuna ve kapsamına ek olarak, diğer faktörler ve hedef kitle boyutunu etkilediği zaman içinde değişebilen bir uygulamada daha fazla yük işlemesini sağlar.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.

Bu pilde temel tartışmak için, mimaride üstün olan beş paragraf üzerinde ölçeklenebilirlik konusuna bakın.For the core discussion of this pillar, see Scalability in the five pillars of architecture excellence.

Karma uygulamalar için yatay ölçeklendirme yaklaşımı, talebi karşılamak için daha fazla örnek eklenmesine ve daha sonra daha sessiz dönemler sırasında devre dışı bırakılmasına olanak tanır.A horizontal scaling approach for hybrid apps allows for adding more instances to meet demand and then disabling them during quieter periods.

Karma senaryolarda, bileşenlerin bulutlara yayıldığı durumlarda, tek tek bileşenlerin ölçeğini genişletmek için ek dikkat gerekir.In hybrid scenarios, scaling out individual components requires additional consideration when components are spread across clouds. Uygulamanın bir bölümünün ölçeklendirilmesi, başka bir ölçeklendirme gerektirebilir.Scaling one part of the app can require the scaling of another. Örneğin, istemci bağlantısı sayısı arttıkça, ancak uygulamanın Web Hizmetleri uygun şekilde ölçeklenmemişse, veritabanındaki yük uygulama için doygunluğu artırabilir.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.

Bazı uygulama bileşenleri doğrusal bir şekilde ölçeklenebilir, diğerleri de ölçeklendirme bağımlılıklarına sahiptir ve ölçeklendirebilecekleri ölçüde sınırlı olabilir.Some app components can scale out linearly, while others have scaling dependencies and might be limited to what extent they're able to scale. Örneğin, uygulama bileşenleri konumlarına yönelik karma bağlantı sağlayan bir VPN tüneli, ölçeklendirilebilen bant genişliği ve gecikme süresine sahiptir.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. Uygulamanın bileşenleri, bu gereksinimlerin karşılandığından emin olmak için nasıl ölçeklendirilir?How are components of the app scaled to ensure these requirements are met?

Ölçeklenebilirlik denetim listesiScalability checklist

Yokermesi ölçekleme eşikleri.Ascertain scaling thresholds. Uygulamanızdaki çeşitli bağımlılıkları işlemek için, farklı bulutlarda bulunan uygulama bileşenlerinin birbirinden bağımsız olarak ölçekleyeceğini belirleme, ancak uygulamayı çalıştırma gereksinimlerini sürdürmeye devam ediyor.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. Hibrit uygulamalar, etkileşim kurduğu ve uygulamanın geri kalanını etkilediği bir özelliği işlemek için genellikle uygulamadaki belirli alanların ölçeklendirilmesi gerekir.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. Örneğin, bir dizi ön uç örneğini aşarak arka ucun ölçeklendirilmesi gerekebilir.For example, exceeding a number of front-end instances may require scaling the back end.

Ölçek zamanlamalarını tanımlayın.Define scale schedules. Çoğu uygulamanın meşgul süreleri vardır, bu yüzden en iyi ölçeklendirmeyi koordine etmek için yoğun süreleri en yüksek zamanlara toplamanız gerekir.Most apps have busy periods, so you need to aggregate their peak times into schedules to coordinate optimal scaling.

Merkezi bir izleme sistemi kullanın.Use a centralized monitoring system. Platform izleme özellikleri otomatik ölçeklendirme sağlayabilir, ancak karma uygulamalar sistem durumunu ve yüklemeyi toplayan merkezi bir izleme sistemine gerek duyar.Platform monitoring capabilities can provide autoscaling, but hybrid apps need a centralized monitoring system that aggregates system health and load. Merkezi bir izleme sistemi, başka bir konumdaki kaynağa bağlı olarak bir konumda bir kaynak ölçeklendirmeyi başlatabilir ve ölçeklendirebilirsiniz.A centralized monitoring system can initiate scaling a resource in one location and scaling depending on resource in another location. Ayrıca, merkezi bir izleme sistemi hangi bulutlar için otomatik ölçeklendirme kaynaklarını ve hangi bulutların olduğunu izleyebilir.Additionally, a central monitoring system can track which clouds autoscale resources and which clouds don't.

Otomatik ölçeklendirme özelliklerinden yararlanın (kullanılabilir).Leverage autoscaling capabilities (as available). Otomatik ölçeklendirme özellikleri mimarinizin parçasıysa, bir uygulama bileşeninin ne zaman yukarı, aşağı, aşağı veya dışarı ölçeklenmesi gerektiğini tanımlayan eşikleri ayarlayarak otomatik ölçeklendirmeyi uygulayabilirsiniz.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. Otomatik ölçeklendirme örneği, daha fazla kapasiteyi işlemek için bir bulutta otomatik olarak ölçeklenen bir istemci bağlantısıdır, ancak uygulamanın diğer bağımlılıklarının aynı zamanda farklı bulutlara yayılmasına neden olur.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. Bu bağımlı bileşenlerin otomatik ölçeklendirme özellikleri bunun olmalıdır.The autoscaling capabilities of these dependent components must be ascertained.

Otomatik ölçeklendirme kullanılamıyorsa, merkezi izleme sistemindeki eşiklerle tetiklenen el ile ölçeklendirmeyi karşılamak için betikleri ve diğer kaynakları uygulamayı düşünün.If autoscaling isn't available, consider implementing scripts and other resources to accommodate manual scaling, triggered by thresholds in the centralized monitoring system.

Beklenen konuma göre yüklemeyi belirleme.Determine expected load by location. İstemci isteklerini işleyen karma uygulamalar öncelikle tek bir konuma bağlı olabilirler.Hybrid apps that handle client requests might primarily rely on a single location. İstemci isteklerinin yükü bir eşiği aştığında, gelen isteklerin yükünü dağıtmak için ek kaynaklar farklı bir konuma eklenebilir.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. İstemci bağlantılarının artan yükleri işleyebilmesine ve ayrıca yükü işleyecek istemci bağlantılarına yönelik otomatikleştirilmiş yordamları belirleyebilmesini sağlayın.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.

KullanılabilirlikAvailability

Kullanılabilirlik, sistemin işlevsel ve çalışır olduğu süredir.Availability is the time that a system is functional and working. Kullanılabilirlik, çalışma süresinin yüzdesi olarak ölçülür.Availability is measured as a percentage of uptime. Uygulama hataları, altyapı sorunları ve sistem yükü tüm kullanılabilirliği azaltabilir.App errors, infrastructure problems, and system load can all reduce availability.

Bu pilde temel tartışmak için, mimaride üstün olan beş paragraf üzerinde kullanılabilirlik bölümüne bakın.For the core discussion of this pillar, see Availability in the five pillars of architecture excellence.

Kullanılabilirlik denetim listesiAvailability checklist

Bağlantı için artıklık sağlayın.Provide redundancy for connectivity. Karma uygulamalar, uygulamanın yayıldığı bulutlar arasında bağlantı gerektirir.Hybrid apps require connectivity among the clouds that the app is spread across. Karma bağlantı için bir teknoloji seçiminiz vardır. bu nedenle, birincil teknoloji seçimine ek olarak, otomatik yük devretme özellikleri ile artıklık sağlamak için başka bir teknoloji kullanın, birincil teknoloji başarısız olur.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.

Hata etki alanlarını sınıflandırın.Classify fault domains. Hataya dayanıklı uygulamalar birden çok hata etki alanı gerektirir.Fault-tolerant apps require multiple fault domains. Hata etki alanları, tek bir sabit diskin şirket içinde başarısız olması, raf üstü bir anahtarın devre dışı olması veya tam veri merkezinin kullanılamaz olması gibi başarısızlık noktasını yalıtmaya yardımcı olur.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. Karma uygulamada, bir konum bir hata etki alanı olarak sınıflandırılabilirler.In a hybrid app, a location can be classified as a fault domain. Daha fazla kullanılabilirlik gereksinimleriyle, tek bir hata etki alanının nasıl sınıflandırılacağını değerlendirmek için daha fazla ihtiyacınız vardır.With more availability requirements, the more you need to evaluate how a single fault domain should be classified.

Yükseltme etki alanlarını sınıflandırın.Classify upgrade domains. Yükseltme etki alanları, uygulama bileşenleri örneklerinin kullanılabilir olmasını sağlamak için kullanılır, ancak aynı bileşene ait diğer örneklere güncelleştirmeler veya özellik yükseltmeleri ile bakım yapılıyor.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. Hata etki alanlarında olduğu gibi, yükseltme etki alanları konumlar arasında yerleştirme ile sınıflandırılabilirler.As with fault domains, upgrade domains can be classified by their placement across locations. Bir uygulama bileşeninin başka bir konumda yükseltilmeden önce tek bir konumda yükseltilme veya başka etki alanı yapılandırmalarının gerekli olup olmadığını belirlemelisiniz.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. Tek bir konumun kendisi birden fazla yükseltme etki alanına sahip olabilir.A single location itself can have multiple upgrade domains.

Örnekleri ve kullanılabilirliği izleyin.Track instances and availability. Yüksek oranda kullanılabilir uygulama bileşenleri, yük dengeleme ve zaman uyumlu veri çoğaltma aracılığıyla kullanılabilir.Highly available app components can be available through load balancing and synchronous data replication. Hizmet kesintiye uğramadan önce kaç örnek çevrimdışı olabilir belirlemelisiniz.You must determine how many instances can be offline before the service is interrupted.

Kendini onaran uygulayın.Implement self-healing. Bir sorun, uygulamanın kullanılabilirliğine karşı kesintiye neden oluyorsa, bir izleme sisteminin algılanması, başarısız örneği boşaltma ve yeniden dağıtma gibi uygulama için kendi kendini düzeltme etkinlikleri başlatabilir.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. Büyük olasılıkla bu, karma bir sürekli tümleştirme ve sürekli teslim (CI/CD) işlem hattı ile tümleştirilmiş bir merkezi izleme çözümü gerektirir.Most likely this requires a central monitoring solution, integrated with a hybrid Continuous Integration, and Continuous Delivery (CI/CD) pipeline. Uygulama bir uygulama bileşeninin yeniden dağıtımı gerektirebilecek sorunları belirlemek için bir izleme sistemiyle tümleşiktir.The app is integrated with a monitoring system to identify issues that could require redeployment of an app component. İzleme sistemi, aynı zamanda aynı veya diğer konumlarda bulunan diğer bağımlı bileşenler ve uygulama bileşenini yeniden dağıtmak için karma CI/CD 'yi tetikleyebilir.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.

Hizmet düzeyi sözleşmelerini (SLA 'Lar) koruyun.Maintain service-level agreements (SLAs). Müşterileriniz, müşterilerinizin sahip olduğu hizmet ve uygulamalarla bağlantı sağlamak için herhangi bir anlaşma açısından önemlidir.Availability is critical for any agreements to maintain connectivity to the services and apps that you have with your customers. Karma uygulamanızın bağımlı olduğu her konumun kendi SLA 'Sı olabilir.Each location that your hybrid app relies on might have its own SLA. Bu farklı SLA 'Lar karma uygulamanızın genel SLA 'sını etkileyebilir.These different SLAs can affect the overall SLA of your hybrid app.

DayanıklılıkResiliency

Dayanıklılık, karma uygulama ve sistemin hatalardan kurtulmasına ve çalışmaya devam etmesine olanak tanır.Resiliency is the ability for a hybrid app and system to recover from failures and continue to function. Dayanıklılık amacı, bir hata oluştuktan sonra uygulamayı tam çalışır duruma döndürmektir.The goal of resiliency is to return the app to a fully functioning state after a failure occurs. Dayanıklılık stratejileri, yedekleme, çoğaltma ve olağanüstü durum kurtarma gibi çözümler içerir.Resiliency strategies include solutions like backup, replication, and disaster recovery.

Bu pilde temel tartışmak için, mimaride üstün olan beş paragraf üzerinde dayanıklılık bölümüne bakın.For the core discussion of this pillar, see Resiliency in the five pillars of architecture excellence.

Dayanıklılık denetim listesiResiliency checklist

Olağanüstü durum kurtarma bağımlılıklarını açın.Uncover disaster-recovery dependencies. Bir bulutta olağanüstü durum kurtarma, başka bir buluttaki uygulama bileşenlerinde değişiklik yapılmasını gerektirebilir.Disaster recovery in one cloud might require changes to app components in another cloud. Bir buluttan bir veya birden çok bileşen, aynı bulutta ya da başka bir buluta yük devretmelidir, bağımlı bileşenlerin bu değişikliklerden haberdar olması gerekir.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. Bu, bağlantı bağımlılıklarını da içerir.This also includes the connectivity dependencies. Dayanıklılık, her bulut için tam olarak test edilmiş bir uygulama kurtarma planı gerektirir.Resiliency requires a fully tested app recovery plan for each cloud.

Kurtarma akışı oluşturun.Establish recovery flow. Etkin bir kurtarma akışı tasarımı, arabelleğe alma, yeniden deneme, başarısız veri aktarımını yeniden deneme ve gerekirse farklı bir hizmete veya iş akışına geri dönme yeteneği için uygulama bileşenlerini değerlendirdi.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. Hangi yedekleme mekanizmasının kullanılacağını, geri yükleme yordamının ne sıklıkta ve ne sıklıkla test edildiğini belirlemelisiniz.You must determine what back-up mechanism to use, what its restore procedure involves, and how often it's tested. Hem artımlı hem de tam yedeklemelerin sıklığını da belirlemelisiniz.You should also determine the frequency for both incremental and full backups.

Kısmi kurtarmaları test edin.Test partial recoveries. Uygulamanın bir parçası için kısmi bir kurtarma, tüm kullanılabilir olmayan kullanıcılara daha fazla izin verebilir.A partial recovery for part of the app can provide reassurance to users that all isn't unavailable. Planın bu bölümü, yedekleme yapılmadan önce düzgün bir şekilde kapatmak üzere uygulamayla etkileşim kuran yedekleme ve geri yükleme hizmeti gibi bir yan etkisi olmadığından emin olmalıdır.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.

Olağanüstü durum kurtarma, sigortaların ve sorumluluğun atanmasının belirlenmesi.Determine disaster-recovery instigators and assign responsibility. Bir kurtarma planı, neleri yedeklebileceğinize ve geri yüklenebileceklerini ek olarak kimlerin ve hangi rollerin, yedekleme ve kurtarma eylemlerini başlatabileceğini betimlemelidir.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.

Kendi kendini iyileştirme eşiklerini olağanüstü durum kurtarma ile karşılaştırın.Compare self-healing thresholds with disaster recovery. Otomatik Kurtarma başlatma için bir uygulamanın kendi kendini onaran yeteneklerini ve bir uygulamanın kendi kendini onaramasının başarısız veya başarılı olarak kabul edilmesi için gereken süreyi belirleme.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. Her bulutun eşiklerini belirleme.Determine the thresholds for each cloud.

Dayanıklılık özelliklerinin kullanılabilirliğini doğrulayın.Verify availability of resiliency features. Her konum için dayanıklılık özelliklerinin ve özelliklerinin kullanılabilirliğini belirleme.Determine the availability of resiliency features and capabilities for each location. Bir konum gerekli özellikleri sağlamıyorsa, bu konumu dayanıklılık özelliklerini sağlayan merkezi bir hizmetle tümleştirmeyi düşünün.If a location doesn't provide the required capabilities, consider integrating that location into a centralized service that provides the resiliency features.

Altzamanları belirleme.Determine downtimes. Uygulamanın tamamı ve uygulama bileşenleri gibi bakım nedeniyle beklenen kapalı kalma süresini belirleme.Determine the expected downtime due to maintenance for the app as a whole and as app components.

Belge sorunlarını giderme yordamları.Document troubleshooting procedures. Kaynakları ve uygulama bileşenlerini yeniden dağıtmaya ilişkin sorun giderme yordamlarını tanımlayın.Define troubleshooting procedures for redeploying resources and app components.

YönetilebilirlikManageability

Karma uygulamalarınızı yönetmenin önemli noktaları, mimarinizi tasarlarken kritik öneme sahiptir.The considerations for how you manage your hybrid apps are critical in designing your architecture. İyi yönetilen bir karma uygulama, ortak bir geliştirme ardışık düzeninde tutarlı uygulama kodu tümleştirmesini sağlayan kod olarak bir altyapı sağlar.A well-managed hybrid app provides an infrastructure as code that enables the integration of consistent app code in a common development pipeline. Altyapıda yapılan değişikliklerin tutarlı sistem genelinde ve bireysel testlerini uygulayarak, değişiklikler testleri geçirirseniz, bunlar kaynak kodla birleştirilmelerine izin vererek, tümleşik bir dağıtım sağlayabilirsiniz.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.

Bu pillere ilişkin temel tartışmada, mimari üstün olan beş işlem için bkz. DevOps .For the core discussion of this pillar, see DevOps in the five pillars of architecture excellence.

Yönetilebilirlik denetim listesiManageability checklist

İzlemeyi uygulayın.Implement monitoring. Bulut genelinde yayılan, sistem durumunun ve performansının toplu bir görünümünü sağlamak için bir merkezi izleme sistemi kullanın.Use a centralized monitoring system of app components spread across clouds to provide an aggregated view of their health and performance. Bu sistem, hem uygulama bileşenlerini hem de ilgili platform yeteneklerini izlemeyi içerir.This system includes monitoring both the app components and related platform capabilities.

Uygulamanın izlenmesini gerektiren parçalarını saptayın.Determine the parts of the app that require monitoring.

Koordinat ilkeleri.Coordinate policies. Bir karma uygulamanın yaydığı her konum, izin verilen kaynak türlerini, adlandırma kurallarını, etiketleri ve diğer ölçütleri kapsayan kendi ilkesine sahip olabilir.Each location that a hybrid app spans can have its own policy that covers allowed resource types, naming conventions, tags, and other criteria.

Rolleri tanımlayın ve kullanın.Define and use roles. Bir veritabanı yöneticisi olarak, uygulama kaynaklarına erişmesi gereken farklı kişiler (bir uygulama sahibi, bir veritabanı yöneticisi ve son kullanıcı gibi) için gerekli izinleri belirlemeniz gerekir.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. Bu izinlerin kaynaklar üzerinde ve uygulama içinde yapılandırılması gerekir.These permissions need to be configured on the resources and inside the app. Rol tabanlı erişim denetimi (RBAC) sistemi, uygulama kaynakları üzerinde bu izinleri ayarlamanıza olanak sağlar.A role-based access control (RBAC) system allows you to set these permissions on the app resources. Bu erişim hakları, tüm kaynaklar tek bir bulutta dağıtıldığında, ancak kaynaklar bulutlara yayıldığında daha fazla dikkat gerektirse de zorlayıcı bir işlem gerektirir.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. Bir bulutta ayarlanan kaynaklarla ilgili izinler, başka bir bulutta ayarlanan kaynaklar için uygulanmaz.Permissions on resources set in one cloud don't apply to resources set in another cloud.

CI/CD işlem hatlarını kullanın.Use CI/CD pipelines. Sürekli tümleştirme ve sürekli geliştirme (CI/CD) işlem hattı, bulutlar arasında yayılan uygulamaları yazma ve dağıtmaya yönelik tutarlı bir işlem sağlayabilir ve altyapı ve uygulamalarına yönelik kalite güvencesi sağlar.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. Bu işlem hattı, altyapı ve uygulamanın bir bulutta test yapılmasını ve başka bir buluta dağıtılmasını sağlar.This pipeline enables the infrastructure and app to be tested on one cloud and deployed on another cloud. İşlem hattı, karma uygulamanızın belirli bileşenlerini tek bir buluta ve diğer bileşenlere, karma uygulama dağıtımı için temel oluşturacak şekilde dağıtmanıza olanak tanır.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. Bir CI/CD sistemi, yükleme sırasında, veritabanı için bir bağlantı dizesi gerektiren Web uygulaması gibi bağımlılıkları işlemek için kritik öneme sahiptir.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.

Yaşam döngüsünü yönetin.Manage the life cycle. Bir karma uygulamanın kaynakları konumlara yayılabildiğinden, her bir konumun yaşam döngüsü yönetim yeteneğinin tek bir yaşam döngüsü yönetim biriminde toplanması gerekir.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. Nasıl oluşturulduğunu, güncelleştirileceğini ve silindiğini göz önünde bulundurun.Consider how they're created, updated, and deleted.

Sorun giderme stratejilerini inceleyin.Examine troubleshooting strategies. Karma uygulama sorunlarını giderme, tek bir bulutta çalışan aynı uygulamadan daha fazla uygulama bileşeni içerir.Troubleshooting a hybrid app involves more app components than the same app that's running in a single cloud. Bulutlar arasındaki bağlantının yanı sıra, uygulama bir yerine iki platformda çalışmaktadır.Besides the connectivity between the clouds, the app is running on two platforms instead of one. Karma uygulamalardaki sorunları gidermeye yönelik önemli bir görev, uygulama bileşenlerinin toplu sistem durumunu ve performans izlemesini incelemektir.An important task in troubleshooting hybrid apps is to examine the aggregated health and performance monitoring of the app components.

GüvenlikSecurity

Güvenlik, herhangi bir bulut uygulaması için başlıca önemli noktalara biridir ve karma bulut uygulamaları için daha da kritik hale gelir.Security is one of the primary considerations for any cloud app and it becomes even more critical for hybrid cloud apps.

Bu pilde temel tartışmak için, mimaride üstün olan beş paragraf üzerinde güvenlik bölümüne bakın.For the core discussion of this pillar, see Security in the five pillars of architecture excellence.

Güvenlik denetim listesiSecurity checklist

İhlalin olduğunu varsayın.Assume breach. Uygulamanın bir bölümü tehlikeye atılırsa, yalnızca aynı konumda değil, ancak konumlar arasında değil, ihlalin yayılmasını en aza indirmek için çözüm olduğundan emin olun.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.

İzin verilen ağ erişimini izleyin.Monitor allowed network access. Uygulamanın yalnızca belirli bir alt ağdan erişmesi gibi ağ erişim ilkelerini belirleme ve yalnızca uygulamanın düzgün çalışması için gereken bileşenler arasındaki en düşük bağlantı noktalarına ve protokollere izin verme.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.

Güçlü kimlik doğrulaması yapın.Employ robust authentication. Güçlü bir kimlik doğrulama düzeni, uygulamanızın güvenliği için önemlidir.A robust authentication scheme is critical for the security of your app. Çoklu oturum açma özellikleri sağlayan ve şu şemalarından birini veya birkaçını kullanan bir federal kimlik sağlayıcısı kullanmayı düşünün: Kullanıcı adı ve parola oturum açma, ortak ve özel anahtarlar, iki öğeli veya Multi-Factor Authentication ve güvenilen güvenlik grupları.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. Sertifika türlerine ve gereksinimlerine ek olarak, uygulama kimlik doğrulaması için hassas verileri ve diğer gizli dizileri depolamak için uygun kaynakları belirleme.Determine the appropriate resources to store sensitive data and other secrets for app authentication in addition to certificate types and their requirements.

Şifrelemeyi kullanın.Use encryption. Uygulamanın, veri depolama veya istemci iletişimi ve erişim gibi hangi alanlarda şifrelemeyi kullanacağınızı belirler.Identify which areas of the app use encryption, such as for data storage or client communication and access.

Güvenli kanallar kullanın.Use secure channels. Bulutlar genelinde güvenli bir kanal, güvenlik ve kimlik doğrulaması denetimleri, gerçek zamanlı koruma, karantina ve bulutlar arasında diğer hizmetler sağlamak için önemlidir.A secure channel across the clouds is critical for providing security and authentication checks, real-time protection, quarantine, and other services across clouds.

Rolleri tanımlayın ve kullanın.Define and use roles. Bulut genelinde kaynak yapılandırmalarına ve tek kimlik erişimine yönelik rolleri uygulayın.Implement roles for resource configurations and single-identity access across clouds. Uygulama ve platform kaynakları için rol tabanlı erişim denetimi (RBAC) gereksinimlerini saptayın.Determine the role-based access control (RBAC) requirements for the app and its platform resources.

Sisteminizi denetleyin.Audit your system. Sistem izleme, hem uygulama bileşenlerinden hem de ilgili bulut platformu işlemlerinden verileri günlüğe kaydedebilir ve toplayabilir.System monitoring can log and aggregate data from both the app components and the related cloud platform operations.

ÖzetSummary

Bu makalede, karma uygulamalarınızı yazma ve tasarlama sırasında göz önünde bulundurmanız gereken öğelerin bir denetim listesi sunulmaktadır.This article provides a checklist of items that are important to consider during the authoring and designing of your hybrid apps. Uygulamanızı dağıtmadan önce bu şekilde bu gibi bir şekilde gözden geçirmek, üretim kesintileri ' nda bu sorulara çalışmanızı ve tasarımınızı yeniden ziyaret etmeniz gerektiğini önler.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.

Bu, önceden zaman alan bir görev gibi görünebilir, ancak uygulamanızı bu şekilde tasarlar temelinde tasarlarsanız yatırım getirisi ile kolayca erişebilirsiniz.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.

Sonraki adımlarNext steps

Daha fazla bilgi için aşağıdaki kaynaklara bakın:For more information, see the following resources: