Slide 1

Slide 1 text

Red Hat Jboss Data Grid: Uygulamalarınıza Süper Güç Katın! M. Aykut BULGU Middleware Consultant - Red Hat @systemcraftsman Red Hat Forum İstanbul - 2018

Slide 2

Slide 2 text

Ben Kimim? Evli ve bir çocuk babasıyım Çocukluğum 80’lerin sonu 90’ların başında geçti Teknoloji aşığı Yaklaşık 12 yıldır teknoloji/yazılım sektöründe Yazılım Zanaatkarlığı olgusu sıkı destekçisi Software Craftsmanship Turkey co-organizatör Red Hat’te Middleware Consultant

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

İş kuralları ve süreç yönetimi Uygulamalar, veri ve araçları Uygulama geliştirme, ölçeklenebilirlik ve performans OTOMATİZE ET ENTEGRE ET HIZLANDIR

Slide 6

Slide 6 text

PUBLIC PRIVATE HYBRID

Slide 7

Slide 7 text

Enterprise Uygulamaların Karşılaştığı Genel Zorluklar Uygulama çok yavaş Zaman ve güven ve/veya iş kayıpları çünkü uygulama çok yavaş Eşzamanlı istek limitleri Belirli bir limit üzerindeki verilerin eşzamanlı isteklerle işlenememesi Giderek artan veri depolama ihtiyacı Zaman geçtikçe uygulamaların genelde lineer olmayan, giderek artan veri depolama ihtiyacı Latency problemleri Uygulama ve back-end’e bağlı veri deposu uygulama ile birlikte sadece bir coğrafi bölgede bulunmakta ve farklı bölgeler ile latency problemleri yaşanmakta Single Point of Failure Uygulamanın veri deposuyla ilgili single point of failure riski Veri toplama problemleri Enterprise müşterinin aktivitelerine ait analiz ve iç-görüleri toplayamamak, bu verileri veri analizi, iş zekası, büyük veri ve makina öğrenmesi içeren işlerde kullanamamak

Slide 8

Slide 8 text

Dezavantajı Pahalı
 Yavaş veri akışına doğru adreslenmiş bir çözüm değil Pahalı
 Geçici çözüm Hala bir Single Point of Failure durumu söz konusu Geçici çözüm Arkaplandaki veri yükü probleminin altında yatan ana sebebi çözmemekte Pahalı donanım Bir zero-downtime çözümü değil İş süreçlerine olumsuz etki Karışık ve zaman alıcı Uyumsuz veri bütünlüğü ihtimali Çözüm Performans iyileştirmesi için uygulama sunucusuna daha fazla hardware eklemek Depolama kapasitesine arttırmak adına daha fazla disk eklemek “Data contention” problemini farklı zamanlardaki veri okuma/ yazma zamanlamasını planlayarak çözmeye çalışmak “High Availability”’ye bir alternatif olarak veri tabanı çöktüğünde “disaster recovery” yedeklerine güvenmek Veri erişimini bölgeler arası artırmak için özelleştirilmiş veri deposu replikasyonlarını kullanmak Eski Yöntem Çözümler

Slide 9

Slide 9 text

Çözüm Performans iyileştirmesi için uygulama sunucusuna daha fazla hardware eklemek Depolama kapasitesine arttırmak adına daha fazla disk eklemek “Data contention” problemini farklı zamanlardaki veri okuma/ yazma zamanlamasını planlayarak çözmeye çalışmak “High Availability”’ye bir alternatif olarak veri tabanı çöktüğünde “disaster recovery” yedeklerine güvenmek Veri erişimini bölgeler arası artırmak için özelleştirilmiş veri deposu replikasyonlarını kullanmak Dezavantajı Pahalı
 Yavaş veri akışına doğru adreslenmiş bir çözüm değil Pahalı
 Geçici çözüm Hala bir Single Point of Failure durumu söz konusu Geçici çözüm Arkaplandaki veri yükü probleminin altında yatan ana sebebi çözmemekte Pahalı donanım Bir zero-downtime çözümü değil İş süreçlerine olumsuz etki Karışık ve zaman alıcı Uyumsuz veri bütünlüğü ihtimali

Slide 10

Slide 10 text

Çözüm Performans iyileştirmesi için uygulama sunucusuna daha fazla hardware eklemek Depolama kapasitesine arttırmak adına daha fazla disk eklemek “Data contention” problemini farklı zamanlardaki veri okuma/ yazma zamanlamasını planlayarak çözmeye çalışmak “High Availability”’ye bir alternatif olarak veri tabanı çöktüğünde “disaster recovery” yedeklerine güvenmek Veri erişimini bölgeler arası artırmak için özelleştirilmiş veri deposu replikasyonlarını kullanmak Dezavantajı Pahalı
 Yavaş veri akışına doğru adreslenmiş bir çözüm değil Pahalı
 Geçici çözüm Hala bir Single Point of Failure durumu söz konusu Geçici çözüm Arkaplandaki veri yükü probleminin altında yatan ana sebebi çözmemekte Pahalı donanım Bir zero-downtime çözümü değil İş süreçlerine olumsuz etki Karışık ve zaman alıcı Uyumsuz veri bütünlüğü ihtimali

Slide 11

Slide 11 text

Çözüm Performans iyileştirmesi için uygulama sunucusuna daha fazla hardware eklemek Depolama kapasitesine arttırmak adına daha fazla disk eklemek “Data contention” problemini farklı zamanlardaki veri okuma/ yazma zamanlamasını planlayarak çözmeye çalışmak “High Availability”’ye bir alternatif olarak veri tabanı çöktüğünde “disaster recovery” yedeklerine güvenmek Veri erişimini bölgeler arası artırmak için özelleştirilmiş veri deposu replikasyonlarını kullanmak Dezavantajı Pahalı
 Yavaş veri akışına doğru adreslenmiş bir çözüm değil Pahalı
 Geçici çözüm Hala bir Single Point of Failure durumu söz konusu Geçici çözüm Arkaplandaki veri yükü probleminin altında yatan ana sebebi çözmemekte Pahalı donanım Bir zero-downtime çözümü değil İş süreçlerine olumsuz etki Karışık ve zaman alıcı Uyumsuz veri bütünlüğü ihtimali

Slide 12

Slide 12 text

Çözüm Performans iyileştirmesi için uygulama sunucusuna daha fazla hardware eklemek Depolama kapasitesine arttırmak adına daha fazla disk eklemek “Data contention” problemini farklı zamanlardaki veri okuma/ yazma zamanlamasını planlayarak çözmeye çalışmak “High Availability”’ye bir alternatif olarak veri tabanı çöktüğünde “disaster recovery” yedeklerine güvenmek Veri erişimini bölgeler arası artırmak için özelleştirilmiş veri deposu replikasyonlarını kullanmak Dezavantajı Pahalı
 Yavaş veri akışına doğru adreslenmiş bir çözüm değil Pahalı
 Geçici çözüm Hala bir Single Point of Failure durumu söz konusu Geçici çözüm Arkaplandaki veri yükü probleminin altında yatan ana sebebi çözmemekte Pahalı donanım Bir zero-downtime çözümü değil İş süreçlerine olumsuz etki Karışık ve zaman alıcı Uyumsuz veri bütünlüğü ihtimali

Slide 13

Slide 13 text

Çözüm Performans iyileştirmesi için uygulama sunucusuna daha fazla hardware eklemek Depolama kapasitesine arttırmak adına daha fazla disk eklemek “Data contention” problemini farklı zamanlardaki veri okuma/ yazma zamanlamasını planlayarak çözmeye çalışmak “High Availability”’ye bir alternatif olarak veri tabanı çöktüğünde “disaster recovery” yedeklerine güvenmek Veri erişimini bölgeler arası artırmak için özelleştirilmiş veri deposu replikasyonlarını kullanmak Dezavantajı Pahalı
 Yavaş veri akışına doğru adreslenmiş bir çözüm değil Pahalı
 Geçici çözüm Hala bir Single Point of Failure durumu söz konusu Geçici çözüm Arkaplandaki veri yükü probleminin altında yatan ana sebebi çözmemekte Pahalı donanım Bir zero-downtime çözümü değil İş süreçlerine olumsuz etki Karışık ve zaman alıcı Uyumsuz veri bütünlüğü ihtimali

Slide 14

Slide 14 text

Çözüm Performans iyileştirmesi için uygulama sunucusuna daha fazla hardware eklemek Depolama kapasitesine arttırmak adına daha fazla disk eklemek “Data contention” problemini farklı zamanlardaki veri okuma/ yazma zamanlamasını planlayarak çözmeye çalışmak “High Availability”’ye bir alternatif olarak veri tabanı çöktüğünde “disaster recovery” yedeklerine güvenmek Veri erişimini bölgeler arası artırmak için özelleştirilmiş veri deposu replikasyonlarını kullanmak Dezavantajı Pahalı
 Yavaş veri akışına doğru adreslenmiş bir çözüm değil Pahalı
 Geçici çözüm Hala bir Single Point of Failure durumu söz konusu Geçici çözüm Arkaplandaki veri yükü probleminin altında yatan ana sebebi çözmemekte Pahalı donanım Bir zero-downtime çözümü değil İş süreçlerine olumsuz etki Karışık ve zaman alıcı Uyumsuz veri bütünlüğü ihtimali

Slide 15

Slide 15 text

Çözüm Performans iyileştirmesi için uygulama sunucusuna daha fazla hardware eklemek Depolama kapasitesine arttırmak adına daha fazla disk eklemek “Data contention” problemini farklı zamanlardaki veri okuma/ yazma zamanlamasını planlayarak çözmeye çalışmak “High Availability”’ye bir alternatif olarak veri tabanı çöktüğünde “disaster recovery” yedeklerine güvenmek Veri erişimini bölgeler arası artırmak için özelleştirilmiş veri deposu replikasyonlarını kullanmak Dezavantajı Pahalı
 Yavaş veri akışına doğru adreslenmiş bir çözüm değil Pahalı
 Geçici çözüm Hala bir Single Point of Failure durumu söz konusu Geçici çözüm Arkaplandaki veri yükü probleminin altında yatan ana sebebi çözmemekte Pahalı donanım Bir zero-downtime çözümü değil İş süreçlerine olumsuz etki Karışık ve zaman alıcı Uyumsuz veri bütünlüğü ihtimali

Slide 16

Slide 16 text

Gerçek İhtiyaçlar?

Slide 17

Slide 17 text

Her bir salisenin bile önemli olduğu bir ortamda hız mı?

Slide 18

Slide 18 text

Her bir salisenin bile önemli olduğu bir ortamda hız mı? Mevcut donanımınız üzerinde çalışan uygulamalarınızda ölçeklenebilirlik mi?

Slide 19

Slide 19 text

Özel bir donanım ihtiyacı olmadan hataya tolere bir yapı mı? Her bir salisenin bile önemli olduğu bir ortamda hız mı? Mevcut donanımınız üzerinde çalışan uygulamalarınızda ölçeklenebilirlik mi?

Slide 20

Slide 20 text

Veri değişimleri uyarılarını gösteren bir sistem mi? Özel bir donanım ihtiyacı olmadan hataya tolere bir yapı mı? Her bir salisenin bile önemli olduğu bir ortamda hız mı? Mevcut donanımınız üzerinde çalışan uygulamalarınızda ölçeklenebilirlik mi?

Slide 21

Slide 21 text

Her bir salisenin bile önemli olduğu bir ortamda hız mı? Özel bir donanım ihtiyacı olmadan hataya tolere bir yapı mı? Veri değişimleri uyarılarını gösteren bir sistem mi? Mevcut donanımınız üzerinde çalışan uygulamalarınızda ölçeklenebilirlik mi? Mevcut analiz sisteminizle veri değiştikçe tekrar tekrar aynı analizleri yapabilmek mi?

Slide 22

Slide 22 text

Red Hat Jboss Data Grid Çözüm:

Slide 23

Slide 23 text

Veri üzerinde daha hızlı aksiyon alma
 Veri güvenliği Red Hat Jboss Data Grid

Slide 24

Slide 24 text

Veri üzerinde daha hızlı aksiyon alma
 Veri güvenliği Veri ölçekleme
 Verimlilik artışı Red Hat Jboss Data Grid

Slide 25

Slide 25 text

Veri üzerinde daha hızlı aksiyon alma
 Veri güvenliği Veri ölçekleme
 Verimlilik artışı Her zaman mevcut veri (Highly Available) Hata toleranslı veri Red Hat Jboss Data Grid

Slide 26

Slide 26 text

En sık erişilen dataları tutabilmek için sağlanan in-memory veri deposu Geçişken, kısa-zamanlı veri depolama imkanı Dağıtık Önbellek 4 Ana Özellik

Slide 27

Slide 27 text

En sık erişilen dataları tutabilmek için sağlanan in-memory veri deposu Geçişken, kısa-zamanlı veri depolama imkanı NoSQL Veritabanı NoSQL Key-Value veri deposu Konfigüre edilebilir ACID transaction desteği Dağıtık Önbellek 4 Ana Özellik

Slide 28

Slide 28 text

En sık erişilen dataları tutabilmek için sağlanan in-memory veri deposu Geçişken, kısa-zamanlı veri depolama imkanı NoSQL Veritabanı NoSQL Key-Value veri deposu Konfigüre edilebilir ACID transaction desteği Olay Dinleyiciler Veri üzerindeki CRUD işlemlerini dinleme ve tepki verme yeteneği Süregelen sorgular ile her zaman aynı sonuc kümesi dönmesi sağlanır Dağıtık Önbellek 4 Ana Özellik

Slide 29

Slide 29 text

En sık erişilen dataları tutabilmek için sağlanan in-memory veri deposu Geçişken, kısa-zamanlı veri depolama imkanı NoSQL Veritabanı NoSQL Key-Value veri deposu Konfigüre edilebilir ACID transaction desteği Olay Dinleyiciler Veri üzerindeki CRUD işlemlerini dinleme ve tepki verme yeteneği Süregelen sorgular ile her zaman aynı sonuc kümesi dönmesi sağlanır Büyük Veri/IoT Analitiği Java Stream API ile basitleştirilmiş MapReduce işlemi Spark ve Hadoop ile entegrasyon Dağıtık Önbellek 4 Ana Özellik

Slide 30

Slide 30 text

Mimariye Genel Bakış Geliştirme Havuzu Geliştirici Araçları Client-Server Modu Library Modu Sistem Yönetimi Hotrod Memcached REST FİZİKSEL PRIVATE PUBLIC SANAL Vert.x JBoss EAP Fuse Vert.x

Slide 31

Slide 31 text

Mimariye Genel Bakış Standalone Çalışma Modu

Slide 32

Slide 32 text

Mimariye Genel Bakış Standalone Çalışma Modu Uygulama Jboss EAP Data Grid JVM

Slide 33

Slide 33 text

Mimariye Genel Bakış Library Modu Cluster Application

Slide 34

Slide 34 text

Mimariye Genel Bakış Library Modu Cluster Application

Slide 35

Slide 35 text

Remote Client-Server Modu Cluster Data Grid Mimariye Genel Bakış

Slide 36

Slide 36 text

Remote Client-Server Modu Protokol ve Dil Desteği Client
 Protokolü Client Dili Format Akıllı yönlendirme Load balancing
 ve
 failover Hot Rod Java, C++, C#, Node.js Binary değer Yes Dinamik REST Herhangi biri Text değeri No Herhangi bir HTTP load balancer Memcached Herhangi biri Text değeri No Öntanımlı server listesi Data Grid Kullanan müşterilerin %90’dan fazlası Remote Client-Server modunda erişim için gözle görülür biz hız sağlayan Hot Rod protokolünü tercih etmekte

Slide 37

Slide 37 text

En sık erişilen dataları tutabilmek için sağlanan in-memory veri deposu Geçişken, kısa-zamanlı veri depolama imkanı NoSQL Veritabanı NoSQL Key-Value veri deposu Konfigüre edilebilir ACID transaction desteği Olay Dinleyiciler Veri üzerindeki CRUD işlemlerini dinleme ve tepki verme yeteneği Süregelen sorgular ile her zaman aynı sonuc kümesi dönmesi sağlanır Büyük Veri/IoT Analitiği Java Stream API ile basitleştirilmiş MapReduce işlemi Spark ve Hadoop ile entegrasyon Dağıtık Önbellek Red Hat Jboss Data Grid 4 Ana Özellik

Slide 38

Slide 38 text

Red Hat Jboss Data Grid NoSQL Veritabanı Olay Dinleyiciler Büyük Veri/IoT Analitiği Dağıtık Önbellek

Slide 39

Slide 39 text

Red Hat Jboss Data Grid Dağıtık Önbellek Olay Dinleyiciler Büyük Veri/IoT Analitiği NoSQL Veritabanı 4 Ana Özellik

Slide 40

Slide 40 text

Dağıtık Önbellek Dağıtık Önbellek Tamamıyla Peer-to-Peer, Master/Slave yok Single Point of Failure yok Lineer olarak yüzlerce node’a ölçeklenebilir Basit donanım ile çalışabilir Dağıtık Önbellek

Slide 41

Slide 41 text

Önbellek (Caching) Modları Önbellek Modları Dağıtık Önbellek

Slide 42

Slide 42 text

Önbellek (Caching) Modları Önbellek Modları Dağıtık Önbellek Replication Local Distribution Invalidation Sync/Async Near Cache

Slide 43

Slide 43 text

Önbellek (Caching) Modları Dağıtık Önbellek Basit in-memory, cluster içinde olmayan önbellek Local

Slide 44

Slide 44 text

Önbellek (Caching) Modları Önbellek Modları Dağıtık Önbellek Replication Local Distribution Invalidation Sync/Async Near Cache

Slide 45

Slide 45 text

Önbellek (Caching) Modları Dağıtık Önbellek Replication Bütün önbellek değerleri cluster üzerindeki tüm nodelara kopyalanır

Slide 46

Slide 46 text

Önbellek (Caching) Modları Önbellek Modları Dağıtık Önbellek Replication Local Distribution Invalidation Sync/Async Near Cache

Slide 47

Slide 47 text

Önbellek (Caching) Modları Dağıtık Önbellek Distribution Nodlar arası önbellek verisi dağılarak tutulur. Hata toleranslı ve ölçeklenebilirdir

Slide 48

Slide 48 text

Önbellek (Caching) Modları Önbellek Modları Dağıtık Önbellek Replication Local Distribution Invalidation Sync/Async Near Cache

Slide 49

Slide 49 text

Önbellek (Caching) Modları Dağıtık Önbellek Invalidation Paylaşılan bir önbellek değeri yok. Verilerin nodelar arası invalidasyonunu sağlar

Slide 50

Slide 50 text

Önbellek (Caching) Modları Önbellek Modları Dağıtık Önbellek Replication Local Distribution Invalidation Sync/Async Near Cache

Slide 51

Slide 51 text

Önbellek (Caching) Modları Dağıtık Önbellek Near Cache https://access.redhat.com

Slide 52

Slide 52 text

Veri Merkezleri Arası Replikasyon Site A Site B Dağıtık Önbellek Coğrafyalar arası Aktif-Aktif replikasyon Hem senkron hem de asenkron replikasyon desteği Veri merkezinin offline olma durumunda online olduktan sonra re-sync olabilme özelliği

Slide 53

Slide 53 text

Red Hat Jboss Data Grid Dağıtık Önbellek Olay Dinleyiciler Büyük Veri/IoT Analitiği NoSQL Veritabanı

Slide 54

Slide 54 text

NoSQL Veritabanı NoSQL Veritabanı NoSQL Veritabanı EXPIRATION & EVICTION Ölümsüz ve ölümlü veriler Girdi sayısı veya kullanılan belleğe göre TRANSACTIONS & PERSISTENCE XA desteği, Recovery ve konfigüre edilebilir ACID transactions Seçimli pasivasyon Dosya, JDBC, JPA, LevelDB…vb. GÜVENLİK & OTORİZASYON Coarse-grained JAAS Güvenlik Poliçeleri

Slide 55

Slide 55 text

Sorgular NoSQL Veritabanı EMBEDDED SORGULAR Lucene & Hibernate aramayı kullanır Lucene Sorguları ve Query DSL Aggregate’ler, gruplama, sıralama Dinamik indeksleme REMOTE SORGULAR Çapraz dil uyumu için protobuf şemaları kullanımı Query DSL QueryBuilder qb = Search.getSearchManager(cache) .buildQueryBuilderForClass(Book.class).get(); org.apache.lucene.search.Query query = qb .keyword().onFields("title", "author") .matching("Java rocks!").createQuery(); CacheQuery cacheQuery = Search.getSearchManager(cache).getQuery(query);
 List list = cacheQuery.list();

Slide 56

Slide 56 text

Red Hat Jboss Data Grid Dağıtık Önbellek Olay Dinleyiciler Büyük Veri/IoT Analitiği NoSQL Veritabanı

Slide 57

Slide 57 text

Olay Dinleyiciler LOCAL/CLUSTER DİNLEYİCİLERİ Local veya clusterdaki değişiklikleri algılar CDU olayları, Expiration olayları REMOTE DİNLEYİCİLER Remote serverlardaki değişiklikleri algılar Özelleşmiş server-side filtre veya çeviriciler @Listener public class PrintWhenAdded { @CacheEntryCreated public void print(CacheEntryCreatedEvent e) { System.out.printf( "New entry %s created in local cache", e.getKey()); } } @ClientListener public class RemotePrintWhenAdded { @ClientCacheEntryCreated public void print(ClientCacheEntryCreatedEvent e) { System.out.printf( "New entry %s created in remote cache", e.getKey()); } } Olay Dinleyiciler

Slide 58

Slide 58 text

Süregelen Sorgular Sonucu elde et Olay sonucu dönünce:
 Veri seti değişir Sorgu oluştur Olay Dinleyiciler

Slide 59

Slide 59 text

Süregelen Sorgular Olay Dinleyiciler Sonucu elde et Olay sonucu dönünce:
 Veri seti değişir Sorgu oluştur Embedded ve remote sorguların ikisi de desteklenmekte

Slide 60

Slide 60 text

Red Hat Jboss Data Grid Dağıtık Önbellek Olay Dinleyiciler Büyük Veri/IoT Analitiği NoSQL Veritabanı

Slide 61

Slide 61 text

Büyük Veri/IoT Analitiği Büyük Veri/ IoT Analitiği

Slide 62

Slide 62 text

Apache Spark Entegrasyonu Red Hat JBoss Data Grid Cluster .…n Spark Worker’ları Spark Driver .…n Büyük Veri/ IoT Analitiği

Slide 63

Slide 63 text

Kullanım Alanları Web, E-Ticaret

Slide 64

Slide 64 text

Web, E-Ticaret Eski Uygulama Performans İyileştirme Telco Seyahat Finans Savunma Sigortacılık

Slide 65

Slide 65 text

Web, E-Ticaret Eski Uygulama Performans İyileştirme

Slide 66

Slide 66 text

Web, E-Ticaret Eski Uygulama Performans İyileştirme Telco Seyahat Finans Savunma Sigortacılık

Slide 67

Slide 67 text

Web, E-Ticaret Eski Uygulama Performans İyileştirme Telco Seyahat Finans Savunma Sigortacılık

Slide 68

Slide 68 text

Teşekkürler @systemcraftsman