Slide 1

Slide 1 text

Data Versioning with at Microservice Applications Ahmet Pirimoğlu Software Team Lead |

Slide 2

Slide 2 text

Ahmet Pirimoğlu • 2006 yılından beri yazılım geliştirici • 15+ yıldır farklı sektörlerde • Finans Çözümleri • Yükseköğretim Çözümleri • Genellikle yazılım altyapı ekiplerinde • yaklaşık 2 yıldır • Şu an "Open Banking" projesinin yazılım altyapı tarafında "Yazılım Takım Lideri"

Slide 3

Slide 3 text

Ajanda Open Banking Platform Projemizin kısa aktarımı Dolt ile Tanışma Hikayemiz Dolt Nedir? Dolt’un özellikleri Dolt API Pipeline ve Migration Open Banking Projesinde Dolt’u nasıl kullandık Data Migration Kavramı Soru & Cevap

Slide 4

Slide 4 text

Open Banking Platform • Microservice Application • CQRS & DDD • DB & Cloud & Platform Agnostic • Code First Migration (Multi-DB Provider)

Slide 5

Slide 5 text

Open Banking Platform Database server per service (each service has its own database server)

Slide 6

Slide 6 text

Open Banking Platform • 30+ Microservice • 30+ X Tenant Count Databases • 4 Database Provider • PostgreSQL • Oracle • MS SQL Server • MySQL

Slide 7

Slide 7 text

Dolt ile Tanışma Her yeni projedeki gibi seed data'ları sisteme nasıl atacağımızla ilgili toplantıda bir tartışma başladı. - Developer lar seed data ları yönetsin! - Olmaz analistler de verileri girecek, arayüzden girebilmemiz lazım - O zaman nasıl yöneteceğiz? - ...

Slide 8

Slide 8 text

Dolt ile Tanışma Sonra bir arkadaşımızın kafasında bir ışık yandı, • bu verileri kod gibi saklayabileceğimiz bir sistem var mı acaba? • Git gibi olsun • Git data desek google da arasak ...

Slide 9

Slide 9 text

Dolt is “Git for data” Aranan kan bulundu

Slide 10

Slide 10 text

Dolt Nedir? • Git'in veri için olan hali • Fork, clone, branch, merge, push, pull vs. git'te karşılaştığımız tüm kavramlar • Dolt > git, dolthub > github, doltlab > gitlab • MySQL uyumlu ama içerisinde herhangi bir MySQL kodu barındırmayan bir veritabanı

Slide 11

Slide 11 text

Dolt Nedir? • Dolthub başlarda veri toplama yarışmaları için kullanılıyor • Git’te olduğu gibi hangi tarihte nasıl bir içerik vardı, kim nasıl bir değişiklik yaptı bunların tamamı hızlı bir şekilde kontrol edilebilir • Sistemsel parametrelerin versiyonlanması ve canlıya geçişi için kullanılabilir

Slide 12

Slide 12 text

Dolt Çalışma Yapısı • Veriler işlenerek tablo formatına getirilir • Dolt ile yeni bir commit oluşturulur • Remote repo’muza (doltlab) push’lanır • Main branch'e geçmesi için PR oluşturulur

Slide 13

Slide 13 text

Dolt Çalışma Yapısı

Slide 14

Slide 14 text

Open Banking Projesinde Dolt Seed (tohum) ve parametre verileri olarak adlandırdığımız ve uygulamanın ilk kurulduğu/konfigüre edildiğinde sistemin çalışması için gerekli olan tanımların; • kolay şekilde, • kullanıcı arayüzünden girilmesi, • versiyonlanması, • dağıtılması, • developer ve analistlerin istedikleri gibi branchler açıp gerek lokal, gerekse de ortak alanda çalışabilmeleri • ve bu veri setlerinin kolaylıkla paylaşımı/dağıtılmasını sağlamak amacıyla kullanılmaktadır.

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

DOLT CLI

Slide 18

Slide 18 text

Doltlab Veri Giriş Yöntemleri

Slide 19

Slide 19 text

SQL Query

Slide 20

Slide 20 text

Spreadsheet

Slide 21

Slide 21 text

File Upload

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

Dolt API • Dolt içerisinde yer alan database tablo ve kolon yapılarına SQL sorgusu atmak için bir API yapısı bulunmaktadır

Slide 25

Slide 25 text

Dolt API •dolt_diff •dolt_diff_$TABLENAME •dolt_commit_diff_$TABLENAME

Slide 26

Slide 26 text

Pipeline Yapımız

Slide 27

Slide 27 text

Migration Yapısı

Slide 28

Slide 28 text

Data Migration SELECT * FROM `dolt_commit_diff_{0}` WHERE from_commit = '{1}' and to_commit = HASHOF('HEAD')

Slide 29

Slide 29 text

Yeni Hedef: Dolt Mode

Slide 30

Slide 30 text

Kendin Sor Kendin Cevapla

Slide 31

Slide 31 text

“ Dolt open source mu?

Slide 32

Slide 32 text

“ Dolt’u cloud ortamda kullanabiliyor muyum?

Slide 33

Slide 33 text

“ Dolt'a alternatif var mı?

Slide 34

Slide 34 text

“ Dolt'a alternatif var mı? https://lakefs.io/blog/dvc-vs-git-vs-dolt-vs-lakefs

Slide 35

Slide 35 text

“ Dolt üzerinden schema’yı da yönetebiliyor muyum?

Slide 36

Slide 36 text

“ Dolt sadece MySQL üzerinde mi çalışıyor?

Slide 37

Slide 37 text

“ Dolt sadece MySQL üzerinde mi çalışıyor?

Slide 38

Slide 38 text

Teşekkürler [email protected] https://www.pirimoglu.com https://twitter.com/ahmetpirimoglu https://www.linkedin.com/in/ahmetpirimoglu https://medium.com/dgpays-tech DnA Ekibimizin oluşturduğu Wiki Dokümanları