Event Driven Architecture Yani Olaya Dayalı Mimari Nedir?

Adanali

Member
Bu yazıda ele aldığımız Event Driven Architecture yani Olaya Dayalı Mimari; olayların üretimini, tespitini, tüketimini ve olaylara reaksiyon vermeyi destekleyen bir yazılım mimarisi paradigmasıdır. Olay odaklı bir sistemde, olayların yakalanması, iletilmesi, işlenmesi ve kalıcılığı, tahlilin temel yapısıdır. Bu, klasik istek odaklı modelden farklıdır.

Klasik mimariye göre tasarlanmış ve klasik sunucularda çalışan uygulamalar, ağır trafik altında gereğince süratli karşılık veremediğinde bağlantı gecikmesi, sistem kesintisi ve öteki öngörülemeyen arızalar üzere 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 süratli, esnek ve ölçeklendirilebilir biçimde geliştirmeleri gerekiyor ve burada EDA (Olaya Dayalı Mimari) değer kazanıyor. https://www.redhat.com/en/blog/importance-event-driven-architecture-digital-world adresindeki makalede EDA’nın dijital dünyadaki ehemmiyeti anlatılıyor.

Pekala bu Event yani olay ne demek? Olay odaklı programlama denilen kavram, kullanıcının etkileşimine farklı biçimlerde reaksiyon vermek üzere tasarlanmış bir sistem demek. Burada mimarinin bütün akışı olaylar üzerine konseyi, “Kullanıcı tuşa mı bastı?”, “Form mu doldurdu?”, “bu biçimde 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?” üzere soruların karşılıklarını bulmayı kolaylaştırmak ve işe odaklanmak gerekiyor.

EDA üzerine şurası sistemlerde bütün olayları kaydedip, ondan sonrasında olayları yeniden oynatıp durumu gözlemlemek ve üzerinde değişiklik yapmak fazlaca daha kolay. niye bunlarla uğraşayım diyenler için bu bahiste en epey tavsiye edilen kitaplardan bir tanesi Event Storming. Fiyatlı kitabı burada bulabilirsiniz: https://www.eventstorming.com/book/

Olağan ki fiyatsız ö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 klâsik istek temelli mimariden farkını gösteriyor.

Müşteri bilgilerini gerçek vakitli olarak işleyen “customer engagement frameworks” (müşteri etkileşim yazılım iskeleti) üzere biroldukça uygulama da olay odaklıdır. Olaya dayalı uygulamalar, rastgele bir programlama lisanında yazılabiliyor. Zira olaya dayalı mimari bir yazılım lisanı değil, bir programlama yaklaşımıdır. Bu da onu daha çağdaş bir seçenek haline getiriyor. https://www.redhat.com/en/topics/integration/what-is-event-driven-architecture 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 yahut algıladığı olayı bir bildiri olarak temsil ediyor.

Bir olay tespit edildikten daha sonra, olay sürece platformunun olayı eşzamansız olarak işlediği olay kanalları aracılığıyla olay üreticilerinin bilgilendirilmesi gerekiyor. Bu sayede olay işlenebiliyor.

Olay sürece platformu, bir olaya gerçek cevabı veriyor ve aktifliği aşağı istikamete yanlışsız tüketicilere gönderiyor. Bu aşağı akış aktifliği, bir olayın kararınun görüldüğü yerdir. Apache Kafka, tanınan bir olay sürece seçeneği olan bir bilgi akış platformudur. Bu platform, olay akışlarını gerçek vakitli olarak yayınlamayı, abone olmayı, depolamayı ve işlemeyi gerçekleştirebiliyor. Apache Kafka, yüksek randıman ve ölçeklenebilirliğin hayati değer taşıdığı bir dizi kullanım senaryosunu benimsiyor ve muhakkak uygulamalarda bilgi paylaşımı için noktadan noktaya entegrasyon muhtaçlığını en aza indirerek gecikmeyi milisaniye düzeyine indirebiliyor.

Bir olay sürece platformu olarak çalışabilecek öteki orta katman olay yöneticileri de bulunuyor. https://developers.redhat.com/topics/event-driven adresindeki video’da Red Çizgi 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 yahut bir olay akışı modeliyle kullanılabiliyor.

Yayınla/abone ol modeli

Yayınla/abone ol modeli, bir olay akışında aboneliklere dayalı bir iletileşme altyapısıdır. Bu model ile bir olay meydana geldikten yahut yayınlandıktan daha 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 rastgele bir kısmından bilgi okunabilir ve istedikleri vakit akışa katılabiliyor.

Birkaç farklı olay akışı tipi vardır, bunlar şöyle;

  • Olay akışı sürece, olayları almak ve olay akışını incelemek yahut dönüştürmek için Apache Kafka üzere bir data akış platformu kullanıyor. Olay akışı sürece, olay akışlarındaki manalı kalıpları tespit etmek için kullanılıyor.
  • sıradan olay sürece, bir olayın olay tüketicisinde çabucak bir aksiyonu tetiklemesiyle gerçekleşiyor.
  • Karmaşık olay sürece, bir olay tüketicisinin kalıpları algılamak için bir dizi olayı işlemesini gerektiriyor.
Olaya dayalı bir mimari, kuruluşların değişikliklere ahenk sağlayabilen ve gerçek vakitli olarak kararlar alabilen esnek bir sistem elde etmesine yardımcı oluyor. Gerçek vakitli durumsal farkındalık, ister manuel ister otomatik olsun, iş kararlarının, sistemlerinizin mevcut durumunu yansıtan mevcut tüm dataları kullanılarak alınabileceği manasına geliyor.

Olaylar, IoT (Nesnelerin İnterneti) aygıtları, uygulamaları ve ağları üzere olay kaynaklarından meydana geldikçe yakalanıyor ve olay üreticilerinin ve olay tüketicilerinin durum ve karşılık ayrıntılarını gerçek vakitli olarak paylaşmasına imkan tanıyor.

Kuruluşlar, uygulamaların ölçeklenebilirliğini ve karşılık verme imkanını geliştirmek ve daha uygun iş kararları için gereken bilgilere erişim sağlamak için sistemlerine ve uygulamalarına olaya dayalı mimari ekleyebiliyor. Bu mimarinin faydaları https://www.redhat.com/architect/event-driven-architecture-essentials adresindeki makalede anlatılıyor.

Olaya dayalı mimari, mikro hizmetlerin faydalarını en üst seviyeye çıkarmak için uygulamalar geliştirmeye yönelik bir yaklaşımdır. sıradançe açıklamak gerekirse, olaya dayalı mimari, olaylar aracılığıyla başka uygulamalar ve sistemlerle eşzamansız olarak bağlantı kuran yahut entegre olan uygulamalar oluşturmak için bir yazılım geliştirme metodudur.

Olaylar, sistemler içinde olduğu kadar uygulamalar içinde da bağlantı kurmanın bir yolu olarak kullanılıyor. Bir olay, uygulama tarafınca tanımlanan rastgele bir oluşum yahut değişiklik olabiliyor. örneğin bir e-ticaret sitesinde alışveriş sepetine eser eklenmesi, olay için düzgün bir örnek. Üretici olarak belirlenen bir uygulama olayı algılıyor ve ilgili bilgileri bildiri biçiminde gönderiyor. Bir olay işlemcisi olan aracı, bildirisi alıcı olarak belirlenmiş bir uygulamaya yönlendiriyor ve cevap alıyor. Birden çok tüketici tıpkı iletisi alabilir ve uygulamanın tasarlandığı belli işi gerçekleştirmek için ilgili dataları kendi halleriyle kullanabiliyor ve hatta işleyebiliyor.

Olaya dayalı mimarinin eşzamansız olay tabanlı irtibatı, iki uygulamanın çoklukla uygulama programlama arabirimleri (API’ler) aracılığıyla direkt temas kurduğu eşzamanlı irtibattan farklıdır. Eşzamansız bağlantı olaya dayalı olup, birden çok uygulamanın gerçek vakitli olarak birebir anda ve süratli bir biçimde bağlantı kurmasına müsaade veriyor. Olaya dayalı mimari, eşzamansız olaya dayalı uygulama etkileşimini etkinleştirmenin en yeterli 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 üzere ihtilal niteliğindeki teknolojilere dayanıyor. Dağıtılmış, sistem yahut uygulamanın fizikî olarak farklı yerlerde bulunan bileşenlerden oluşturulduğu manasına geliyor. Dağıtılmış hesaplama işi yapmanın yolu, bu bileşenler içinde düzgün ve sağlam bir irtibattan geçiyor.

Klâsik eşzamanlı mimari, dağıtılmış sistemlerin performans ve ölçek gereksinimlerini karşılayamıyor ve bunun kararında daha klâsik mimariye dayanan uygulamalar, irtibat 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 içinde en az seviyede temasla birbirleriyle irtibat kurabilmesini sağlıyor. bu biçimdece olaya dayalı mimari çağdaş ve dağıtılmış uygulamalar için ülkü hale geliyor.

Olaya dayalı mimarinin en cazibeli taraflarından biri, gerçek dünyaya tam olarak uyması ve dijital iktisadın vazgeçilmezi olan biroldukca uygulamayı desteklemesidir. Zira gerçek dünya etkileşimleri de olaya dayalı gerçekliyor.

Olaya dayalı mimari akış sürece, data entegrasyonu ve web sitesi aktifliği izleme üzere ölçeklenebilir ve emniyetli gerçek vakitli irtibattan en çok faydayı sağlayan kurumsal uygulamalar için de ülkü bir mimari haline geliyor.

Olaya dayalı mimari, geliştiricilerin gerçek vakitli olarak birden çok olay akışına reaksiyon vermek, işlemek yahut dönüştürmek için tasarlanmış uygulamalar oluşturmasını sağlıyor. Akış, bir üreticiden yahut birden çok üreticiden gönderilen daima bir olay akışıdır. Büyük ölçüde akış verisini işlemek için ölçeklenebilirliği ve bağlantı sınırlarının açık tutulmasını sağlama güvenilirliğini içermesi, olaya dayalı mimarinin akış sürece uygulamaları için sunduğu avantajları içinde yer alıyor.


IoT izleme, olaya dayalı mimari ile kusursuz ahenk sağlayan harika bir akış sürece örneğidir. Objelerin İnterneti (IoT), iş açısından kritik aygıtların sistemi bozmadan evvel proaktif tamiratını ve değiştirilmesini sağlamak ve olayları vaktinde işlemek için makine tahsili (ML) mikroservislerini kullanıyor. Bu özellik, tümü en aktüel dataları sağlayan birfazlaca aygıtın daima çalışmasına dayanan IoT operasyonu için epey değerli. Olaya dayalı mimarinin emniyetli, düşük gecikmeli olay akışı mimarisi, IoT ortamında ML modellerinin gerçek vakitli olarak işlenmesini mümkün kılıyor.

Finansal dolandırıcılık tespiti de mimarinin kullanılabileceği zorlayıcı akış sürece örnekleri içinde yer alıyor. Kritik dolandırıcılık tespit uygulamaları, kredi, bankacılık ve ticaret üzere birden çok sistemde müşteri davranışının gerçek vakitli ve geçmiş tahlilini sağlıyor. Mali sahtekarlığı tespit etmek, gerçek olay (dolandırıcılığın kendisi) ile tanımlama ve düzeltme içinde gecikme müddetinin neredeyse sıfır olması gerekiyor. Olaya dayalı mimari, azamî görünürlük elde etmek için tüm paydaşların vaktinde ve dengeli bilgilere erişebilmesi için paylaşılan, muteber, düşük gecikme vadeli olay dağıtımı sağlıyor.

Olaya dayalı mimari, birden hayli farklı kaynaktan gelen bilgileri yakalamak, toplamak ve işlemek ve bunları tek, birleşik bir görünümde sunmaktan yahut bu bilgileri çeşitli öbür temassız sistemlere beslemekten sorumlu bilgi entegrasyonu uygulamaları geliştirmek için ziyadesiyle uygun bir pozisyonda yer alıyor. Bilgi entegrasyonu uygulamaları, çeşitli kesimlerdeki karar vericilere aktüel, hakikat ve kolay erişilebilir bilgilerle takviye sağlıyor.

Data entegrasyonu, gerçek vakitli izleme, ihtar ve tahlil için olay akışlarını işlemek ve tıpkı anda tıpkı bilgileri saklama, tahlil etme ve öteki bir sisteme göndermek için kullanılabiliyor. Klâsik monolitik eşzamanlı uygulamaların her biri kendi datalarını başka ve tipik olarak öteki uygulamaların kolaylıkla erişemeyeceği bir ilişkisel veritabanında depoluyor. Olaya dayalı mimarinin eşzamansız yapısı, paylaşılan bir bilgi deposunu destekliyor, uygulamaların birden epeyce kaynaktan bilgilere daha kolay erişmesini ve ayrıyeten tüm şirket genelinde bilgileri paylaşmasını sağlıyor. İlgili tüm uygulamalar ve sistemler, dataların bütünlüğünden ödün vermeden tıpkı yanlışsız gerçek vakitli ayrıntıları kullanabiliyor.


Olaya dayalı mimari, uygulamanın her gün milyarlarca olayı işlemesine yardımcı olabiliyor ve bir perakendeciye iş muvaffakiyetini ve başarısızlığını tanımlayan metriklere ait gerçek vakitli detaylı görünürlük sağlıyor.

Müşteri etkileşimlerini izleyen bir uygulama, olaya dayalı mimariye dayalı bir bilgi entegrasyonu örneği olarak gösterilebiliyor. Olaya dayalı mimari, uygulamanın hem dahili sistemler tıpkı vakitte müşteriye yönelik web ve taşınabilir uygulamalar tarafınca kullanılmak üzere dataları eşzamanlı olarak işlemesini sağlıyor. Uygulama, işletmeye temel müşteri içgörüleri sunarken, müşterilere hesapları ve süreçleri hakkında vaktinde bilgi sağlayarak hem şirkete tıpkı vakitte müşterilere tıpkı yanlışsız ve şimdiki bilgilere erişme imkanı sunuyor.

Olay temelli mimari, web sitelerinde kullanıcı aktifliğini izleyen uygulamalar oluşturan geliştiricilere yardımcı olabilir. Bu cins bir uygulama, bir şirkete hem müşteri aktifliği birebir vakitte 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 süreçlerine kadar) olay temelli mimari tarafınca bir aktiflik olarak tüketilir, işlenir ve sonuçta ortaya çıkan metrikler birden çok tüketiciye gönderilir.

İşletme için bu, müşterinin ilgisine ait içgörü sağlayabilir ve müşterinin algılanan gereksinimlerine dayalı olarak ek eserler ve hizmetler için potansiyel olarak otomatikleştirilmiş teklifleri tetikleyebilir. bununla birlikte datalar, mesela eser talebini iddia etmek için öbür uygulamalar tarafınca tahlil edilmek üzere gönderilir.

Birebir tıpta bir olay temelli mimari uygulaması, web sitesi ziyaretçilerine gerçek vakitli olarak reklam sunmak için kullanılabilir. Reklam sunumu, yanlışsız reklamı gerçek müşteriye yanlışsız vakitte otomatik olarak sunmak için sıfır gecikmeli bir saniyelik olay sürece gerektirir.

DevOps formlarıyla geliştirilen günümüzün gevşek temaslı, bulut yerlisi uygulamaları ve olaya dayalı mimarileri, entegrasyon için çevik ve ölçeklenebilir bir yaklaşıma gereksinim duyuyor.


Red Çizgi de çevik entegrasyona tam olarak bu türlü yaklaşıyor! Yazılım tesliminin suratını ve güvenliğini artırmak için entegrasyon teknolojilerini, çevik teslim tekniklerini ve bulutta mahallî platformları birleştiren kaynaklarını Birbirine bağlıyor.

Red Çizgi şirketlere klasik teknolojileri süratle birbirine bağlayan entegrasyon platformları ve idare yazılımı sağlıyor.