Bu makalede, tam olarak yönetilen Azure veri hizmetlerini kullanan bir akış çözümü örneği sunulur.
Mimari
Bu mimarinin Visio dosyasını indirin.
İş Akışı
Apache Kafka için Event Hubs özelliği, Kafka üreticilerinden gelen olayları akışa alır.
Apache Spark olayları tüketir. AKS, Apache Spark işleri için yönetilen bir ortam sağlar.
Apache Cassandra için Azure Cosmos DB kullanan bir uygulama Cassandra'ya olaylar yazar. Bu veritabanı olaylar için bir depolama platformu görevi görür. AKS, Cassandra'ya yazan mikro hizmetleri barındırıyor.
Azure Cosmos DB'nin değişiklik akışı özelliği olayları gerçek zamanlı olarak işler.
Zamanlanmış uygulamalar, Cassandra'da depolanan olaylar üzerinde toplu işlemeyi çalıştırır.
Başvuru verilerinin depoları olay bilgilerini zenginleştirir. Toplu iş odaklı uygulamalar zenginleştirilmiş olay bilgilerini PostgreSQL'e yazar. Tipik başvuru veri depoları şunlardır:
- Verileri Parquet gibi açık biçimlerde depolayan Azure Data Lake Depolama.
- PostgreSQL ve MySQL gibi açık kaynak ilişkisel veri depoları.
Toplu iş odaklı bir uygulama Cassandra verilerini işler. Bu uygulama, işlenen verileri PostgreSQL için Azure Veritabanı depolar. Bu ilişkisel veri deposu, zenginleştirilmiş bilgi gerektiren aşağı akış uygulamalarına veri sağlar.
Raporlama uygulamaları ve araçları PostgreSQL veritabanı verilerini analiz eder. Örneğin Power BI, PostgreSQL için Azure Veritabanı bağlayıcısını kullanarak veritabanına bağlanır. Bu raporlama hizmeti daha sonra verilerin zengin görsellerini görüntüler.
Redis için Azure Cache bellek içi bir önbellek sağlar. Bu çözümde, önbellek kritik olaylarla ilgili verileri içerir. Bir uygulama verileri önbelleğe depolar ve önbellekten veri alır.
Web siteleri ve diğer uygulamalar, yanıt sürelerini geliştirmek için önbelleğe alınan verileri kullanır. Bazen veriler önbellekte kullanılamaz. Bu gibi durumlarda, bu uygulamalar Azure Cosmos DB'de Cassandra'dan veri almak için edilgen önbellek desenini veya benzer bir stratejiyi kullanır.
Bileşenler
Event Hubs , saniyede milyonlarca olayı işleyebilen tam olarak yönetilen bir akış platformudur. Event Hubs, yaygın olarak kullanılan bir açık kaynak akış işleme platformu olan Apache Kafka için bir uç nokta sağlar. Kuruluşların uç nokta özelliğini kullandığında, akış işleme için Kafka kümeleri oluşturmaları ve bakımını yapmaları gerekmez. Bunun yerine, Event Hubs'ın sunduğu tam olarak yönetilen Kafka uygulamasından yararlanabilirler.
Azure Cosmos DB , çok ana şablonlu çoğaltma sunan tam olarak yönetilen bir NoSQL ve ilişkisel veritabanıdır. Azure Cosmos DB birçok veritabanı, dil ve platform için açık kaynak API'leri destekler. Örnekler şunları içerir:
Apache Cassandra için Azure Cosmos DB aracılığıyla Apache Cassandra araçlarını, dillerini ve sürücülerini kullanarak Azure Cosmos DB verilerine erişebilirsiniz. Apache Cassandra, yoğun yazma yoğunluklu iş yükleri için uygun olan açık kaynaklı bir NoSQL veritabanıdır.
AKS yüksek oranda kullanılabilir, güvenli ve tam olarak yönetilen bir Kubernetes hizmetidir. Kubernetes , kapsayıcılı iş yüklerini yönetmek için hızla gelişen bir açık kaynak platformudur. AKS , Apache Spark gibi açık kaynaklı büyük veri işleme altyapılarını barındırır. AKS kullanarak yönetilen bir ortamda büyük ölçekli akış işleme işleri çalıştırabilirsiniz.
PostgreSQL için Azure Veritabanı, tam olarak yönetilen bir ilişkisel veritabanı hizmetidir. PostgreSQL için yüksek kullanılabilirlik, elastik ölçeklendirme, düzeltme eki uygulama ve diğer yönetim özellikleri sağlar. PostgreSQL yaygın olarak benimsenen bir açık kaynak ilişkisel veritabanı yönetim sistemidir.
Redis için Azure Cache, Redis yazılımını temel alan bir bellek içi veri deposu sağlar. Redis popüler bir açık kaynak bellek içi veri deposudur. Oturum depoları, içerik önbellekleri ve diğer depolama bileşenleri, performansı ve ölçeklenebilirliği geliştirmek için Redis kullanır. Redis için Azure Cache, tam olarak yönetilen bir teklif olarak açık kaynak Redis özellikleri sağlar.
Alternatifler
Bu çözümdeki açık kaynak uyumlu ürün ve hizmetleri başkalarıyla değiştirebilirsiniz. Azure'da kullanılabilen açık kaynak hizmetleri hakkında ayrıntılı bilgi için bkz . Azure'da açık kaynak.
Senaryo ayrıntıları
Açık kaynak altyapıları çalıştıran tam olarak yönetilen Azure veri hizmetleri şu akış çözümünü oluşturur:
- Azure Event Hubs, akış alımı için bir Kafka uygulaması sunar.
- Azure Cosmos DB, Cassandra'da olay depolamayı destekler.
- Azure Kubernetes Service (AKS), akış işleme için Kubernetes mikro hizmetlerini barındırıyor.
- PostgreSQL için Azure Veritabanı içindeki ilişkisel veri depolamayı yönetirPostgreSQL.
- Redis için Azure Cache yönetir Redis bellek içi veri depoları.
Açık kaynak teknolojileri birçok avantaj sunar. Örneğin, kuruluşlar açık kaynak teknolojilerini kullanarak şunları yapabilir:
- Mevcut iş yüklerini geçirme.
- Geniş açık kaynak topluluğuna dokunun.
- Satıcı kilitlemeyi sınırlayın.
Azure araçları ve hizmetleri, açık kaynak teknolojilerini erişilebilir hale getirerek kuruluşların bu avantajlardan yararlanmalarına ve tercih ettikleri çözümleri geliştirmelerine yardımcı olur.
Bu çözüm, tam olarak yönetilen hizmet olarak platform (PaaS) hizmetlerini kullanır. Sonuç olarak, Microsoft düzeltme eki uygulama, hizmet düzeyi sözleşmesi (SLA) bakımı ve diğer yönetim görevlerini işler. Bir diğer avantaj da Azure güvenlik altyapısıyla yerel tümleştirmedir.
Olası kullanım örnekleri
Bu çözüm çeşitli senaryolar için geçerlidir:
- Açık kaynak teknolojileri kullanan modern akış çözümleri oluşturmak için Azure PaaS hizmetlerini kullanma
- Açık kaynak akış işleme çözümlerini Azure'a geçirme
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.
En iyi yöntemleri göz önünde bulundurarak her hizmeti tasarlayıp uygulayın. Her hizmetle ilgili yönergeler için Microsoft belge sitesine bakın. Ayrıca aşağıdaki bölümlerde yer alan bilgileri gözden geçirin:
Performans
PostgreSQL için Azure Veritabanı için bağlantı havuzu uygulama. Uygulama içinde bir bağlantı havuzu kitaplığı kullanabilirsiniz. Ya da PgBouncer veya Pgpool gibi bir bağlantı havuzu oluşturucu kullanabilirsiniz. PostgreSQL ile bağlantı kurmak pahalı bir işlemdir. Bağlantı havuzu ile uygulama performansını düşürmeyi önleyebilirsiniz. PgBouncer, PostgreSQL için Azure Veritabanı Esnek Sunucu'da yerleşiktir.
Uygun bir bölümleme stratejisi kullanarak Apache Cassandra için Azure Cosmos DB'yi en iyi performans için yapılandırın. Tabloları bölümlerken tek bir alan birincil anahtarı mı, bileşik birincil anahtar mı yoksa bileşik bölüm anahtarı mı kullanacağınıza karar verin.
Ölçeklenebilirlik
Event Hubs katmanını seçerken akış gereksinimlerinizi dikkate alın:
- 120 MB/sn'den az orta aralıktaki aktarım hızı gereksinimleri için Premium katmanını göz önünde bulundurun. Bu katman akış gereksinimlerini karşılamak için esnek bir şekilde ölçeklendirilir.
- Gigabaytlarlık veri girişi olan üst düzey akış iş yükleri için Ayrılmış katmanı göz önünde bulundurun. Bu katman, garantili kapasiteye sahip tek kiracılı bir tekliftir. Ayrılmış kümelerin ölçeğini artırıp azaltabilirsiniz.
İş yükleriniz öngörülemez ve yüksekse Azure Cosmos DB için otomatik ölçeklendirmeyle sağlanan aktarım hızını göz önünde bulundurun. Azure Cosmos DB'yi el ile sağlanan aktarım hızını veya otomatik ölçeklendirmeyle sağlanan aktarım hızını kullanacak şekilde yapılandırabilirsiniz. Otomatik ölçeklendirme ile Azure, istek birimlerini kullanımınıza göre saniye başına otomatik olarak ve anında ölçeklendirir.
Güvenlik
Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanılmasına karşı güvence sağlar. Daha fazla bilgi için bkz . Güvenlik sütununa genel bakış.
Azure hizmetlerini sanal ağınızın bir parçası yapmak için Azure Özel Bağlantı kullanın. Özel Bağlantı kullandığınızda hizmetler ve ağınız arasındaki trafik, genel İnternet'ten geçmeden Azure omurgası üzerinden akar. Bu çözümdeki Azure hizmetleri, seçili SKU'lar için Özel Bağlantı destekler.
Kuruluşunuzun güvenlik ilkelerini denetleyin. Apache Cassandra için Azure Cosmos DB ile anahtarlar, anahtar alanları ve tablolar gibi kaynaklara erişim sağlar. Azure Cosmos DB örneği bu anahtarları depolar. Güvenlik ilkeleriniz bu anahtarları Azure Key Vault gibi bir anahtar yönetimi hizmetine yaymanızı gerektirebilir. Ayrıca anahtarları kuruluşunuzun ilkelerine göre döndürdüğünüzden emin olun.
Dayanıklılık
İş açısından kritik uygulamaları veri merkezi hatalarından korumak için Kullanılabilirlik alanlarını kullanmayı göz önünde bulundurun. Bu çözümün hizmetleri, kullanılabilirlik alanı etkin bölgelerdeki seçili SKU'lar için kullanılabilirlik alanlarını destekler. Güncel bilgiler için kullanılabilirlik alanlarını destekleyen hizmetlerin listesini gözden geçirin.
Maliyet iyileştirme
Maliyet iyileştirmesi, gereksiz giderleri azaltmanın ve operasyonel verimlilikleri iyileştirmenin yollarını aramaktır. Daha fazla bilgi için bkz . Maliyet iyileştirme sütununa genel bakış.
Bu çözümün maliyetini tahmin etmek için Azure fiyatlandırma hesaplayıcısını kullanın. Ayrıca şu noktaları aklınızda bulundurun:
Event Hubs Temel, Standart, Premium ve Ayrılmış katmanlarda kullanılabilir. Premium veya Ayrılmış katman, büyük ölçekli akış iş yükleri için en iyisidir. Aktarım hızını ölçeklendirin, bu nedenle küçük başlatmayı ve ardından talep arttıkça ölçeği artırmayı göz önünde bulundurun.
Azure Cosmos DB iki model sunar:
- Zorlu iş yükleri için ideal olan sağlanan aktarım hızı modeli. Bu model iki kapasite yönetimi seçeneğiyle kullanılabilir: standart ve otomatik ölçeklendirme.
- Küçük ve yüksek performanslı iş yükleri çalıştırmaya uygun sunucusuz bir model.
AKS kümesi, Azure'da çalışan bir düğüm kümesinden veya sanal makinelerden (VM) oluşur. İşlem, depolama ve ağ bileşenlerinin maliyeti, kümenin birincil maliyetlerini oluşturur.
PostgreSQL için Azure Veritabanı Tek Sunucu ve Esnek Sunucu katmanlarında kullanılabilir. Farklı katmanlar önceden sıralanabilir, seri hale getirilebilir ve yüksek performanslı iş yükleri gibi farklı senaryoları karşılar. Maliyetler temel olarak işlem düğümlerinin ve depolama kapasitesinin seçimine bağlıdır. Yeni iş yükleri için, Tek Sunucu katmanına göre daha geniş bir desteklenen özelliğe sahip olduğundan Esnek Sunucu katmanını seçmeyi göz önünde bulundurun. Ayrıca, Tek Sunucunun kullanımdan kaldırma yolunda olduğunu da unutmayın.
Redis için Azure Cache birden çok katmanda kullanılabilir. Bu katmanlar, 250 megabayt ile birkaç terabayt arasında değişen önbellekleri barındırır. Boyuta ek olarak, diğer gereksinimler katman seçimini de etkiler:
- Kümeleme
- Kalıcılık
- Etkin coğrafi çoğaltma
Bu senaryoyu dağıtın
Bu çözümü dağıtırken şu noktaları göz önünde bulundurun:
Kafka için Event Hubs'ı dağıtırken Hızlı Başlangıç: Kafka protokolunu kullanarak Event Hubs ile veri akışı makalesine bakın. Bu makalede aşağıdaki bilgiler sağlanır:
- Event Hubs'da Kafka ile ileti gönderme ve alma
- Yayımlama uygulaması için örnek kod
- Yapılandırma değişiklikleri yaparak mevcut Kafka uygulamalarını Kafka için Event Hubs'a değiştirme
Apache Spark ile ilgili:
- Temel bir Spark uygulaması oluşturma hakkında bilgi için bkz. Azure Event Hubs ile Apache Spark uygulamanızı Bağlan.
- Spark uygulamasını AKS'de barındırmak için bkz . AKS'de Apache Spark işleri çalıştırma.
Cassandra'ya olay yazmak için java uygulaması kullanmayı göz önünde bulundurun. Daha fazla bilgi için bkz. Hızlı Başlangıç: Apache Cassandra için Azure Cosmos DB verilerini yönetmek için java uygulaması derleme (v4 Sürücüsü).
Azure Cosmos DB değişiklik akışını kullandığınızda, bu bilgi için Apache Cassandra için Azure Cosmos DB'de değişiklik akışı konusuna bakın:
- Değişiklik akışı API'sini sorgulamak için Cassandra Sorgu Dili'nde (CQL) sorgu koşullarını kullanma
- Java uygulaması için örnek kod
Cassandra'da depoladığınız olayları işleme hakkında bilgi için bkz. Öğretici: Apache Cassandra için Azure Cosmos DB'den veri sorgulama. Bu makale ayrıca tablolardan veri almak için CQL komutlarını kullanmaya yönelik örnek Java kodu içerir.
Toplu iş odaklı bir uygulamayla PostgreSQL için Azure Veritabanı veri yazma hakkında bilgi için bkz. Hızlı Başlangıç: Java ve JDBC'yi PostgreSQL için Azure Veritabanı ile kullanma. Bu makale ayrıca verileri depolamak için örnek Java kodu içerir.
Redis için Azure Cache ile veri depolama ve alma hakkında bilgi için bkz. Hızlı Başlangıç: Java'da Redis için Azure Cache kullanma. Bu makale ayrıca önbelleğe erişmek için örnek Java kodu içerir.
Katkıda Bulunanlar
Bu makale Microsoft tarafından güncelleştiriliyor ve korunüyor. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.
Asıl yazar:
- Ajit Ananthram | Bulut Çözümü Mimarı
Sonraki adımlar
- Azure Event Hubs için Apache Kafka geliştirici kılavuzu
- Apache Cassandra için Azure Cosmos DB hakkında sık sorulan sorular
- PostgreSQL için Azure Veritabanı ile uygulama oluşturmaya yönelik en iyi yöntemler
- Redis için Azure Cache SSS
İlgili kaynaklar
İlgili çözümler hakkında bilgi edinmek için aşağıdaki bilgilere bakın: