Azure Service Fabric için bir Azure Cloud Services uygulamasını geçirmeMigrate an Azure Cloud Services application to Azure Service Fabric

GitHub Örnek kodGitHub Sample code

Bu makalede bir uygulamayı Azure Cloud Services'tan Azure Service Fabric'e geçirme açıklanmaktadır.This article describes migrating an application from Azure Cloud Services to Azure Service Fabric. Bu mimari kararları odaklanır ve önerilen uygulamalar.It focuses on architectural decisions and recommended practices.

Bu proje için Surveys adlı bir Cloud Services uygulaması ile çalışmaya ve Service Fabric'e verilir.For this project, we started with a Cloud Services application called Surveys and ported it to Service Fabric. Hedef uygulama birkaç değişiklik ile mümkün olduğunca geçirmek oldu.The goal was to migrate the application with as few changes as possible. Makalenin sonraki bölümlerinde uygulamayı Service Fabric için en iyi duruma getirme göstereceğiz.Later in the article, we show how to optimize the application for Service Fabric.

Bu makalede okumadan önce Service Fabric ile ilgili temel bilgileri öğrenmek yararlı olacaktır.Before reading this article, it will be useful to understand the basics of Service Fabric. Bkz: Azure Service Fabric'e genel bakışSee Overview of Azure Service Fabric

Surveys uygulaması hakkındaAbout the Surveys application

Kurgusal bir şirkette Tailspin oluşturan müşteriler anketler oluşturmasını sağlayan Surveys uygulama adlı bir uygulama adı.A fictitious company named Tailspin created an application called the Surveys app that allows customers to create surveys. Uygulama için bir müşteri kaydolursa sonra kullanıcılar oluşturabilir ve anketler yayımlama ve analiz sonuçlarını topla.After a customer signs up for the application, users can create and publish surveys, and collect the results for analysis. Uygulama, kişilerin bir anket nerede sürebilir genel bir Web sitesi içerir.The application includes a public website where people can take a survey. Özgün Tailspin senaryosu hakkında daha fazla bilgiyi burada.Read more about the original Tailspin scenario here.

Artık Tailspin Surveys uygulaması bir mikro hizmet mimarisi için taşımak Azure'da çalışan Service Fabric kullanarak istiyor.Now Tailspin wants to move the Surveys application to a microservices architecture, using Service Fabric running on Azure. Uygulama zaten bir Cloud Services uygulaması olarak dağıtıldığından, birden çok aşamalı bir yaklaşım Tailspin alır:Because the application is already deployed as a Cloud Services application, Tailspin adopts a multi-phase approach:

  1. Service Fabric, bulut hizmetlerine bağlantı noktası uygulama değişiklikleri en aza indirir.Port the cloud services to Service Fabric, while minimizing changes to the application.
  2. Uygulama için Service Fabric, mikro hizmet mimarisi için taşıyarak iyileştirin.Optimize the application for Service Fabric, by moving to a microservices architecture.

Bir gerçek projesinde her iki aşama çakışır olasıdır.In a real-world project, it's likely that both stages would overlap. Service Fabric için taşıma sırasında ayrıca uygulama mikro hizmetler halinde yeniden oluşturma başlar.While porting to Service Fabric, you would also start to rearchitect the application into micro-services. Daha sonra belki de küçük hizmetler parçalı Hizmetleri bölme mimarisi daha da daraltmak.Later you might refine the architecture further, perhaps dividing coarse-grained services into smaller services.

Uygulama kodu kullanılabilir GitHub.The application code is available on GitHub. Bu depo, hem Cloud Services uygulamasına hem de Service Fabric sürümü içerir.This repo contains both the Cloud Services application and the Service Fabric version.

Service Fabric neden?Why Service Fabric?

Service Fabric, dağıtılmış bir sistemde gereken özelliklerin çoğunu dahil olmak üzere Service Fabric yerleşik olduğundan bu proje için uygun verilmiştir:Service Fabric is a good fit for this project, because most of the features needed in a distributed system are built into Service Fabric, including:

  • Küme yönetimi.Cluster management. Service Fabric düğüm yük devretme, sistem durumu izleme ve diğer küme yönetimi işlevleri otomatik olarak işler.Service Fabric automatically handles node failover, health monitoring, and other cluster management functions.
  • Yatay ölçeklendirme.Horizontal scaling. Bir Service Fabric kümesine düğüm ekleme, yeni düğümler arasında Hizmetleri dağıtılır olarak uygulama otomatik olarak, ölçeklenir.When you add nodes to a Service Fabric cluster, the application automatically scales, as services are distributed across the new nodes.
  • Hizmet bulma.Service discovery. Service Fabric adlandırılmış bir hizmet için uç noktayı çözümleyebilen bir bulma hizmeti sağlar.Service Fabric provides a discovery service that can resolve the endpoint for a named service.
  • Durum bilgisiz ve durum bilgisi olan hizmetler.Stateless and stateful services. Durum bilgisi olan hizmetler kullanım güvenilir koleksiyonlar, bir önbellek ya da kuyruğa yerini alabilir ve bölümlenebilir.Stateful services use reliable collections, which can take the place of a cache or queue, and can be partitioned.
  • Uygulama Yaşam Döngüsü Yönetimi.Application lifecycle management. Hizmetler bağımsız olarak ve uygulama kapalı kalma süresi olmadan yükseltilebilir.Services can be upgraded independently and without application downtime.
  • Hizmet, orchestration makine kümesi arasında.Service orchestration across a cluster of machines.
  • Yüksek yoğunluklu kaynak tüketimi iyileştirmek için.Higher density for optimizing resource consumption. Tek bir düğüm, birden çok hizmeti barındırabilir.A single node can host multiple services.

Service Fabric, Azure SQL veritabanı, Cosmos DB, Azure Event Hubs ve diğerleri dahil olmak üzere çeşitli Microsoft Hizmetleri tarafından dağıtılan bulut uygulamaları oluşturmaya yönelik bir platforma yapmadan kullanılır.Service Fabric is used by various Microsoft services, including Azure SQL Database, Cosmos DB, Azure Event Hubs, and others, making it a proven platform for building distributed cloud applications.

Service Fabric ile bulut hizmetlerini karşılaştırmaComparing Cloud Services with Service Fabric

Aşağıdaki tabloda bazı Cloud Services ve Service Fabric uygulamaları arasındaki önemli farklar özetlenmektedir.The following table summarizes some of the important differences between Cloud Services and Service Fabric applications. Daha ayrıntılı bir tartışma için bkz. geçirmeden önce Cloud Services ve Service Fabric arasındaki farklar hakkında bilgi edinin uygulamaları.For a more in-depth discussion, see Learn about the differences between Cloud Services and Service Fabric before migrating applications.

