Hızlı başlangıç: Service Fabric'e bir .NET güvenilir hizmetler uygulaması dağıtma

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.

Bu hızlı başlangıçta ilk .NET uygulamanızın Service Fabric'e nasıl dağıtılacağı gösterilir. 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.

Uygulama Ekran Görüntüsü

Bu uygulamayı kullanarak şunları yapmayı öğrenirsiniz:

  • .NET ve Service Fabric kullanarak uygulama oluşturma
  • Web ASP.NET çekirdek kullanma
  • Uygulama verilerini durum bilgisi içeren bir hizmette depolama
  • Uygulamanızda yerel olarak hata ayıklama
  • Birden çok düğüm arasında uygulamanın ölçeğini genişletme
  • Toplu uygulama yükseltmesi yapma

Önkoşullar

Bu hızlı başlangıcı tamamlamak için:

  1. Azure Visual Studio ve web geliştirme iş yükleriyle 2019'ASP.NET yükleyin.

  2. Git'i yükleyin

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

  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:

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force -Scope CurrentUser
    

Küme oluşturma

Çalışma zamanı, SDK'ler, Visual Studio araçları, Docker'ı yükledikten ve Docker'ın çalışır durumda olması için beş düğümlü bir yerel geliştirme kümesi oluşturun.

Not

Kümeyi oluşturulduğunda Docker'ın çalışır durumdaki nedeni, kümenin kapsayıcı özellikleri etkinleştirilmiş olarak oluşturulacak şekilde etkinleştirilmesidir. Docker çalışmıyorsa, kapsayıcı özelliklerini etkinleştirmek için kümeyi yeniden oluşturmanız gerekir. Bu hızlı başlangıç için gereksiz olsa da, kümeyi oluşturmada Docker'ın çalışması yönergesi en iyi yöntem olarak dahil edilir. 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. Yanıt bir hata göstermiyorsa, Docker çalışıyor ve siz de küme oluşturmaya hazırsınız demektir.

Kapsayıcılar Windows 10 Windows Server'a ayarlama

  1. Yönetici olarak yeni, yükseltilmiş bir PowerShell penceresi açın.

  2. Aşağıdaki PowerShell komutunu çalıştırarak geliştirme kümesini oluşturun:

    . "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:

    . "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.

Örneği indirme

Komut penceresinde, örnek uygulama deposunu yerel makinenize kopyalamak için aşağıdaki komutu çalıştırın.

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

Uygulamayı yerel olarak çalıştırma

Başlat Menüsünde Visual Studio'ya sağ tıklayın ve Yönetici olarak çalıştır'ı seçin. Hata ayıklayıcıyı hizmetlerinize eklemek için yönetici olarak Visual Studio gerekir.

Kopyaladığınız depodan Voting.sln Visual Studio çözümünü açın.

Voting uygulaması varsayılan olarak 8080 bağlantı noktasını dinler. Uygulama bağlantı noktası /VotingWeb/PackageRoot/ServiceManifest.xml dosyasında ayarlanır. Endpoint öğesinin Port özniteliğini güncelleştirerek uygulama bağlantı noktasını değiştirebilirsiniz. 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. Uygulama bağlantı noktasını değiştirirsiniz, bu makale boyunca "8080" için yeni uygulama bağlantı noktası değerini değiştirin.

Uygulamayı dağıtmak için F5 tuşuna basın.

Not

Uygulama Visual Studio penceresinde "Uygulama URL'si ayarlanmaz veya http/HTTPS URL'si değildir, dolayısıyla tarayıcı uygulamaya açık olmayacaktır." Bu ileti bir hataya işaret etmez ama tarayıcının otomatik olarak başlatılmayacağını belirtir.

Dağıtım tamamlandığında bir tarayıcıyı başlatarak http://localhost:8080 uygulamanın web ön sonunu görüntüleyebilirsiniz.

Uygulama ön ucu

Şimdi bir dizi oylama seçeneği ekleyebilir ve oyları almaya başlayabilirsiniz. Uygulama çalıştırılır ve ayrı bir veritabanına gerek kalmadan tüm verileri Service Fabric kümenizde depolar.

Oylama örnek uygulamasında izlenecek yol

Oylama uygulaması iki hizmetten oluşur:

  • 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.
  • 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.

Uygulama Diyagramı

Uygulamada oy verdiyken aşağıdaki olaylar oluşur:

  1. Oy isteğini bir JavaScript HTTP PUT isteği olarak web ön uç hizmetindeki web API'sine gönderir.

  2. Web ön uç hizmeti bir ara sunucu kullanarak HTTP PUT isteğini bulur ve arka uç hizmetine iletir.

  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. Uygulamanın tüm verileri kümede depolandığından, veritabanına gerek yoktur.

Visual Studio'da hata ayıklama

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. Uygulamanın hata ayıklamasını Visual Studio, yerel bir geliştirme kümesi Service Fabric kullanıyorsanız. Hata ayıklama deneyiminizi senaryoya göre ayarlayabilirsiniz. Bu uygulamada, verileri güvenilir bir sözlük kullanılarak arka uç hizmetinde depolanır. Hata ayıklayıcıyı durdurduğunuzda Visual Studio varsayılan olarak uygulamayı kaldırır. Uygulamanın kaldırılması arka uç hizmetindeki verilerin de kaldırılmasına neden olur. Hata ayıklama oturumları arasında verileri kalıcı yapmak için Oylama projesi Özellikleri'ne tıklayın ve Uygulama Hata Ayıklama Modu'u Otomatik Yükseltme olarak değiştirin.

Kodda neler olduğuna bakmak için aşağıdaki adımları tamamlayın:

  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.

  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.

  3. Tarayıcıya dönün ve bir oylama seçeneğine tıklayın veya yeni oylama seçeneği ekleyin. Web ön ucunun api denetleyicisinde ilk kesme noktasına ulaşırsınız.

    • Bu adım, tarayıcıda JavaScript'in ön uç hizmette web API denetleyicisine bir istek gönderdiği adımdır.

      Oy Ön Uç Hizmeti Ekleme

    • İlk olarak, arka uç hizmetimiz için ReverseProxy'nin URL'sini oluşturun (1).

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

    • Son olarak, yanıtı arka uç hizmetinden istemciye döndürün (3).

  4. Devam etmek için F5 tuşuna basın

    • Tarayıcı tarafından sorulursa, ServiceFabricAllowedUsers grubuna Hata Ayıklama Modu için okuma ve yürütme izinleri verin.

    • Artık arka uç hizmetinin kesme noktasındasın.

      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.

    • 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.

    • İşlemde, oylama seçeneği için uygun anahtarın değerini güncelleştirin ve işlemi yürütün (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. 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.

  5. Devam etmek için F5 tuşuna basın

Hata ayıklama oturumunu durdurmak için Shift+F5 tuşlarına basın.

Toplu uygulama yükseltmesi yapma

Uygulamanıza yeni güncelleştirmeleri dağıtırken, Service Fabric güncelleştirmeyi güvenli bir yolla dağıtır. 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.

Uygulamayı yükseltmek için aşağıdakileri yapın:

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

  2. Metin ekleyerek veya var olan metni güncelleştirerek sayfadaki başlığı değiştirin. Örneğin, başlığı "Service Fabric Oylama Örneği v2" olarak değiştirin.

  3. Dosyayı kaydedin.

  4. Çözüm Gezgini'nde Oylama’ya sağ tıklayın ve Yayımla’yı seçin. Yayımla iletişim kutusu görüntülenir.

  5. Hizmetin ve uygulamanın sürümünü değiştirmek için Bildirim Sürümü düğmesine tıklayın.

  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.

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

  7. Uygulamayı Yayımla Service Fabric iletişim kutusunda Uygulamayı Yükselt onay kutusunu işaretleyin.

  8. Hedef profili'ni PublishProfiles\Local.5Node.xml ve Bağlantı Uç Noktasının Yerel Küme olarak ayarlanmış olduğundan emin olun.

  9. Uygulamayı Yükselt'i seçin.

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

  10. Yayımla’ya tıklayın.

    Yükseltme çalışırken, uygulamayı kullanmaya devam edebilirsiniz. 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.

  11. Tarayıcınızı açın ve 19080 bağlantı noktası üzerinde küme adresine göz atabilirsiniz. Örneğin, 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. 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. Durumu doğrulanan yükseltme etki alanı, ilerleme çubuğunda yeşil gösterilir. Service Fabric Explorer'da Yükseltme Görünümü

    Service Fabric, kümedeki bir düğümde hizmeti yükselttikten sonra iki dakika bekleyerek yükseltmelerin güvenle yapılmasını sağlar. Tüm güncelleştirmenin yaklaşık sekiz dakika sürmesini bekleyebilirsiniz.

Sonraki adımlar

Bu hızlı başlangıçta şunları öğrendiniz:

  • .NET ve Service Fabric kullanarak uygulama oluşturma
  • Web ASP.NET uç olarak çekirdek kullanma
  • Uygulama verilerini durum bilgisi içeren bir hizmette depolama
  • Uygulamanızda yerel olarak hata ayıklama
  • Birden çok düğüm arasında uygulamanın ölçeğini genişletme
  • Toplu uygulama yükseltmesi yapma

Service Fabric ve .NET hakkında daha fazla bilgi edinmek için şu öğreticiyi gözden geçirin: