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


#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

Aşağıda, önceki mesajlarda bahsettiğiniz microservisler için özelleştirilmiş bir Jenkins pipeline ve Kubernetes deployment örneği bulacaksınız.


1. Jenkinsfile

Aşağıdaki Jenkinsfile kodu, her microservis için ayrı ayrı uygulanmalıdır. Microservislerin adlarını uygun şekilde güncellemeniz gerekebilir.


groovy

Copy code

pipeline {

    agent any 


    stages {

        stage('Checkout') {

            steps {

                checkout scm

            }

        }

        

        stage('Build & Test') {

            steps {

                sh './mvnw clean install -DskipTests=false'

            }

        }


        stage('Docker Build') {

            steps {

                // microservisin adına göre docker imajını oluştur

                sh 'docker build -t user-management:latest ./user-management/'

            }

        }


        stage('Docker Push') {

            steps {

                sh 'docker push user-management:latest'

            }

        }


        stage('Kubernetes Deploy') {

            steps {

                // microservisin adına göre deploy scriptini çalıştır

                sh './deploy-user-management-k8s.sh'

            }

        }

    }

}

2. Kubernetes Deployment (Örnek: User Management Microservice)

Aşağıdaki dosya, kullanıcı yönetimi microservisi için bir Kubernetes deployment örneğidir. Bu YAML dosyasını, microservisin adına göre uygun bir isimle kaydedin, örneğin user-management-deployment.yaml.


yaml

Copy code

apiVersion: apps/v1

kind: Deployment

metadata:

  name: user-management-deployment

spec:

  replicas: 3

  selector:

    matchLabels:

      app: user-management

  template:

    metadata:

      labels:

        app: user-management

    spec:

      containers:

      - name: user-management-container

        image: user-management:latest

3. Kubernetes Deploy Scripti (Örnek: User Management)

Aşağıdaki script, kullanıcı yönetimi microservisi için bir Kubernetes deploy script örneğidir. Dosya adı uygun şekilde isimlendirilmelidir, örneğin deploy-user-management-k8s.sh.


bash

Copy code

#!/bin/bash


kubectl apply -f user-management-deployment.yaml

Bu adımları, her bir microservis için uygulayarak, Jenkins CI/CD pipeline'ınızı oluşturabilir ve Kubernetes'e deploy edebilirsiniz. Her microservisin adına, yapılandırmasına ve ihtiyaçlarına uygun şekilde bu kodları özelleştirmeniz gerekebilir.





Please Select Embedded Mode To Show The Comment System.*

Daha yeni Daha eski

نموذج الاتصال