AlanArea Cloud ServicesCloud Services Service FabricService Fabric
Uygulama yapısıApplication composition RollerRoles HizmetlerServices
YoğunlukDensity VM başına bir rol örneğiOne role instance per VM Tek bir düğüm içindeki birden çok hizmetMultiple services in a single node
Minimum düğüm sayısıMinimum number of nodes Rol başına 22 per role Üretim dağıtımları için Küme başına 55 per cluster, for production deployments
Durum yönetimiState management Durum bilgisi olmayanStateless Durum bilgisi olmayan ya da durum bilgisi olan *Stateless or stateful*
BarındırmaHosting AzureAzure Bulut veya şirket içiCloud or on-premises
Web BarındırmaWeb hosting IIS**IIS** Kendi kendine barındırmaSelf-hosting
Dağıtım modeliDeployment model Klasik dağıtım modeliClassic deployment model Resource ManagerResource Manager
PaketlemePackaging Bulut hizmeti paketi dosyaları (.cspkg)Cloud service package files (.cspkg) Uygulama ve hizmet paketleriApplication and service packages
Uygulama güncelleştirmesiApplication update VIP takas veya çalışırken güncelleştirmeVIP swap or rolling update Sıralı güncelleştirmeRolling update
Otomatik ölçeklendirmeAutoscaling Yerleşik hizmetBuilt-in service Otomatik ölçek genişletme için sanal makine ölçek kümeleriVirtual machine scale sets for auto scale out
Hata AyıklamaDebugging Yerel öykünücüLocal emulator Yerel kümeLocal cluster

* Durum bilgisi olan hizmetler kullanım [güvenilir koleksiyonlar] sf-reliable-collections tüm okuma yerel kümedeki düğümleri olacak şekilde yinelemeler durumunu depolamak için.* Stateful services use reliable collections to store state across replicas, so that all reads are local to the nodes in the cluster. Yazma güvenilirlik düğümleri arasında çoğaltılır.Writes are replicated across nodes for reliability. Durum bilgisi olmayan hizmetler, dış durumu, bir veritabanı veya başka bir dış depolama kullanıyor olabilir.Stateless services can have external state, using a database or other external storage.

** Çalışan rolleri de kendi kendine OWIN kullanarak ASP.NET Web API barındırabilir.** Worker roles can also self-host ASP.NET Web API using OWIN.

Surveys uygulamasını Cloud ServicesThe Surveys application on Cloud Services

Aşağıdaki diyagramda, Cloud Services üzerinde çalışan Surveys uygulaması mimarisi gösterilmektedir.The following diagram shows the architecture of the Surveys application running on Cloud Services.

Bulut hizmetleri üzerinde surveys uygulaması

Uygulama, iki web rolü ve çalışan rolü oluşur.The application consists of two web roles and a worker role.

  • Tailspin.Web web rolü oluşturmak ve anketler yönetmek için Tailspin müşteriler kullanan ASP.NET Web sitesi barındırır.The Tailspin.Web web role hosts an ASP.NET website that Tailspin customers use to create and manage surveys. Müşteriler bu Web uygulaması için kaydolmak ve Aboneliklerini yönetmek için de kullanabilirsiniz.Customers also use this website to sign up for the application and manage their subscriptions. Son olarak, Tailspin Yöneticiler, kiracılar listesini görmek ve Kiracı verilerini yönetmek için kullanabilirsiniz.Finally, Tailspin administrators can use it to see the list of tenants and manage tenant data.

  • Tailspin.Web.Survey.Public web rolünü barındıran burada kişiler gerçekleştirebileceğiniz Tailspin müşteriler yayımlama anketler ASP.NET Web sitesi.The Tailspin.Web.Survey.Public web role hosts an ASP.NET website where people can take the surveys that Tailspin customers publish.

  • Tailspin.Workers.Survey çalışan rolü arka plan işleme.The Tailspin.Workers.Survey worker role does background processing. Web rolleri iş öğelerini bir kuyruk yerleştirin ve çalışan rolü öğeleri işler.The web roles put work items onto a queue, and the worker role processes the items. İki arka plan görevleri tanımlanır: Azure SQL veritabanı ve hesaplama istatistikleri anket yanıtları için Anket verme yanıtlar.Two background tasks are defined: Exporting survey answers to Azure SQL Database, and calculating statistics for survey answers.

Bulut hizmetlerine ek olarak, bazı diğer Azure Hizmetleri Surveys uygulamasını kullanır:In addition to Cloud Services, the Surveys application uses some other Azure services:

  • Azure depolama deposu anketler, anket yanıtları ve Kiracı bilgileri.Azure Storage to store surveys, surveys answers, and tenant information.

  • Azure Redis Cache bazı daha hızlı okuma erişimi için Azure Depolama'da depolanan veriler önbelleğe almak için.Azure Redis Cache to cache some of the data that is stored in Azure Storage, for faster read access.

  • Azure Active Directory (Müşteriler ve Tailspin Yöneticiler kimliğini doğrulamak için Azure AD).Azure Active Directory (Azure AD) to authenticate customers and Tailspin administrators.

  • Azure SQL veritabanı analiz için Anket yanıtları depolamak için.Azure SQL Database to store the survey answers for analysis.

Service Fabric'e taşımaMoving to Service Fabric

Belirtildiği gibi bu aşamanın hedefi, Service Fabric ile en düşük gerekli değişiklikleri geçirirken.As mentioned, the goal of this phase was migrating to Service Fabric with the minimum necessary changes. Bu amaçla, orijinal uygulamadaki her bir bulut hizmeti rolü karşılık gelen durum bilgisi olmayan hizmetler oluşturduk:To that end, we created stateless services corresponding to each cloud service role in the original application:

Service fabric'te surveys uygulaması

Bilerek, bu mimari özgün uygulama benzerdir.Intentionally, this architecture is similar to the original application. Ancak, bazı önemli farklar diyagram gizler.However, the diagram hides some important differences. Bu makalenin kalanında Biz bu farklılıkları hakkında bilgi edineceksiniz.In the rest of this article, we'll explore those differences.

Bulut Hizmeti rol hizmetlerini dönüştürmeConverting the cloud service roles to services

