Docker ve Kubernetes: Temel Farklılıklar, Birlikte Nasıl Çalıştıkları ve İhtiyacınız Olanlar

  1. Ana sayfa
  2. Blog
  3. DevOps

DevOps

Docker ve Kubernetes: Temel Farklılıklar, Birlikte Nasıl Çalıştıkları ve İhtiyacınız Olan Şeyler

Docker ve Kubernetes aslında rakip değiller. Biri konteynerleri paketleyip çalıştırırken diğeri bunları birçok makinede yönetir. Her birinin nereye uygun olduğunu öğrenin, bir uygulamanın her ikisiyle birlikte çalıştırıldığını görün ve projenizin neye ihtiyacı olduğuna karar verin.

9 dk okuma
Docker ve Kubernetes: temel farklar, birlikte nasıl çalıştıkları ve ihtiyacınız olan şey

Önemli noktalar

  • Docker genellikle tek bir makinede görüntüler oluşturur ve kapsayıcıları çalıştırır.
  • Kubernetes bir makine kümesi genelinde konteynerleri planlar ve yönetir.
  • Genellikle birlikte kullanılırlar: Docker görüntüyü oluşturur ve Kubernetes onu üretimde çalıştırır.
  • Daha adil bir karşılaştırma Kubernetes ile Docker Swarm veya Compose’dur ve birçok küçük projenin Kubernetes’e hiç ihtiyacı yoktur.

Docker ve Kubernetes araması yapmak bir tanesini seçmeniz gerektiğini gösterir ancak bu çerçeveleme çok fazla kafa karışıklığına neden olur. Bu biraz bir nakliye konteynırını binlercesini organize eden bir limanla karşılaştırmaya benziyor. Farklı seviyelerde çalışırlar ve sıklıkla yan yana kullanılırlar.

Bu kılavuz her birinin ne yaptığını açıklıyor, her ikisinde de aynı küçük uygulamayı gösteriyor ve karar vermenin pratik bir yolu ile bitiyor. Buradaki komutlar ve dosyalar, bu makale için yürütmediğimiz standart örneklerdir; dolayısıyla bunları yüklediğiniz sürümlerle karşılaştırarak kontrol edin.

Kısa cevap

Docker, bir uygulamayı ve bağımlılıklarını bir görüntüde paketlemek ve ardından bu görüntüyü bir kapsayıcı olarak çalıştırmak için kullanılan bir platformdur. “Bu uygulamanın her yerde aynı şekilde çalışmasını nasıl sağlarım?” sorusunu yanıtlıyor.

Çoğunlukla K8 olarak yazılan Kubernetes, bir konteyner orkestratörüdür. Konteynerlerin birçok makinede nerede çalışacağına karar verir, arızalandıklarında onları yeniden başlatır ve talebe göre ölçeklendirir. “Yüzlerce konteynerin güvenilir bir şekilde çalışmasını nasıl sağlarım?” sorusunu yanıtlıyor.

Docker ve Kubernetes yan yana

Görünüş Liman işçisi Kubernet’ler
Ana iş Kapsayıcıları oluşturun ve çalıştırın Kapsayıcıları düzenleyin
Kapsam Genellikle bir ev sahibi Birçok düğümden oluşan bir küme
Görüntüler mi oluşturuyor? Evet Hayır
Temel ünite Konteyner Pod (bir veya daha fazla kapsayıcı)
Yapılandırma Dockerfile, compose.yaml YAML tezahürleri
Başarısız kapsayıcı Söz konusu ana bilgisayarda isteğe bağlı yeniden başlatma politikası Başka bir düğümde bile otomatik olarak değiştirilir
Ölçeklendirme Manuel, Compose ile tek ana bilgisayarda Otomatik ölçeklendirme seçenekleriyle bildirimsel
Ağ oluşturma Bir ana bilgisayardaki ağları köprüleme Küme çapında Hizmetler ve DNS
Öğrenme eğrisi Nazik Dik
Şunun için en iyisi: Geliştirme ve küçük dağıtımlar Büyük üretim sistemleri

Docker ne yapar?

Konteynerlerden önce “makinemde çalışıyor” günlük bir sorundu çünkü her sunucu her şeyin farklı versiyonlarına sahipti. Docker kodunuzu, çalışma zamanınızı ve kitaplıklarınızı tek bir görüntüde bir araya getirir. Bu görüntünün çalışan bir kopyası bir kapsayıcıdır ve ana bilgisayarın çekirdeğini paylaşır, dolayısıyla tam bir sanal makineye göre daha hızlı başlar ve daha az bellek kullanır.

İş akışının üç adımı vardır:

  1. Yapı: a Dockerfile görüntünün nasıl oluşturulacağını açıklar.
  2. Gönderme: görüntüyü Docker Hub gibi bir kayıt defterine aktarın.
  3. Çalıştır: herhangi bir uyumlu makinede söz konusu görüntüden kapsayıcıları başlatın.

Uygulamalı bilgi edinmek için Yeni başlayanlar için Docker eğiticimizle başlayın ve ardından Dockerfile en iyi uygulamalarımızı okuyun.

Kubernetes ne yapar?

Bir sunucudaki Docker, o sunucu arızalanana, trafik onu aşan veya koordine etmeniz gereken düzinelerce hizmete sahip olana kadar iyi çalışır. Kubernetes şu operasyonel işlerle ilgilenir:

  • Planlama: kapları yeterli boş kapasiteye sahip makinelere yerleştirmek.
  • Kendi kendini iyileştirme: arızalı konteynerlerin değiştirilmesi ve işin arızalı düğümlerden uzaklaştırılması.
  • Ölçeklendirme: kopyaları manuel olarak veya metriklere dayalı olarak ekleme veya kaldırma.
  • Hizmet keşfi: değişen kapsayıcı grubuna tek bir kararlı ad verilmesi.
  • Güncellemelerin periyodik olarak yayınlanması: Yeni sürümler, basit bir geri alma işlemiyle kademeli olarak yayınlanır.
  • Yapılandırma: ayarları ve gizli dizileri görüntülerden ayrı olarak yönetme.

Temel fikir, arzu edilen durumdur. Üç kopyanın olması gerektiğini beyan ediyorsunuz ve kontrolörler bunu gerçeklikle karşılaştırmaya ve her türlü farkı düzeltmeye devam ediyor. Yeni başlayanlar için Kubernetes eğiticimiz bunu yerel bir küme üzerinde anlatmaktadır.

Docker ve Kubernetes birlikte nasıl çalışır?

Bir geliştiricinin dizüstü bilgisayarından üretime giden tipik yol şuna benzer:

  1. Bir geliştirici bir Dockerfile yazar ve kabı yerel olarak test eder.
  2. Bir CI/CD ardışık düzeni görüntüyü oluşturur ve testleri çalıştırır.
  3. İşlem hattı, sürümlendirilmiş bir görüntüyü kayıt defterine iter.
  4. Bir Kubernetes bildirimi bu görüntü sürümünü kullanacak şekilde güncellenir.
  5. Kubernetes görüntüyü çeker ve kümenin her tarafına yayar.

Yani Docker’ın işi Kubernetes başlamadan büyük ölçüde bitmiş oluyor. Görüntü aralarındaki geçiş noktasıdır.

Her iki yönde de tek uygulama

İşte küçük bir web hizmeti. Görüntü, hangi araç onu çalıştırırsa çalıştırsın aynı şekilde oluşturulur:

# Dockerfile
FROM python:3.13-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

Docker ile çalıştırma

docker build -t shop-api:1.0 .
docker run -d --name shop -p 8080:8000 --restart unless-stopped shop-api:1.0

İki komut ve çalışıyor. Bu basit ve birçok küçük proje için uygundur. Ancak bir makinede bir kopya vardır ve eğer makine ölürse, hizmet de onunla birlikte gider.

Kubernetes ile çalıştırma

# shop.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: shop
spec:
  replicas: 3
  selector:
    matchLabels:
      app: shop
  template:
    metadata:
      labels:
        app: shop
    spec:
      containers:
        - name: api
          image: registry.example.com/shop-api:1.0
          ports:
            - containerPort: 8000
---
apiVersion: v1
kind: Service
metadata:
  name: shop
spec:
  selector:
    app: shop
  ports:
    - port: 80
      targetPort: 8000
kubectl apply -f shop.yaml
kubectl get pods -l app=shop

Yazacak daha çok şey var ve bunları çalıştıracak bir kümeye ihtiyacınız var. Karşılığında üç kopya, sabit bir dahili adres ve otomatik değiştirme alırsınız. Bu ödünleşim, kararın tamamıdır: daha fazla dayanıklılık karşılığında daha fazla karmaşıklık.

Bir konteyner arızalandığında ne olur?

Etkinlik Bir ana bilgisayarda Docker Kubernet’ler
Uygulama kilitleniyor Yeniden başlatma politikası ayarlanmışsa yeniden başlatıldı Otomatik olarak yeniden başlatıldı
Uygulama kilitleniyor ancak çalışmaya devam ediyor Bunun için işlem eklemediğiniz sürece askıda kalır Bir canlılık araştırması onu yeniden başlatabilir
Bütün sunucu ölür Birisi harekete geçene kadar hizmet kapalı Pod’lar sağlıklı düğümlerde yeniden oluşturulur
Trafik üç katına çıkıyor Tek bir ana bilgisayarda elle ölçeklendirme yaparsınız Otomatik ölçekleyici kopya ekleyebilir
Kötü bir yayın Eski görüntüyü elle yeniden yerleştirirsiniz kubectl kullanıma sunma işlemini geri alma

Liman işçilerinin kafa karışıklığı

“Kubernetes Docker’ı düşürdü” yazısını okumuş olabilirsiniz. Bu dar anlamda doğrudur ve birçok insanı gereksiz yere korkutmuştur. Kubernetes, konteynerleri, Konteyner Çalışma Zamanı Arayüzü adı verilen bir standart aracılığıyla çalıştırır. Docker Engine bunu doğrudan uygulamadı, bu nedenle Kubernetes, dockershim adı verilen bir adaptör içeriyordu. Bu bağdaştırıcı 1.24 sürümünde kaldırıldı.

Kümeler artık genellikle Containerd veya CRI-O gibi çalışma zamanlarını kullanıyor. Docker ile oluşturduğunuz görüntüler hâlâ çalışmaya devam ediyor çünkü bunlar Open Container Initiative (OCI) görüntü standardını takip ediyor. Böylece Docker ile derlemeye devam edebilirsiniz ve kümeniz sonucu farklı bir çalışma zamanı ile çalıştırır.

Docker Compose vs Swarm vs Kubernetes

Daha anlamlı karşılaştırma, kapsayıcıları koordine eden araçlar arasındadır:

Araç Kapsam Kurulum çabası Şunun için iyi:
Docker Oluşturma Bir ana bilgisayar Çok düşük Yerel kalkınma, küçük uygulamalar
Liman işçisi sürüsü Küçük küme Düşük Basit çoklu sunucu kurulumları
Kubernet’ler Büyük kümeler Yüksek Karmaşık, büyük ölçekli sistemler

Docker Compose tek bir dosyadan birkaç ilgili kapsayıcıyı başlatır ve bir web uygulaması ve dizüstü bilgisayardaki bir veritabanı için mükemmeldir. Swarm, Docker’da yerleşiktir ve öğrenilmesi Kubernetes’ten çok daha kolaydır ancak çok daha küçük bir ekosisteme sahiptir. Kubernetes en geniş topluluğa ve araçlara sahiptir; bu da büyük dağıtımlar için varsayılan haline gelmesinin büyük bir nedenidir.

İpucu: Gerçek maliyetleri karşılaştırın. Kubernetes, öğrenmenin yanı sıra devam eden yükseltmeler, güvenlik çalışmaları ve izleme anlamına gelir. Amazon EKS, Google GKE veya Azure AKS gibi yönetilen bir hizmet bu işi azaltır ancak kaldırmaz.

Hangisine ihtiyacın var?

Docker tek başına aşağıdaki durumlarda genellikle yeterlidir:

  • Yerel olarak geliştiriyorsunuz veya küçük bir uygulamayı tek bir sunucuda çalıştırıyorsunuz.
  • Küçük bir ekibiniz var ve özel operasyon personeliniz yok.
  • Ara sıra kısa süreli kesintiler kabul edilebilir.

Kubernetes şu durumlarda anlamlı olmaya başlar:

  • Farklı ekiplerin kendi başlarına dağıttığı birçok hizmeti çalıştırıyorsunuz.
  • Birçok makine veya bölgede yüksek kullanılabilirliğe ihtiyacınız var.
  • Trafik, otomatik ölçeklendirmenin gerçek paradan tasarruf etmesini sağlayacak kadar değişkendir.
  • Bunu çalıştıracak beceriniz veya bütçeniz var.

