20 Şubat 2025 Perşembe

Docker Compose ile Mikro Hizmetlerin Yönetimi: Adım Adım Kılavuz

Docker Compose ile Mikro Hizmetlerin Yönetimi: Adım Adım Kılavuz

Docker Compose, birden fazla konteyneri tek bir dosya üzerinden yönetmeyi sağlayan güçlü bir araçtır. Mikro hizmet mimarisine sahip projelerde, farklı servislerin birlikte çalışmasını kolaylaştırır. Bu yazıda, Docker Compose kullanarak mikro hizmetlerin nasıl yönetileceğini adım adım inceleyeceğiz.

1. Docker Compose Nedir?

Docker Compose, birden çok servisi tek bir docker-compose.yml dosyasında tanımlayarak, tüm servislerin bir arada yönetilmesini sağlar. Özellikle mikro hizmet tabanlı projelerde, bağımsız çalışan servisleri tek komutla başlatmak büyük avantaj sağlar.

2. Docker Compose ile Mikro Hizmetlerin Tanımlanması

Örnek olarak bir web uygulaması ve veritabanından oluşan basit bir yapı oluşturalım.

version: '3'
services:
  web:
    image: nginx
    ports:
      - "80:80"
    depends_on:
      - database

  database:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: mydb

Bu yapı, bir Nginx web sunucusu ve bir MySQL veritabanı çalıştırır. Web sunucusu, MySQL servisine bağımlıdır, bu yüzden depends_on parametresi ile önce veritabanının başlaması sağlanır.

3. Docker Compose Komutları

Docker Compose ile konteynerleri yönetmek için aşağıdaki komutları kullanabilirsiniz:

  • docker-compose up -d → Servisleri başlatır.
  • docker-compose down → Tüm konteynerleri kapatır.
  • docker-compose ps → Çalışan servisleri listeler.
  • docker-compose logs -f → Servis loglarını takip eder.

4. Docker Compose ile Ortam Değişkenleri Kullanımı

Güvenliği artırmak ve yapılandırmayı esnek hale getirmek için ortam değişkenleri kullanabilirsiniz. Örneğin:

database:
  image: postgres
  environment:
    POSTGRES_USER: ${DB_USER}
    POSTGRES_PASSWORD: ${DB_PASSWORD}

Bu yapılandırmada, .env dosyasındaki değişkenler yüklenerek PostgreSQL veritabanının kullanıcı adı ve şifresi belirlenir.

Sonuç

Docker Compose, mikro hizmetleri yönetmek için güçlü ve kullanımı kolay bir araçtır. Servislerin bağımsız çalışmasını sağlarken, basit komutlarla tüm ekosistemi yönetmenize olanak tanır. Ortaya çıkan avantajlar:

13 Şubat 2025 Perşembe

Kubernetes ile Mikro Hizmetlerin Yönetimi: Gelişmiş Teknikler

Kubernetes ile Mikro Hizmetlerin Yönetimi: Gelişmiş Teknikler

Kubernetes, günümüzde ölçeklenebilir ve yönetilebilir mikro hizmet mimarileri oluşturmak için en yaygın kullanılan araçlardan biri haline gelmiştir. Ancak, temel pod ve servis yönetiminin ötesine geçerek daha verimli ve güvenli bir yapı oluşturmak için bazı gelişmiş teknikleri bilmek gerekir. Bu yazıda, Kubernetes kullanarak mikro hizmetlerinizi daha iyi yönetmek için bazı ileri düzey teknikleri inceleyeceğiz.

1. Kubernetes ile Otomatik Ölçeklendirme (HPA ve VPA)

Kubernetes, ölçeklendirme işlemini otomatik hale getirmek için Horizontal Pod Autoscaler (HPA) ve Vertical Pod Autoscaler (VPA) olmak üzere iki ana mekanizma sunar.

  • HPA (Yatay Pod Ölçeklendirme): Belirli metriklere (CPU, bellek vb.) bağlı olarak pod sayısını artırıp azaltır.
  • VPA (Dikey Pod Ölçeklendirme): Podların CPU ve bellek sınırlarını otomatik olarak günceller.

Eğer trafiğiniz öngörülemeyen bir şekilde artıp azalıyor ise HPA kullanarak anlık yük değişimlerine uyum sağlayabilirsiniz. Öte yandan, eğer belirli podların CPU veya bellek limitleri yetersiz geliyorsa VPA kullanarak her bir podun kaynaklarını optimize edebilirsiniz.

2. Servis Mesh Kullanımı (Istio ve Linkerd)

Mikro hizmet mimarilerinde servisler arasındaki iletişimi yönetmek oldukça karmaşık olabilir. Servis Mesh çözümleri, ağ trafiğini yönlendirme, gözlemleme ve güvenlik politikaları oluşturma konusunda büyük avantajlar sunar.

  • Istio: En yaygın kullanılan servis mesh teknolojisidir. API yönetimi, güvenlik, gözlemleme ve yük dengeleme gibi özellikler sunar.
  • Linkerd: Hafif ve kolay kullanılabilir bir servis mesh alternatifidir.

Eğer Kubernetes kümenizde servisler arası güvenliği artırmak ve merkezi bir gözlemleme sistemi kurmak istiyorsanız Istio veya Linkerd kullanabilirsiniz.

3. GitOps ile Kubernetes Konfigürasyon Yönetimi

Kubernetes ortamlarında konfigürasyon yönetimini daha güvenli ve hatasız bir şekilde yapmak için GitOps yaklaşımı kullanılabilir. GitOps, Kubernetes manifest dosyalarınızı bir Git deposunda saklayarak değişikliklerin yönetimini sağlar.

  • ArgoCD ve FluxCD gibi araçlar, Git deposundaki değişiklikleri takip ederek Kubernetes kümenizi otomatik olarak senkronize eder.
  • Konfigürasyon değişikliklerini sürüm kontrolü altında tutarak hata yönetimini kolaylaştırır.

Eğer sürekli entegrasyon ve teslimat (CI/CD) süreçlerinizi Kubernetes ile uyumlu hale getirmek istiyorsanız, GitOps yaklaşımını değerlendirebilirsiniz.

Sonuç

Kubernetes, mikro hizmetlerin yönetimi için güçlü bir platform sunarken, gelişmiş teknikler ile verimliliğinizi ve güvenliğinizi artırabilirsiniz. Otomatik ölçeklendirme, servis mesh kullanımı ve GitOps ile konfigürasyon yönetimi gibi yöntemlerle Kubernetes kümelerinizi daha iyi optimize edebilirsiniz.

Kubernetes'in sunduğu bu özellikleri daha etkin kullanarak, uygulamalarınızı daha ölçeklenebilir ve yönetilebilir hale getirebilirsiniz.

6 Şubat 2025 Perşembe

Linux Üzerinde WireGuard VPN Kurulumu ve Konfigürasyonu

VPN (Virtual Private Network) kullanımı, internet üzerindeki güvenliği ve gizliliği sağlamak açısından büyük önem taşır. OpenVPN ve IPSec gibi geleneksel VPN protokollerine alternatif olarak geliştirilen WireGuard, hafif, hızlı ve modern bir VPN çözümü sunar. Bu yazıda, WireGuard VPN’in Linux üzerinde nasıl kurulacağını ve yapılandırılacağını adım adım ele alacağız.

WireGuard Nedir?

WireGuard, Linux çekirdeğine entegre edilmiş, açık kaynaklı ve performans açısından oldukça verimli bir VPN protokolüdür. Diğer VPN çözümlerine kıyasla daha basit bir yapı sunar ve daha yüksek hızlar sağlar. Güvenlik açısından güçlü kriptografik algoritmalar kullanır ve düşük gecikme süresi ile bilinir.

WireGuard VPN Kurulumu

1. WireGuard Kurulumu

WireGuard, modern Linux dağıtımları için varsayılan paket yöneticileri ile kolayca yüklenebilir.

sudo apt update  
sudo apt install wireguard

CentOS/RHEL için:

sudo yum install epel-release  
sudo yum install wireguard-tools

Arch Linux için:

sudo pacman -S wireguard-tools

2. Anahtar Çiftinin Oluşturulması

WireGuard, her istemci için özel ve genel anahtar çiftleri gerektirir. Aşağıdaki komutlar ile gerekli anahtar çiftlerini oluşturabilirsiniz:

wg genkey | tee privatekey | wg pubkey > publickey

Bu işlem sonucunda, privatekey ve publickey adlı iki dosya oluşturulacaktır.

3. VPN Arayüzünün Yapılandırılması

WireGuard’ın arayüzünü ayarlamak için /etc/wireguard/wg0.conf dosyasını oluşturun ve aşağıdaki yapılandırmayı ekleyin:

[Interface]  
PrivateKey = ÖZEL_ANAHTAR  
Address = 10.0.0.1/24  
ListenPort = 51820  

[Peer]  
PublicKey = İSTEMCİ_GENEL_ANAHTAR  
AllowedIPs = 10.0.0.2/32

Daha sonra WireGuard servisini etkinleştirmek için şu komutları çalıştırın:

sudo systemctl enable wg-quick@wg0  
sudo systemctl start wg-quick@wg0

WireGuard VPN Kullanımı

VPN bağlantısını kontrol etmek için aşağıdaki komutu kullanabilirsiniz:

sudo wg show

Bağlantıyı manuel olarak açmak için:

sudo wg-quick up wg0

Bağlantıyı kapatmak için:

sudo wg-quick down wg0

Sonuç

WireGuard, Linux sistemlerinde VPN bağlantısı kurmak isteyen kullanıcılar için hızlı ve güvenli bir alternatif sunar. Kurulumun ve konfigürasyonun basit olması, sistem kaynaklarını daha verimli kullanması ve yüksek performans sağlaması sayesinde tercih edilen bir VPN çözümüdür. Bu rehberde adım adım WireGuard kurulumunu gerçekleştirdik ve temel konfigürasyon ayarlarını yaptık. Daha fazla güvenlik önlemi almak için ek firewall kuralları ve erişim kontrolleri ekleyebilirsiniz.

İlgili Görseller

VPN


30 Ocak 2025 Perşembe

Windows ve Linux Üzerinde Docker Kullanımı: Hangi İşletim Sistemi Daha Avantajlı?

Docker, uygulamaları izole bir ortamda çalıştırmak için kullanılan bir konteyner teknolojisidir. Linux çekirdeği üzerine inşa edilen Docker, Windows ve Linux platformlarında farklı şekillerde çalışır. Bu yazıda, iki işletim sistemi üzerindeki Docker kurulumunu, avantajlarını ve dezavantajlarını karşılaştıracağız.

1. Docker'ı Windows ve Linux Üzerinde Kurmak

Linux: Docker, Linux üzerinde doğrudan çalışır. Kurulum için aşağıdaki komutları kullanabilirsiniz:

sudo apt update
sudo apt install docker.io
sudo systemctl enable --now docker

Windows: Docker, Windows üzerinde Hyper-V veya WSL 2 gerektirir. Docker Desktop'ı Docker’ın resmi sitesinden indirebilirsiniz.

2. Windows ve Linux Üzerinde Docker Performansı

  • Linux: Docker doğrudan Linux çekirdeğini kullandığı için performansı yüksektir.
  • Windows: Docker, Windows üzerinde sanallaştırma katmanı kullandığı için Linux’a göre biraz daha yavaştır.

3. Hangi İşletim Sistemi Daha Avantajlı?

Linux Kullanıcıları İçin: Daha hızlı performans ve doğrudan destek sağlar.

Windows Kullanıcıları İçin: WSL 2 ile kullanılabilir ama ekstra kaynak tüketebilir.

Genel olarak, eğer Docker’ı en verimli şekilde kullanmak istiyorsanız Linux daha iyi bir seçenektir. Ancak, Windows kullanıcıları da WSL 2 sayesinde Docker’dan faydalanabilir.

Windows


23 Ocak 2025 Perşembe

Windows 11 Üzerinde WSL 2 Kurulumu ve Linux Terminaline Geçiş

Microsoft’un Windows Subsystem for Linux (WSL) teknolojisi, geliştiriciler için Windows ortamında Linux dağıtımları çalıştırmayı kolaylaştırıyor. WSL 2, geliştirilmiş performansı ve tam bir Linux çekirdeğiyle daha güçlü bir çözüm sunuyor. Bu makalede, WSL 2’yi nasıl kurabileceğinizi ve Linux terminalini Windows 11 üzerinde nasıl kullanacağınızı anlatıyoruz.

WSL 2’nin Avantajları

  • Yerel Linux dosya sistemi desteği
  • Gelişmiş performans ve uyumluluk
  • Docker ve Kubernetes gibi araçlarla sorunsuz entegrasyon

WSL 2 Kurulum Adımları

1. Gerekli Özelliklerin Aktifleştirilmesi

İlk olarak, Windows Özellikleri menüsünü açın ve "Windows Subsystem for Linux" ve "Virtual Machine Platform" seçeneklerini etkinleştirin. Bunu yapmak için:

  1. Windows arama çubuğuna “Windows Özellikleri” yazın ve menüyü açın.
  2. Listeden yukarıdaki iki özelliği işaretleyin ve sistemi yeniden başlatın.

2. WSL Versiyonunun Güncellenmesi

Komut İstemcisi’ni (CMD) yönetici olarak çalıştırın ve şu komutu yazın:

 wsl --set-default-version 2 

3. İstediğiniz Linux Dağıtımını Yükleyin

Microsoft Store’u açın ve Ubuntu, Debian ya da tercih ettiğiniz bir Linux dağıtımını indirin. Kurulum tamamlandıktan sonra dağıtımı açarak kullanıcı adınızı ve şifrenizi oluşturun.

4. WSL 2’ye Geçiş Yapın

Yüklenen dağıtımın WSL 2 kullanacak şekilde ayarlandığından emin olmak için şu komutu kullanabilirsiniz:

 wsl --set-version  2 

Linux Terminalini Kullanma

Kurulum tamamlandığında, Windows Terminal uygulaması üzerinden Linux dağıtımınıza erişebilirsiniz. Bu terminal, özelleştirilebilir temaları ve sekme desteğiyle verimliliğinizi artırır.

Sonuç

WSL 2, Windows kullanıcıları için Linux’un gücünü keşfetmek ve geliştirme süreçlerini optimize etmek için harika bir araçtır. Özellikle geliştiriciler ve sistem yöneticileri için büyük bir avantaj sunar.

Eğer bu adımları takip ederken sorun yaşarsanız, yorumlarda paylaşabilirsiniz. Linux dünyasına hoş geldiniz!

VSL


16 Ocak 2025 Perşembe

Linux Firewall Yonetimi

Linux sunucularında güvenliği artırmanın en önemli yollarından biri, güçlü bir firewall (güvenlik duvarı) yapılandırması yapmaktır. Bu makalede, UFW (Uncomplicated Firewall) aracıyla temel ve ileri seviye firewall kurallarının nasıl oluşturulacağını anlatacağız.

1. UFW Kurulumu

Debian tabanlı sistemlerde UFW genellikle varsayılan olarak yüklü gelir. Ancak kontrol etmek ve gerekirse yüklemek için aşağıdaki komutları kullanabilirsiniz:

sudo apt update
sudo apt install ufw

2. UFW'nin Aktif Edilmesi

Firewall'ı etkinleştirmek için şu komutu çalıştırın:

sudo ufw enable

Bu işlem sırasında mevcut SSH bağlantınızın kesilmemesi için gerekli kuralları önceden eklediğinizden emin olun.

3. Temel Kuralların Eklenmesi

Ağ trafiğini yönetmek için bazı temel kurallar oluşturabilirsiniz:

  • SSH bağlantısını izin vermek:
  • sudo ufw allow ssh
  • Belirli bir portu (örneğin 80 numaralı HTTP portu) açmak:
  • sudo ufw allow 80
  • Belirli bir IP adresini engellemek:
  • sudo ufw deny from 192.168.1.100

4. İleri Seviye Kurallar

Belirli durumlar için daha detaylı kurallar yazabilirsiniz:

  • Belirli bir IP'den yalnızca belirli bir porta erişimi izin vermek:
  • sudo ufw allow from 192.168.1.100 to any port 22
  • Belli bir portu sadece TCP trafiği için açmak:
  • sudo ufw allow 443/tcp

5. UFW Durumunu Kontrol Etme

Firewall kurallarını görmek için şu komutu çalıştırabilirsiniz:

sudo ufw status

Çıktı, aktif olan tüm kuralları gösterecektir.

Sonuç

UFW, Linux sunucularında güvenliği artırmanın basit ve etkili bir yoludur. Yukarıdaki adımları takip ederek temel ve ileri düzey firewall kuralları oluşturabilir, sisteminizi dış tehditlere karşı koruyabilirsiniz.


Firewall


4 Ocak 2025 Cumartesi

Cursor ile Google Gemini Flash 2.0 Nasıl Kullanılır?

  Cursor üzerinde kullanacağınız dil modellerini ayarlar > model kısmından ekleyip çıkarabiliyor ve istediğiniz gibi güncelleyebiliyorsunuz. Claude'nin limitleri dolduğunda veya daha fazla ücretsiz kullanım hakkı istediğinizde Google'un yeni deneysel olarak sunduğu Gemini Flash 2.0'ı API ile idenize entegre ederek bu limitleri arttırabilir ve daha fazla günlük istedik sınırlarına ulaşabilirsiniz. Bu sınırlar şimdilik Gemini için bir hayli fazla ve yeterli. Google Gemini Flash 2.0'ı Cursor'da kullanmak için öncelikle Cursor ayarlar penceresine geçerek buradan modeller kısmına tıklıyoruz ve listeden Gemini Flash 2.0'ı işaretliyoruz, ardından dil modelinin aktif olması için Google AI Studio'dan aldığımız API kodunu aşağıdaki ilgili satıra ekleyip doğrulama işlemini tamamlıyoruz (verify)

İşlemleri yapmak çok pratik ve kolay. Bu işlemlerden sonra Cursor promp ekranının altındaki dil modelini değiştirerek yeni eklediğimiz Gemini Flash 2.0'ı kullanmaya başlayabilir ve geliştirmelerimizde yeni modelden yararlanabiliriz. 

İşlemlere ait ekran görüntüleri aşağıdaki gibidir:

Google API Create

Cursor IDE Settings