İlk geçiş için Tailspin bölümündeki adımları takip Kılavuzu, Web ve çalışan rolleri için Service Fabric durum bilgisi olmayan hizmetler dönüştürmenin.For the initial migration, Tailspin followed the steps outlined in Guide to converting Web and Worker Roles to Service Fabric stateless services.

Web ön uç hizmetleri oluşturmaCreating the web front-end services

Service Fabric'te, bir hizmet Service Fabric çalışma zamanı tarafından oluşturulan bir işlem içinde çalışır.In Service Fabric, a service runs inside a process created by the Service Fabric runtime. Bir web ön ucu için bu hizmeti IIS içinde çalışmıyor anlamına gelir.For a web front end, that means the service is not running inside IIS. Bunun yerine, hizmet, bir web sunucusu ana bilgisayar gerekir.Instead, the service must host a web server. Bu yaklaşım adlı kendi kendine barındırma, işlemi içinde çalışan kodu web sunucusu ana bilgisayarı görev yapar.This approach is called self-hosting, because the code that runs inside the process acts as the web server host.

ASP.NET MVC özgün Surveys uygulamasını kullanır.The original Surveys application uses ASP.NET MVC. Service Fabric'te ASP.NET MVC otomatik barındırılamaz olduğundan, aşağıdaki geçiş seçenekleri Tailspin kabul:Because ASP.NET MVC cannot be self-hosted in Service Fabric, Tailspin considered the following migration options:

  • Şirket içinde barındırılan ASP.NET Core web rolleri bağlantı noktası.Port the web roles to ASP.NET Core, which can be self-hosted.
  • Web API ASP.NET Web API kullanılarak uygulanan çağıran bir tek sayfalı uygulamaya (SPA) web sitesi dönüştürün.Convert the web site into a single-page application (SPA) that calls a web API implemented using ASP.NET Web API. Bu web ön ucu tam yeniden yapmamızı gerektiriyordu.This would have required a complete redesign of the web front end.
  • Mevcut bir ASP.NET MVC kod saklamak ve bir Windows Server kapsayıcı IIS'de Service Fabric'e dağıtma.Keep the existing ASP.NET MVC code and deploy IIS in a Windows Server container to Service Fabric. Bu yaklaşım, çok az kayıpla veya hiç kod değişikliği gerekir.This approach would require little or no code change.

ASP.NET Core'a taşıma ilk seçenek, Tailspin içinde ASP.NET Core en son özelliklerden yararlanmak izin verilir.The first option, porting to ASP.NET Core, allowed Tailspin to take advantage of the latest features in ASP.NET Core. Tailspin dönüştürme yapmak için açıklanan adımları uyguladığınız geçirme gelen ASP.NET MVC için ASP.NET Core MVC.To do the conversion, Tailspin followed the steps described in Migrating From ASP.NET MVC to ASP.NET Core MVC.

Not

ASP.NET Core ile Kestrel kullanırken, güvenlik nedenleriyle Internet'ten trafik işlemek için Kestrel önündeki bir ters proxy yerleştirmeniz gerekir.When using ASP.NET Core with Kestrel, you should place a reverse proxy in front of Kestrel to handle traffic from the Internet, for security reasons. Daha fazla bilgi için Kestrel web sunucusu uygulaması ASP.NET core'da.For more information, see Kestrel web server implementation in ASP.NET Core. Bölüm uygulamasını dağıtma önerilen Azure dağıtım açıklar.The section Deploying the application describes a recommended Azure deployment.

HTTP dinleyicileriHTTP listeners

Bulut Hizmetleri'nde web veya çalışan rolü içinde bildirerek bir HTTP uç noktası sunan Hizmet tanım dosyası.In Cloud Services, a web or worker role exposes an HTTP endpoint by declaring it in the service definition file. Bir web rolü en az bir uç noktası olmalıdır.A web role must have at least one endpoint.

<!-- Cloud service endpoint -->
<Endpoints>
    <InputEndpoint name="HttpIn" protocol="http" port="80" />
</Endpoints>

Benzer şekilde, Service Fabric uç noktaları, bir hizmet bildiriminde bildirilir:Similarly, Service Fabric endpoints are declared in a service manifest:

<!-- Service Fabric endpoint -->
<Endpoints>
    <Endpoint Protocol="http" Name="ServiceEndpoint" Type="Input" Port="8002" />
</Endpoints>

Bir bulut hizmeti rolü, Service Fabric Hizmetleri aynı düğümde birlikte olabilir.Unlike a cloud service role, Service Fabric services can be colocated within the same node. Bu nedenle, her hizmetin farklı bir bağlantı noktasından dinleme gerekir.Therefore, every service must listen on a distinct port. Bu makalede hizmet için doğru bağlantı noktasına istemci isteklerinde bağlantı noktası 80 veya 443 numaralı bağlantı noktasını nasıl yönlendirileceğini açıklayacağız.Later in this article, we'll discuss how client requests on port 80 or port 443 get routed to the correct port for the service.

Bir hizmet dinleyicileri her uç nokta için açıkça oluşturmalısınız.A service must explicitly create listeners for each endpoint. Service Fabric hakkında iletişim yığınları bağımsızdır nedenidir.The reason is that Service Fabric is agnostic about communication stacks. Daha fazla bilgi için ASP.NET Core kullanarak uygulamanız için bir web hizmeti ön ucu oluşturmanızı.For more information, see Build a web service front end for your application using ASP.NET Core.

Paketleme ve yapılandırmaPackaging and configuration

Bir bulut hizmeti, aşağıdaki yapılandırma ve paket dosyaları içerir:A cloud service contains the following configuration and package files:

DosyaFile AçıklamaDescription
Hizmet tanımı (.csdef)Service definition (.csdef) Bulut hizmeti yapılandırmak için Azure tarafından kullanılan ayarlar.Settings used by Azure to configure the cloud service. Rolleri, uç noktaları, başlangıç görevleri ve yapılandırma ayarlarını adlarını tanımlar.Defines the roles, endpoints, startup tasks, and the names of configuration settings.
Hizmet yapılandırma (.cscfg)Service configuration (.cscfg) Rol örneği sayısı ve uç nokta bağlantı noktası numaralarını yapılandırma ayarlarının değerleri dahil olmak üzere, dağıtım başına ayarlar.Per-deployment settings, including the number of role instances, endpoint port numbers, and the values of configuration settings.
Hizmet Paketi (.cspkg)Service package (.cspkg) Uygulama kodu ve yapılandırmaları ve Hizmet tanım dosyası içerir.Contains the application code and configurations, and the service definition file.

Uygulamanın tamamı için bir .csdef dosyası yoktur.There is one .csdef file for the entire application. Birden çok yerel gibi farklı ortamlarda .cscfg dosyaları, test veya üretim olabilir.You can have multiple .cscfg files for different environments, such as local, test, or production. Hizmet çalışırken .cscfg ancak .csdef güncelleştirebilirsiniz.When the service is running, you can update the .cscfg but not the .csdef. Daha fazla bilgi için bulut hizmeti modeli nedir ve nasıl miyim paketi bunu?For more information, see What is the Cloud Service model and how do I package it?

Service Fabric sahip bir hizmet arasında benzer bir bölme tanımı ve hizmet ayarları, ancak daha ayrıntılı bir yapıdır.Service Fabric has a similar division between a service definition and service settings, but the structure is more granular. Service Fabric'in yapılandırma modeli anlamak için Service Fabric uygulaması nasıl paketlenmiştir anlamanıza yardımcı olur.To understand Service Fabric's configuration model, it helps to understand how a Service Fabric application is packaged. Yapısı şu şekildedir:Here is the structure:

Application package
  - Service packages
    - Code package
    - Configuration package
    - Data package (optional)

Ne dağıtacağınız uygulama paketidir.The application package is what you deploy. Bu, bir veya daha fazla hizmet paketleri içerir.It contains one or more service packages. Hizmet paketi, kod, yapılandırma ve veri paketleri içerir.A service package contains code, configuration, and data packages. Kod paketi Hizmetleri için ikili dosyaları, ve yapılandırma paketi yapılandırma ayarlarını içerir.The code package contains the binaries for the services, and the configuration package contains configuration settings. Bu model, tüm uygulamayı yeniden dağıtmaya gerek kalmadan tek tek Hizmetleri yükseltme olanak tanır.This model allows you to upgrade individual services without redeploying the entire application. Ayrıca, kodu yeniden dağıtabilir veya hizmeti yeniden başlatmayı olmadan yalnızca yapılandırma ayarlarını güncelleştirmenizi sağlar.It also lets you update just the configuration settings, without redeploying the code or restarting the service.

Bir Service Fabric uygulaması, aşağıdaki yapılandırma dosyalarını içerir:A Service Fabric application contains the following configuration files:

DosyaFile LocationLocation AçıklamaDescription
ApplicationManifest.xmlApplicationManifest.xml Uygulama paketiApplication package Uygulama oluşturma hizmetleri tanımlar.Defines the services that compose the application.
ServiceManifest.xmlServiceManifest.xml Hizmet paketiService package Bir veya daha fazla hizmetlerini açıklar.Describes one or more services.
Settings.xmlSettings.xml Yapılandırma paketiConfiguration package Hizmet paketinde tanımlanan hizmetler için yapılandırma ayarlarını içerir.Contains configuration settings for the services defined in the service package.

Daha fazla bilgi için bir Service Fabric uygulamasında Model.For more information, see Model an application in Service Fabric.

Birden çok ortam için farklı yapılandırma ayarları desteklemek için açıklanan aşağıdaki yaklaşımı kullanın. birden çok ortam için uygulama parametrelerini yönetme:To support different configuration settings for multiple environments, use the following approach, described in Manage application parameters for multiple environments:

  1. Hizmet Setting.xml dosyasına kopyalayın Dosyasında ayarı tanımlayın.Define the setting in the Setting.xml file for the service.
  2. Uygulama bildiriminde geçersiz kılma ayarı için tanımlayın.In the application manifest, define an override for the setting.
  3. Ortama özgü ayarları uygulama parametre dosyaları yerleştirin.Put environment-specific settings into application parameter files.

Uygulamayı dağıtmaDeploying the application

Service Fabric, Azure Cloud Services yönetilen bir hizmettir ancak bir çalışma zamanıdır.Whereas Azure Cloud Services is a managed service, Service Fabric is a runtime. Şirket içi ve Azure da dahil olmak üzere birçok ortamda, Service Fabric kümeleri oluşturabilirsiniz.You can create Service Fabric clusters in many environments, including Azure and on premises. Aşağıdaki diyagramda, Azure için önerilen dağıtım gösterilmektedir:The following diagram shows a recommended deployment for Azure:

Service Fabric dağıtımı

Service Fabric kümesine dağıtılmış bir sanal makine ölçek kümesi.The Service Fabric cluster is deployed to a virtual machine scale set. Ölçek kümeleri, özdeş Vm'lerden oluşan bir kümesini dağıtıp yönetmek için kullanılan bir Azure işlem kaynağıdır.Scale sets are an Azure Compute resource that can be used to deploy and manage a set of identical VMs.

Belirtildiği gibi güvenlik nedenleriyle ters Ara sunucu arkasındaki Kestrel web sunucusu yerleştirmeniz önerilir.As mentioned, it's recommended to place the Kestrel web server behind a reverse proxy for security reasons. Bu diyagramda gösterilmiştir Azure Application Gateway, çeşitli katman 7 Yük Dengeleme özellikleri sağlayan bir Azure hizmet.This diagram shows Azure Application Gateway, which is an Azure service that offers various layer 7 load-balancing capabilities. İstemci bağlantısını sonlandıran ve istekleri arka uç noktalarına ileten ters proxy hizmeti olarak çalışır.It acts as a reverse-proxy service, terminating the client connection and forwarding requests to back-end endpoints. Ngınx gibi farklı bir ters proxy yer alan bir çözüm kullanabilirsiniz.You might use a different reverse proxy solution, such as nginx.

Katman 7 yönlendirmeyiLayer 7 routing

İçinde özgün Surveys uygulaması, bağlantı noktası 80 üzerinde bir web rolü dinledik ve bağlantı noktası 443 üzerinde bir web rolü yaptık.In the original Surveys application, one web role listened on port 80, and the other web role listened on port 443.

Genel sitePublic site Anket yönetim sitesiSurvey management site
http://tailspin.cloudapp.net https://tailspin.cloudapp.net

Başka bir seçenek, 7. Katman yönlendirme kullanmaktır.Another option is to use layer 7 routing. Bu yaklaşımda, farklı bir URL yolu arka uçta farklı bağlantı noktası numaraları için yönlendirilir.In this approach, different URL paths get routed to different port numbers on the back end. Örneğin, genel site ile başlayan URL yolları kullanabilirsiniz /public/.For example, the public site might use URL paths starting with /public/.

7. Katman yönlendirme için Seçenekler şunlardır:Options for layer 7 routing include:

  • Uygulama ağ geçidi kullanın.Use Application Gateway.
  • Ngınx gibi bir ağ sanal Gereci (NVA) kullanın.Use a network virtual appliance (NVA), such as nginx.
  • Özel bir ağ geçidi, durum bilgisi olmayan hizmet olarak yazın.Write a custom gateway as a stateless service.

Genel HTTP uç noktaları ile iki veya daha fazla hizmet vardır, ancak bir tek etki alanı adı ile bir site olarak görünmesini istiyorsanız bu yaklaşımı göz önünde bulundurun.Consider this approach if you have two or more services with public HTTP endpoints, but want them to appear as one site with a single domain name.

Bir yaklaşım bizim yoksa öneri dış istemciler, Service Fabric ile istekleri göndermesine izin ters proxy.One approach that we don't recommend is allowing external clients to send requests through the Service Fabric reverse proxy. Bu mümkün olsa da, hizmetten hizmete iletişimi için ters proxy yöneliktir.Although this is possible, the reverse proxy is intended for service-to-service communication. Dış istemcilere açmadan sunan herhangi bir HTTP uç noktası olan bir kümede çalışan bir hizmet.Opening it to external clients exposes any service running in the cluster that has an HTTP endpoint.

Düğüm türleri ve yerleştirme kısıtlamalarıNode types and placement constraints

Yukarıda gösterilen Dağıtımdaki tüm düğümlerde tüm hizmetleri çalıştırın.In the deployment shown above, all the services run on all the nodes. Ancak, belirli hizmetleri yalnızca küme içindeki belirli düğümler çalıştırın böylece hizmetleri de gruplandırabilirsiniz.However, you can also group services, so that certain services run only on particular nodes within the cluster. Bu yaklaşım kullanma nedenleri şunlardır:Reasons to use this approach include:

  • Bazı hizmetler farklı VM türleri üzerinde çalıştırın.Run some services on different VM types. Örneğin, bazı hizmetler, yoğun işlem gücü kullanımlı veya GPU gerektirir.For example, some services might be compute-intensive or require GPUs. Service Fabric kümenizdeki VM türlerinin bir karışımını olabilir.You can have a mix of VM types in your Service Fabric cluster.
  • Ön uç Hizmetleri arka uç Hizmetleri, güvenlik nedenleriyle yalıtın.Isolate front-end services from back-end services, for security reasons. Tüm ön uç Hizmetleri, bir dizi düğümü üzerinde çalışacak ve arka uç Hizmetleri farklı düğümlere aynı kümede çalıştırılır.All the front-end services will run on one set of nodes, and the back-end services will run on different nodes in the same cluster.
  • Farklı ölçek gereksinimleri.Different scale requirements. Bazı hizmetler, diğer hizmetler'den daha fazla düğüm üzerinde çalıştırmanız gerekebilir.Some services might need to run on more nodes than other services. Örneğin, ön uç düğümleri ve arka uç düğümleri tanımlarsanız, her bir kümesi bağımsız olarak ölçeklendirilebilir.For example, if you define front-end nodes and back-end nodes, each set can be scaled independently.

Ön uç ve arka uç Hizmetleri ayıran bir küme Aşağıdaki diyagramda gösterilmiştir:The following diagram shows a cluster that separates front-end and back-end services:

Düğüm yerleştirme

Bu yaklaşımı uygulamak için:To implement this approach:

  1. Kümeyi oluşturduğunuzda, iki veya daha fazla düğüm türleri tanımlar.When you create the cluster, define two or more node types.
  2. Her hizmet için kullanmak [yerleştirme kısıtlamaları] sf-placement-constraints bir düğüm türü için hizmet atamak için.For each service, use placement constraints to assign the service to a node type.

Azure'a dağıtırken, her düğüm türü ayrı bir sanal makine ölçek kümesine dağıtılır.When you deploy to Azure, each node type is deployed to a separate virtual machine scale set. Service Fabric kümesine tüm düğüm türleri yayılır.The Service Fabric cluster spans all node types. Daha fazla bilgi için Service Fabric düğüm türleri ve sanal makine ölçek kümeleri arasındaki ilişkiyi.For more information, see The relationship between Service Fabric node types and Virtual Machine Scale Sets.

Bir küme düğümünde birden fazla varsa, bir düğüm türü olarak tanımlanan birincil düğüm türü.If a cluster has multiple node types, one node type is designated as the primary node type. Birincil düğüm türünde gibi küme yönetimi hizmeti, Service Fabric çalışma zamanı Hizmetleri çalıştırın.Service Fabric runtime services, such as the Cluster Management Service, run on the primary node type. Bir üretim ortamında birincil düğüm türü için en az 5 düğüm sağlayın.Provision at least 5 nodes for the primary node type in a production environment. Bir düğüm türü en az 2 düğüm olmalıdır.The other node type should have at least 2 nodes.

Yapılandırma ve kümeyi yönetmeConfiguring and managing the cluster

Kümeler, yetkisiz kullanıcıların kümenize bağlanmasını önlemek için güvenli hale getirilmelidir.Clusters must be secured to prevent unauthorized users from connecting to your cluster. İstemcileri ve X.509 sertifikaları düğümden düğüme güvenlik için kimlik doğrulaması için Azure AD kullanmak için önerilir.It is recommended to use Azure AD to authenticate clients, and X.509 certificates for node-to-node security. Daha fazla bilgi için Service Fabric kümesi güvenlik senaryoları.For more information, see Service Fabric cluster security scenarios.

Genel bir HTTPS uç noktası yapılandırmak için bkz bir hizmet bildiriminde kaynakları belirtme.To configure a public HTTPS endpoint, see Specify resources in a service manifest.

Uygulamayı kümeye ekleyerek ölçeklendirebilirsiniz.You can scale out the application by adding VMs to the cluster. Sanal makine ölçek kümeleri, performans sayaçları tabanlı otomatik ölçeklendirme kurallarını kullanarak otomatik ölçeklendirmeyi destekler.Virtual machine scale sets support autoscaling using autoscale rules based on performance counters. Daha fazla bilgi için bir Service Fabric kümesini otomatik ölçeklendirme kurallarını kullanarak içe veya dışa ölçeklendirme.For more information, see Scale a Service Fabric cluster in or out using autoscale rules.

Küme çalışırken, merkezi bir konumda tüm düğümlerden günlükleri toplayın.While the cluster is running, collect logs from all the nodes in a central location. Daha fazla bilgi için Azure Tanılama'yı kullanarak günlükleri toplama.For more information, see Collect logs by using Azure Diagnostics.

Uygulamayı yeniden düzenlemeRefactor the application

Uygulama, Service Fabric için unity'nin sonra sonraki adım, daha ayrıntılı bir mimari için yeniden düzenlemektir.After the application is ported to Service Fabric, the next step is to refactor it to a more granular architecture. Surveys uygulamasını geliştirmesini, derleme ve daha kolay hale getirmek için yeniden düzenleme için tailspin'ın motivasyon var.Tailspin's motivation for refactoring is to make it easier to develop, build, and deploy the Surveys application. Var olan web ve çalışan rolleri için daha ayrıntılı bir mimari parçalama tarafından Tailspin sıkı şekilde bağlı iletişim ve veri arasındaki mevcut bağımlılıklara bu rolleri kaldırmak istiyor.By decomposing the existing web and worker roles to a more granular architecture, Tailspin wants to remove the existing tightly coupled communication and data dependencies between these roles.

Tailspin Surveys uygulaması daha ayrıntılı bir mimariye taşımada diğer avantajları görür:Tailspin sees other benefits in moving the Surveys application to a more granular architecture:

  • Her hizmet küçük bir ekip tarafından yönetilmesi için küçük bir kapsam bağımsız projeleriyle içine paketlenebilir.Each service can be packaged into independent projects with a scope small enough to be managed by a small team.
  • Her hizmet bağımsız olarak oluşturulan ve dağıtılan olabilir.Each service can be independently versioned and deployed.
  • Her hizmet bu hizmeti için en uygun teknolojiyi kullanarak uygulanabilir.Each service can be implemented using the best technology for that service. Örneğin, bir service fabric kümesi, .net Framework, Java veya C veya C++ gibi diğer dillerde farklı sürümleri kullanılarak oluşturulan hizmetler içerebilir.For example, a service fabric cluster can include services built using different versions of the .Net Frameworks, Java, or other languages such as C or C++.
  • Her hizmet için bağımsız olarak ölçeklendirilebilir yanıt verme artırır ve yükü azaltır.Each service can be independently scaled to respond to increases and decreases in load.

İşlenmiş sürüm uygulamanın kaynak kodunu şurada bulunur GitHubThe source code for the refactored version of the app is available on GitHub

Tasarım konusunda dikkat edilmesi gerekenlerDesign considerations

Aşağıdaki diyagramda, daha ayrıntılı bir mimari için yeniden düzenlenen Surveys uygulaması mimarisi gösterilmektedir:The following diagram shows the architecture of the Surveys application refactored to a more granular architecture:

İşlenmiş Surveys uygulaması

Tailspin.Web Tailspin müşterileri de ziyaret anketler oluşturmasını ve anket sonuçlarını görüntülemek için bir ASP.NET MVC uygulamasını kendi kendine barındırma durum bilgisi olmayan bir hizmettir.Tailspin.Web is a stateless service self-hosting an ASP.NET MVC application that Tailspin customers visit to create surveys and view survey results. Bu hizmet, kod ile çoğunu paylaşır Tailspin.Web taşınmasını Service Fabric uygulamasında hizmet.This service shares most of its code with the Tailspin.Web service from the ported Service Fabric application. Daha önce belirtildiği gibi bu hizmet, ASP.NET core kullanan ve Kestrel'ı kullanarak bir WebListener uygulamak için web ön ucu olarak geçer.As mentioned earlier, this service uses ASP.NET core and switches from using Kestrel as web frontend to implementing a WebListener.

Tailspin.Web.Survey.Public ayrıca bir ASP.NET MVC sitesi kendi kendine barındırma durum bilgisi olmayan bir hizmettir.Tailspin.Web.Survey.Public is a stateless service also self-hosting an ASP.NET MVC site. Kullanıcılar anketler listeden seçin ve ardından doldurmak için bu siteyi ziyaret edin. Bu hizmet, kod ile çoğunu paylaşır Tailspin.Web.Survey.Public taşınmasını Service Fabric uygulamasında hizmet.Users visit this site to select surveys from a list and then fill them out. This service shares most of its code with the Tailspin.Web.Survey.Public service from the ported Service Fabric application. Bu hizmet, aynı zamanda ASP.NET Core kullanan ve ayrıca Kestrel'ı kullanarak bir WebListener uygulamak için web ön ucu olarak geçer.This service also uses ASP.NET Core and also switches from using Kestrel as web frontend to implementing a WebListener.

Tailspin.SurveyResponseService depoları yanıtları Azure Blob depolama alanındaki anket bir durum bilgisi olan hizmet.Tailspin.SurveyResponseService is a stateful service that stores survey answers in Azure Blob Storage. Anket analizi verilerini de yanıtları birleştirir.It also merges answers into the survey analysis data. Kullandığından hizmetini durum bilgisi olan hizmet olarak uygulanan bir [ReliableConcurrentQueue] reliable-concurrent-queue anket yanıtları toplu olarak işlenecek.The service is implemented as a stateful service because it uses a ReliableConcurrentQueue to process survey answers in batches. Bu işlev başlangıçta içinde uygulanmış Tailspin.AnswerAnalysisService taşınmasını Service Fabric uygulamasında hizmet.This functionality was originally implemented in the Tailspin.AnswerAnalysisService service in the ported Service Fabric application.

Tailspin.SurveyManagementService bir durum bilgisi olmayan, anketler, depolar ve alır ve Anket sorularını hizmetidir.Tailspin.SurveyManagementService is a stateless service that stores and retrieves surveys and survey questions. Hizmet, Azure Blob Depolama kullanır.The service uses Azure Blob storage. Bu işlev, ayrıca özgün veri erişim bileşenlerinde uygulanan Tailspin.Web ve Tailspin.Web.Survey.Public taşınmasını Service Fabric uygulamasında Hizmetleri.This functionality was also originally implemented in the data access components of the Tailspin.Web and Tailspin.Web.Survey.Public services in the ported Service Fabric application. Tailspin yeniden düzenlenen ölçeklendirilmesine izin vermek için bu hizmeti özgün işlevselliği.Tailspin refactored the original functionality into this service to allow it to scale independently.

Tailspin.SurveyAnswerService alır anket yanıtları ve Anket analizi bir durum bilgisi olmayan hizmet.Tailspin.SurveyAnswerService is a stateless service that retrieves survey answers and survey analysis. Hizmet ayrıca Azure Blob Depolama kullanır.The service also uses Azure Blob storage. Bu işlev, ayrıca özgün veri erişim bileşenlerinde uygulanan Tailspin.Web taşınmasını Service Fabric uygulamasında hizmet.This functionality was also originally implemented in the data access components of the Tailspin.Web service in the ported Service Fabric application. Çünkü daha az yük bekliyor ve kaynak tasarrufu yapmak için daha az örnek kullanmak istediği tailspin özgün işlevine bu hizmete yeniden düzenlenen.Tailspin refactored the original functionality into this service because it expects less load and wants to use fewer instances to conserve resources.

Tailspin.SurveyAnalysisService anket yanıtı özet verileri hızlı almak için bir Redis önbelleğinde kalıcı durum bilgisi olmayan bir hizmettir.Tailspin.SurveyAnalysisService is a stateless service that persists survey answer summary data in a Redis cache for quick retrieval. Bu hizmet tarafından çağrılır Tailspin.SurveyResponseService her zaman bir ankete verdiğiniz yanıtlara ve Özet verilerini yeni anket yanıtı veriler birleştirilir.This service is called by the Tailspin.SurveyResponseService each time a survey is answered and the new survey answer data is merged in the summary data. Bu hizmet, ilk olarak uygulanan işlevleri içerir Tailspin.AnswerAnalysisService taşınmasını Service Fabric uygulamasında hizmet.This service includes the functionality originally implemented in the Tailspin.AnswerAnalysisService service from the ported Service Fabric application.

Durum bilgisiz ve durum bilgisi olan hizmetlerStateless versus stateful services

Azure Service Fabric programlama modelleri aşağıdaki destekler:Azure Service Fabric supports the following programming models:

  • Konuk yürütülebilir modeli, bir hizmet olarak paketlenmeli ve bir Service Fabric kümesine dağıtılmış herhangi bir yürütülebilir dosya olanak sağlar.The guest executable model allows any executable to be packaged as a service and deployed to a Service Fabric cluster. Service Fabric Konuk yürütülebilir dosyası yürütme yönetir ve düzenler.Service Fabric orchestrates and manages execution of the guest executable.
  • Kapsayıcı görüntülerini Hizmetleri dağıtımı için kapsayıcı modeli sağlar.The container model allows for deployment of services in container images. Service Fabric, oluşturulması ve Yönetimi Linux çekirdek kapsayıcının yanı sıra Windows Server kapsayıcıları üzerinde kapsayıcıların destekler.Service Fabric supports creation and management of containers on top of Linux kernel containers as well as Windows Server containers.
  • Güvenilir hizmetler tüm Service Fabric platform özellikleri ile tümleştirmeyi durum bilgisi olan veya hizmetleri oluşturulması için programlama modeli sağlar.The reliable services programming model allows for the creation of stateless or stateful services that integrate with all Service Fabric platform features. Service Fabric kümesinde depolanan çoğaltılmış durumu için durum bilgisi olan hizmetler sağlar.Stateful services allow for replicated state to be stored in the Service Fabric cluster. Durum bilgisi olmayan hizmetler yoktur.Stateless services do not.
  • Güvenilir aktör sanal aktör desenini uygulama hizmetleri oluşturmak için bir programlama modeli sağlar.The reliable actors programming model allows for the creation of services that implement the virtual actor pattern.

Surveys uygulamasını tüm hizmetler dışında güvenilir durum bilgisi olmayan hizmetler olan Tailspin.SurveyResponseService hizmeti.All the services in the Surveys application are stateless reliable services, except for the Tailspin.SurveyResponseService service. Bu hizmet uygulayan bir [ReliableConcurrentQueue] reliable-concurrent-queue alındığında anket yanıtları işlenecek.This service implements a ReliableConcurrentQueue to process survey answers when they are received. ReliableConcurrentQueue yanıtlarını Azure Blob depolama alanına kaydedilir ve geçirilen Tailspin.SurveyAnalysisService analiz.Responses in the ReliableConcurrentQueue are saved into Azure Blob Storage and passed to the Tailspin.SurveyAnalysisService for analysis. Yanıtları katı ilk-giren ilk çıkar (FIFO) Azure Service Bus gibi bir kuyruk tarafından sağlanan sıralama gerektirmediği tailspin bir ReliableConcurrentQueue seçer.Tailspin chooses a ReliableConcurrentQueue because responses do not require strict first-in-first-out (FIFO) ordering provided by a queue such as Azure Service Bus. Bir ReliableConcurrentQueue, yüksek aktarım hızına ve düşük gecikme süresi için kuyruk teslim etmek ve işlemleri sıradan çıkarma için de tasarlanmıştır.A ReliableConcurrentQueue is also designed to deliver high throughput and low latency for queue and dequeue operations.

Sıradan çıkarılan bir ReliableConcurrentQueue öğelerinden kalıcı hale getirmek için işlemler ideal olarak bir kez etkili olmalıdır.Operations to persist dequeued items from a ReliableConcurrentQueue should ideally be idempotent. Kuyruktan bir öğe işlenirken bir özel durum, aynı öğesi birden çok kez işlenebilir.If an exception is thrown during the processing of an item from the queue, the same item may be processed more than once. Anket birleştirme işlemi anket uygulamasında yanıtlarını Tailspin.SurveyAnalysisService Tailspin anket analizi verilerini yalnızca geçerli olduğuna karar etkili değildir, çünkü analiz verilerin anlık görüntüsünü ve tutarlı olması gerekmez.In the Surveys application, the operation to merge survey answers to the Tailspin.SurveyAnalysisService is not idempotent because Tailspin decided that the survey analysis data is only a current snapshot of the analysis data and does not need to be consistent. Azure Blob depolama alanına kaydedildi anket yanıtları sonunda tutarlı olduğundan anket son analizi bu verileri her zaman bir doğru şekilde hesaplanabilir.The survey answers saved to Azure Blob Storage are eventually consistent, so the survey final analysis can always be recalculated correctly from this data.

Communication frameworkCommunication framework

Surveys uygulamasını her hizmetinde bir RESTful web API'si kullanarak iletişim kurar.Each service in the Surveys application communicates using a RESTful web API. RESTful API'lerini aşağıdaki faydaları sağlar:RESTful APIs offer the following benefits:

  • Kullanım kolaylığı: her hizmet yerel olarak Web API'leri oluşturmayı destekler ASP.NET Core MVC kullanılarak derlendi.Ease of use: each service is built using ASP.NET Core MVC, which natively supports the creation of Web APIs.
  • Güvenlik: Her hizmet SSL gerektirmez, ancak bunu yapmak için her hizmetin Tailspin gerektirebilir.Security: While each service does not require SSL, Tailspin could require each service to do so.
  • Sürüm oluşturma: istemciler yazılır ve belirli bir web API sürümünü karşı test.Versioning: clients can be written and tested against a specific version of a web API.

Anket uygulaması kullanımı Hizmetleri'nde [ters proxy] reverse-proxy Service Fabric tarafından uygulanır.Services in the Survey application use the reverse proxy implemented by Service Fabric. Ters proxy, Service Fabric kümesindeki her düğümde çalışan ve uç nokta çözümleme, otomatik yeniden deneme sağlar ve diğer türde bir bağlantı hataları işleme hizmetidir.Reverse proxy is a service that runs on each node in the Service Fabric cluster and provides endpoint resolution, automatic retry, and handles other types of connection failures. Ters proxy kullanmak için belirli bir hizmete her bir RESTful API çağrısı, bir önceden tanımlanmış bir ters proxy bağlantı noktası kullanılarak yapılır.To use the reverse proxy, each RESTful API call to a specific service is made using a predefined reverse proxy port. Örneğin, ters proxy bağlantı noktası ayarlanmış 19081, çağrı Tailspin.SurveyAnswerService gibi yapılabilir:For example, if the reverse proxy port has been set to 19081, a call to the Tailspin.SurveyAnswerService can be made as follows:

static SurveyAnswerService()
{
    httpClient = new HttpClient
    {
        BaseAddress = new Uri("http://localhost:19081/Tailspin/SurveyAnswerService/")
    };
}

Ters proxy etkinleştirmek için Service Fabric küme oluşturma sırasında ters proxy bağlantı noktası belirtin.To enable reverse proxy, specify a reverse proxy port during creation of the Service Fabric cluster. Daha fazla bilgi için [ters proxy] reverse-proxy Azure Service fabric'te.For more information, see reverse proxy in Azure Service Fabric.

Performansla ilgili önemli noktalarPerformance considerations

Tailspin, ASP.NET Core Hizmetleri için oluşturulan Tailspin.Web ve Tailspin.Web.Surveys.Public Visual Studio şablonlarını kullanarak.Tailspin created the ASP.NET Core services for Tailspin.Web and Tailspin.Web.Surveys.Public using Visual Studio templates. Varsayılan olarak, bu şablonları konsola günlük kaydı içerir.By default, these templates include logging to the console. Geliştirme ve hata ayıklama sırasında günlük kaydı konsola yapılabilir, ancak uygulama üretime dağıtıldığında, konsola tüm günlük kaldırılmalıdır.Logging to the console may be done during development and debugging, but all logging to the console should be removed when the application is deployed to production.

Not

Üretimde çalışan Service Fabric uygulamaları için izleme ve tanılamayı ayarlama hakkında daha fazla bilgi için bkz. [izleme ve tanılama] monitoring-diagnostics Azure Service Fabric için.For more information about setting up monitoring and diagnostics for Service Fabric applications running in production, see monitoring and diagnostics for Azure Service Fabric.

Örneğin, aşağıdaki satırları startup.cs her web ön uç Hizmetleri yorum:For example, the following lines in startup.cs for each of the web front end services should be commented out:

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    //loggerFactory.AddConsole(Configuration.GetSection("Logging"));
    //loggerFactory.AddDebug();

    app.UseMvc();
}

Not

Visual Studio ayarlandığında, koşullu olarak bu satırlar atlanabilir yayın yayımlarken.These lines may be conditionally excluded when Visual Studio is set to release when publishing.

Son olarak, bunlar Visual Studio'ya geçiş Tailspin Tailspin uygulama üretime dağıtıldığında yayın modu.Finally, when Tailspin deploys the Tailspin application to production, they switch Visual Studio to release mode.

Dağıtma konularıDeployment considerations

Kümeye planlaması doğru VM boyutunu ve düğüm sayısını belirlemek için sınırlı olacak şekilde yeniden düzenlenmiş Surveys uygulamasını beş durum bilgisi olmayan hizmetler ve bir durum bilgisi olan hizmet oluşur.The refactored Surveys application is composed of five stateless services and one stateful service, so cluster planning is limited to determining the correct VM size and number of nodes. İçinde applicationmanifest.xml açıklayan Tailspin ayarlar, küme dosyası Instancecount özniteliği StatelessService etiketi her biri için-1 Hizmetler.In the applicationmanifest.xml file that describes the cluster, Tailspin sets the InstanceCount attribute of the StatelessService tag to -1 for each of the services. -1 değeri, Service Fabric, kümedeki her düğümde Hizmeti'nin bir örneğini oluşturmak için yönlendirir.A value of -1 directs Service Fabric to create an instance of the service on each node in the cluster.

Not

Durum bilgisi olan hizmetler, bölümler ve çoğaltmalar verilerine için doğru sayıda planlamanın ek adımı gerektirir.Stateful services require the additional step of planning the correct number of partitions and replicas for their data.

Tailspin, Azure portalını kullanarak bir küme dağıtır.Tailspin deploys the cluster using the Azure portal. Service Fabric kümesi kaynak türü tüm sanal makine ölçek kümeleri ve bir yük dengeleyici gibi gerekli altyapıyı dağıtır.The Service Fabric Cluster resource type deploys all of the necessary infrastructure, including virtual machine scale sets and a load balancer. Önerilen VM boyutları, Service Fabric kümesi için sağlama işlemi sırasında Azure portalında görüntülenir.The recommended VM sizes are displayed in the Azure portal during the provisioning process for the Service Fabric cluster. Bir sanal makine ölçek kümesindeki VM'lerin dağıtıldığından, bunların her ikisi de ve kullanıcı yükü arttıkça ölçeklendirilebilir.Because the VMs are deployed in a virtual machine scale set, they can be both scaled up and out as user load increases.

Sonraki adımlarNext steps

Anketler uygulama kodu GitHub.The Surveys application code is available on GitHub.

Yalnızca ile başlıyorsanız Azure Service Fabric, ilk geliştirme ortamınızı ayarlama sonra en son sürümünü indirin [Azure SDK'sı] azure-sdk ve Azure Service Fabric SDK'sı.If you are just getting started with Azure Service Fabric, first set up your development environment then download the latest Azure SDK and the Azure Service Fabric SDK. Dağıtabilir ve tam F5 hata ayıklaması ile yerel ortamda Surveys uygulamasını test etmek için SDK'sı OneBox Küme Yöneticisi'ni içerir.The SDK includes the OneBox cluster manager so you can deploy and test the Surveys application locally with full F5 debugging.