ALTYAPI & SÜREKLİLİK
00:001/1

Teknoloji sunumu

Yazılımı herkes gösterir.
Biz altını gösteriyoruz.

Bir platformun değeri ekranlarında değil, ekranlar çalışmayı bıraktığında ne olduğunda ortaya çıkar. Bu sunum tam olarak orayı anlatıyor.

ilerle · geri · F tam ekran · N notlar · O içindekiler

Nereden başlıyoruz

Demo herkeste güzel görünür.
Asıl soru: gece 03:00'te disk dolduğunda kim haberdar oluyor?

Bu üç sorunun yazılı bir cevabı yoksa, cevap “bilmiyoruz” demektir.

Ayrım

İki tür sistem vardır

Birincisi

Çalışan sistem

Kurulur, açılır, iş görür. Sorun çıkana kadar her şey yolundadır. Sorun çıktığında kimse ne olduğunu bilmez; kurtarma o gece doğaçlama yapılır.

İkincisi

Çalışmaya devam eden sistem

Arızayı kendisi haber verir, yedeğini doğrulayarak alır, kötü günün prosedürü önceden yazılmıştır. Kurtarma doğaçlama değil, uygulama işidir.

Aradaki fark teknoloji seçimi değil, işletme disiplini. Sonraki slaytlar bu disiplinin nasıl göründüğünü anlatıyor.

Mimari

Uygulama katmanı ile veri katmanı ayrı durur

Bu şemayı okumanız gerekmiyor — göstermek istediğimiz tek şey şu: durumu tutan hiçbir şey uygulama katmanında değil.

İstemci tarayıcı · .NET 443 · 5672 ingress-nginx lb.ornek.ip TLS · cert-manager AMQP: tcp-services host'a göre Kubernetes 1 control plane + 4 worker devops Jenkins · ArgoCD Gitea · Harbor monitoring Prometheus · Grafana Loki · Jaeger dev RabbitMQ · SonarQube Kibana · DB arayüzleri n8n · Rocket.Chat · Jitsi task OpenProject websites WordPress statik site titconn api · hub · micro scheduler · grpc CRI-O · Cilium (kube-proxy yok) · nas-storage LoadBalancer havuzu lb.ornek.ip–195 sorgu db.sirket.ornek cluster dışında, tek sunucu PostgreSQL 5432 MySQL 3306 MongoDB 27017 Elasticsearch 9200 Valkey 6379 2 TB yerel VMDK NFS NAS nas.ornek.ip /volume1/<paylasim> PVC başına bir klasör reclaim: Retain TXT Cloudflare DNS DNS-01 · Let's Encrypt

Bunun pratik karşılığı

Bakım artık gece yapılan riskli bir iş değil

Yükseltme

Uygulama katmanı yenilenir

Konteynerler değişir, veri hiç dokunulmadan yerinde kalır.

Taşıma

Ortam değiştirilebilir

Cluster baştan kurulsa bile veritabanı ve dosyalar aynı yerde durur.

Kurtarma

Kapsam daralır

Bir arıza tüm sistemi değil, tek katmanı ilgilendirir.

Çoğu kesinti arızadan değil, arızayı düzeltme girişiminden doğar. Katmanları ayırmak bu riski baştan küçültür.

Sürüm yönetimi

Üretime hiç kimse elle dokunmuyor

Kod tek yönde ilerler; cluster'ı değiştiren tek bileşen dağıtım aracıdır.

1 Gitea git.sirket.ornek webhook 2 Jenkins ci.sirket.ornek SSH 3 Build sunucusu build.ornek.ip dotnet · docker build node_exporter :9100 push 4 Harbor images.sirket.ornek 5 · sürüm numarası ArgoCD deposu manifest · git 6 ArgoCD cd.sirket.ornek apply Cluster pod'lar imajı çeker pull 7 #alert Rocket.Chat

Değişiklik güvenliği

Yeni sürüm çıkmak korkulacak bir şey olmamalı

Veri güvenliği

Yedek tek katman değil, üç katman

24s Mantıksal döküm · RPO

Her gece, her veritabanı ayrı. Tek bir tabloyu geri almak mümkün — tüm sunucuyu dünkü haline döndürmeden.

24s Sunucu anlık kopyası · RPO

Makinenin bütün görüntüsü. Donanım kaybında en hızlı dönüş yolu.

14g Sistem yapılandırması · saklama

Cluster'ın kendisi de yedekleniyor: servisler, ayarlar, erişim kuralları, sertifikalar.

RPO — kabul edilen azami veri kaybı. Bizde 24 saat: en kötü durumda son gece yarısına dönülür. Daha kısa bir RPO isteniyorsa çözüm yedeği sıklaştırmak değil, çoğaltma (replication) kurmaktır — ayrı bir yatırım kalemi.

İzleme

Sorunu müşteri değil, sistem haber verir

Ölçüm disk · bellek · yanıt Kural eşik + süre Değerlendirme gruplama · tekrar Bildirim ekip kanalı İnsan müdahale

Kapsam

İzlenen ne var

24İzlenen nokta

Servisler, veritabanları, dış adresler, sertifikalar, derleme sunucusu.

26Alarm kuralı

Her biri belirli bir arıza türü için ayrı yazılmış.

3dkFark etme

Anlık dalgalanmalar elendikten sonraki tipik uyarı süresi.

7/24Bildirim

Doğrudan ekip kanalına; kimse ekrana bakmak zorunda değil.

Alarm sayısı bilinçli olarak düşük tutuluyor. Sürekli çalan bir kanal, hiç çalmayan bir kanaldan daha tehlikelidir — çünkü insanlar bakmayı bırakır.

Süreklilik · RTO

Kötü gün için yazılı cevap

RTO — arızadan sonra hizmetin ayağa kalkması için hedeflenen süre. Aşağıdakiler senaryo bazında, çünkü tek bir rakam vermek yanıltıcı olur: bir worker'ın düşmesi ile veri merkezinin gitmesi aynı şey değildir.

SenaryoEtkiHedef RTO
Bir sunucu düşerEtki yok — iş yükü diğerlerine kayardakikalar
Yönetim düğümü düşerServisler ayakta, değişiklik yapılamaz1–3 saat
Veritabanı sunucusu düşerKesinti1–2 saat
Yanlışlıkla veri silinirTek tablo geri alınır, gerisi yerinde kalırdakikalar
Ortam sıfırdan kurulurTest edilmiş sırayla, scriptlerle4–8 saat

Bunlar pazarlama vaadi değil, yazılı prosedürlere dayanan hedeflerdir — her satırın arkasında adım adım komutlarıyla bir kurtarma dokümanı var. Prosedürü olmayan bir kurtarma planı, iyimser bir tahminden ibarettir.

Güvenlik

Kurumsal kimlik, kapalı kapılar

Kimlik yönetimi

Active Directory entegrasyonu. Bir kullanıcı işten ayrıldığında erişimi tek yerden kapanır; ayrı kullanıcı listesi tutulmaz.

Şifreli trafik

Bütün adresler gerçek sertifikalarla. Yenileme otomatik, süre takibi izleniyor.

Özel imaj deposu

Üretime giden her konteyner kendi deponuzdan gelir; dış kaynağa bağımlılık yok.

Denetim izi

Kim neyi ne zaman dağıttı — sürüm kaydında, sonradan değiştirilemez.

Somut

Rakamlarla platform

21Uygulama

Tek yönetim altında, birbirine bağlı çalışan bileşen.

5Veri motoru

İhtiyaca göre doğru araç: ilişkisel, doküman, önbellek, arama, kuyruk.

70Kurulum scripti

Her adım kayıtlı ve tekrarlanabilir. “Bir kişinin bildiği” hiçbir şey yok.

36Kayıtlı tuzak

Karşılaşılmış, çözülmüş ve yazılmış sorun.

Son rakam en önemlisi. Bir ekibin olgunluğu hata yapmamasıyla değil, hatalarını yazılı hâle getirmesiyle ölçülür.

Teslim

Kurulumla birlikte belge de teslim edilir

Bağımlılık yaratmıyoruz. Belgeler sizin, scriptler sizin — isterseniz başka bir ekip devralabilir. Güven de tam olarak buradan çıkıyor.

Geçiş

Şimdiye kadar anlattığım her şey bunu ayakta tutmak için var.

Altyapı kendi başına bir değer değil. Değer, üzerinde koşan uygulamanın kesintisiz ve güvenli çalışmasında.

Ürün

TitConn · yedi servis, tek platform

