Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, belirli bir zaman çerçevesi içinde erişilebilir olması gereken büyük hacimli verilerle ilgilenen bir web uygulaması için yüksek kullanılabilirlik çözümü sunulur. Çözüm, birincil veri deposu olarak Azure Cosmos DB'yi ve verileri düşük maliyetli ikincil depolama alanına çoğaltmak için Azure Cosmos DB değişiklik akışını kullanmayı içerir. Belirtilen süre dolduğunda, verileri Azure Cosmos DB'den silmek için Azure İşlevleri kullanılır. İkincil depolamadaki veriler, denetim ve analiz amacıyla diğer çözümleri etkinleştirmek için daha uzun bir süre kullanılabilir durumda kalır. Çözüm ayrıca verileri farklı veri hizmetlerine çoğaltarak yüksek dayanıklılık sağlar.
Mimari
Bu mimarinin bir Visio dosyasını indirin.
Veri akışı
- İstemci, Microsoft Entra Kimliği ile kimlik doğrulaması yapar ve Azure Uygulaması Hizmetinde barındırılan web uygulamalarına erişim verilir.
- Güvenlik duvarı ve katman 7 yük dengeleyici olan Azure Front Door, bölgesel bir kesinti olduğunda kullanıcı trafiğini bekleme bölgesine değiştirir.
- App Service web sitelerini ve RESTful web API'lerini barındırıyor. Tarayıcı istemcileri, API'leri kullanan Zaman Uyumsuz JavaScript ve XML (AJAX) uygulamalarını çalıştırır.
- Web API'leri, arka plan görevlerini işlemek için İşlevler tarafından barındırılan koda sorumluluk devreder. Görevler Azure Kuyruk Depolama kuyruklarında kuyruğa alınır.
- Kuyruğa alınan iletiler, arka plan görevlerini gerçekleştiren işlevleri tetikler.
- Azure Yönetilen Redis, işlevler için veritabanı verilerini önbelleğe alır. Çözüm, önbelleği kullanarak verileri yavaş değiştirmek için veritabanını boşaltır ve işlev uygulamalarını ve web uygulamalarını hızlandırır.
- Azure Cosmos DB, yakın zamanda oluşturulan verileri barındırıyor.
- Azure Cosmos DB, değişiklikleri çoğaltmak için kullanılabilecek bir değişiklik akışı oluşturur.
- İşlev uygulaması değişiklik akışını okur ve değişiklikleri Azure Tablo Depolama tablolarında çoğaltır. Başka bir işlev uygulaması, süresi dolan verileri Azure Cosmos DB'den düzenli aralıklarla kaldırır.
- Tablo Depolama, düşük maliyetli depolama sağlar.
Bileşenler
- Microsoft Entra ID , şirket içi bir dizinle eşitlenebilen bir kimlik ve erişim yönetimi hizmetidir. Bu mimaride, kullanıcıların kimliğini doğrular ve App Service'te barındırılan web uygulamalarına erişim verir.
- Azure DNS , Etki Alanı Adı Sistemi (DNS) etki alanları için yüksek kullanılabilirliğe sahip bir barındırma hizmetidir. Bu mimaride Azure DNS, Azure Front Door aracılığıyla kullanıma sunulan web uygulaması için VE DNS çözümlemesi sağlar.
- Azure Front Door güvenli bir içerik teslim ağı ve yük dengeleyicidir. Bu mimaride içerik teslimi hızlandırır, yük devretme özellikleri sağlar ve uygulamaları siber tehditlere karşı korur.
- App Service , web uygulamaları oluşturmaya, dağıtmaya, barındırmaya ve ölçeklendirmeye yönelik tam olarak yönetilen bir hizmettir. .NET, .NET Core, Node.js, Java, Python veya PHP kullanarak uygulama oluşturabilirsiniz. Uygulamalar kapsayıcılarda veya Windows veya Linux'ta çalıştırılabilir. Ana bilgisayar geçişinde, ön uç ekranlarını veya web arabirimini HTTP tabanlı REST API'leri olarak kodlayabilirsiniz. Bunları ayrıştırabilir ve mikro hizmet tabanlı bir sistemi düzenlemeleri için durum bilgisi olmayan hale getirebilirsiniz. Web API'leri hakkında daha fazla bilgi için bkz. RESTful web API'si tasarımı. Bu mimaride App Service, uygulama için web arabirimini ve REST API'lerini barındırıyor.
- İşlevler , uygulama altyapısı oluşturmak zorunda kalmadan işlevler olarak adlandırılan küçük kod parçalarını çalıştırmak için bir ortam sağlar. Toplu verileri işlemek, sistemleri tümleştirmek, Nesnelerin İnterneti (IoT) cihazlarıyla çalışmak ve basit API'ler ve mikro hizmetler oluşturmak için kullanabilirsiniz. Mikro hizmetlerle, Azure hizmetlerine bağlanan ve her zaman güncel kalan sunucular oluşturabilirsiniz. Bu mimaride İşlevler, verileri çoğaltma ve süresi dolan kayıtları silme gibi arka plan görevlerini işler.
-
Azure Depolama , veriler, uygulamalar ve iş yükleri için yüksek düzeyde ölçeklenebilir ve güvenli bulut hizmetleri kümesidir. Ana bilgisayar iş yüklerini geçirmek için etkili bir araç olarak hizmet veren Azure Dosyalar'ı içerir.
- Kuyruk Depolama , büyük iş yükleri için basit, uygun maliyetli, dayanıklı ileti kuyruğa alma olanağı sağlar. Bu mimaride görev mesajlaşması için Kuyruk Depolama kullanılır.
- Tablo Depolama , çok büyük yarı yapılandırılmış veri kümeleri kullanan hızlı geliştirme için kullanılan bir NoSQL anahtar-değer deposudur. Tablolar şemasızdır ve ihtiyaçlar değiştikçe kolayca uyarlanır. Erişim, birçok uygulama türü için hızlı ve uygun maliyetlidir ve genellikle diğer anahtarlı depolama türlerinden daha düşük maliyetlidir. Bu mimari, Azure Cosmos DB'de verilerin eşitlenmiş ve yeniden yapılandırılmış bir kopyasını depolamak için Tablo Depolama'yı kullanır.
- Azure Yönetilen Redis , işlem kaynakları arasında veri ve durum paylaşımı için tam olarak yönetilen bir bellek içi önbelleğe alma hizmeti ve ileti aracısıdır. Yüksek aktarım hızına sahip çevrimiçi işlem işleme (OLTP) uygulamalarını ölçeklendirilecek ve Azure Yönetilen Redis gibi bellek içi bir veri deposundan yararlanacak şekilde tasarlayarak performansını geliştirebilirsiniz. Bu mimaride, Azure Yönetilen Redis sık kullanılan verilere erişimi hızlandırır ve bu da hem işlev uygulamaları hem de web uygulamaları için performansı artırır.
- Azure Cosmos DB , çözümlerinizin herhangi bir sayıda coğrafi bölgede aktarım hızını ve depolama alanını esnek ve bağımsız olarak ölçeklendirmesini sağlayan, küresel olarak dağıtılmış, çok modelli bir veritabanıdır. Kapsamlı hizmet düzeyi sözleşmeleri (SLA) ile aktarım hızı, gecikme süresi, kullanılabilirlik ve tutarlılık garantileri sağlar. Bu mimaride, Azure Cosmos DB son verileri depolar ve Güncelleştirmeleri Tablo Depolama'ya çoğaltmak için kullanılan bir değişiklik akışı yayar.
Alternatifler
- Azure Traffic Manager , gelen DNS isteklerini seçtiğiniz trafik yönlendirme yöntemlerine göre genel Azure bölgelerine yönlendirir. Ayrıca otomatik yük devretme ve performans yönlendirmesi sağlar.
- Azure Content Delivery Network , hızlı yanıt için uç sunuculardaki statik içeriği önbelleğe alır ve dinamik içerik için yanıtı geliştirmek için ağ iyileştirmelerini kullanır. Content Delivery Network özellikle kullanıcı tabanı genel olduğunda kullanışlıdır.
- Azure Container Apps , modern uygulamaları büyük ölçekte derlemek ve dağıtmak için kullanılan, tam olarak yönetilen, sunucusuz bir kapsayıcı hizmetidir.
- Azure Kubernetes Service (AKS), kapsayıcılı uygulamaları dağıtmak ve yönetmek için tam olarak yönetilen bir Kubernetes hizmetidir. Bileşenleri isteğe bağlı olarak bağımsız olarak ölçeklendirilen bir mikro hizmet mimarisi uygulamak için bunu kullanabilirsiniz.
- Azure Container Instances , altyapıyı yönetmek zorunda kalmadan görevleri çalıştırmak için hızlı ve basit bir yol sağlar. Geliştirme sırasında veya zamanlanmamış görevleri çalıştırmak için kullanışlıdır.
- Azure Service Bus , basit karma tümleştirme için güvenilir bir bulut mesajlaşma hizmetidir. Bu mimaride Kuyruk Depolama yerine kullanılabilir. Daha fazla bilgi için bkz . Depolama kuyrukları ve Service Bus kuyrukları - karşılaştırmalı ve karşıt.
Senaryo ayrıntıları
Bu çözüm, web uygulamasının kullandığı büyük hacimli verileri depolamak için Azure Cosmos DB'yi kullanır. Çok büyük miktarda veriyi işleyen web uygulamaları, Azure Cosmos DB'nin aktarım hızını ve depolamayı esnek ve bağımsız olarak ölçeklendirme özelliğinden yararlanır.
Bir diğer önemli çözüm bileşeni de Azure Cosmos DB değişiklik akışıdır. Veritabanında değişiklik yapıldığında, değişiklik akışı akışı olay temelli İşlevler tetikleyicisine gönderilir. Ardından bir işlev çalıştırılır ve düşük maliyetli bir depolama çözümü sağlayan Tablo Depolama tablolarında yapılan değişiklikler çoğaltılır. Ayrıca, analiz bölgelerine veri getirmek için Azure Data Factory işlem hatlarını veya Microsoft Fabric Data Factory'yi kullanarak daha geniş bir aşağı akış veri hareketini de düzenleyebilirsiniz.
Web uygulamasının verilere yalnızca sınırlı bir süre boyunca ihtiyacı vardır. Çözüm, maliyetleri daha da azaltmak için bu olgudan yararlanır. Özellikle, başka bir işlev Azure Cosmos DB'de süresi dolan verileri düzenli aralıklarla çalıştırır ve siler. İşlevler tetiklenmenin yanı sıra belirli zamanlarda çalışacak şekilde zamanlanabilir.
Olası kullanım örnekleri
Mimari, aşağıdaki tüm uygulamalar için uygundur:
- Çok büyük miktarda veri kullanır.
- Gerektiğinde verilerin her zaman kullanılabilir olmasını gerektirir.
- Süresi dolan verileri kullanır.
Örnekler şunlardır:
- Fiziksel konumlardaki canlı veri akışları ve algılayıcılar aracılığıyla müşteri deneyimini kişiselleştirin ve etkileşimi yönlendirin.
- Müşteri harcama alışkanlıklarını ve alışveriş davranışlarını izleyin.
- İyileştirilmiş verimlilik ve güvenlik için araç konumu, performansı ve sürücü davranışı hakkında veri toplayarak araç filolarını takip edin.
- Hava durumunu tahmin edin.
- Akıllı trafik sistemleri sunma veya akıllı trafik sistemleri uygulama ya da trafiği izlemek için akıllı teknoloji kullanma.
- Üretim IoT verilerini analiz etme.
- Akıllı ölçüm verilerini görüntüleme veya ölçüm verilerini izlemek için akıllı teknoloji kullanma.
Dikkat edilmesi gereken noktalar
Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanılabilecek bir dizi yol gösteren ilke olan Azure İyi Tasarlanmış Çerçeve'nin yapı taşlarını uygular. Daha fazla bilgi için bkz . Microsoft Azure İyi Tasarlanmış Çerçeve.
- Bu çözümü uyguladığınızda ve sürdürürken ek maliyetler doğurabilirsiniz.
- Çoğaltma için değişiklik akışının kullanılması, çekirdek uygulamada çoğaltmayı yapmaktan daha az kod bakımı gerektirir.
- Mevcut verileri geçirmeniz gerekir. Geçiş işlemi, eski verileri depolama hesaplarına kopyalamak için geçici betikler veya yordamlar gerektirir. Verileri geçirirken, geçiş ilerleme durumunu izlemek için zaman damgaları ve kopyalama bayrakları kullandığınızdan emin olun.
- Azure Tablo ikincil depolama alanından girdilerin silinmesini önlemek için, işlevleriniz Azure Cosmos DB'den girdileri sildiğinde oluşturulan silme akışlarını yoksayı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:
- Nabil Siddiqui | Bulut Çözümü Mimarı - Dijital ve Uygulama yeniliği
Diğer katkıda bulunanlar:
- Filipe Moreira | Bulut Çözümü Mimarı
Sonraki adımlar
- Web-Kuyruk-Çalışanı mimari stili
- Coğrafi olarak dağıtılmış bir uygulama tasarlama
- Azure Cosmos DB ile verilerinizi küresel ölçekte dağıtma
- Azure Cosmos DB için uygun API'yi seçin
- Tablo için Azure Cosmos DB ile NoSQL verilerini depolama ve verilere erişme
- Azure Cosmos DB'de NoSQL verileriyle çalışma
- Gerçek dünyadan bir örnek kullanarak Azure Cosmos DB'de verileri modelleme ve bölümleme
- Şirket içi ortamda veya bulutta yer alan verilerinizi Azure Cosmos DB’ye geçirme seçenekleri
- Azure Cosmos DB’ye yüzlerce terabaytlık verileri geçirme
- Azure Cosmos DB'de akış tasarım desenlerini değiştirme
- Azure Cosmos DB ve Azure İşlevleri ile sunucusuz olay tabanlı mimariler
- Azure Data Factory'ye giriş
- Azure Data Factory'de veri taşıma ve dönüştürmeyi düzenleme
- Microsoft Fabric'te Data Factory ile veri tümleştirmesi