Rocky Linux Nedir?
Rocky Linux, Red Hat Enterprise Linux (RHEL) ile uyumlu, açık kaynaklı ve topluluk tarafından desteklenen bir dağıtım olarak bilinir. RHEL’in son sürümünün sunduğu tüm işlevleri barındırırken, tamamen toplum odaklı bir modelle geliştirilir. Özellikle kurumsal düzeyde güvenilirlik ve stabilite arayan kullanıcılar için tercih edilmektedir. Rocky Linux 9, bu kapsamdaki en yeni sürümdür ve güncellenmiş paketler, güvenlik yamaları ve yeni özellikler sunmaktadır.
Mikrohizmet Mimarisi Nedir?
Mikrohizmet mimarisi, yazılım uygulamalarının küçük, bağımsız hizmetlere ayrıldığı bir mimari tarzıdır. Her bir mikro hizmet, belirli bir işlevselliği yerine getirir ve tamamen bağımsız olarak geliştirilebilir, dağıtılabilir ve ölçeklenebilir. Bu yaklaşım, yazılım geliştirmeyi hızlandırmakta ve bakım süreçlerini kolaylaştırmaktadır. Mikrohizmetlerin ortak olarak iletişim kurması, genellikle RESTful API veya mesajlaşma protokolleri üzerinden gerçekleşir.
Rocky Linux 9 Üzerinde Gereksinimler
Mikrohizmet uygulamalarını dağıtmak için gereken temel bileşenler şunlardır:
1. Docker: Linux konteynerlerini oluşturan ve yöneten bir platformdur. Mikrohizmetlerin paylaşılabilir ve taşınabilir hale gelmesini sağlar.
2. Kubernetes: Konteynerleştirilmiş uygulamaları otomatikleştirmeye yönelik bir sistemdir. Taşınabilirlik, ölçeklenebilirlik ve yönetim kolaylığı sağlar.
3. Git: Kod versiyon kontrol sistemi olarak kullanılmakta ve geliştirme sürecini yönetmekte önemlidir.
4. Yapı Araçları: Gradle veya Maven gibi yapı araçları, mikro hizmetlerin derlenmesi ve paketlenmesi için gereklidir.
Rocky Linux 9 Üzerinde Docker Kurulumu
Docker’ı Rocky Linux 9 üzerinde kurmak için öncelikle gerekli bir güncelleme yapılır. Aşağıdaki komutlar kullanılabilir:
“`bash
sudo dnf update -y
sudo dnf install -y dnf-plugins-core
“`
Daha sonra Docker’ın kurulumuna geçilir:
“`bash
sudo dnf config-manager –add-repo=https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io
“`
Docker kurulduktan sonra servisin başlatılması ve otomatik olarak başlaması sağlanır:
“`bash
sudo systemctl start docker
sudo systemctl enable docker
“`
Kurulum başarılıysa, `docker –version` komutu ile sürüm kontrolü yapılabilir.
Kubernetes Kurulumu
Kubernetes kurulumu için `kubeadm`, `kubelet` ve `kubectl` araçları kullanılacaktır. Aşağıdaki adımlar izlenerek Kubernetes kurulumu gerçekleştirilebilir:
“`bash
sudo dnf install -y epel-release
sudo dnf install -y kubelet kubeadm kubectl
“`
Daha sonra kubelet servisi etkinleştirilir:
“`bash
sudo systemctl enable kubelet
sudo systemctl start kubelet
“`
Kubernetes’in gereksinimlerini karşılamak için gerekli yapılandırmalar yapılmalıdır. Özellikle ağ ve depolama sağlayıcılarının düzgün bir şekilde ayarlanması gereklidir.
Mikrohizmet Geliştirme ve Dağıtım Süreci
Mikrohizmetler genellikle Java, Node.js, Python gibi dillerde geliştirilir. Geliştirilen her mikro hizmet, bağımsız bir Docker imajı olarak paketlenir. Bir örnek olarak, Java kullanarak basit bir RESTful mikro hizmet geliştirilebilir.
Mikrohizmet tamamlandıktan sonra Docker imajı aşağıdaki gibi oluşturulur:
“`bash
docker build -t
“`
Ardından bu imaj Kubernetes kümesine dağıtılabilir. Kubernetes üzerinde bir `Deployment` dosyası oluşturulması gerekir. Bu dosya, hangi container’ın çalıştırılacağını, kaç örneğinin olacağını ve diğer yapılandırmaları içermelidir. Aşağıda basit bir örnek verilmiştir:
“`yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: example-service
spec:
replicas: 3
selector:
matchLabels:
app: example
template:
metadata:
labels:
app: example
spec:
containers:
– name: example-container
image:
ports:
– containerPort: 8080
“`
Deployment dosyası oluşturulduktan sonra, kubectl komutları ile dağıtım yapılır:
“`bash
kubectl apply -f deployment.yaml
“`
Servis Tanımlama
Mikrohizmetler arasında iletişim sağlamak için Kubernetes’te bir `Service` tanımlanmalıdır. Bu, mikro hizmetlerin erişimini kolaylaştırır. Aşağıdaki gibi bir `Service` nesnesi tanımlanabilir:
“`yaml
apiVersion: v1
kind: Service
metadata:
name: example-service
spec:
selector:
app: example
ports:
– protocol: TCP
port: 80
targetPort: 8080
“`
Bu dosya da aynı şekilde uygulanmalıdır:
“`bash
kubectl apply -f service.yaml
“`
İzleme ve Güncelleme
Mikrohizmetlerin performansını izlemek ve güncellemelerini gerçekleştirmek için Kubernetes Dashboard veya Prometheus gibi araçlar kullanılabilir. Herhangi bir mikro hizmet güncellenmek istendiğinde, yeni Docker imajı oluşturulup Kubernetes üzerinde yeni bir dağıtım yapılması yeterlidir.
Sonuç
Rocky Linux 9 üzerinde mikrohizmet uygulamalarının dağıtımı, uzun vadeli bir proje için sağlam bir altyapı oluşturur. Docker ve Kubernetes kullanımı, uygulama geliştirme süreçlerini hızlandırırken, ölçeklenebilirlik ve yönetilebilirlik konusunda büyük avantajlar sağlar. Mikrohizmet mimarisi ile birlikte, uygulamalar daha esnek ve dayanıklı hale gelir.