Bu yazıda ele aldığımız Event Driven Architecture yani Olaya Dayalı Mimari; olayların üretimini, tespitini, tüketimini ve olaylara tepki vermeyi destekleyen bir yazılım mimarisi paradigmasıdır. Olay odaklı bir sistemde, olayların yakalanması, iletilmesi, işlenmesi ve kalıcılığı, çözümün temel yapısıdır. Bu, geleneksel istek odaklı modelden farklıdır.
Geleneksel mimariye göre tasarlanmış ve geleneksel sunucularda çalışan uygulamalar, yoğun trafik altında yeterince hızlı cevap veremediğinde iletişim gecikmesi, sistem kesintisi ve diğer öngörülemeyen arızalar gibi zorluklarla karşı karşıya kalır. İşte bu noktada olaya dayalı mimariye geçmek yazılım geliştiricilerin bu zorlukların üstesinden gelmesine yardımcı olur.
Dijital dünyada şirketlerin başarılı olması için uygulamalarını olabildiğince hızlı, esnek ve ölçeklendirilebilir şekilde geliştirmeleri gerekiyor ve burada EDA (Olaya Dayalı Mimari) önem kazanıyor.
Ziyaretçiler için gizlenmiş link , görmek için
Giriş yap veya üye ol.
adresindeki makalede EDA’nın dijital dünyadaki önemi anlatılıyor.Peki bu Event yani olay ne demek? Olay odaklı programlama denilen kavram, kullanıcının etkileşimine farklı şekillerde tepki vermek üzere tasarlanmış bir sistem demek. Burada mimarinin bütün akışı olaylar üzerine kurulu, “Kullanıcı tuşa mı bastı?”, “Form mu doldurdu?”, “Böyle bir durumda sistem nasıl karar verecek?”, “Peki bu olaylar olurken sistemde ne kadar kaynak kullanıyoruz?”, “100 kişi yerine 1.000 kişi gelince sistemi nasıl büyütebiliriz?” gibi soruların cevaplarını bulmayı kolaylaştırmak ve işe odaklanmak gerekiyor.
EDA üzerine kurulu sistemlerde bütün olayları kaydedip, daha sonra olayları tekrar oynatıp durumu gözlemlemek ve üzerinde değişiklik yapmak çok daha kolay. Neden bunlarla uğraşayım diyenler için bu konuda en çok tavsiye edilen kitaplardan bir tanesi Event Storming. Ücretli kitabı burada bulabilirsiniz:
Ziyaretçiler için gizlenmiş link , görmek için
Giriş yap veya üye ol.
Tabii ki ücretsiz örneğe de göz atabilirsiniz.
Olaya dayalı mimari, uygulama tasarımı için bir yazılım mimarisi ve modelidir. Olaya dayalı bir sistemde olayların yakalanması, iletilmesi, işlenmesi ve kalıcılığı sistemin temel yapısını oluşturur. Bu da geleneksel istek temelli mimariden farkını gösteriyor.
Müşteri verilerini gerçek zamanlı olarak işleyen “customer engagement frameworks” (müşteri etkileşim yazılım iskeleti) gibi birçok uygulama da olay odaklıdır. Olaya dayalı uygulamalar, herhangi bir programlama dilinde yazılabiliyor. Çünkü olaya dayalı mimari bir yazılım dili değil, bir programlama yaklaşımıdır. Bu da onu daha modern bir seçenek haline getiriyor.
Ziyaretçiler için gizlenmiş link , görmek için
Giriş yap veya üye ol.
adresindeki makalede olaya dayalı mimarinin ne olduğu örnekleriyle anlatılıyor.Olaya dayalı mimari, olay üreticilerinden ve olay tüketicilerinden oluşuyor. Bir olay üreticisi, bir olayı algılıyor veya algıladığı olayı bir mesaj olarak temsil ediyor.
Bir olay tespit edildikten sonra, olay işleme platformunun olayı eşzamansız olarak işlediği olay kanalları aracılığıyla olay üreticilerinin bilgilendirilmesi gerekiyor. Bu sayede olay işlenebiliyor.
Olay işleme platformu, bir olaya doğru yanıtı veriyor ve etkinliği aşağı yöne doğru tüketicilere gönderiyor. Bu aşağı akış etkinliği, bir olayın sonucunun görüldüğü yerdir. Apache Kafka, popüler bir olay işleme seçeneği olan bir veri akış platformudur. Bu platform, olay akışlarını gerçek zamanlı olarak yayınlamayı, abone olmayı, depolamayı ve işlemeyi gerçekleştirebiliyor. Apache Kafka, yüksek verim ve ölçeklenebilirliğin hayati önem taşıdığı bir dizi kullanım senaryosunu benimsiyor ve belirli uygulamalarda veri paylaşımı için noktadan noktaya entegrasyon ihtiyacını en aza indirerek gecikmeyi milisaniye seviyesine indirebiliyor.
Bir olay işleme platformu olarak çalışabilecek başka ara katman olay yöneticileri de bulunuyor.
Ziyaretçiler için gizlenmiş link , görmek için
Giriş yap veya üye ol.
adresindeki video’da Red Hat AMQ Streams ile Kubernetes üzerinde nasıl Kafka çalıştırıldığı ve bunu kullanarak nasıl olaya dayalı bir uygulama mimarisi kurgulandığı anlatılıyor.Olaya dayalı mimari, bir yayınla/abone ol (pub/sub) modeliyle veya bir olay akışı modeliyle kullanılabiliyor.
Yayınla/abone ol modeli
Yayınla/abone ol modeli, bir olay akışında aboneliklere dayalı bir mesajlaşma altyapısıdır. Bu model ile bir olay meydana geldikten veya yayınlandıktan sonra bilgiler abonelere gönderiliyor.
Olay akışı modeli
Bu modelde olaylar, bir olay akışı modeliyle yazılıyor. Olay tüketicilerinin bir olay akışına abone olmaları gerekmiyor. Bunun yerine akışın herhangi bir bölümünden veri okunabilir ve istedikleri zaman akışa katılabiliyor.
Birkaç farklı olay akışı türü vardır, bunlar şu şekilde;
- Olay akışı işleme, olayları almak ve olay akışını incelemek veya dönüştürmek için Apache Kafka gibi bir veri akış platformu kullanıyor. Olay akışı işleme, olay akışlarındaki anlamlı kalıpları tespit etmek için kullanılıyor.
- Basit olay işleme, bir olayın olay tüketicisinde hemen bir eylemi tetiklemesiyle gerçekleşiyor.
- Karmaşık olay işleme, bir olay tüketicisinin kalıpları algılamak için bir dizi olayı işlemesini gerektiriyor.
Olaylar, IoT (Nesnelerin İnterneti) cihazları, uygulamaları ve ağları gibi olay kaynaklarından meydana geldikçe yakalanıyor ve olay üreticilerinin ve olay tüketicilerinin durum ve yanıt bilgilerini gerçek zamanlı olarak paylaşmasına olanak tanıyor.
Kuruluşlar, uygulamaların ölçeklenebilirliğini ve yanıt verme imkanını geliştirmek ve daha iyi iş kararları için gereken verilere erişim sağlamak için sistemlerine ve uygulamalarına olaya dayalı mimari ekleyebiliyor. Bu mimarinin faydaları
Ziyaretçiler için gizlenmiş link , görmek için
Giriş yap veya üye ol.
adresindeki makalede anlatılıyor.Olaya dayalı mimari, mikro hizmetlerin faydalarını en üst düzeye çıkarmak için uygulamalar geliştirmeye yönelik bir yaklaşımdır. Basitçe açıklamak gerekirse, olaya dayalı mimari, olaylar aracılığıyla diğer uygulamalar ve sistemlerle eşzamansız olarak iletişim kuran veya entegre olan uygulamalar oluşturmak için bir yazılım geliştirme yöntemidir.
Olaylar, sistemler arasında olduğu kadar uygulamalar arasında da iletişim kurmanın bir yolu olarak kullanılıyor. Bir olay, uygulama tarafından tanımlanan herhangi bir oluşum veya değişiklik olabiliyor. Mesela bir e-ticaret sitesinde alışveriş sepetine ürün eklenmesi, olay için iyi bir örnek. Üretici olarak belirlenen bir uygulama olayı algılıyor ve ilgili verileri mesaj şeklinde gönderiyor. Bir olay işlemcisi olan aracı, mesajı alıcı olarak belirlenmiş bir uygulamaya yönlendiriyor ve yanıt alıyor. Birden fazla tüketici aynı mesajı alabilir ve uygulamanın tasarlandığı belirli işi gerçekleştirmek için ilgili verileri kendi yöntemleriyle kullanabiliyor ve hatta işleyebiliyor.
Olaya dayalı mimarinin eşzamansız olay tabanlı iletişimi, iki uygulamanın genellikle uygulama programlama arabirimleri (API’ler) aracılığıyla doğrudan bağlantı kurduğu eşzamanlı iletişimden farklıdır. Eşzamansız iletişim olaya dayalı olup, birden fazla uygulamanın gerçek zamanlı olarak aynı anda ve hızlı bir şekilde iletişim kurmasına izin veriyor. Olaya dayalı mimari, eşzamansız olaya dayalı uygulama etkileşimini etkinleştirmenin en iyi yolu olarak kabul ediliyor.
Günümüzün geliştirme modeli, dağıtılmış sistemleri ve uygulamaları mümkün kılan mikroservislerve bulut yerlisi geliştirme gibi devrim niteliğindeki teknolojilere dayanıyor. Dağıtılmış, sistem veya uygulamanın fiziksel olarak farklı yerlerde bulunan bileşenlerden oluşturulduğu anlamına geliyor. Dağıtılmış hesaplama işi yapmanın yolu, bu bileşenler arasında iyi ve sağlam bir iletişimden geçiyor.
Geleneksel eşzamanlı mimari, dağıtılmış sistemlerin performans ve ölçek ihtiyaçlarını karşılayamıyor ve bunun sonucunda daha geleneksel mimariye dayanan uygulamalar, iletişim gecikmesi, sistem bozulması, öngörülemeyen arızalar ve daha fazlası dahil olmak üzere dağıtılmış bir ortamda zayıflatıcı zorluklarla karşı karşıya kalıyor. Olaya dayalı mimariye geçmek, geliştiricilerin bu zorlukların üstesinden gelmesine yardımcı oluyor. Olaya dayalı mimari, hizmetler arasında minimum düzeyde bağlantıyla birbirleriyle iletişim kurabilmesini sağlıyor. Böylece olaya dayalı mimari modern ve dağıtılmış uygulamalar için ideal hale geliyor.
Olaya dayalı mimarinin en çekici yönlerinden biri, gerçek dünyaya tam olarak uyması ve dijital ekonominin vazgeçilmezi olan birçok uygulamayı desteklemesidir. Çünkü gerçek dünya etkileşimleri de olaya dayalı gerçekliyor.
Olaya dayalı mimari akış işleme, veri entegrasyonu ve web sitesi etkinliği izleme gibi ölçeklenebilir ve güvenilir gerçek zamanlı iletişimden en fazla faydayı sağlayan kurumsal uygulamalar için de ideal bir mimari haline geliyor.
Olaya dayalı mimari, geliştiricilerin gerçek zamanlı olarak birden fazla olay akışına tepki vermek, işlemek veya dönüştürmek için tasarlanmış uygulamalar oluşturmasını sağlıyor. Akış, bir üreticiden veya birden fazla üreticiden gönderilen sürekli bir olay akışıdır. Büyük miktarda akış verisini işlemek için ölçeklenebilirliği ve iletişim hatlarının açık tutulmasını sağlama güvenilirliğini içermesi, olaya dayalı mimarinin akış işleme uygulamaları için sunduğu avantajları arasında yer alıyor.
IoT izleme, olaya dayalı mimari ile mükemmel uyum sağlayan mükemmel bir akış işleme örneğidir. Nesnelerin İnterneti (IoT), iş açısından kritik cihazların sistemi bozmadan önce proaktif onarımını ve değiştirilmesini sağlamak ve olayları zamanında işlemek için makine öğrenimi (ML) mikroservislerini kullanıyor. Bu özellik, tümü en güncel verileri sağlayan birçok cihazın sürekli çalışmasına dayanan IoT operasyonu için çok önemli. Olaya dayalı mimarinin güvenilir, düşük gecikmeli olay akışı mimarisi, IoT ortamında ML modellerinin gerçek zamanlı olarak işlenmesini mümkün kılıyor.
Finansal dolandırıcılık tespiti de mimarinin kullanılabileceği zorlayıcı akış işleme örnekleri arasında yer alıyor. Kritik dolandırıcılık tespit uygulamaları, kredi, bankacılık ve ticaret gibi birden fazla sistemde müşteri davranışının gerçek zamanlı ve geçmiş analizini sağlıyor. Mali sahtekarlığı tespit etmek, gerçek olay (dolandırıcılığın kendisi) ile tanımlama ve düzeltme arasında gecikme süresinin neredeyse sıfır olması gerekiyor. Olaya dayalı mimari, maksimum görünürlük elde etmek için tüm paydaşların zamanında ve tutarlı verilere erişebilmesi için paylaşılan, güvenilir, düşük gecikme süreli olay dağıtımı sağlıyor.
Olaya dayalı mimari, birden çok farklı kaynaktan gelen verileri yakalamak, toplamak ve işlemek ve bunları tek, birleşik bir görünümde sunmaktan veya bu verileri çeşitli diğer bağlantısız sistemlere beslemekten sorumlu veri entegrasyonu uygulamaları geliştirmek için fazlasıyla uygun bir konumda yer alıyor. Veri entegrasyonu uygulamaları, çeşitli sektörlerdeki karar vericilere güncel, doğru ve kolay erişilebilir bilgilerle destek sağlıyor.
Veri entegrasyonu, gerçek zamanlı izleme, uyarı ve analiz için olay akışlarını işlemek ve aynı anda aynı verileri saklama, analiz etme ve başka bir sisteme göndermek için kullanılabiliyor. Geleneksel monolitik eşzamanlı uygulamaların her biri kendi verilerini ayrı ve tipik olarak diğer uygulamaların kolayca erişemeyeceği bir ilişkisel veritabanında depoluyor. Olaya dayalı mimarinin eşzamansız yapısı, paylaşılan bir veri deposunu destekliyor, uygulamaların birden çok kaynaktan verilere daha kolay erişmesini ve ayrıca tüm şirket genelinde verileri paylaşmasını sağlıyor. İlgili tüm uygulamalar ve sistemler, verilerin bütünlüğünden ödün vermeden aynı doğru gerçek zamanlı bilgileri kullanabiliyor.
Olaya dayalı mimari, uygulamanın her gün milyarlarca olayı işlemesine yardımcı olabiliyor ve bir perakendeciye iş başarısını ve başarısızlığını tanımlayan metriklere ilişkin gerçek zamanlı ayrıntılı görünürlük sağlıyor.
Müşteri etkileşimlerini izleyen bir uygulama, olaya dayalı mimariye dayalı bir veri entegrasyonu örneği olarak gösterilebiliyor. Olaya dayalı mimari, uygulamanın hem dahili sistemler hem de müşteriye yönelik web ve mobil uygulamalar tarafından kullanılmak üzere verileri eşzamanlı olarak işlemesini sağlıyor. Uygulama, işletmeye temel müşteri içgörüleri sunarken, müşterilere hesapları ve işlemleri hakkında zamanında bilgi sağlayarak hem şirkete hem de müşterilere aynı doğru ve güncel verilere erişme imkanı sunuyor.
Olay temelli mimari, web sitelerinde kullanıcı etkinliğini izleyen uygulamalar oluşturan geliştiricilere yardımcı olabilir. Bu tür bir uygulama, bir şirkete hem müşteri etkinliği hem de web sitesi performansı açısından görünürlük sağlar. Web sitesindeki her müşteri etkileşimi (sayfa görüntülemeleri ve reklam tıklamalarından e-ticaret işlemlerine kadar) olay temelli mimari tarafından bir etkinlik olarak tüketilir, işlenir ve sonuçta ortaya çıkan metrikler birden fazla tüketiciye gönderilir.
İşletme için bu, müşterinin ilgisine ilişkin içgörü sağlayabilir ve müşterinin algılanan ihtiyaçlarına dayalı olarak ek ürünler ve hizmetler için potansiyel olarak otomatikleştirilmiş önerileri tetikleyebilir. Aynı zamanda veriler, örneğin ürün talebini tahmin etmek için diğer uygulamalar tarafından analiz edilmek üzere gönderilir.
Aynı türde bir olay temelli mimari uygulaması, web sitesi ziyaretçilerine gerçek zamanlı olarak reklam sunmak için kullanılabilir. Reklam sunumu, doğru reklamı doğru müşteriye doğru zamanda otomatik olarak sunmak için sıfır gecikmeli bir saniyelik olay işleme gerektirir.
DevOps yöntemleriyle geliştirilen günümüzün gevşek bağlantılı, bulut yerlisi uygulamaları ve olaya dayalı mimarileri, entegrasyon için çevik ve ölçeklenebilir bir yaklaşıma ihtiyaç duyuyor.
Red Hat de çevik entegrasyona tam olarak bu şekilde yaklaşıyor! Yazılım tesliminin hızını ve güvenliğini artırmak için entegrasyon teknolojilerini, çevik teslim tekniklerini ve bulutta yerel platformları birleştiren kaynaklarını Birbirine bağlıyor.
Red Hat şirketlere geleneksel teknolojileri hızla birbirine bağlayan entegrasyon platformları ve yönetim yazılımı sağlıyor.