Share via


Uygulamaları geçirmeden önce Cloud Services ile Service Fabric arasındaki farklar hakkında bilgi edinin.

Microsoft Azure Service Fabric, yüksek oranda ölçeklenebilir ve yüksek oranda güvenilir dağıtılmış uygulamalar için yeni nesil bulut uygulaması platformudur. Dağıtılmış bulut uygulamalarını paketlemeye, dağıtmaya, yükseltmeye ve yönetmeye yönelik birçok yeni özellik sunar.

Bu, uygulamaları Cloud Services'dan Service Fabric'e geçirmek için giriş niteliğinde bir kılavuzdur. Öncelikle Cloud Services ile Service Fabric arasındaki mimari ve tasarım farklılıklarına odaklanır.

Uygulamalar ve altyapı

Cloud Services ile Service Fabric arasındaki temel bir fark, VM'ler, iş yükleri ve uygulamalar arasındaki ilişkidir. Buradaki bir iş yükü, belirli bir görevi gerçekleştirmek veya hizmet sağlamak için yazdığınız kod olarak tanımlanır.

  • Cloud Services, uygulamaları VM olarak dağıtmaktır. Yazdığınız kod, Web veya Çalışan Rolü gibi bir VM örneğine sıkı bir şekilde bağlanır. bir iş yükünü Cloud Services'de dağıtmak, iş yükünü çalıştıran bir veya daha fazla VM örneğini dağıtmaktır. Uygulamalar ve VM'ler arasında ayrım yoktur ve bu nedenle bir uygulamanın resmi tanımı yoktur. Bir uygulama, bir Cloud Services dağıtımında bir dizi Web veya Çalışan Rolü örneği olarak veya Cloud Services dağıtımının tamamı olarak düşünülebilir. Bu örnekte, bir uygulama bir rol örnekleri kümesi olarak gösterilir.

Uygulamaları ve topolojiyi Cloud Services

  • Service Fabric, Windows veya Linux üzerinde Service Fabric çalıştıran mevcut VM'lere veya makinelere uygulama dağıtmayla ilgili bir işlemdir. Yazdığınız hizmetler temel alınan altyapıdan tamamen ayrılmıştır. Bu altyapı, Service Fabric uygulama platformu tarafından soyutlanır ve böylece bir uygulama birden çok ortam için dağıtılabilir. Service Fabric'teki bir iş yükü "hizmet" olarak adlandırılır ve bir veya daha fazla hizmet, Service Fabric uygulama platformunda çalışan resmi olarak tanımlanmış bir uygulamada gruplandırılır. Tek bir Service Fabric kümesine birden çok uygulama dağıtılabilir.

Service Fabric uygulamaları ve topolojisi

Service Fabric, Windows veya Linux üzerinde çalışan bir uygulama platformu katmanıyken Cloud Services, Azure tarafından yönetilen VM'leri ekli iş yükleriyle dağıtmaya yönelik bir sistemdir. Service Fabric uygulama modelinin bir dizi avantajı vardır:

  • Hızlı dağıtım süreleri. VM örnekleri oluşturmak zaman alabilir. Service Fabric'te VM'ler, Service Fabric uygulama platformunu barındıran bir küme oluşturmak için yalnızca bir kez dağıtılır. Bu noktadan sonra uygulama paketleri kümeye çok hızlı bir şekilde dağıtılabilir.
  • Yüksek yoğunluklu barındırma. Cloud Services'da Çalışan Rolü VM'sinde bir iş yükü barındırılır. Service Fabric'te uygulamalar, bunları çalıştıran VM'lerden ayrıdır; başka bir deyişle az sayıda VM'ye çok sayıda uygulama dağıtabilirsiniz ve bu da daha büyük dağıtımlar için genel maliyeti düşürebilir.
  • Service Fabric platformu, Ister Azure ister şirket içi olsun, Windows Server veya Linux makineleri olan her yerde çalışabilir. Platform, uygulamanızın farklı ortamlarda çalışabilmesi için temel altyapı üzerinde bir soyutlama katmanı sağlar.
  • Dağıtılmış uygulama yönetimi. Service Fabric yalnızca dağıtılmış uygulamaları barındırmakla kalmaz, aynı zamanda yaşam döngülerini barındırma VM'lerinden veya makine yaşam döngüsünden bağımsız olarak yönetmeye yardımcı olan bir platformdur.

Uygulama mimarisi

bir Cloud Services uygulamasının mimarisi genellikle Service Bus, Azure Tablo ve Blob Depolama, SQL, Redis gibi çok sayıda dış hizmet bağımlılığı içerir ve bir uygulamanın durumunu ve verilerini yönetmek ve bir Cloud Services dağıtımında Web ile Çalışan Rolleri arasındaki iletişimi yönetmek için diğerleri. Tam bir Cloud Services uygulaması örneği şöyle görünebilir:

Cloud Services mimarisi

Service Fabric uygulamaları aynı dış hizmetleri eksiksiz bir uygulamada kullanmayı da seçebilir. Bu örnek Cloud Services mimarisini kullanarak, Cloud Services'den Service Fabric'e en basit geçiş yolu, yalnızca Cloud Services dağıtımını bir Service Fabric uygulamasıyla değiştirmek ve genel mimariyi aynı tutmaktır. Web ve Çalışan Rolleri, en az kod değişikliğiyle durum bilgisi olmayan Service Fabric hizmetlerine taşınabilir.

Basit geçiş sonrasında Service Fabric mimarisi

Bu aşamada, sistem daha önce olduğu gibi çalışmaya devam etmelidir. Service Fabric'in durum bilgisi olan özelliklerinden yararlanan dış durum depoları, uygun olduğunda durum bilgisi olan hizmetler olarak içselleştirilebilir. Bu, web ve çalışan rollerinin Service Fabric durum bilgisi olmayan hizmetlere basit bir şekilde geçirilmesinden daha önemlidir. Bu işlem, uygulamanıza dış hizmetlerin daha önce yaptığı gibi eşdeğer işlevler sağlayan özel hizmetler yazmayı gerektirir. Bunu yapmanın avantajları şunlardır:

  • Dış bağımlılıkları kaldırma
  • Dağıtım, yönetim ve yükseltme modellerini birleştirme.

Bu hizmetleri içselleştirmeye yönelik örnek bir mimari şöyle görünebilir:

Tam geçiş sonrasında Service Fabric mimarisi

İletişim ve iş akışı

Çoğu Bulut Hizmeti uygulaması birden fazla katmandan oluşur. Benzer şekilde, bir Service Fabric uygulaması birden fazla hizmetten (genellikle birçok hizmet) oluşur. İki yaygın iletişim modeli, doğrudan iletişim ve harici dayanıklı depolama aracılığıyla dır.

Doğrudan iletişim

Doğrudan iletişim sayesinde katmanlar, her katman tarafından kullanıma sunulan uç nokta üzerinden doğrudan iletişim kurabilir. Cloud Services gibi durum bilgisi olmayan ortamlarda bu, yükü dengelemek için rastgele veya hepsini bir kez deneme olarak vm rolünün bir örneğini seçmek ve uç noktasına doğrudan bağlanmak anlamına gelir.

Doğrudan iletişim Cloud Services

Doğrudan iletişim, Service Fabric'teki yaygın bir iletişim modelidir. Service Fabric ile Cloud Services arasındaki temel fark, Cloud Services bir VM'ye bağlanırken Service Fabric'te bir hizmete bağlanmanızdır. Bu, birkaç nedenden dolayı önemli bir ayrımdır:

  • Service Fabric'teki hizmetler, bunları barındıran VM'lere bağlı değildir; hizmetler kümede hareket edebilir ve aslında kaynak dengeleme, yük devretme, uygulama ve altyapı yükseltmeleri ve yerleştirme veya yükleme kısıtlamaları gibi çeşitli nedenlerle hareket etmesi beklenir. Bu, hizmet örneğinin adresinin herhangi bir zamanda değişebileceği anlamına gelir.
  • Service Fabric'teki bir VM, her biri benzersiz uç noktalara sahip birden çok hizmet barındırabilir.

Service Fabric, hizmetlerin uç nokta adreslerini çözümlemek için kullanılabilen Adlandırma Hizmeti adlı bir hizmet bulma mekanizması sağlar.

Service Fabric'in, hizmetlerin uç nokta adreslerini çözümlemek için kullanılabilen Adlandırma Hizmeti adlı bir hizmet bulma mekanizmasını nasıl sağladığını gösteren diyagram.

Kuyruklar

Cloud Services gibi durum bilgisi olmayan ortamlardaki katmanlar arasındaki yaygın bir iletişim mekanizması, iş görevlerini bir katmandan diğerine dayanıklı bir şekilde depolamak için bir dış depolama kuyruğu kullanmaktır. Yaygın bir senaryo, işleri Çalışan Rolü örneklerinin işleri sıralayıp işleyebileceği bir Azure Kuyruğuna veya Service Bus'a gönderen bir web katmanıdır.

Kuyruk iletişim Cloud Services

Service Fabric'te aynı iletişim modeli kullanılabilir. Bu, mevcut bir Cloud Services uygulamasını Service Fabric'e geçirirken yararlı olabilir.

Service Fabric doğrudan iletişim

Parity

Cloud Services, denetim ve kullanım kolaylığı açısından Service Fabric'e benzer, ancak artık eski bir hizmettir ve Yeni geliştirme için Service Fabric önerilir; aşağıda bir API karşılaştırması verilmiştir:

Bulut Hizmeti API'si Service Fabric API'si Notlar
RoleInstance.GetID FabricRuntime.GetNodeContext.NodeId veya . NodeName Id, NodeName'in bir özelliğidir
RoleInstance.GetFaultDomain FabricClient.QueryManager.GetNodeList NodeName'de filtreleme ve FD Özelliğini kullanma
RoleInstance.GetUpgradeDomain FabricClient.QueryManager.GetNodeList NodeName'e filtre uygulayın ve Upgrade özelliğini kullanın
RoleInstance.GetInstanceEndpoints FabricRuntime.GetActivationContext veya Naming (ResolveService) Hem FabricRuntime.GetActivationContext tarafından hem de sırasında sağlanan ServiceInitializationParameters.CodePackageActivationContext aracılığıyla çoğaltmalar içinde sağlanan CodePackageActivationContext. Başlatmak
RoleEnvironment.GetRoles FabricClient.QueryManager.GetNodeList Türe göre aynı türde filtreleme yapmak istiyorsanız, Küme bildiriminden FabricClient.ClusterManager.GetClusterManifest aracılığıyla düğüm türlerinin listesini alabilir ve rol/düğüm türlerini buradan alabilirsiniz.
RoleEnvironment.GetIsAvailable Belirli bir düğüme işaret eden bir FabricRuntime Connect-WindowsFabricCluster veya oluşturma *
RoleEnvironment.GetLocalResource CodePackageActivationContext.Log/Temp/Work *
RoleEnvironment.GetCurrentRoleInstance CodePackageActivationContext.Log/Temp/Work *
LocalResource.GetRootPath CodePackageActivationContext.Log/Temp/Work *
Role.GetInstances FabricClient.QueryManager.GetNodeList veya ResolveService *
RoleInstanceEndpoint.GetIPEndpoint FabricRuntime.GetActivationContext veya Naming (ResolveService) *

Sonraki Adımlar

Cloud Services'den Service Fabric'e en basit geçiş yolu, uygulamanızın genel mimarisini kabaca aynı tutarak yalnızca Cloud Services dağıtımı bir Service Fabric uygulamasıyla değiştirmektir. Aşağıdaki makale, Web veya Çalışan Rolünü Durum Bilgisi Olmayan Service Fabric hizmetine dönüştürmeye yardımcı olacak bir kılavuz sağlar.