Hızlı Başlangıç: Service Fabric için .NET güvenilir Hizmetler uygulaması dağıtmaQuickstart: Deploy a .NET reliable services application to Service Fabric

Azure Service Fabric; ölçeklenebilir ve güvenilir mikro hizmetleri ve kapsayıcıları dağıtmayı ve yönetmeyi sağlayan bir dağıtılmış sistemler platformudur.Azure Service Fabric is a distributed systems platform for deploying and managing scalable and reliable microservices and containers.

Bu hızlı başlangıçta ilk .NET uygulamanızın Service Fabric'e nasıl dağıtılacağı gösterilir.This quickstart shows how to deploy your first .NET application to Service Fabric. Bitirdiğinizde, oylama sonuçlarını kümedeki durum bilgisi içeren arka uç hizmetine kaydeden bir ASP.NET Core web ön ucuna sahip oylama uygulaması sağlanır.When you're finished, you have a voting application with an ASP.NET Core web front end that saves voting results in a stateful back-end service in the cluster.

Uygulama Ekran Görüntüsü

Bu uygulamayı kullanarak şunları yapmayı öğrenirsiniz:Using this application you learn how to:

  • .NET ve Service Fabric kullanarak uygulama oluşturmaCreate an application using .NET and Service Fabric
  • Web ön ucu olarak ASP.NET Core kullanmaUse ASP.NET core as a web front end
  • Uygulama verilerini durum bilgisi içeren bir hizmette depolamaStore application data in a stateful service
  • Uygulamanızda yerel olarak hata ayıklamaDebug your application locally
  • Birden çok düğüm arasında uygulamanın ölçeğini genişletmeScale-out the application across multiple nodes
  • Toplu uygulama yükseltmesi yapmaPerform a rolling application upgrade

ÖnkoşullarPrerequisites

Bu hızlı başlangıcı tamamlamak için:To complete this quickstart:

  1. Visual Studio 2019 ' i Azure geliştirme ve ASP.net ve Web geliştirme iş yükleriyle birlikte yüklersiniz.Install Visual Studio 2019 with the Azure development and ASP.NET and web development workloads.

  2. Git'i yükleyinInstall Git

  3. Microsoft Azure Service Fabric SDK'sını yükleyinInstall the Microsoft Azure Service Fabric SDK

  4. Visual Studio'nun yerel Service Fabric kümesine dağıtım yapmasını sağlamak için aşağıdaki komutu çalıştırın:Run the following command to enable Visual Studio to deploy to the local Service Fabric cluster:

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force -Scope CurrentUser
    

Küme oluşturmaBuild a cluster

Çalışma zamanını, SDK 'Ları, Visual Studio araçlarını ve Docker 'ı yükledikten sonra beş düğümlü bir yerel geliştirme kümesi oluşturun.After you install the runtime, SDKs, Visual Studio tools, Docker, and have Docker running, create a five-node local development cluster.

Not

Kümeyi oluşturduğunuzda Docker 'ın çalışma nedeni, kümenin kapsayıcı özellikleri etkin olarak oluşturulur.The reason to have Docker running when you create the cluster is so that the cluster is created with container features enabled. Docker çalışmıyorsa, kapsayıcı özelliklerini etkinleştirmek için kümeyi yeniden oluşturmanız gerekecektir.If Docker is not running, you will have to recreate the cluster to enable container features. Bu belirli bir hızlı başlangıç için gereksiz olsa da, kümeyi oluştururken Docker 'ın çalışmasını sağlamak için en iyi yöntem olarak eklenmiştir.Although unnecessary for this particular quickstart, the instruction to have Docker running when you create the cluster is included as a best-practice. Terminal penceresi açarak ve hata oluşup oluşmadığını görmek için docker ps komutunu çalıştırarak Docker'ı çalışmasını test edin.Test that Docker is running by opening a terminal window and running docker ps to see if an error occurs. Yanıt bir hata göstermiyorsa, Docker çalışıyor ve siz de küme oluşturmaya hazırsınız demektir.If the response does not indicate an error, Docker is running and you're ready to build a cluster.

  1. Yönetici olarak yeni, yükseltilmiş bir PowerShell penceresi açın.Open a new, elevated PowerShell window as an administrator.

  2. Aşağıdaki PowerShell komutunu çalıştırarak geliştirme kümesini oluşturun:Run the following PowerShell command to create a development cluster:

    . "C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\DevClusterSetup.ps1"
    
  3. Yerel Küme Yöneticisi aracını başlatmak için aşağıdaki komutu çalıştırın:Run the following command to start the local cluster manager tool:

    . "C:\Program Files\Microsoft SDKs\Service Fabric\Tools\ServiceFabricLocalClusterManager\ServiceFabricLocalClusterManager.exe"
    

Not

Bu hızlı başlangıçtaki örnek uygulama, Windows 7'de mevcut olmayan özellikleri kullanır.The sample application in this quickstart uses features that are not available on Windows 7.

Örneği indirmeDownload the sample

Komut penceresinde, örnek uygulama deposunu yerel makinenize kopyalamak için aşağıdaki komutu çalıştırın.In a command window, run the following command to clone the sample app repository to your local machine.

git clone https://github.com/Azure-Samples/service-fabric-dotnet-quickstart

Uygulamayı yerel olarak çalıştırmaRun the application locally

Başlat Menüsünde Visual Studio'ya sağ tıklayın ve Yönetici olarak çalıştır'ı seçin.Right-click the Visual Studio icon in the Start Menu and choose Run as administrator. Hata ayıklayıcıyı hizmetlerinize eklemek için, Visual Studio 'Yu yönetici olarak çalıştırmanız gerekir.To attach the debugger to your services, you need to run Visual Studio as administrator.

Kopyaladığınız depodan Voting.sln Visual Studio çözümünü açın.Open the Voting.sln Visual Studio solution from the repository you cloned.

Varsayılan olarak, oylama uygulaması 8080 numaralı bağlantı noktasını dinler.By default, the Voting application listens on port 8080. Uygulama bağlantı noktası /VotingWeb/PackageRoot/ServiceManifest.xml dosyasında ayarlanır.The application port is set in the /VotingWeb/PackageRoot/ServiceManifest.xml file. Endpoint öğesinin Port özniteliğini güncelleştirerek uygulama bağlantı noktasını değiştirebilirsiniz.You can change the application port by updating the Port attribute of the Endpoint element. Uygulamayı yerel olarak dağıtmak ve çalıştırmak için, uygulama bağlantı noktasının bilgisayarınızda açık ve kullanılabilir olması gerekir.To deploy and run the application locally, the application port must be open and available on your computer. Uygulama bağlantı noktasını değiştirirseniz, bu makale boyunca yeni uygulama bağlantı noktası değerini "8080" olarak değiştirin.If you change the application port, replace the new application port value for "8080" throughout this article.

Uygulamayı dağıtmak için F5 tuşuna basın.To deploy the application, press F5.

Not

Visual Studio çıktı penceresinde, "Uygulama URL 'SI ayarlanmadı veya bir HTTP/HTTPS URL 'SI değil, bu nedenle tarayıcının uygulamaya açılmayacak" iletisini görürsünüz.In the Visual Studio output window, you will see the message "The application URL is not set or is not an HTTP/HTTPS URL so the browser will not be opened to the application." Bu ileti bir hataya işaret etmez ama tarayıcının otomatik olarak başlatılmayacağını belirtir.This message does not indicate an error, but that a browser will not auto-launch.

Dağıtım tamamlandığında, uygulamanın Web ön ucuna bakmak için bir tarayıcı http://localhost:8080 başlatın ve açın.When the deployment is complete, launch a browser and open http://localhost:8080 to view the web front end of the application.

Uygulama ön ucu

Şimdi bir dizi oylama seçeneği ekleyebilir ve oyları almaya başlayabilirsiniz.You can now add a set of voting options, and start taking votes. Uygulama çalıştırılır ve ayrı bir veritabanına gerek kalmadan tüm verileri Service Fabric kümenizde depolar.The application runs and stores all data in your Service Fabric cluster, without the need for a separate database.

Oylama örnek uygulamasında izlenecek yolWalk through the voting sample application

Oylama uygulaması iki hizmetten oluşur:The voting application consists of two services:

  • Web ön uç hizmeti (VotingWeb)- Web sayfasına hizmet veren ve arka uç hizmetiyle iletişim için web API'lerini kullanıma sunan bir ASP.NET Core web ön uç hizmeti.Web front-end service (VotingWeb)- An ASP.NET Core web front-end service, which serves the web page and exposes web APIs to communicate with the backend service.
  • Arka uç hizmeti (VotingData)- Oy sonuçlarını diskte kalıcı olan güvenilir bir sözlükte depolamak için API'yi kullanıma sunan bir ASP.NET Core web hizmeti.Back-end service (VotingData)- An ASP.NET Core web service, which exposes an API to store the vote results in a reliable dictionary persisted on disk.

Uygulama Diyagramı

Uygulamayı oylandığınızda, aşağıdaki olaylar gerçekleşir:When you vote in the application, the following events occur:

  1. Oy isteğini bir JavaScript HTTP PUT isteği olarak web ön uç hizmetindeki web API'sine gönderir.A JavaScript sends the vote request to the web API in the web front-end service as an HTTP PUT request.

  2. Web ön uç hizmeti bir ara sunucu kullanarak HTTP PUT isteğini bulur ve arka uç hizmetine iletir.The web front-end service uses a proxy to locate and forward an HTTP PUT request to the back-end service.

  3. Arka uç hizmeti gelen isteği alır ve güncelleştirilmiş sonucu güvenilir bir sözlükte depolar. Bu sözlük küme içinde birden çok düğüme çoğaltılır ve diskte kalıcı olur.The back-end service takes the incoming request, and stores the updated result in a reliable dictionary, which gets replicated to multiple nodes within the cluster and persisted on disk. Uygulamanın tüm verileri kümede depolandığından, veritabanına gerek yoktur.All the application's data is stored in the cluster, so no database is needed.

Visual Studio'da hata ayıklamaDebug in Visual Studio

Uygulama düzgün şekilde çalışmalıdır, ancak uygulamanın temel parçalarının nasıl çalıştığını görmek için hata ayıklayıcıyı kullanabilirsiniz.The application should be running OK, but you can use the debugger to see how key parts of the application work. Visual Studio 'da uygulamanın hatalarını ayıklarken, yerel bir Service Fabric geliştirme kümesi kullanıyorsunuz.When debugging the application in Visual Studio, you're using a local Service Fabric development cluster. Hata ayıklama deneyiminizi senaryonuza ayarlayabilirsiniz.You can adjust your debugging experience to your scenario. Bu uygulamada, verileri güvenilir bir sözlük kullanılarak arka uç hizmetinde depolanır.In this application, data is stored in back-end service using a reliable dictionary. Hata ayıklayıcıyı durdurduğunuzda Visual Studio varsayılan olarak uygulamayı kaldırır.Visual Studio removes the application per default when you stop the debugger. Uygulamanın kaldırılması arka uç hizmetindeki verilerin de kaldırılmasına neden olur.Removing the application causes the data in the back-end service to also be removed. Hata ayıklama oturumları arasında verilerin kalıcı olmasını sağlamak için, Visual Studio'da Oylama projesindeki bir özellik olarak Uygulama Hata Ayıklama Modu'nu değiştirebilirsiniz.To persist the data between debugging sessions, you can change the Application Debug Mode as a property on the Voting project in Visual Studio.

Kodda neler olduğuna bakmak için aşağıdaki adımları tamamlayın:To look at what happens in the code, complete the following steps:

  1. /VotingWeb/Controllers/VotesController.cs dosyasını açın ve web API'sinin Put yönteminde (69. satır) bir kesme noktası ayarlayın. Dosyayı Visual Studio'daki Çözüm Gezgini'nde arayıp bulabilirsiniz.Open the /VotingWeb/Controllers/VotesController.cs file and set a breakpoint in the web API's Put method (line 69) - You can search for the file in the Solution Explorer in Visual Studio.

  2. /VotingData/Controllers/VoteDataController.cs dosyasını açın ve bu web API'sinin Put yönteminde (54. satır) bir kesme noktası ayarlayın.Open the /VotingData/Controllers/VoteDataController.cs file and set a breakpoint in this web API's Put method (line 54).

  3. Tarayıcıya dönün ve bir oylama seçeneğine tıklayın veya yeni oylama seçeneği ekleyin.Go back to the browser and click a voting option or add a new voting option. Web ön ucunun api denetleyicisinde ilk kesme noktasına ulaşırsınız.You hit the first breakpoint in the web front end's api controller.

    • Bu adım, tarayıcıdaki JavaScript 'in ön uç hizmetindeki Web API denetleyicisine bir istek gönderdiği yerdir.This step is where the JavaScript in the browser sends a request to the web API controller in the front-end service.

      Oy Ön Uç Hizmeti Ekleme

    • İlk olarak, arka uç hizmetimiz için ReverseProxy'nin URL'sini oluşturun (1) .First, construct the URL to the ReverseProxy for our back-end service (1).

    • Ardından, HTTP PUT İsteğini ReverseProxy'ye gönderin (2) .Then, send the HTTP PUT Request to the ReverseProxy (2).

    • Son olarak, yanıtı arka uç hizmetinden istemciye döndürün (3) .Finally, return the response from the back-end service to the client (3).

  4. Devam etmek için F5 tuşuna basınPress F5 to continue

    • Tarayıcı tarafından sorulursa, ServiceFabricAllowedUsers grubuna Hata Ayıklama Modu için okuma ve yürütme izinleri verin.If prompted by the browser, grant ServiceFabricAllowedUsers group read and execute permissions for Debug Mode.

    • Artık arka uç hizmetindeki kesme noktasıdır.You're now at the break point in the back-end service.

      Oy Arka Uç Hizmeti Ekleme

    • Yöntemin ilk satırında (1) , StateManager counts adlı güvenilir bir sözlük alır veya ekler.In the first line in the method (1) the StateManager gets or adds a reliable dictionary called counts.

    • Güvenilir bir sözcükteki değerlerle tüm etkileşimler bir işlem gerektirir; bu using deyimi (2) o işlemi oluşturur.All interactions with values in a reliable dictionary require a transaction, this using statement (2) creates that transaction.

    • İşlemde, oylama seçeneği için uygun anahtarın değerini güncelleştirin ve işlemi yürütün (3) .In the transaction, update the value of the relevant key for the voting option and commit the operation (3). Commit yöntemi döndüğünde, sözlükteki veriler güncelleştirilir ve kümedeki diğer düğümlere çoğaltılır.Once the commit method returns, the data is updated in the dictionary and replicated to other nodes in the cluster. Artık veriler güvenli bir şekilde kümede depolanır ve arka uç hizmeti verilerin kullanılabilir olduğu diğer düğümlere yük devretebilir.The data is now safely stored in the cluster, and the back-end service can fail over to other nodes, still having the data available.

  5. Devam etmek için F5 tuşuna basınPress F5 to continue

Hata ayıklama oturumunu durdurmak için Shift+F5 tuşlarına basın.To stop the debugging session, press Shift+F5.

Toplu uygulama yükseltmesi yapmaPerform a rolling application upgrade

Uygulamanıza yeni güncelleştirmeleri dağıtırken, Service Fabric güncelleştirmeyi güvenli bir yolla dağıtır.When deploying new updates to your application, Service Fabric rolls out the update in a safe way. Sıralı yükseltmeler, yükseltme yaparken sistemi kapatma gereğini ortadan kaldırır ve hata olması durumunda otomatik geri almaya olanak tanır.Rolling upgrades gives you no downtime while upgrading as well as automated rollback should errors occur.

Uygulamayı yükseltmek için aşağıdakileri yapın:To upgrade the application, do the following:

  1. Visual Studio'da /VotingWeb/Views/Home/Index.cshtml dosyasını açın.Open the /VotingWeb/Views/Home/Index.cshtml file in Visual Studio.

  2. Metin ekleyerek veya var olan metni güncelleştirerek sayfadaki başlığı değiştirin.Change the heading on the page by adding or updating the text. Örneğin, başlığı "Service Fabric Oylama Örneği v2" olarak değiştirin.For example, change the heading to "Service Fabric Voting Sample v2".

  3. Dosyayı kaydedin.Save the file.

  4. Çözüm Gezgini'nde Oylama’ya sağ tıklayın ve Yayımla’yı seçin.Right-click Voting in the Solution Explorer and choose Publish. Yayımla iletişim kutusu görüntülenir.The Publish dialog appears.

  5. Hizmetin ve uygulamanın sürümünü değiştirmek için Bildirim Sürümü düğmesine tıklayın.Click the Manifest Version button to change the version of the service and application.

  6. VotingWebPkg'nin altındaki Code öğesinin sürümünü örneğin "2.0.0" olarak değiştirin ve Kaydet'e tıklayın.Change the version of the Code element under VotingWebPkg to "2.0.0", for example, and click Save.

    Sürümü Değiştir İletişim Kutusu

  7. Service Fabric uygulaması Yayımla iletişim kutusunda, uygulamayı Yükselt onay kutusunuişaretleyin.In the Publish Service Fabric Application dialog, check the Upgrade the Application checkbox.

  8. Hedef profili PublishProfiles\Local.5Node.xml olarak değiştirin ve bağlantı uç noktasının yerel kümeolarak ayarlandığından emin olun.Change Target profile to PublishProfiles\Local.5Node.xml and ensure that Connection Endpoint is set to Local Cluster.

  9. Uygulamayı Yükselt' i seçin.Select Upgrade the Application.

    Yayımla İletişim Kutusu Yükseltme Ayarı

  10. Tıklayın yayımlama.Click Publish.

    Yükseltme çalışırken, uygulamayı kullanmaya devam edebilirsiniz.While the upgrade is running, you can still use the application. Kümede hizmetin iki örneği çalıştığından, isteklerinizden bazıları uygulamanın yükseltilmiş sürümünü alırken, diğerleri eski sürümü almaya devam edebilir.Because you have two instances of the service running in the cluster, some of your requests may get an upgraded version of the application, while others may still get the old version.

  11. Tarayıcınızı açın ve 19080 numaralı bağlantı noktasında Küme adresine gidin.Open your browser and browse to the cluster address on port 19080. Örneğin: http://localhost:19080/.For example, http://localhost:19080/.

  12. Ağaç görünümünde Uygulamalar düğümüne tıklayın ve ardından sağ bölmede Devam Eden Yükseltmeler'e tıklayın.Click on the Applications node in the tree view, and then Upgrades in Progress in the right-hand pane. Güncelleştirmenin kümenizdeki yükseltme etki alanlarında nasıl ilerlediğini görür, bir sonrakine geçmeden önce her etki alanının iyi durumda olduğundan emin olursunuz.You see how the upgrade rolls through the upgrade domains in your cluster, making sure each domain is healthy before proceeding to the next. Durumu doğrulanan yükseltme etki alanı, ilerleme çubuğunda yeşil gösterilir.An upgrade domain in the progress bar appears green when the health of the domain has been verified. Service Fabric Explorer'da Yükseltme GörünümüUpgrade View in Service Fabric Explorer

    Service Fabric, kümedeki bir düğümde hizmeti yükselttikten sonra iki dakika bekleyerek yükseltmelerin güvenle yapılmasını sağlar.Service Fabric makes upgrades safe by waiting two minutes after upgrading the service on each node in the cluster. Tüm güncelleştirmenin yaklaşık sekiz dakika sürmesini bekleyebilirsiniz.Expect the entire update to take approximately eight minutes.

Sonraki adımlarNext steps

Bu hızlı başlangıçta şunları öğrendiniz:In this quickstart, you learned how to:

  • .NET ve Service Fabric kullanarak uygulama oluşturmaCreate an application using .NET and Service Fabric
  • Web ön ucu olarak ASP.NET Core kullanmaUse ASP.NET core as a web front end
  • Uygulama verilerini durum bilgisi içeren bir hizmette depolamaStore application data in a stateful service
  • Uygulamanızda yerel olarak hata ayıklamaDebug your application locally
  • Birden çok düğüm arasında uygulamanın ölçeğini genişletmeScale-out the application across multiple nodes
  • Toplu uygulama yükseltmesi yapmaPerform a rolling application upgrade

Service Fabric ve .NET hakkında daha fazla bilgi edinmek için şu öğreticiyi gözden geçirin:To learn more about Service Fabric and .NET, take a look at this tutorial: