Düzenle

Aracılığıyla paylaş


Azure kullanarak altyapı yeniden yapılandırmayı otomatikleştirme

Azure Container Instances
Azure Application Gateway
Azure Functions
Azure Monitor

Kapsayıcıya alma, uygulama modernleştirmesi için yaygın bir yaklaşımdır. Gelişmiş iş yükleri için Azure Kubernetes Service'i veya basit bir web uygulaması gibi basit kapsayıcı iş yükleri için Azure Container Instances'ı kullanmayı düşünebilirsiniz. Bu makalede, Application Gateway güvenlik duvarı olarak kullanıldığında Kapsayıcı Örnekleri için altyapı düzeyinde sunucusuz otomasyon uygulamaya odaklanılır.

Yaygın bir senaryoyla başlayacağız. Azure kapsayıcı örneklerinin güvenliğini sağlamak için Azure Container Instances'ta kapsayıcı gruplarını kullanabilirsiniz. Kapsayıcı gruplarını kullanarak, kapsayıcıların bir Azure özel uç noktası aracılığıyla diğer özel kaynaklara veya diğer Azure hizmetlerine erişebilmesi için bir sanal ağda Azure kapsayıcı örneklerini dağıtabilirsiniz. Web uygulamaları barındıran müşteriler için, Azure Container Instances'ı arka uç havuzu olarak kullanırken gelen trafiğin önüne geçmek için Azure Uygulaması Lication Gateway gibi bir web uygulaması güvenlik duvarı kullanmak yaygın bir uygulamadır. Bu makale harika bir başlangıç noktasıdır: Kapsayıcı grubu için statik IP adresini kullanıma sunma.

Bu yaklaşımda olası bir zorluk, arka uç havuzu olarak statik olmayan bir özel IP adresi kullanmaktır. Özel IP bakım sırasında döndürülerek bulut yöneticisinin arka uç havuzunu el ile yeniden yapılandırması gerekebilir. Ölçeklendirme için yeni kapsayıcılar eklenirse, trafiğin doğru arka uç havuzuna yönlendirildiğinden emin olmak için yöneticinin de yeniden yapılandırma yapması gerekir. Kapsayıcı gruplarında canlılık yoklamaları ve hazır olma yoklamaları desteklenmez ve bu da iş yükü kapalı kalma süresini belirlemeyi zorlaştırır.

Bu makalede, izleme için Uygulama Analizler ve Azure İzleyici'nin benimsenmesi ve özel IP'lerin otomatik olarak döndürülmesi için Azure İşlevleri kullanılması yoluyla bu yaygın sorunları gidermeye yönelik iyileştirmeler incelenmektedir. Bu yaklaşım, iş yükünün yedekliliğini artırır.

Olası kullanım örnekleri

Bu mimari en iyi sonucu aşağıdakiler için kullanır:

  • Sunucusuz dağıtım.
  • Otomasyon ile bulutta yerel bir iş yükü için minimum işlem.
  • Gelişmiş kapsayıcı düzenlemesi gerektirmeyen basit bir kapsayıcı iş yükü.
  • Otomatik yeniden yapılandırma ile son derece yedekli, dış kullanıma yönelik bir iş yükü.
  • Azure özel uç noktaları tarafından kullanıma sunulanlar gibi özel kaynaklara erişim gerektiren bir kapsayıcı iş yükü.

Mimari

Azure Container Instances için özel bir uç nokta tarafından erişilen Azure Cosmos DB'nin gösterildiği akış diyagramı. Azure Uygulaması lication Gateway tarafından önlenmiştir.

Bu mimarinin bir Visio dosyasını indirin.

Veri akışı

Bölüm 1: Tipik web uygulaması trafik akışı

1a. Application Gateway, arka uç iş yüküne gelmeden önce genel kullanıma yönelik trafiği önleyen web uygulaması güvenlik duvarı özelliğine sahiptir. Application Gateway genel IP adresini kullanıma sunduğundan Azure DDoS Koruması başka bir koruma katmanı sağlar.

1b. Application Gateway'in arka uç havuzu, bir kapsayıcı grubundaki Azure kapsayıcı örneğinin özel IP adresiyle yapılandırılır. Kapsayıcı gruplarındaki Azure kapsayıcı örnekleri tam etki alanı adlarıyla (FQDN) birlikte gelmez, bu nedenle IP adresinin kullanılması gerekir.

1c. Azure Container Instances'taki kapsayıcılar, özel bağlantılar aracılığıyla Azure Cosmos DB gibi özel kaynakları kullanabilir.

Bölüm 2: Otomasyon geliştirmeleri

2a. Application Gateway, Kapsayıcı Örnekleri'ndeki kapsayıcı gruplarının canlılığı veya hazır olma yoklamalarını desteklemediği düşünüldüğünde Azure kapsayıcı örnekleri için canlılık araştırması olarak kullanabileceğiniz iyi durumda bir konak sayısı ölçümü içerir.

2b. Uygulama Analizler, özel bir iş parçacığı aracılığıyla izlenmesi için Uygulama Analizler'ne gönderilebilen kalp atışları da dahil olmak üzere diğer ölçümleri toplamak için kapsayıcılarda kullanılır.

2c. Uyarıları, 2a ve 2b adımlarında tanımlanan eşik düzeylerine göre yapılandırabilirsiniz. Örneğin, sisteminizin arka uç havuzu olarak çalışan üç kapsayıcı örneği olduğunu varsayalım. İyi durumdaki konak sayısı 3'ten az olduğunda tetiklenebilir bir uyarı yapılandırabilirsiniz. Uyarı kurallarından oluşan bir eylem grubunda, özel eylemi tetikleyen eylem türü olarak bir Azure işlevi kullanabilirsiniz.

2d. Azure işlevinde, mevcut kapsayıcı örneklerinin yapılandırmasını almak ve aynı örnekleri yeniden oluşturmak için bir Azure SDK kullanılır. Bu işlev, 2c. adımda tanımlanan uyarı tarafından tetikleniyor. Bu işlevin çalıştırılması, kurulumun karmaşıklık düzeyine bağlı olarak uzun sürebilir. Azure işlevleri zaman aşımına uyabilir, böylece azure Dayanıklı İşlevler kullanarak uzun süre çalışan işlemleri işleyebilir ve durum güncelleştirmelerini alabilirsiniz.

Bileşenler

Otomasyon

  • Azure Dayanıklı İşlevler: Azure İşlevleri farklı olarak Dayanıklı İşlevler durum bilgisi vardır ve durum bilgisi olan çeşitli iş akışı desenlerini destekler. Bu örnekte, monitör deseni kullanılır.
  • Azure SDK'ları: Azure SDK'ları, Azure hizmetleriyle tercih ettiğiniz programlama dilinde etkileşimde bulunurken kullanabileceğiniz kitaplık koleksiyonlarıdır. SDK'lar, otomasyon gerçekleştiren mantığı tümleştirme konusunda size daha fazla esneklik sağlar.

İzleme

  • Azure İzleyici Ölçümleri: Azure İzleyici'nin bu özelliği, Azure hizmetlerinden önceden tanımlanmış sayısal verileri toplar.
  • Eylem grupları: Eylem grubu, kaynak sahibi tarafından tanımlanan bildirim tercihleri koleksiyonudur. Tetiklenen uyarılara göre bildirim kanalları ve eylemler tanımlayabilirsiniz.

  • Azure DDoS Koruması: Azure DDoS (Temel) Koruması ücretsizdir ve tüm genel IP'lerde etkinleştirilir. Azure DDoS Ağ Koruması, günlükleri diğer konumlara alma ve DDoS Koruması Hızlı Yanıt ekibiyle etkileşim kurma gibi daha fazla özellik sağlar.
  • Azure Uygulaması lication Gateway: Azure Web Uygulaması Güvenlik Duvarı, genel kullanıma yönelik uygulamalar için SQL ekleme ve XSS saldırıları gibi açıklara karşı koruma sağlar.
  • Azure Özel Bağlantı: Azure Özel Bağlantı, ağ erişim güvenliğini daha da geliştirmek için Microsoft omurgası üzerindeki özel bir uç nokta üzerinden Azure PaaS hizmetlerine erişim sağlar.

Uygulama

  • Azure Container Instances: Azure Container Instances, başka bir altyapı ayarlamanıza gerek kalmadan kapsayıcı görüntülerini sorunsuz bir şekilde çalıştırır. Gelişmiş kapsayıcı düzenlemesi için Azure Kubernetes Service'i (AKS) göz önünde bulundurmalısınız.
  • Azure Cosmos DB: Azure Cosmos DB, SQL, Cassandra ve MongoDB gibi birden çok platformu destekleyen tam olarak yönetilen bir NoSQL veritabanıdır.
  • Azure Key Vault: Geliştiriciler en iyi güvenlik uygulaması olarak bağlantı dizesi uygulama kaynak kodunda düz metin olarak depolamaz. Azure Key Vault, gelişmiş güvenlikle gizli dizileri depolamak için merkezi bir konum görevi görür. Uygulamalar, gelişmiş güvenlikle gerekli anahtarları alabilir.

Alternatifler

Önceki senaryo, Application Gateway için bir arka uç havuzunu güncelleştirir. Alternatif olarak, Application Gateway için hedef arka uç olarak bir Azure özel DNS bölgesi kullanabilir ve Application Gateway'de değişiklik yapmak yerine kaydı güncelleştirmek için Azure işlevlerini kullanabilirsiniz. Bu alternatif dağıtım süresini kısaltacak. Öte yandan Application Gateway ölçümleri, DNS tarafından soyutlandığı için konak sayısını tanımlayamayacaktır. Bu nedenle bu otomasyonun Doğrudan Uygulama Analizler veya Azure İzleyici gibi bir uygulama izleme çözümü aracılığıyla tetiklenmesi gerekir.

Azure, Azure Kubernetes Service, Azure Uygulaması Service ve Azure Container Apps gibi kapsayıcı tabanlı iş yüklerini barındırmak için birden çok seçenek sunar.

Azure Kubernetes Service, Kapsayıcı Örnekleri'nde bulunmayan Hizmet kaynağı gibi gelişmiş kapsayıcı düzenleme ve ağ özellikleri sağlar. Bu başvuru mimarisi bu gereksinimi karşılar.

App Service kapsayıcı iş yüklerini de barındırabilir ve App Service Ortamı geliştiricilerin App Service'i Azure Sanal Ağ'de dağıtmasına olanak tanır. App Service ile karşılaştırıldığında Kapsayıcı Örneklerinin fiyatlandırma yapısı, küçük iş yükleri için cazip hale getirir.

Azure Container Apps, Kubernetes tabanlı sunucusuz bir kapsayıcı platformudur. Geliştiricilerin tüm yerel Kubernetes API'lerine ve küme yönetimine doğrudan erişim gerektirmeyen Kubernetes stilinde bir uygulama oluşturmasına olanak tanır. Azure Container Apps, en iyi yöntemleri temel alarak tam olarak yönetilen bir deneyim sağlar.

Dikkat edilmesi gereken noktalar

Kullanılabilirlik

Kapsayıcı gruplarında canlılık ve hazır olma yoklamaları desteklenmediğinden, izleme için Azure İzleyici Ölçümlerini ve Azure Uygulaması Analizler kullanmanızı öneririz. Kapsayıcı durumu ve çalışma süresi, bir sistemin uçtan uca çalışır durumda olup olmadığını belirlemek için belirlenimci yaklaşımlar değildir.

Operations

Azure Dayanıklı İşlevler, Kapsayıcı Örneklerinde bir hata olduğunda veya kapsayıcı grubunun özel IP'sinin değişmesi durumunda altyapıyı yeniden yapılandırmak için kullanılır. Belgelerde belirtildiği gibi sağlama işlemi biraz daha uzun sürer. Kapsayıcılar zamanında hazır değilse kullanıcılar en düşük kapalı kalma süresiyle karşılaşabilir.

Bu mimari bir dayanıklılık katmanı ekler. Ancak yine de uygulamada izlemeyi yapılandırmanızı ve platform hataları için Azure durumunu izlemenizi öneririz.

Ölçeklenebilirlik

Kapsayıcılar oluşturulduğunda CPU ve bellek gereksinimleri tanımlanır, bu nedenle dikey ölçeklendirmeyi doğrudan gerçekleştiremezsiniz. Kapsayıcı grubunu yatay olarak ölçeklendirmek için kapsayıcılar ekleyebilirsiniz. Ancak kapsayıcı grubundaki her kapsayıcının bir özel IP tüketeceğini, dolayısıyla sınırın sağlanan alt ağ boyutu olacağını unutmayın.

Ölçeklendirme için dikkat edilmesi gereken bir diğer önemli nokta da uygulamanın durumudur. İsteğe bağlı ölçeklendirmenin uygulamada veri kaybı oluşturmadığından emin olmak için uygulamanın durumu yerel olarak veya Redis için Azure Cache gibi dış hizmetleri kullanarak işlemesi gerekir.

Güvenlik

Yapılandırma doğru şekilde ayarlanmazsa PaaS'ı bir sanal ağa dağıtma (VNet ekleme) özelliği güvenliği geliştirmez. Sanal ağ ekleme, yöneticilere daha fazla ağ denetimi sağlayarak daha sıkı ağ güvenlik grupları ve genel kullanıma sunulmayan kaynakların kullanımı gibi avantajlar sağlar.

Özel Bağlantı sanal ağa özel bir uç nokta oluşturur ve bu da uygulamanın azure paas'a özel ip adresi üzerinden doğrudan erişmesine olanak tanır. Yöneticiler aynı zamanda ilgili Azure PaaS'a kimlerin erişebileceğini daha fazla denetleyebiliyor.

Kapsayıcı görüntülerini Azure Container Registry'de depolarsanız, kapsayıcı görüntüsü güvenlik açığı taramaları gerçekleştirmek üzere kapsayıcı kayıt defterleri için Microsoft Defender'ı etkinleştirebilirsiniz.

Fiyatlandırma

Azure kaynaklarının maliyetlerini tahmin etmek için Azure fiyatlandırma hesaplayıcısını kullanın.

Önceki uygulamanın bu örneğine bakın.

Katkıda Bulunanlar

Bu makale Microsoft tarafından yönetilir. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.

Asıl yazar:

Sonraki adımlar

Mimarilerimize göz atın:

İlgili kılavuz: