Previous slide
Next slide
Toggle fullscreen
Open presenter view
Konteynerlere Giriş
Görsel Alanı
Görsel Alanı
Fiziksel Donanim Çağı
Görsel Alanı
Sanallaştırma Çağı
Görsel Alanı
Konteyner Çağı
Görsel Alanı
Görsel Alanı
Fiziksel StartUp
Düğmeye basılması
BİOS ve sistem donanım kontrolleri
İşletim sistemi önyükleyicisi
İşletim sistemi süreçleri
Uygulamalar
Sanal StartUp
İşletim sistemi önyükleyicisi
İşletim sistemi süreçleri
Uygulamalar
Container StartUp
Uygulamalar
Kiyaslama
Görsel Alanı
Neden konteynerleri kullanmak isteriz?
Yazılım Bağımlılıkları
Bazı programlar karmaşık yazılım ortamları gerektirir:
İşletim sistemi türü ve sürümleri
Sürücüler
Derleyici türü ve sürümleri
Yazılım Bağımlılıkları (devam)
Yazılım bağımlılıkları:
Python/R/MATLAB sürümleri
glibc, stdlibc++ sürümleri
Diğer kütüphaneler ve çalıştırılabilir dosyalar
Python/R/Node.js kütüphaneleri ve modülleri
Yazılım Bağımlılıkları - Zorluklar
Her bir yazılım farklı kütüphane sürümlerine ihtiyaç duyabilir
Aynı sistem üzerinde çakışan bağımlılıklar olabilir
Sistem güncellemeleri çalışan uygulamaları bozabilir
Yazılım Bağımlılıkları - Zorluklar (devam)
Farklı işletim sistemlerinde kurulum adımları değişebilir
"Depedency Hell" den kurtulma ihtiyacı
Geliştirme, test ve üretim ortamları arasındaki tutarsızlıklar
"Benim Bilgisayarımda Çalışıyor" Problemi
Geliştirici makinelerinde çalışan yazılımlar üretim ortamlarında sorun çıkarabilir
Çevre değişkenleri farklı olabilir
Yerel yapılandırmalar, global yapılandırmalarla uyumsuz olabilir
Donanım farklılıkları performans sorunlarına neden olabilir
Konteynerler bu sorunu ortadan kaldırır: "Çalışıyorsa konteyner olarak paketleyin"
Portabilite ve Taşınabilirlik
Konteynerler herhangi bir işletim sisteminde çalışabilir
Cloud, lokal sunucu, kişisel bilgisayar fark etmez
"Bir kez oluştur, her yerde çalıştır" prensibi
Farklı bulut sağlayıcıları arasında kolay geçiş
Satıcı kilidi (vendor lock-in) problemini azaltır
Endüstriyel Kullanım Alanları
Mikroservisler
Uygulamaları küçük, yönetilebilir bileşenlere ayırma
Her servis için ayrı konteynerler
Bağımsız ölçekleme ve güncelleme imkanı
Endüstriyel Kullanım Alanları (devam)
Yazılım Testi
İzole, tekrarlanabilir test ortamları
Test ortamlarını kurma ve yönetme sürecini basitleştirme
Paralel test imkanı
Endüstriyel Kullanım Alanları (devam)
DevOps
Geliştirme ve operasyon ekipleri arasında işbirliği
Sürekli entegrasyon/sürekli dağıtım (CI/CD) hatları
Otomatik test ve dağıtım süreçleri
Bulut Hizmetleri ve Konteynerler
Konteynerler bulut stratejisinin temel yapı taşları haline geldi
Serverless mimari ve Function-as-a-Service (FaaS)
Platform-as-a-Service (PaaS) çözümlerinin çoğu konteynerlere dayanır
Bulut sağlayıcılarının hepsi konteyner orkestrasyonu hizmetleri sunar
Tekrarlanabilir Araştırma
Araştırma çıktıları yazılım ve veriyi içerir
Yazılım tekrarlanabilirliği:
Yazılım depoları (svn, git)
İyi ama genellikle yazılımın bağımlılıkları vardır
Veri tekrarlanabilirliği:
Yayın eki olarak veri, merkezi depolar (NCBI), ...
Üretim ortamından kopuk
Veri VE kod VE hesaplama ortamını tek bir dosyada paketleme
Tekrarlanabilir Araştırma - Gelişmiş Avantajlar
Araştırma sonuçlarını tam olarak aynı koşullarda tekrarlayabilme
"Benim bilgisayarımda çalışıyor" problemini ortadan kaldırma
Farklı araştırmacıların tam olarak aynı yazılım ortamını kullanması
Sürüm kontrolü ve izlenebilirlik
Ölçeklenebilir Araştırma ve Uygulama
Yerel geliştirilen program/pipeline'ı global çalıştırma
Paralel kaynaklara ölçekleme:
Çok kez çalıştırma
Yerel veya ulusal HPC kaynaklarını kullanma
Bulut sağlayıcılarında dinamik kapasite artırımı
Süreci otomatikleştirme:
Konteyner/yazılım oluşturma ve dağıtımı
Paralel pipeline ve iş yükleri
İş Yükü Etkisiyle Kullanım Alanları
Web Uygulamaları
: Yüksek trafik web siteleri, e-ticaret platformları
Analitik ve Büyük Veri
: Spark, Hadoop konteynerleştirilmiş ortamlar
IoT Uygulamaları
: Dağıtık sistemler ve edge computing
AI ve ML Model Dağıtımı
: Konteynerleştirilmiş yapay zeka modelleri
API Hizmetleri
: Microservice API'ler ve gateway'ler
Veritabanı Sistemleri
: Dağıtık NoSQL veritabanları
Ek Avantajlar
Eski Linux sürümlerinde oluşturulmuş uygulamalar yeni Linux sunucularda çalışabilir
İzolasyon ve güvenlik
Kaynak sınırlaması ve kontrol
Daha hızlı başlatma süreleri (VM'lere göre)
DevOps uygulamalarıyla entegrasyon kolaylığı
Infrastructure-as-Code (IaC) ile tam uyumluluk
Konteyner Çözümleri
Docker
İyi yerleşmiş ve endüstri standardı
Konteyner paylaşımı için Docker Hub'a sahip
Enterprise ve geliştirici odaklı
Podman
Daemonsuz, rootless alternatif
Docker komutlarıyla uyumlu
Red Hat desteği
Konteyner Çözümleri
Singularity
HPC için tasarlanmış, kullanıcı dostu
MPI, GPU'lar için destek
Bilimsel iş yükleri için optimize
containerd / nerdctl
Düşük seviyeli konteyner çalışma zamanı
Kubernetes'in temel konteyner motoru
Container motorunun yetersizlikleri
Görsel Alanı
Container motorunun yetersizlikleri
Görsel Alanı
Container motorunun yetersizlikleri
Görsel Alanı
Konteyner Orkestrasyonu
Kubernetes
Endüstri standardı orkestrasyon platformu
Büyük ölçekli konteyner dağıtımı
Self-healing, auto-scaling yetenekleri
Docker Swarm
Docker ile entegre basit orkestrasyon
Küçük ve orta ölçekli dağıtımlar için
Amazon ECS / EKS
AWS'nin konteyner yönetim servisleri
Google Kubernetes Engine (GKE)
Google Cloud'un yönetilen Kubernetes hizmeti
Endüstriyel Konteyner Kullanım Senaryoları
Bankacılık ve Finans
Yüksek güvenlik gerektiren mikroservisler
Ölçeklenebilir işlem sistemleri
E-ticaret Platformları
Trafik artışlarına dinamik yanıt
Endüstriyel Konteyner Kullanım Senaryoları (devam)
E-ticaret Platformları
(devam)
Servis bazlı ölçekleme
SaaS Uygulamaları
Multi-tenant mimariler
Kaynak izolasyonu ve efektif kullanım
Medya ve İçerik Platformları
İçerik dağıtım sistemleri
Medya işleme pipeline'ları
Bilimsel Araştırma Konteyner Kullanım Senaryoları
Biyoinformatik ve Genomik
Kompleks analiz pipeline'ları
Yüksek performanslı hesaplama entegrasyonu
Veri Bilimi ve Makine Öğrenmesi
Tekrarlanabilir model eğitimi ve dağıtımı
Bilimsel Araştırma Konteyner Kullanım Senaryoları (devam)
Veri Bilimi ve Makine Öğrenmesi
(devam)
GPU optimize konteynerler
Simülasyon ve Modelleme
Fizik, iklim, ekonomi modelleri
Paralel hesaplama uygulamaları
Astronomi ve Uzay Bilimleri
Büyük veri analizi
Dağıtık hesaplama sistemleri