Teknoloji

Event Driven Architecture Yani Olaya Dayalı Mimari Nedir?

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, klâsik istek odaklı modelden farklıdır.

Klasik mimariye nazaran tasarlanmış ve klasik sunucularda çalışan uygulamalar, ağır trafik altında gereğince süratli karşılık veremediğinde irtibat gecikmesi, sistem kesintisi ve başka ö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 halde geliştirmeleri gerekiyor ve burada EDA (Olaya Dayalı Mimari) ehemmiyet kazanıyor. https://www.redhat.com/en/blog/importance-event-driven-architecture-digital-world adresindeki makalede EDA’nın dijital dünyadaki değeri anlatılıyor.

Pekala bu Event yani olay ne demek? Olay odaklı programlama denilen kavram, kullanıcının etkileşimine farklı formlarda reaksiyon vermek üzere tasarlanmış bir sistem demek. Burada mimarinin bütün akışı olaylar üzerine heyeti, “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?” üzere soruların karşılıklarını bulmayı kolaylaştırmak ve işe odaklanmak gerekiyor.

EDA üzerine konseyi 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 hususta en çok tavsiye edilen kitaplardan bir tanesi Event Storming. Fiyatlı kitabı burada bulabilirsiniz: https://www.eventstorming.com/book/

Natürel 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 klasik 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 birçok 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 ileti olarak temsil ediyor.

Bir olay tespit edildikten 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 karşılığı veriyor ve aktifliği aşağı istikamete hakikat tüketicilere gönderiyor. Bu aşağı akış aktifliği, bir olayın sonucunun görüldüğü yerdir. Apache Kafka, tanınan bir olay sürece seçeneği olan bir data 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 data paylaşımı için noktadan noktaya entegrasyon gereksinimini en aza indirerek gecikmeyi milisaniye düzeyine indirebiliyor.

Bir olay sürece platformu olarak çalışabilecek öbür 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 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 data okunabilir ve istedikleri vakit akışa katılabiliyor.

Birkaç farklı olay akışı çeşidi vardır, bunlar şu formda;

  • 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.
  • Kolay olay sürece, bir olayın olay tüketicisinde çabucak bir hareketi 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 cevap bilgilerini 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 yararları https://www.redhat.com/architect/event-driven-architecture-essentials adresindeki makalede anlatılıyor.

Olaya dayalı mimari, mikro hizmetlerin yararlarını en üst seviyeye çıkarmak için uygulamalar geliştirmeye yönelik bir yaklaşımdır. Basitç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 formülüdür.

Olaylar, sistemler ortasında olduğu kadar uygulamalar ortasında da irtibat kurmanın bir yolu olarak kullanılıyor. Bir olay, uygulama tarafından tanımlanan rastgele bir oluşum yahut değişiklik olabiliyor. Mesela bir e-ticaret sitesinde alışveriş sepetine eser eklenmesi, olay için güzel bir örnek. Üretici olarak belirlenen bir uygulama olayı algılıyor ve ilgili dataları ileti halinde gönderiyor. Bir olay işlemcisi olan aracı, bildirisi alıcı olarak belirlenmiş bir uygulamaya yönlendiriyor ve karşılık alıyor. Birden fazla tüketici tıpkı iletisi alabilir ve uygulamanın tasarlandığı muhakkak işi gerçekleştirmek için ilgili bilgileri kendi formülleriyle kullanabiliyor ve hatta işleyebiliyor.

Olaya dayalı mimarinin eşzamansız olay tabanlı bağlantısı, iki uygulamanın çoklukla uygulama programlama arabirimleri (API’ler) aracılığıyla direkt temas kurduğu eşzamanlı bağlantıdan farklıdır. Eşzamansız irtibat olaya dayalı olup, birden fazla 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 ortasında düzgün ve sağlam bir irtibattan geçiyor.

Klasik eşzamanlı mimari, dağıtılmış sistemlerin performans ve ölçek gereksinimlerini karşılayamıyor ve bunun sonucunda daha klâsik mimariye dayanan uygulamalar, bağlantı 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 ortasında en az seviyede irtibatla birbirleriyle irtibat kurabilmesini sağlıyor. Böylelikle olaya dayalı mimari çağdaş ve dağıtılmış uygulamalar için ülkü hale geliyor.

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

Olaya dayalı mimari akış sürece, bilgi entegrasyonu ve web sitesi aktifliği izleme üzere ölçeklenebilir ve sağlam gerçek vakitli bağlantıdan en fazla faydayı sağlayan kurumsal uygulamalar için de ülkü bir mimari haline geliyor.

Olaya dayalı mimari, geliştiricilerin gerçek vakitli olarak birden fazla 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 fazla üreticiden gönderilen daima bir olay akışıdır. Büyük ölçüde akış verisini işlemek için ölçeklenebilirliği ve irtibat 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ı ortasında yer alıyor.

IoT izleme, olaya dayalı mimari ile kusursuz ahenk sağlayan kusursuz bir akış sürece örneğidir. Objelerin İnterneti (IoT), iş açısından kritik aygıtların sistemi bozmadan evvel proaktif tamirini ve değiştirilmesini sağlamak ve olayları vaktinde işlemek için makine tahsili (ML) mikroservislerini kullanıyor. Bu özellik, tümü en şimdiki bilgileri sağlayan birçok aygıtın daima çalışmasına dayanan IoT operasyonu için çok kıymetli. 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 ortasında yer alıyor. Kritik dolandırıcılık tespit uygulamaları, kredi, bankacılık ve ticaret üzere birden fazla 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 ortasında 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 çok farklı kaynaktan gelen dataları yakalamak, toplamak ve işlemek ve bunları tek, birleşik bir görünümde sunmaktan yahut bu bilgileri çeşitli öteki kontaksız sistemlere beslemekten sorumlu data entegrasyonu uygulamaları geliştirmek için ziyadesiyle uygun bir pozisyonda yer alıyor. Data entegrasyonu uygulamaları, çeşitli kesimlerdeki karar vericilere şimdiki, yanlışsız ve kolay erişilebilir bilgilerle dayanak sağlıyor.

Data entegrasyonu, gerçek vakitli izleme, ikaz ve tahlil için olay akışlarını işlemek ve birebir anda tıpkı bilgileri saklama, tahlil etme ve diğer bir sisteme göndermek için kullanılabiliyor. Klasik monolitik eşzamanlı uygulamaların her biri kendi bilgilerini farklı ve tipik olarak başka 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 çok kaynaktan bilgilere daha kolay erişmesini ve ayrıyeten tüm şirket genelinde dataları paylaşmasını sağlıyor. İlgili tüm uygulamalar ve sistemler, bilgilerin bütünlüğünden ödün vermeden birebir yanlışsız gerçek vakitli bilgileri 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 hem de müşteriye yönelik web ve taşınabilir uygulamalar tarafından 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 hem de müşterilere birebir gerçek ve aktüel datalara erişme imkanı sunuyor.

Olay temelli mimari, web sitelerinde kullanıcı aktifliğini izleyen uygulamalar oluşturan geliştiricilere yardımcı olabilir. Bu çeşit bir uygulama, bir şirkete hem müşteri aktifliğ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 süreçlerine kadar) olay temelli mimari tarafından bir aktiflik olarak tüketilir, işlenir ve sonuçta ortaya çıkan metrikler birden fazla 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. Aynı vakitte datalar, örneğin eser talebini iddia etmek için öbür uygulamalar tarafından tahlil edilmek üzere gönderilir.

Tıpkı cinste 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ı yanlışsız müşteriye gerçek vakitte otomatik olarak sunmak için sıfır gecikmeli bir saniyelik olay sürece gerektirir.

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

Red Çizgi de çevik entegrasyona tam olarak bu biçimde 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 klâsik teknolojileri süratle birbirine bağlayan entegrasyon platformları ve idare yazılımı sağlıyor.

Kaynak: Technopat

Başa dön tuşu