Ayrıca bir orta yol da var. AWS Fargate, Google Cloud Run veya PaaS gibi yönetilen konteyner platformları, Docker görüntünüzü bakımı gereken bir küme olmadan çalıştırır. Büyüyen birçok şirket için bu, doğrudan Kubernetes’e geçmek yerine bir sonraki adımdır.

Kariyer nedeniyle her ikisini de öğrenmek istiyorsanız sıra açıktır: Önce Docker, sonra Kubernetes. İlk önce görüntüleri, bağlantı noktalarını ve konteyner günlüklerini anlamadan bir Pod’da rahatça hata ayıklayamazsınız.

Yaygın hatalar

  • Kubernetes’i çok erken benimsemek. Dev bir şirketin mimarisini kopyalamak, küçük bir ekibin operasyonel çalışmalara gömülmesine neden olabilir.
  • Üretimde latest etiketini kullanma. Neyin çalıştığını söyleyemez veya güvenilir bir şekilde geri alamazsınız. Belirli sürüm etiketlerini kullanın.
  • Verileri kapsayıcıların içinde depolama. Kapsayıcılar tek kullanımlık olduğundan birimleri veya yönetilen bir veritabanını kullanın.
  • Durum kontrollerinin atlanması. Hazırlık ve canlılık araştırmaları olmadan Kubernetes, uygulamanız hakkında doğru kararlar veremez.
  • Kaynak sınırlarını unutmak. Açgözlü bir kapsayıcı, bir düğümdeki diğer her şeyi aç bırakabilir.

Son sözler

Docker yazılımınızı paketler ve Kubernetes bunu uygun ölçekte çalıştırır. Hangisinin daha iyi olduğunu sormak yerine, bugün hangi sorunla karşılaştığınızı sorun. “Uygulamamın kurulumu zor” ise Docker’ı kullanın. “40 hizmetimin sunucu arızalarından kurtulması gerekiyor” ise Kubernetes’e bakın. Asıl sorununuzu çözen en basit araçla başlayın ve ihtiyacı gördüğünüzde yukarı çıkın.

Sık sorulan sorular

Kubernetes Docker’ın yerini alabilir mi?

Tamamen değil, çünkü farklı işler yapıyorlar. Kubernetes görüntüler oluşturmadığından ekipler bunun için Docker veya benzer bir araç kullanmaya devam ediyor ve Kubernetes sonuçları çalıştırıyor.

Kubernetes’i Docker olmadan kullanabilir miyim?

Evet. Kümeler genellikle konteynerleri konteyner veya CRI-O ile çalıştırır. Docker ile oluşturulan görüntüler OCI standardına uyduğu için hala çalışıyor.

Önce Docker’ı mı yoksa Kubernetes’i mi öğrenmeliyim?

Önce Docker’ı öğrenin. Kubernetes, görüntüleri, kapsayıcıları, bağlantı noktalarını ve günlükleri zaten anladığınızı varsayar; dolayısıyla bu temel bilgiler öğrenmeyi çok daha kolaylaştıracaktır.

Docker Swarm öldü mü?

Hayır, hala mevcuttur ve basit kümelere uygundur. Ancak ekosistemi ve benimsenmesi Kubernetes’inkinden çok daha küçüktür, bu nedenle uzun vadeli ihtiyaçlarınızı karşılayıp karşılamadığını kontrol edin.

Küçük şirketlerin Kubernetes’e ihtiyacı var mı?

Genellikle ilk başta değil. Docker Compose veya yönetilen bir konteyner platformu, ölçek veya ekip yapısı Kubernetes’in maliyetini karşılayana kadar genellikle onlara iyi hizmet eder.

Öğrenmeye devam et

Stack Quora ile çalışın

Test, WordPress veya SEO konusunda yardıma mı ihtiyacınız var?

Ekiplerin daha iyi yazılımlar sunmasına ve sitelerini büyütmesine yardımcı oluyoruz. Bize ne üzerinde çalıştığınızı söyleyin, biz de bir sonraki adım için net bir öneride bulunalım.

Okumaya devam et

Daha fazla kılavuz test, yapay zeka ve modern geliştirme

Bu makaleyi beğendiniz mi? Bir konu seçin ve doğrudan en yeni eğitimlerimize geçin.

Yapay zekâ

Yapay Zeka Halüsinasyonları Açıklandı: Dil Modelleri Neden İşleri Düzeltiyor ve Nasıl Azaltılabilir?

Yapay zeka halüsinasyonları açıkladı: ne olduklarını, dil modellerinin bunları neden ürettiğini, yaygın türlerini, temellendirme ve yönlendirmelerle…

Makaleyi okuyun →
DevOps

Açıklanan Ortam Değişkenleri: .env Dosyaları, Sırlar ve Yapılandırma Doğru Yapıldı

Çalıştırdığımız Python örnekleriyle açıklanan ortam değişkenleri: bunları okumak ve ayarlamak, neden her değerin bir dize olduğu, .env dosyaları, sü…

Makaleyi okuyun →
Yazılım geliştirme

API Hız Sınırlamasının Açıklaması: Algoritmalar, Başlıklar ve 429 Hatalarının Ele Alınması

API hızı sınırlaması, çalıştırdığımız bir simülasyonla açıklanmıştır: belirteç kümesi, sabit pencere, kayan pencere, 429 yanıt, hız sınırı başlıklar…

Makaleyi okuyun →
Test otomasyonu

Python'da alay etme: Unittest.mock, patch ve Testleri Yalan Yapan Hatalar

Unittest.mock ile Python'da alay etme, test edildi: Sahte ve dönüş_değeri, yan_etki, bir adın kullanıldığı yerde yama uygulama, spesifikasyon ve oto…

Makaleyi okuyun →
Yazılım testi

Kod Kapsamının Açıklaması: Hat ve Şube Kapsamı ve %100'ün Gerçek Anlamı

Kod kapsamı gerçek bir kapsama.py çalışmasıyla açıklanmıştır: hat, şube ve durum kapsamı, bir raporun okunması, %100 kapsamın neden hâlâ hataları ka…

Makaleyi okuyun →
Veritabanları ve SQL

SQL'de DELETE vs TRUNCATE vs DROP: Farklılıklar, Geri Alma ve Her Biri Ne Zaman Kullanılmalı

DELETE vs TRUNCATE vs DROP test edilmiş SQL ile açıklandı: her birinin neyi kaldırdığı, geri aldığı, tetiklediği, kimlik sıfırlaması, hızı ve Postgr…

Makaleyi okuyun →
Veritabanları ve SQL

Açıklanan SQL Görünümleri: Örneklerle Tuzakları Oluşturun, Kullanın ve Önleyin

Çalıştırdığımız sorgularla açıklanan SQL görünümleri: görünüm oluşturma, canlı sonuçlar, sütunları gizleme, performans, güncellenebilir ve gerçekleş…

Makaleyi okuyun →
Yazılım geliştirme

TypeScript Arayüzü ve Tür: Gerçek Farklılıklar, Derleyiciyle Test Edildi

TypeScript arayüzü ve türü, gerçek derleyiciyle kontrol edildi: her ikisinin de yapabileceği, yalnızca birinin yapabileceği, bildirim birleştirme, g…

Makaleyi okuyun →
Yazılım geliştirme

Python *args ve **kwargs'ın Açıklaması: Açık Örneklerle Esnek Fonksiyonlar

Python *args ve **kwargs çalıştırdığımız kodla açıklanmıştır: paketleme ve paketten çıkarma, parametre sırası, yalnızca anahtar kelime ve yalnızca k…

Makaleyi okuyun →
Yazılım geliştirme

Python Lambda İşlevleri: Söz Dizimi, Gerçek Kullanımlar ve Ne Zaman Kullanılmaması Gerektiği

Çalıştırdığımız kodla açıklanan Python lambda işlevleri: sözdizimi, anahtarla sıralama, harita ve filtre, kapatmalar, geç bağlama tuzağı ve normal b…

Makaleyi okuyun →
Yapay zekâ

Yapay Zeka Ajanları Nelerdir? Çalıştırabileceğiniz Basit Bir Aracı Döngüsüyle Nasıl Çalışırlar?

Yapay zeka ajanları nedir? Aracı döngüsüne, araçlara, belleğe ve korkuluklara ilişkin basit bir kılavuz, çalıştırdığımız küçük bir Python döngüsü, g…

Makaleyi okuyun →
DevOps

İzleme ve Gözlemlenebilirlik: Günlükler, Metrikler ve İzlerle Gerçek Fark

İzleme ve gözlemlenebilirliğin açıklanması: bilinen ve bilinmeyen arızalar, günlükler, ölçümler ve izler, ödeme olayının gözden geçirilmesi, altın s…

Makaleyi okuyun →
DevOps

Docker Birimleri ve Bağlama Bağlantıları: Konteyner Verilerini Doğru Şekilde Kalıcılaştırın

Docker birimleri ile bağlama bağlamaları arasındaki karşılaştırma açıklandı: kapsayıcı verilerinin neden kaybolduğu, adlandırılmış birimler, bağlama…

Makaleyi okuyun →
Test otomasyonu

TDD ve BDD: Temel Farklılıklar, Her İki Şekilde Geliştirilmiş Bir Özellik ve Her Birinin Ne Zaman Kullanılacağı

TDD ve BDD, her iki yönde de oluşturulmuş bir indirim özelliğiyle açıklandı: çalıştırdığımız kodla kırmızı-yeşil-refactor, Verilen-Ne Zaman-O Zaman …

Makaleyi okuyun →
Yazılım testi

Kullanıcı Kabul Testi (UAT): Süreç, Kontrol Listesi ve Gerçek Örnekler

Kullanıcı kabul testi açıklandı: bunu kimin yürüttüğü, QA'dan farkı, yedi adımlı bir süreç, bir UAT test senaryosu şablonu, bir kontrol listesi, otu…

Makaleyi okuyun →
Veritabanları ve SQL

Açıklanan SQL NULL Değerleri: IS NULL, COALESCE, NULLIF ve Kaçınılması Gereken Tuzaklar

SQL NULL değerleri, çalıştırdığımız sorgularla açıklandı: üç değerli mantık, IS NULL, COALESCE, NULLIF, toplamaların, birleştirmelerin ve sıralamanı…

Makaleyi okuyun →
Veritabanları ve SQL

SQL CASE WHEN İfadesi: Sözdizimi, Gerçek Örnekler ve Yaygın Hatalar

SQL CASE WHEN çalıştırdığımız sorgularla açıkladı: basit ve aranmış formlar, koşul sırası, SUM'lu pivotlar, COUNT hileleri, özel sıralama, güncellem…

Makaleyi okuyun →
Yazılım geliştirme

JWT Nedir? JSON Web Belirteçleri Bir Çalışma Örneğiyle Açıklanıyor

JWT nedir? JSON Web Tokens açıkladı: üç bölüm, çalıştırdığımız kodda oluşturulan ve üzerinde değişiklik yapılan bir token, JWT ile oturumlar, depola…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Olay Döngüsü Açıklaması: Örneklerle Çağrı Yığını, Mikro Görevler ve Zamanlayıcılar

JavaScript olay döngüsü çalıştırdığımız kodla açıklandı: çağrı yığını, görev ve mikro görev kuyrukları, setTimeout 0'ın neden anında olmadığı, engel…

Makaleyi okuyun →
Yazılım geliştirme

Python Jeneratörleri ve Verim Açıklaması: Gerçek Örneklerle Bellekten Tasarruf Edin

Python üreteçleri ve verim, çalıştırdığımız kodla açıklandı: nasıl duraklatılır ve devam ettirilir, ölçülen bellek tasarrufları, işlem hatları, sons…

Makaleyi okuyun →
Yapay zekâ

Gömmeler Nelerdir? Vektörler ve Kosinüs Benzerliği Basitçe Açıklandı

Gömmeler nedir? Vektörler, kosinüs benzerliği ve anlamsal aramaya ilişkin sade dilli bir kılavuz; çalıştırdığımız küçük bir örnek, yaygın kullanımla…

Makaleyi okuyun →
DevOps

Mavi-Yeşil ve Kanarya Konuşlandırılması: Farklılıklar, Takaslar ve Nasıl Seçilir

Mavi-yeşil ve kanarya konuşlandırması açıklandı: her birinin nasıl çalıştığı, maliyet, risk ve geri alma, test ettiğimiz istikrarlı kullanıcı grubu,…

Makaleyi okuyun →
Test otomasyonu

Kesintili Testler: Bunların Sebepleri ve Nasıl Düzeltileceği

Yaptığımız demolarla açıklanan hatalı testler: ana nedenler, birinin nasıl doğrulanacağı ve teşhis edileceği, zamanlama için uygun düzeltmeler, payl…

Makaleyi okuyun →
Yazılım testi

Yük Testi ve Stres Testi: Farklılıklar, Metrikler ve k6 Örnekleri

Yük testi ve stres testinin açıklaması: her birinin neyi kanıtladığı, ani yükselme ve soğuma testleri, önemli ölçümler, ortalamaların neden yanıltıc…

Makaleyi okuyun →
Yazılım testi

Test Senaryosu ve Test Senaryosu: Temel Farklılıklar, Örnekler ve Her Biri Ne Zaman Kullanılmalı?

Test senaryosu ve test senaryosunun açıklaması: net tanımlar, yan yana tablo, senaryolardan vakalara, şablonlara ve her birinin ne zaman kullanılaca…

Makaleyi okuyun →
Veritabanları ve SQL

SQL Sorgu Optimizasyonu: Zamanlamalarla Yürütme Planlarını Okuyun ve Yavaş Sorguları Düzeltin

SQL sorgu optimizasyonu bir milyon satırda test edilmiştir: yürütme planlarını okuyun, doğru dizinleri ekleyin, değiştirilemeyen filtreleri düzeltin…

Makaleyi okuyun →
Veritabanları ve SQL

SQL UNION ve UNION ALL: Farklılıklar, Örnekler ve Test Edilmiş Performans

SQL UNION ve UNION ALL, yürüttüğümüz sorgularla açıklandı: kopyalar, her ikisinin de takip ettiği kurallar, gerçek bir veri hatası, ölçülen performa…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Fetch API Eğitimi: GET, POST, Hata İşleme ve Zaman Aşımları

Yerel bir sunucuya karşı test edilen bir JavaScript Fetch API öğreticisi: GET ve POST, 404'ün neden atmadığı, yeniden kullanılabilir bir yardımcı, s…

Makaleyi okuyun →
Yazılım geliştirme

Python Dosya İşleme: Örneklerle Okuma, Yazma, CSV, JSON ve pathlib

Python dosya işleme, çalıştırdığımız kodla açıklanmıştır: açık modlar, büyük dosyaları okuma, CSV, JSON, pathlib, ikili dosyalar, güvenli yazma, hat…

Makaleyi okuyun →
Yazılım geliştirme

Python Sınıfları ve Nesneleri: Gerçek Örneklerle OOP Eğitimi

Çalıştırdığımız kodla açıklanan Python sınıfları ve nesneleri: __init__, yöntemler, sınıf ve örnek nitelikleri, kalıtım, özellikler, dunder yöntemle…

Makaleyi okuyun →
Yapay zekâ

Büyük Dil Modeli Nedir? Yüksek Lisans'ların Nasıl Çalıştığı, Abartmadan Açıklanıyor

Büyük dil modeli nedir? LLM'ler sade bir dille açıklandı: belirteçler, yerleştirmeler, dikkat, eğitim, sıcaklık ve bağlam pencereleri, küçük bir son…

Makaleyi okuyun →
DevOps

Yeni Başlayanlar İçin Linux Komutları: Örneklerle Temel Terminal Kılavuzu

Yeni başlayanlar için göreve göre gruplandırılmış Linux komutları: pratik bir günlük analizi örneğiyle gezinme, dosyalar, günlükleri görüntüleme, gr…

Makaleyi okuyun →
Test otomasyonu

Selenyum ve Oyun Yazarı: Temel Farklılıklar, Karşılaştırılan Kod ve Hangisinin Seçileceği

Selenium ve Playwright karşılaştırması: mimari, bekleme, tarayıcı ve dil desteği, hata ayıklama, her iki araçta da aynı test, geçiş tavsiyesi ve nas…

Makaleyi okuyun →
Yazılım testi

Eşdeğerlik Bölümleme: Test Tasarımı Tekniğinin Çalışılmış Örneklerle Açıklanması

Eşdeğerlik bölümlemenin açıklaması: geçerli ve geçersiz bölümlerin nasıl bulunacağı, yaşlara yönelik çalışılmış örnekler, şifreler ve kuponlar, yürü…

Makaleyi okuyun →
Yazılım testi

Yazılım Testinde Şiddet ve Öncelik: Farklılıklar, Matris ve Gerçek Örnekler

Yazılım testinde önem ve önceliğin açıklanması: net tanımlar, örnekler içeren dört yönlü bir matris, seviye ölçekleri, her birini kimin belirlediği …

Makaleyi okuyun →
Veritabanları ve SQL

SQL Alt Sorguları Eğitimi: Türler, İlişkili Alt Sorgular ve Örneklerle EXISTS

Çalıştırdığımız sorguları içeren bir SQL alt sorgu eğitimi: skaler, IN, FROM ve SELECT alt sorguları, ilişkili alt sorgular, EXISTS, NOT IN NULL tuz…

Makaleyi okuyun →
Veritabanları ve SQL

SQL İşlemleri ve ACID Açıklaması: COMMIT, ROLLBACK ve İzolasyon Seviyeleri

SQL işlemleri ve ACID, yürüttüğümüz bir banka transferiyle açıklandı: COMMIT, ROLLBACK, kayıt noktaları, kilitler, izolasyon seviyeleri, kirli okuma…

Makaleyi okuyun →
Yazılım geliştirme

Git Komutları Hile Sayfası: Gerçekte Kullandığınız Komutlar, Örneklerle

Git komutları göreve göre gruplandırılmış kısa bilgiler sayfası: kurulum, aşamalandırma, dallar, uzaktan kumandalar, saklama, geçmiş ve gerçek bir d…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Vaatlerinin Açıklaması: ardından, catch, Promise.all ve Yaygın Hatalar

Çalıştırdığımız kodla açıklanan JavaScript vaatleri: durumlar, ardından ve yakalama zincirleri, hata yönetimi, Promise.all, allSettled, yarış ve her…

Makaleyi okuyun →
Yazılım geliştirme

Python Sözlüğü Eğitimi: Yöntemler, Örnekler ve Ortak Kalıplar

Çalıştırdığımız kodları içeren bir Python sözlüğü eğitimi: dikteler oluşturma, okuma ve güncelleme, temel yöntemler, birleştirme, kavramalar, sayma …

Makaleyi okuyun →
Yapay zekâ

RAG Nedir? Geri Almayla Artırılmış Üretim Bir Çalışma Örneğiyle Açıklanıyor

RAG nedir? Almayla artırılmış oluşturma adım adım açıklanmıştır: indeksleme, parçalama, yerleştirmeler, alma, çalışan küçük bir Python örneği, değer…

Makaleyi okuyun →
DevOps

Yeni Başlayanlar İçin Terraform Eğitimi: İlk Dosyadan Modüllere Kod Olarak Altyapı

Yeni başlayanlar için bir Terraform eğitimi: Bulut hesabı olmadan başlayın, başlatmayı öğrenin, planlayın ve uygulayın, ardından değişkenler, çıktıl…

Makaleyi okuyun →
DevOps

Docker ve Kubernetes: Temel Farklılıklar, Birlikte Nasıl Çalıştıkları ve İhtiyacınız Olanlar

Docker ve Kubernetes şöyle açıkladı: Her birinin ne yaptığı, her ikisinde de aynı uygulamanın çalıştırılması, Docker Compose ve Swarm'ın karşılaştır…

Makaleyi okuyun →
Test otomasyonu

Yeni Başlayanlar İçin Pytest Eğitimi: Fikstürler, Parametrelendirme ve Gerçek Örnekler

Yeni başlayanlar için pytest 9.2'de yürüttüğümüz testleri içeren bir pytest öğreticisi: iddialar, fikstürler, parametrelendirme, yarışma, işaretleyi…

Makaleyi okuyun →
Yazılım testi

Yazılım Test Yaşam Döngüsü (STLC): 6 Aşama, Giriş ve Çıkış Kriterleri, Örnek

Yazılım testi yaşam döngüsü şunları açıkladı: giriş ve çıkış kriterleri, teslimatlar, çalışılmış bir oturum açma özelliği örneği, Agile'da STLC ve S…

Makaleyi okuyun →
Yazılım geliştirme

Git merge vs rebase: farklar, örnekler ve hangisi ne zaman kullanılır

Git merge vs rebase; gerçek log çıktısı, karşılaştırma tablosu, rebase'in altın kuralı ve güvenli bir ekip iş akışıyla anlatılıyor.

Makaleyi okuyun →
Yazılım geliştirme

Python Liste Üreteci (List Comprehension): Sözdizimi, Örnekler ve Kaçınılacak Durumlar

Python list comprehension anlatımı: sözdizimi, filtreleme, if-else, iç içe döngüler, ölçülmüş süreler ve düz for döngüsünün daha iyi olduğu durumlar.

Makaleyi okuyun →
Veritabanları ve SQL

SQL JOIN Örneklerle Açıklama (Inner, Left, Right, Full)

SQL JOIN'leri örnek tablolar ve sorgularla adım adım öğrenin: INNER, LEFT, RIGHT, FULL, CROSS ve SELF; yaygın hatalar ve performans ipuçları.

Makaleyi okuyun →