Hybrid Cloud, Enterprise Linux ve Containers
Enterprise Linux Hizmet Mimarisi ve Operasyonu
Boot, systemd ve process zincirini hizmet olarak oku
Ön koşul: compute, storage, network, availability, lifecycle ve workload placement kavramlarını açıklayabilmelisin. Bu dersin sonunda Linux sunucuyu paket listesi olarak değil; boot, kernel, systemd unit, process, filesystem, network, identity, log, resource ve security policy zinciriyle çalışan bir hizmet platformu olarak okuyacaksın. Arven için ölçülebilir baseline, dependency haritası, patch/reboot akışı, negatif test, RACI, risk/TBD ve yeniden açma koşulu üreteceksin. Yaklaşık 32 dakika anlatı ve örnek, 18 dakika uygulama, 12 dakika bilgi kontrolleridir.
Linux’ta “sunucu açık” iş hizmetinin hazır olduğunu kanıtlamaz. Firmware ve bootloader kernel’i başlatır; kernel CPU, memory, device ve filesystem yeteneklerini sunar; initramfs kök dosya sistemine geçişi hazırlar; systemd hedefler ve unit bağımlılıklarıyla servisleri getirir. Uygulama ancak doğru mount, network, DNS, time, identity, secret, certificate, port ve downstream bağımlılıkları hazır olduğunda kullanılabilir olur. Bu yüzden boot süresi kadar hizmet readiness zinciri ölçülür. Systemd unit yalnız start/stop düğmesi değildir. Service, socket, timer, mount, path, target ve device unit’leri dependency graph kurar. Requires veya Wants gereksinim gücünü, After/Before yalnız sıralamayı ifade eder; biri diğerinin yerine geçmez. Enable boot sırasında istenen ilişkiyi kurar, start mevcut oturumda çalıştırır. Restart policy, timeout, environment, user/group, capability, filesystem görünürlüğü ve resource seçenekleri unit davranışının parçasıdır. Vendor unit dosyasını doğrudan değiştirmek yerine denetlenebilir drop-in kullanılır; daemon-reload ile tanım yenilenir. Process kimliği PID’den ibaret değildir: parent/child ilişkisi, effective user, open file/socket, environment, working directory, namespace, cgroup ve limitler olay davranışını belirler. “Process running” ile “service ready” ayrılır. Status, journal, socket listen, dependency health ve sentetik iş işlemi aynı kanıt paketinde bulunur. Graceful reload, restart ve node reboot etkileri ayrı test edilir; stateful hizmette durdurma sırası ve transaction drain açıkça yazılır.
| Katman | Kanıt | Negatif test |
|---|---|---|
| Boot/kernel | Boot kaydı, kernel ve device readiness | Eksik device veya bozuk mount |
| systemd | Unit/dependency graph ve drop-in | Dependency geç veya başarısız |
| Process | User, limit, socket ve exit nedeni | Kill, hang ve restart storm |
| Readiness | Sentetik işlem ve downstream sağlık | Process açık, dependency kapalı |
| Shutdown | Drain, stop sırası ve süre | Timeout ve zorla sonlandırma |
ÖRNEK
Aktif görünen ama hazır olmayan sipariş API’si
Arven API unit’i boot sonrası active görünür; fakat veri diski yanlış mount noktasına bağlanmış, DNS kaydı henüz erişilebilir değildir. Process ayaktadır ama readiness isteği hata verir. Ekip unit’e doğru mount/network bağımlılıklarını, kontrollü retry ve sentetik işlem alarmını ekler; reboot testinde hizmete dönüş süresini ölçer.
MÜŞTERİYE SOR
İş hizmetinin reboot sonrası hazır sayılması için hangi unit, mount, network, identity, secret ve downstream bağımlılıkları hangi sırada ve hangi kanıtla hazır olmalıdır?
“Makine açıldı” kabulünü uçtan uca hizmet readiness sözleşmesine dönüştürür.
BİLGİNİ KONTROL ET
Bir systemd unit için enable işlemi neyi tek başına kanıtlamaz?
Software, filesystem, network ve identity baseline’ını kur
İşletilebilir Linux baseline’ı sürüm adından geniştir. OS major/minor, kernel, repository kaynağı, package seti, module stream, firmware/driver uyumu, support entitlement ve lifecycle birlikte kaydedilir. DNF paket, dependency ve repository metadata’sını yönetir; ancak “update geçti” uygulamanın uyumlu olduğunu veya çalışan kernel’in yenilendiğini kanıtlamaz. Değişiklik paketi; advisory etkisi, dependency farkı, disk ihtiyacı, config merge, service restart, reboot, rollback/restore yöntemi ve uygulama smoke testini içerir. Paketleri rastgele dış kaynaktan eklemek provenance ve support sınırını bozar. Filesystem tasarımında capacity kadar inode, mount option, ownership, permission, ACL, label, quota, growth, log rotation, temporary alan ve backup/recovery davranışı değerlendirilir. /etc konfigürasyonu, /var değişken veri/log, uygulama binary’si ve persistent data ayrı lifecycle taşır. LVM veya benzeri katmanlar esneklik sağlar; snapshot tek başına backup değildir. /etc/fstab hatası boot’u, dolu /var log ve package işlemlerini, dolu inode ise boş kapasite görünmesine rağmen dosya yaratmayı durdurabilir. Mount kimliği device adından ziyade kararlı UUID/LABEL ve açık failure davranışıyla yazılır. Network baseline; interface/bond, VLAN, IP, route, MTU, DNS, NTP, firewall zone/rule, proxy ve service listen adresini kapsar. Bir portun açık olması doğru process, doğru TLS identity ve doğru uygulama yanıtını garanti etmez. Identity tarafında local/service account, merkezi dizin, sudo, SSH key, PAM, secret rotation, lockout ve break-glass ayrılır. İnsan hesabı ile service account paylaşılmaz; least privilege ve kayıtlı elevation uygulanır.
| Alan | Baseline | Değişiklik kanıtı |
|---|---|---|
| Software | OS/kernel/repo/package/support | Advisory, dependency ve smoke |
| Filesystem | Mount, inode, permission, label, growth | Capacity ve recovery testi |
| Network | Route, DNS, NTP, firewall, TLS | Uçtan uca akış testi |
| Identity | Account, sudo, key, PAM, break-glass | Yetkili/yetkisiz negatif test |
| Lifecycle | Patch, reboot, rollback, support sonu | Maintenance ve exit planı |
MÜŞTERİYE SOR
Desteklenen OS/kernel/repository kombinasyonu, patch penceresi, reboot toleransı, filesystem büyüme/inode eşiği, DNS-NTP bağımlılığı ve service identity sahibi kimdir?
Platform baseline’ını satın alma sürümünden işletim ve lifecycle sözleşmesine taşır.
ŞİMDİ SEN DENE
Arven Linux baseline ve değişiklik paketi hazırla
Sipariş API’si için OS/kernel/repo/package, mount/inode, route/DNS/NTP/firewall, account/sudo/key, certificate ve support lifecycle baseline’ı çıkar. Bir güvenlik güncellemesi için precheck, config diff, service restart/reboot, smoke, rollback, owner ve maintenance kanıtlarını yaz.
BİLGİNİ KONTROL ET
Paket güncellemesinin başarıyla tamamlanması hangi sonucu tek başına kanıtlamaz?
Gözlem, kaynak kontrolü ve SELinux kanıtını birleştir
Gözlemlenebilirlik yalnız CPU grafiği değildir. Journal ve uygulama logu; timestamp/timezone, boot kimliği, unit, process ve request correlation ile olay zinciri kurmalıdır. Metric; CPU saturation, run queue, memory pressure, swap, OOM, disk latency/queue, capacity/inode, network error/drop/retransmit ve service SLI’larını birlikte izler. Log rotation, retention, remote forwarding, saat eşitleme ve disk baskısı planlanmazsa olay anında kanıt kaybolur. Alarmın owner, eşik, süre, severity, runbook ve escalation bilgisi olmalıdır. Cgroups process’leri hizmet grubu olarak sınırlama, önceliklendirme ve izole etme imkânı verir. RHEL 9’da systemd unit ağacı cgroup hiyerarşisiyle ilişkilidir; CPUWeight rekabet anında göreli pay, CPUQuota üst sınır, MemoryMax sert limit, MemoryLow koruma davranışı sağlar. Limit seçimi ölçülmüş workload ve failure senaryosuna dayanır. Çok düşük memory limiti OOM tekrarına, limitsiz batch işi komşu hizmetin boğulmasına yol açabilir. Resource kontrolü kapasite planının yerine geçmez; base/adverse yük, headroom ve throttling etkisi test edilir. DAC ownership/mode/ACL ile, SELinux ise label ve policy tabanlı mandatory access control ile karar verir; biri diğerinin yerine geçmez. Enforcing önerilen çalışma modudur. AVC denial görülünce önce beklenen akış, source/target context, boolean ve dosya label’ı doğrulanır; restorecon veya doğru policy çözümü kanıta göre uygulanır. Körlemesine permissive veya geniş allow kuralı kalıcı çözüm değildir. Security ayrıca minimal package/service, firewall, SSH, sudo, secret, audit, vulnerability ve configuration drift kontrollerini kapsar.
ÖRNEK
Batch işi API’yi aç bırakıyor
Arven raporlama batch’i kampanya gecesi CPU ve memory tüketir; host toplam kullanımı “normal” görünürken sipariş API’sinin latency’si bozulur. Ekip workload’ları ayrı systemd unit/cgroup altında ölçer, göreli CPU payı ve memory sınırını adverse yükte dener; API SLI, throttling ve OOM kanıtına göre limitleri ayarlar.
MÜŞTERİYE SOR
Hangi SLI ve host sinyalleri aynı olay zaman çizgisinde tutuluyor; resource limit veya SELinux denial oluştuğunda kim, hangi runbook ve hangi güvenli değişiklik kapısıyla müdahale ediyor?
Performans ve güvenlik kontrollerini ölçülebilir operasyon davranışına bağlar.
ŞİMDİ SEN DENE
Negatif kaynak ve SELinux testi tasarla
API ve batch için CPU, memory, I/O baseline/limit ile SLI ilişkisini yaz. CPU baskısı, memory leak, dolu /var ve yanlış SELinux label senaryolarında beklenen alarmı, journal/metric/AVC kanıtını, güvenli müdahaleyi, stop koşulunu ve retest sonucunu tanımla.
ŞİMDİ SEN DENE
Olay kanıt zinciri kur
Bir başarısız sipariş için load balancer’dan Linux unit’ine, process, socket, uygulama logu, database çağrısı ve audit kaydına correlation zinciri çiz. Saat, retention, remote forwarding, erişim yetkisi, kişisel veri maskeleme ve kanıt kaybı riskini ekle.
BİLGİNİ KONTROL ET
Bir SELinux denial görüldüğünde en güvenli ilk yaklaşım hangisidir?
Arven Linux işletim modelini ve kararını üret
Arven sipariş API’si için iki node’lu Linux platformunu değerlendirir. Bugün package sürümleri farklı, yönetici hesabı ortak, repository belirsiz, /var dolmaya yakın, restart sonrası secret elle giriliyor; uygulama ve batch aynı kaynak alanında çalışıyor. Hedef iki node’da tekrar edilebilir, desteklenen, ölçülen ve devredilebilir hizmettir. Karar paketi golden baseline’dan başlar: desteklenen OS/kernel ve repository, minimal package/service, systemd unit/drop-in, ayrı service identity, mount/inode/growth, network/DNS/NTP/firewall, certificate/secret, SELinux enforcing, remote journal/metric, backup ve configuration automation. Drift günlük ölçülür; yetkisiz fark incident/değişiklik akışına girer. Patch ring önce test node’una, sonra tek production node’una, sentetik sipariş ve observation penceresinden sonra diğer node’a ilerler. Kernel veya kritik library değişiminde reboot açık kapıdır; HA kapasitesi bir node kaybını adverse yükte taşımadan bakım başlamaz. POC; temiz kurulumdan hizmete süreyi, reboot sonrası readiness’i, node kaybını, repo kesintisini, yanlış DNS/NTP’yi, dolu /var/inode’u, certificate expiry alarmını, batch kaynak baskısını, SELinux denial teşhisini, log forwarding kaybını ve rollback/restore’u sınar. Ölçütler yalnız teknik başarı değil; süre, veri kaybı, SLI, operatör adımı ve runbook sapmasıdır. Security, Linux/platform, application, network, database ve service desk RACI’si ile vendor escalation yolu yazılır. Koşullu öneri: automation ile aynı baseline tekrar üretilebiliyor, iki node tek node adverse kapasitesini taşıyor, patch/reboot akışı SLI içinde kalıyor, enforcing modunda uygulama çalışıyor, negatif testler alarm/runbook üretiyor ve destek/lifecycle bütçesi onaylanıyorsa platform üretime alınır. Bunlardan biri kanıtsızsa risk/TBD sahibi ve tarihiyle karar koşullu kalır. Uygulama dependency’si, yük profili, support lifecycle, regülasyon, recovery hedefi veya container dönüşüm kararı değişirse mimari yeniden açılır.
| Kapı | Zorunlu kanıt | Red nedeni |
|---|---|---|
| Tekrarlanabilirlik | Kodlanmış baseline ve drift raporu | Elle ve farklı node kurulumu |
| Hizmet | Boot/readiness/dependency negatif testi | Active ama işlem başarısız |
| Bakım | Ring, HA capacity, reboot ve rollback | Tek node yükü taşıyamıyor |
| Güvenlik | Least privilege, enforcing ve audit | Kapatılmış kontrol veya ortak hesap |
| Operasyon | SLI, alarm, runbook, RACI, support | Sahipsiz alarm ve kanıtsız recovery |
MÜŞTERİYE SOR
Arven platformunun production ready sayılması için hangi baseline, adverse-capacity, patch/reboot, enforcing, drift, backup/recovery, runbook ve support kanıtları zorunlu; hangi eksik koşul kararı durdurur?
Linux ürün seçimini sınanabilir hizmet kabulü ve residual risk kararına dönüştürür.
ŞİMDİ SEN DENE
Arven Linux hizmet karar paketini tamamla
İki node için service/dependency haritası, golden baseline, patch ring, one-node adverse sizing, 10 negatif test, SLI/alarm/runbook, RACI, üç yıllık support/operasyon maliyeti, sekiz risk/TBD, POC kabulü, handover ve altı yeniden açma eşiği üret. Koşullu öneriyi bir sayfada savun.
BU DERSTEN AL
Bu dersten taşıyacağın düşünceler
- Linux sunucunun açık olması iş hizmetinin hazır olduğunu kanıtlamaz.
- Systemd unit, dependency, process ve readiness birlikte doğrulanır.
- Repository, package, filesystem, network ve identity desteklenen baseline’ın parçalarıdır.
- Journal/metric/SLI olay zinciri; cgroup limitleri ölçülmüş yükle ilişkilendirilir.
- SELinux enforcing korunur; denial context, label ve policy kanıtıyla çözülür.
- Arven kabulü automation, patch/reboot, adverse capacity, negatif test, RACI ve lifecycle koşullarına bağlıdır.