VPS Üzerinde Mikroservis Mimarisi Kurmak

Mikroservis mimarisi, monolitik uygulamaların aksine, yazılımı bağımsız, küçük ve odaklanmış servisler halinde yapılandırarak ölçeklenebilirlik, bakım kolaylığı ve hızlı

Reklam Alanı

Mikroservis mimarisi, monolitik uygulamaların aksine, yazılımı bağımsız, küçük ve odaklanmış servisler halinde yapılandırarak ölçeklenebilirlik, bakım kolaylığı ve hızlı geliştirme sağlar. VPS (Virtual Private Server) ortamında bu mimariyi kurmak, maliyet etkin bir çözüm sunar çünkü VPS’ler yüksek özelleştirme imkanı verir ve bulut tabanlı alternatiflere göre daha kontrollü bir altyapı sağlar. Bu makalede, VPS üzerinde mikroservis mimarisini adım adım kurma sürecini ele alacağız. Kurumsal ekipler için pratik bir rehber niteliğinde olan bu yaklaşım, Docker ve Kubernetes gibi araçlarla desteklenerek üretim seviyesinde güvenilirlik hedefler.

VPS Ortamını Mikroservisler İçin Hazırlama

VPS seçimi ve hazırlığı, mikroservis mimarisinin temelini oluşturur. Öncelikle, en az 4 GB RAM, 2 vCPU ve 50 GB SSD depolama kapasitesine sahip bir VPS sağlayıcısından (örneğin DigitalOcean veya Linode) bir sunucu kiralayın. Ubuntu 22.04 LTS gibi stabil bir Linux dağıtımını yükleyin. Sistem güncellemelerini yaparak başlayın: sudo apt update && sudo apt upgrade -y. Ardından firewall kurallarını yapılandırın; UFW ile yalnızca SSH (22), HTTP (80) ve HTTPS (443) portlarını açın: sudo ufw allow 22,80,443/tcp && sudo ufw enable. Bu adımlar, güvenli bir temel oluşturur ve olası güvenlik açıklarını minimize eder.

Sonraki aşamada containerizasyon için Docker’ı kurun: curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh. Docker Compose’u da ekleyin: sudo apt install docker-compose. Kubernetes için Minikube veya tam K3s cluster’ını tercih edin; K3s hafifliğiyle VPS’ler için idealdir. Kurulumu şu komutla yapın: curl -sfL https://get.k3s.io | sh -. Bu araçlar, mikroservislerin izole çalışmasını sağlar ve yatay ölçeklemeyi kolaylaştırır. Hazırlık tamamlandıktan sonra, servislerin birbirleriyle iletişim kurması için bir internal network oluşturun: Docker’da docker network create mikroservis-net.

Mikroservisleri Tasarlama ve Dağıtma

Servisleri Bağımsız Bileşenlere Bölme

Mikroservisleri tanımlarken, her birini tek bir işlevsel alana odaklayın; örneğin e-ticaret uygulamasında kullanıcı servisi, ödeme servisi ve stok servisi gibi. Her servis için ayrı bir Git repository’si oluşturun ve Node.js, Python veya Go gibi dillerle geliştirin. API Gateway pattern’ini uygulayın; her servis RESTful veya gRPC endpoint’leri sunsun. Bu ayrım, bir servisin güncellenmesinin diğerlerini etkilememesini sağlar ve fault isolation’ı artırır.

Uygulamayı mikroservis odaklı yeniden yapılandırırken, veritabanlarını da servis bazında ayırın: Kullanıcı servisi için PostgreSQL, ödeme için MongoDB kullanın. Servisler arası iletişim için message broker olarak RabbitMQ’yu entegre edin. Bu yapı, asenkron işlem akışlarını destekler ve sistem dayanıklılığını yükseltir. Pratikte, bir servis Dockerfile’ı ile paketlenir ve Docker Hub’a push edilir.

Containerizasyon ve Kubernetes ile Dağıtım

Her mikroservisi Docker container’ına dönüştürün. Örnek bir Dockerfile: FROM node:18\nWORKDIR /app\nCOPY . .\nRUN npm install\nCMD ["node", "server.js"]. Docker Compose YAML dosyasıyla birden fazla servisi orkestre edin: services altında kullanıcı, ödeme gibi servisleri tanımlayın ve ports/volumes belirtin. Kubernetes’e deploy için YAML manifestler oluşturun; Deployment, Service ve Ingress kaynaklarını kullanın. kubectl apply -f deployment.yaml ile dağıtın.

Bu süreçte, health check’ler ekleyin: Readiness ve liveness probe’ları ile servis sağlığını Kubernetes’e bildirin. Horizontal Pod Autoscaler (HPA) kurarak CPU kullanımına göre otomatik ölçekleme sağlayın: kubectl autoscale deployment user-service --cpu-percent=50 --min=2 --max=10. Bu adımlar, VPS kaynaklarını verimli kullanır ve trafik dalgalanmalarına karşı esneklik kazandırır.

İzleme, Güvenlik ve Bakım Stratejileri

Mikroservislerin sağlıklı çalışmasını sağlamak için Prometheus ve Grafana’yı kurun. Prometheus’u docker run -p 9090:9090 prom/prometheus ile başlatın ve servis metriklerini scrape edin. Grafana dashboard’larında CPU, bellek ve latency’i görselleştirin. Log yönetimi için ELK Stack (Elasticsearch, Logstash, Kibana) entegre edin; her container’dan log’ları merkezi bir yere toplayın. Bu araçlar, sorunları erken tespit etmenizi sağlar.

Güvenlik için servisler arası mTLS (mutual TLS) uygulayın ve secrets management için Kubernetes Secrets kullanın. Rate limiting ve circuit breaker pattern’leri (Istio ile) ekleyin. Yedekleme stratejisi olarak Velero ile cluster snapshot’ları alın. Düzenli bakımda, rolling updates ile sıfır kesinti deploy yapın: kubectl rollout restart deployment/payment-service. Bu pratikler, kurumsal seviyede güvenilirlik sunar.

VPS üzerinde mikroservis mimarisini kurmak, başlangıçta çaba gerektirse de uzun vadede ölçeklenebilir ve yönetilebilir bir sistem sağlar. Adım adım uygulayarak, ekipleriniz hızlı iterasyonlar yapabilir ve iş sürekliliğini artırabilir. Bu rehberi temel alarak kendi altyapınızı uyarlayın ve sürekli iyileştirmelerle optimize edin.

Kategori: Genel
Yazar: Meka
İçerik: 603 kelime
Okuma Süresi: 5 dakika
Zaman: Bugün
Yayım: 25-03-2026
Güncelleme: 25-03-2026