ServisNe yaparBağlı olduğu
uiKullanıcı arayüzü — tarayıcının konuştuğu tek yerapi · hub
apiİş mantığı ve veri erişimiSQL · Mongo · Redis · kuyruk
hubGerçek zamanlı bağlantı — anlık bildirimapi · Redis
microserviceKuyruktan iş tüketen arka plan servisikuyruk · SQL · Mongo
schedulerZamanlanmış işlerkuyruk · SQL
keyvaultYapılandırma ve gizli değer dağıtımıSQL
grpcserviceServisler arası ikili protokol iletişimiSQL

Ağır işler kullanıcıdan ayrı süreçlerde koşuyor. Bir rapor üretimi yavaşladığında arayüz yavaşlamıyor — çünkü aynı yerde çalışmıyorlar.

Erişim

Kimlik doğrulama — kurumsal ve yedekli

Birincil

Azure SSO

Kurumsal kimlikle tek oturum açma. Kullanıcı Azure tarafında yönetilir; işten ayrılan biri orada kapatıldığında uygulamaya da giremez. Parola uygulamada hiç tutulmaz.

Yedek

Uygulama kullanıcıları

Kurumsal hesabı olmayan dış kullanıcılar, servis hesapları — ve SSO erişilemediğinde kullanılan ikinci yol.

İkinci yol bilinçli. Tek kimlik kaynağına bağlı kalsaydık, sağlayıcı tarafındaki bir kesinti uygulamaya girişi tamamen durdururdu. Yedeği olmayan kimlik, tek noktalı arızadır.

Ürün mimarisi

TitConn · kendi veri merkezinizde

Dışarı açık servisler, cluster içinde kalan arka plan işçileri, ve ortak altyapı. Durumu tutan hiçbir şey cluster'ın içinde değil.

Azure SSO kurumsal kimlik Active Directory iç DNS · ad.ornek.ip Kullanıcı tarayıcı ingress-nginx lb.ornek.ip TLS · cert-manager isim çözümleme titconn namespace dışarı açık ui titconn-app hub titconn-hub api titconn-api oturum açma ortak RabbitMQ yalnızca cluster içi microservice kuyruk tüketici scheduler zamanlanmış iş keyvault · grpcservice — cluster içi, dışarı açık değil db sunucusu · cluster dışında SQL Server iş verisi + kullanıcı tablosu MongoDB Valkey Elasticsearch izleme verisi NAS · Synology kalıcı diskler · dosyalar Prometheus · Loki · Jaeger metrik · log · iz

Aynı ürün, ikinci ortam

TitConn · Azure üzerinde

Grupların işlevi birebir aynı. Değişen tek şey ortak altyapının nerede durduğu — burada yönetilen bulut servisleri, orada kendi veritabanı sunucumuz.

Azure SAP & PO kurum içi Kullanıcı tarayıcı App Gateway Front Door SAP çağrıları AKS Public Web App Hub API Common RabbitMQ MongoDB Redis Private Micro Service iş kuyruğu Scheduler zamanlanmış iş Managed Services Azure SQL ilişkisel veri Storage Account dosyalar App Insights telemetri tüm servisler
ilişkisel veri kuyruk doküman önbellek kimlik · dış sistem

Nerede çalışır

Aynı ürün, iki ortam, tek süreç

Bulut

Azure

Yönetilen veritabanı, otomatik ölçekleme, sağlayıcı güvencesi. Donanım derdi yok.

Kendi veri merkeziniz

Kubernetes

Veri kurum dışına çıkmaz. Mevzuat ya da politika gereği içeride tutulması gerekenler için.

Ortak

Aynı kod

Aynı imajlar, aynı sürüm akışı, aynı geri alma yöntemi. Ortam değişir, süreç değişmez.

Bu, bir gün fikir değiştirebilmek demek. Seçim tek yönlü bir kapı değil — buluttan içeri, içeriden buluta taşınabilir.

Karar sizin

Ortam seçimi teknik değil, ticari ve hukuki bir karar

KonuBulutKendi veri merkeziniz
Veri yerelliğiSağlayıcının bölgesindeTamamen sizde
Veritabanı işletimiSağlayıcı üstlenirBizim kurduğumuz süreçlerle
Başlangıç maliyetiDüşükDonanım yatırımı
Uzun vadeli maliyetKullanıma göre artarÖngörülebilir
ÖlçeklemeDakikalarDonanım planlaması
Uygulama ve sürüm akışıİkisinde de birebir aynı

Özet

Çalışan bir sistem kurmak zor değil.
Zor olan, çalışmaya devam edeceğini kanıtlayabilmek.

Sorular · Detaylı teknik kılavuz talep üzerine paylaşılır

Konuşmacı notu

İçindekiler