Web uygulamalarını barındırmak ASP.NET Core Azure barındırma önerileri

"Her yerde iş lideri, buluttan uygulama almak (SaaS olarak da bilinir) için IT departmanlarını atlar ve bunlar için bir maganda aboneliği gibi ödemeler yapanlar. Hizmet artık gerekli olmadığı zaman, köşede kullanılmayan ekipman kalmadan aboneliği iptal edebilir."
- Dacisi Plummer, Gartner analisti

Uygulamanıza gereken ve mimari ne olursa Microsoft Azure destek olabilir. Barındırmaya yönelik ihtiyaçlar statik bir web sitesi veya onlarca hizmet barındıran gelişmiş bir uygulama kadar basit olabilir. Tek ASP.NET Core web uygulamaları ve destek hizmetleri için, önerilen birçok iyi bilinen yapılandırma vardır. Bu makaledeki öneriler, tam uygulamalar, tek tek işlemler veya veriler gibi barındırılan kaynak türüne göre gruplanmıştır.

Web uygulamaları

Web uygulamaları şu şekilde barındırabilirsiniz:

  • App Service Web Apps

  • Kapsayıcılar (birkaç seçenek)

  • Sanal Makineler (VM)

Bunların arasında App Service Web Apps tabanlı uygulamalar da dahil olmak üzere çoğu senaryo için önerilen yaklaşım App Service Web Apps yaklaşımdır. Mikro hizmet mimarileri için kapsayıcı tabanlı bir yaklaşımı göz önünde bulundurabilirsiniz. Uygulamanızı çalıştıran makineler üzerinde daha fazla denetime ihtiyacınız varsa Azure Sanal Makineler'i göz önünde bulundurabilirsiniz.

App Service Web Apps

App Service Web Apps, web uygulamalarını barındırmak için iyileştirilmiş, tam olarak yönetilen bir platform sunar. Azure, uygulamayı çalıştırmak ve ölçeklendirmek için gereken altyapıyla ilgilenirken iş mantığınıza odaklanmanızı sağlayan bir hizmet olarak platform (PaaS) teklifidir. Bu özelliklerin bazı App Service Web Apps:

  • DevOps iyileştirme (sürekli tümleştirme ve teslim, birden çok ortam, A/B testi, betik desteği).

  • Genel ölçek ve yüksek kullanılabilirlik.

  • SaaS platformları ve şirket içi verilerinizle bağlantılar.

  • Güvenlik ve uyumluluk.

  • Visual Studio tümleştirme.

Azure App Service, çoğu Web uygulaması için en iyi seçenektir. Dağıtım ve yönetim süreçleri platform ile tümleştirilmiştir, siteler hızla yüksek trafik yüklerinin altından kalkacak şekilde ölçeklendirilebilir ve yerleşik yük dengeleme ve trafik yöneticisi yüksek kullanılabilirlik sağlar. Mevcut siteleri çevrimiçi geçiş aracıyla Azure App Service sitelere kolayca taşıyabilirsiniz. Web Uygulaması Galerisi'nde açık kaynak bir uygulama kullanabilir veya tercih edin çerçeveyi ve araçları kullanarak yeni bir site oluşturabilirsiniz. WebJobs özelliği, App Service Web uygulamanıza arka plan iş işlemleri eklemeyi kolaylaştırır. Yerel bir veritabanı ASP.NET şirket içinde barındırılan bir uygulamanız varsa, geçiş için net bir yol vardır. App Service Web App'i bir Azure SQL Veritabanı (veya tercih edilirse şirket içi veritabanı sunucunuza güvenli erişim) ile kullanabilirsiniz.

Şirket içi .NET uygulamalarının Azure App Service

Çoğu durumda, yerel olarak barındırılan bir ASP.NET web uygulamasına App Service basit bir işlemdir. Uygulamanın kendisi için çok az değişiklik yapılması veya hiç değişiklik yapılması gerekmez ve bu özellik, uygulamanın en çok Azure App Service Web Apps başlayabilir.

Bulut için en iyi duruma Azure App Service Web Apps uygulamalara ek olarak, Azure App Service Web Apps uygulamaları gibi birçok basit monolitik (dağıtılmadı) uygulama için mükemmel ASP.NET Core vardır. Bu yaklaşımda mimari temeldir ve şunları anlamak ve yönetmek kolaydır:

Temel Azure mimarisi

Tek bir kaynak grubunda yer alan az sayıda kaynak, bu tür bir uygulamayı yönetmek için genellikle yeterlidir. Genellikle tek bir birim olarak dağıtılan uygulamalar, birçok ayrı işlemden yapılmış uygulamalar yerine bu temel mimari yaklaşım için iyi adaylardır. Mimari açıdan basit olsa da, bu yaklaşım yine de barındırılan uygulamanın talep artışını karşılamak için ölçeği artırmaya (düğüm başına daha fazla kaynak) ve dışarı (daha fazla barındırılan düğüm) ölçeklendirmesini sağlar. Otomatik ölçeklendirme ile uygulama, uygulamayı barındıran düğümlerin sayısını isteğe ve düğümler arasında ortalama yüke göre otomatik olarak ayar yapmak üzere yalıtabilirsiniz.

App Service Web Apps için kapsayıcılar

Web uygulamalarını doğrudan barındırma desteğine ek olarak, App Service Web Apps kapsayıcılı uygulamaları linux ve Linux üzerinde çalıştırmak için Windows için de kullanılabilir. Bu hizmeti kullanarak işletmenize göre ölçeklendirilecek kapsayıcılı uygulamaları kolayca dağıtabilir ve çalıştırabilirsiniz. Uygulamalar, yukarıda listelenen tüm App Service Web Apps sahiptir. Kapsayıcılar için Web Apps, Docker Hub, Azure Container Registry ve GitHub. Değişiklikleri bir kayıt Azure DevOps derleme ve dağıtım işlem hatları tanımlamak için Azure DevOps'i kullanabilirsiniz. Bu değişiklikler daha sonra bir hazırlama ortamında test edilebilir ve dağıtım yuvaları kullanılarak otomatik olarak üretime dağıtılabilir ve sıfır kapalı kalma süresine izin verir. Önceki sürümlere geri dönmek de aynı şekilde kolayca yapılabilir.

Kapsayıcılar için kapsayıcıların en Web Apps senaryolar vardır. İster linux kapsayıcılarında ister linux kapsayıcılarında kapsayıcılı hale Windows uygulamalarınız varsa, bu araç seti kullanarak bunları kolayca barındırabilirsiniz. Kapsayıcınızı yayımlamanız ve ardından Web Apps kayıt defterinize görüntüden en son sürümü çekmek için Kapsayıcılar için yapılandırmanız gerekir. Bu, klasik uygulama barındırma modellerinden bulut için iyileştirilmiş bir modele geçişe "lift and shift" yaklaşımıdır.

Kapsayıcılı şirket içi .NET uygulamasını Kapsayıcılar için Azure Web Apps'ye geçirme

Geliştirme takımınız kapsayıcı tabanlı bir geliştirme sürecine geçenin bu yaklaşım da işe yarar. Kapsayıcılarla uygulama geliştirmenin "iç döngüsü", uygulamayı kapsayıcılarla birlikte geliştirmeyi içerir. Kodda ve kapsayıcı yapılandırmasında yapılan değişiklikler kaynak denetimine, otomatik derleme ise yeni kapsayıcı görüntülerini Docker Hub veya Azure Container Registry. Bu görüntüler daha sonra aşağıdaki diyagramda gösterildiği gibi ek geliştirme ve üretime dağıtımlar için temel olarak kullanılır:

End To End Docker DevOps Yaşam Döngüsü İş Akışı

Kapsayıcılarla geliştirme, özellikle de üretimde kapsayıcılar kullanılırken birçok avantaj sunar. Aynı kapsayıcı yapılandırması, uygulamayı yerel geliştirme makinelerinden derleme ve test sistemlerine ve üretime kadar çalıştırıldıları her ortamda barındırmak için kullanılır. Bu yaklaşım, makine yapılandırması veya yazılım sürümleri arasındaki farklardan elde edilen hata olasılığını büyük ölçüde azaltır. Kapsayıcılar herhangi bir işletim sisteminde çalıştırılana kadar, geliştiriciler işletim sistemi de dahil olmak üzere en üretken olduğu araçları da kullanabilir. Bazı durumlarda, birden çok kapsayıcı içeren dağıtılmış uygulamaların tek bir geliştirme makinesi üzerinde çalışması yoğun kaynak kullanımına neden olabilir. Bu senaryoda, sonraki bölümde ele alınan Kubernetes ve Azure Dev Spaces'e yükseltme yapmak mantıklı olabilir.

Daha büyük uygulamaların bölümleri kendi küçük, bağımsız mikro hizmetlere parçalandıklarından, uygulama davranışını geliştirmek için ek tasarım desenleri kullanılabilir. Api ağ geçidi, tek tek hizmetlerle doğrudan çalışmak yerine erişimi basitleştirebilir ve istemciyi arka ucundan ayrıleştirebilir. Farklı ön uçlar için ayrı hizmet arka uçlarının olması, hizmetlerin tüketicileriyle birlikte gelişmesine de olanak sağlar. Ortak hizmetlere, büyükelçi düzeni kullanılarak ortak istemci bağlantı kitaplıkları da dahil olmak için ayrı bir araç kapsayıcısı üzerinden erişilebilir.

Birçok yaygın tasarım deseninin not alınarak mikro hizmetler örnek mimarisi.

Mikro hizmet tabanlı sistemler inşa etmek için göz önünde bulundurarak tasarım desenleri hakkında daha fazla bilgi edinin.

Azure Kubernetes Service

Azure Kubernetes Hizmeti (AKS), barındırılan Kubernetes ortamınızı yöneterek kapsayıcılı uygulamaları, kapsayıcı yönetimi uzmanlığı gerekmeden hızla ve kolayca dağıtma olanağı sunar. Ayrıca, uygulamalarınızı çevrimdışı duruma getirmeden isteğe bağlı olarak kaynak sağlama, yükseltme ve ölçeklendirme işlemlerinin devam eden operasyon ve bakım yükünü ortadan kaldırıyor.

AKS, sorumluluğun çoğunu Azure’a devrederek bir Kubernetes kümesi yönetmenin karmaşıklığı ve işlemsel yükünü azaltır. Barındırılan bir Kubernetes hizmeti olarak, Azure sistem durumu izleme ve bakım gibi kritik görevleri sizin için gerçekleştirir. Ayrıca, ana düğümler için değil, yalnızca kümeleriniz içindeki aracı düğümleri için ödeme siz ödersiniz. Yönetilen bir Kubernetes hizmeti olarak AKS aşağıdakileri sağlar:

  • Otomatik Kubernetes sürüm yükseltmeleri ve düzeltme eki uygulama.
  • Kolay küme ölçeklendirme.
  • Kendi kendini iyileştiren barındırılan denetim düzlemi (ana).
  • Maliyet tasarrufu - yalnızca çalışan aracı havuzu düğümleri için ödeme.

AKS kümenizde düğümleri Azure yönetirken, küme yükseltme gibi görevleri el ile gerçekleştirmeniz gerekmez. Azure bu kritik bakım görevlerini sizin için gerçekleştirebilir, AKS kümeye doğrudan erişim (örneğin SSH ile) sağlamaz.

Teams aks'den yararlanan tüm hizmetlerden de Azure Dev Spaces. Azure Dev Spaces, ekiplerin AKS'de çalışan tüm mikro hizmet mimarisi veya uygulamasıyla doğrudan çalışmasına olanak sağlayarak, ekiplerin mikro hizmet uygulamasının geliştirme ve hızlı yinelemelerine odaklanmasına yardımcı olur. Azure Dev Spaces, AKS kümesi veya diğer geliştiricileri etkilemeden mikro hizmet mimarinizin bölümlerini bağımsız olarak yalıtarak güncelleştirmenin bir yolunu sağlar.

Azure Dev Spaces iş akışı örneği

Azure Dev Spaces:

  • Yerel makine kurulum süresini ve kaynak gereksinimlerini en aza indirme
  • Ekiplerin daha hızlı bir şekilde yeniden çalışmalarına izin verme
  • Ekip için gereken tümleştirme ortamlarının sayısını azaltma
  • Geliştirme/test sırasında dağıtılmış bir sistemde belirli hizmetleri taklit etme ihtiyacı ortadan kaldırılıyor

Azure Dev Spaces hakkında daha fazla bilgi Azure Dev Spaces

Azure Sanal Makineler

Bulutta çalıştırmak için önemli değişiklikler gerektiren mevcut bir App Service, buluta geçerek basitleştirmek için Sanal Makineler'i seçebilirsiniz. Ancak, VM'leri doğru yapılandırmak, güvenliğini sağlamak ve bakımını yapmak, vm'lere kıyasla çok daha fazla zaman ve AZURE APP SERVICE. Azure sanal makinelerini düşünüyorsanız, VM ortamınızı düzeltme eki uygulamak, güncelleştirmek ve yönetmek için gereken devam eden bakım çabasıyla karşılaştığınızdan emin olun. Azure sanal makineleri hizmet olarak altyapı (IaaS) olduğundan App Service PaaS olur. ayrıca, Kapsayıcılar için Web App için uygulamanızın Windows kapsayıcı olarak dağıtılmasının senaryonuz için uygun bir seçenek olabileceğini de göz önünde bulundurmanız gerekir.

Mantıksal süreçler

Uygulamanın geri kalanından ayrışlabilecek tek tek mantıksal işlemler, Azure Işlevlerine "sunucusuz" bir şekilde dağıtılabilir. Azure Işlevleri, belirli bir sorun için ihtiyaç duyduğunuz kodu, uygulamayı veya altyapıyı çalıştırmak için herhangi bir endişelenmeden yazmanızı sağlar. C, F, Node.js, Python ve PHP dahil olmak üzere çeşitli programlama dilleri arasından seçim yapabilirsiniz. Bu, # # eldeki görev için en üretken dili seçmenizi sağlar. Bulut tabanlı çoğu çözüm gibi, yalnızca kullandığınız süre için ödeme yaparsınız ve gerektiğinde ölçeği ölçeklendirmek için Azure Işlevlerine güvenebilirsiniz.

Veriler

Azure çok çeşitli veri depolama seçenekleri sunarak uygulamanızın söz konusu veriler için uygun veri sağlayıcısını kullanabilmesi için.

işlem, ilişkisel veriler için Azure SQL veritabanları en iyi seçenektir. yüksek performanslı okuma verileri için, Azure SQL Veritabanı tarafından desteklenen bir reds önbelleği iyi bir çözümdür.

yapılandırılmamış JSON verileri, SQL Veritabanı sütunlarından blob 'lara veya Azure Depolama tablolara Azure Cosmos DB için çeşitli yollarla depolanabilir. bu Azure Cosmos DB, en iyi sorgulama işlevlerini sunmaktadır ve sorgulamayı desteklemesi gereken çok sayıda JSON tabanlı belge için önerilen seçenektir.

uygulama davranışını düzenlemek için kullanılan geçici komut veya olay tabanlı veriler, azure Service Bus veya azure Depolama kuyruklarını kullanabilir. Azure Service Bus daha fazla esneklik sunar ve uygulamalar içinde ve arasında önemsiz olmayan mesajlaşma için önerilen hizmettir.

Mimari önerileri

Uygulamanızın gereksinimleri mimarisini dikte etmelidir. Kullanılabilir birçok farklı Azure hizmeti vardır. Doğru birinin seçilmesi önemli bir karardır. Microsoft, yaygın senaryolar için optimize edilmiş tipik mimarilerin tanımlanmasına yardımcı olmak için bir başvuru mimarileri Galerisi sunar. Uygulamanızın gereksinimlerine yakın bir şekilde eşleşen bir başvuru mimarisi bulabilir veya en azından bir başlangıç noktası sunar.

Şekil 11-1, örnek bir başvuru mimarisini gösterir. Bu diyagramda, pazarlama için en iyi duruma getirilmiş Sitecore içerik yönetimi sistem web sitesi için önerilen bir mimari yaklaşımı açıklanmaktadır.

Şekil 11-1

Şekil 11-1. Sitecore pazarlama web sitesi başvuru mimarisi.

Başvurular – Azure barındırma önerileri