#ecommerce #applicaition #backend #ddd #microservice #kafka #hazelcast #richdomainmodel #spring #java #hibernate
E-Ticaret Platformu Oluşturmak. Bölüm 1 : İhtiyaçları Çıkarmak : https://www.turkninja.com/2023/08/e-ticaret-platformu-olusturmak-bolum-1.html
E-Ticaret Platformu Oluşturmak. Bölüm 2 : Domain Stroytelling : Katılımcılar, İş Akışları, Kullanıcı Hikayeleri, İlgili Terimler ve Konseptler (Domain), Geliştirme İçin Önceliklendirme, İlgili Dokümantasyonlar : https://www.turkninja.com/2023/08/e-ticaret-platformu-olusturmak-bolum-2.html
E-Ticaret Platformu Oluşturmak. Bölüm 3 : DDD (Domain-Driven Design): İlgili alt sistemleri ve sınırlı bağlamları tanımları, microservicler, paketler, classlar, class kodları : https://www.turkninja.com/2023/08/e-ticaret-platformu-olusturmak-bolum-3.html
E-Ticaret Platformu Oluşturmak. Bölüm 4 : Rich Domain Modele Göre Microservicelerdeki Sınıfların Kodlarını oluşturmak : https://www.turkninja.com/2023/08/e-ticaret-platformu-olusturmak-bolum-4.html
E-Ticaret Platformu Oluşturmak. Bölüm 5 : Apache Kafka ve Hazelcast Cache Entegrasyonu : https://www.turkninja.com/2023/08/e-ticaret-platformu-olusturmak-bolum-5.html
E-Ticaret Platformu Oluşturmak. Bölüm 6 : Uygulamayı Dockerize etme ve Docker Compose ile localde ayağa kaldırma : https://www.turkninja.com/2023/08/e-ticaret-platformu-olusturmak-bolum-5_17.html
E-Ticaret Platformu Oluşturmak. Bölüm 7 : Jenkins ile uygulamayı CI/CD Pipeline'ına sokarak Dockerize etme, Test Etme ve Kubernetes'e deploy etme : https://www.turkninja.com/2023/08/e-ticaret-platformu-olusturmak-bolum-7.html
Bu microserviceleri dozkerize etmem için gerekli adımları uygula.
Tabii ki, mikroservislerinizi Docker üzerinde çalışacak şekilde dozkerize etme işlemine geçelim.
1. Kullanıcı Yönetimi Microservisi İçin Dockerfile Oluştur
Öncelikle, Kullanıcı Yönetimi mikroservisini dozkerize etmek için uygun bir Dockerfile oluşturalım. Proje kök dizininize aşağıdaki gibi bir Dockerfile ekleyin:
Dockerfile
Copy code
FROM openjdk:11-jdk-slim
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
Bu Dockerfile, OpenJDK 11 tabanlı bir görüntü üzerine inşa eder ve projedeki JAR dosyasını görüntüye kopyalar.
2. Kullanıcı Yönetimi Microservisi İçin Docker Görüntüsü Oluştur
Proje dizininde, terminalde aşağıdaki komutu çalıştırarak Docker görüntüsünü oluşturun:
bash
Copy code
docker build -t user-management-service .
Bu komut, mevcut dizindeki Dockerfile kullanarak user-management-service adında bir görüntü oluşturur.
3. Kullanıcı Yönetimi Microservisi İçin Docker Konteynerı Başlat
Aşağıdaki komutla görüntüyü çalıştırabilirsiniz:
bash
Copy code
docker run -p 8080:8080 user-management-service
Bu, uygulamanın 8080 portunda çalışmasını sağlar.
4. Diğer Microservisler İçin Yukarıdaki Adımları Tekrarla
Her mikroservis için benzer bir Dockerfile oluşturun, görüntüyü inşa edin ve konteynerı başlatın.
5. Docker Compose (İsteğe Bağlı)
Tüm mikroservislerin ve bağımlılıklarının (örneğin bir veritabanı) bir arada çalıştırılmasını kolaylaştırmak için Docker Compose kullanabilirsiniz. Bunun için bir docker-compose.yml dosyası oluşturmanız gerekir.
6. Docker Compose Dosyası Oluşturma
Birden çok mikroservisi aynı anda çalıştırmak ve yönetmek için docker-compose.yml dosyası kullanabilirsiniz. Bu dosya, tüm mikroservislerin bir arada nasıl çalışacağını tanımlar.
İşte bir örnek docker-compose.yml dosyası:
yaml
Copy code
version: '3.8'
services:
user-management-service:
build: ./user-management-service
ports:
- "8080:8080"
product-management-service:
build: ./product-management-service
ports:
- "8081:8081"
# Diğer servislerin tanımlamaları burada olacak
networks:
default:
external:
name: my-network
Bu dosya, her mikroservis için bir Dockerfile beklediğini varsayar. Servislerin her biri kendi dizininde olmalı ve kendi Dockerfile'ına sahip olmalı.
7. Docker Compose ile Servisleri Çalıştırma
Aşağıdaki komutu çalıştırarak tüm mikroservislerinizi bir arada başlatabilirsiniz:
bash
Copy code
docker-compose up
8. Durumları ve Logları Takip Etme
Bu komut, mikroservislerinizin durumlarını ve loglarını terminal üzerinde takip etmenizi sağlar.
9. Servisleri Durdurma
İşiniz bittiğinde, aşağıdaki komutla tüm servisleri durdurabilirsiniz:
bash
Copy code
docker-compose down
Bu adımlar, mikroservislerinizi Docker üzerinde çalışacak şekilde dozkerize etmek için gereken temel işlemleri içerir. İhtiyacınıza göre özelleştirmeler yapabilir, bağlantılar ve hacimler ekleyebilir, sağlık kontrolleri ve yeniden başlatma politikaları gibi daha gelişmiş konulara da girebilirsiniz.
Her bir mikroservisin kendi bağımlılıkları, yapılandırması ve çalışma şekli olabilir, bu yüzden bu adımlar genel bir rehber olarak kullanılmalıdır. İlgili microservis'e özel yapılandırmalar eklemek gerekebilir.