BUILDING APPLICATIONS WITH MICROSERVICES, DOCKER AND SPRINGBOOT EĞİTİMİ

Spring Boot mikroservislerini Docker ile hayata geçirin

Mikroservis mimarisi, Spring Boot REST API, JPA, Actuator, çok aşamalı Dockerfile, Compose, CI/CD ve Kubernetes'e geçiş.

Bu eğitim, mikroservis mimarisini Spring Boot ile kodlayıp Docker ile paketlemeyi uygulamalı öğretir. Bounded context ve servis iletişim kararlarını ele alır; Spring Boot ile REST API, JPA/PostgreSQL ve Actuator geliştirir; multi-stage Dockerfile, layered jar…

4 gün Orta Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Spring Boot ile mikroservis geliştirme ve Docker ile paketleme

Bu eğitim, mikroservis mimarisini Spring Boot ile kodlayıp Docker ile paketlemeyi uygulamalı öğretir. Bounded context ve servis iletişim kararlarını ele alır; Spring Boot ile REST API, JPA/PostgreSQL ve Actuator geliştirir; multi-stage Dockerfile, layered jar ve Buildpacks ile imaj üretir; Compose ile servis, veritabanı ve ağ topolojisini kurar; sağlık kontrolü, loglama, güvenlik ve CI/CD adımlarını uygulayıp Kubernetes'e geçişe hazırlanırsınız.

Süre ve Format

4 Gün. Her gün dört modül; Mikroservis ve Spring Boot, Java İmajı ve Compose, Topoloji, Veri ve Güvenlik, Teslimat ve Kubernetes'e Geçiş konuları uygulamalı işlenir.

Seviye

Orta Seviye — Spring Boot mikroservisleri geliştirme ve bunları Docker ile paketleyip Compose ile çalıştırma.

Öğrenme Metodu

Sipariş ve ürün servislerinden oluşan örnek bir sistem adım adım yazılır, imajlanır ve Compose ile çalıştırılır.

Neden Bu Eğitim?

☕Java Ekosistemi

Spring Boot ve Spring Cloud ile kurumsal mikroservis geliştirme yetkinliği kazanırsınız.

🔗Servis Altyapısı

Eureka, Config Server ve Gateway ile üretimde kullanılan altyapı desenlerini uygularsınız.

📦Konteyner Hazır

Servislerinizi küçük imajlara ve Compose topolojisine dönüştürerek her ortamda çalıştırırsınız.

Anahtar Konular

spring boot dockermikroservisspring boot eğitimidocker composelayered jarjibspring boot actuatormikroservis dockerjava konteynerspring boot postgresql
“İyi mikroservis küçük olandır; iyi paketlenmiş olan ise her yerde aynı çalışandır.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
Java Temeli

Java 17 ile sınıf, arayüz, koleksiyon ve Maven/Gradle kullanımı bilgisi beklenir.

2
Web Kavramları

HTTP, REST ve JSON kavramlarına aşinalık gerekir.

3
Çalışma Ortamı

JDK 17, Maven, Docker ve bir IDE (IntelliJ veya VS Code) kurulu olmalıdır.

4
Veritabanı Bilgisi

Temel SQL ve ilişkisel veritabanı kavramları faydalıdır.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı servis sınırlarını belirleyip Spring Boot REST servisi yazarak temel Dockerfile ile çalıştırabilir.
Modül 1
Mikroservis Mimarisi Temelleri
  • Monolit ve mikroservis karşılaştırması; bounded context ve Domain-Driven Design ayrımı
  • Servisler arası iletişim: senkron REST / gRPC ve asenkron mesajlaşma (RabbitMQ, Kafka)
  • Servis başına veritabanı ilkesi ve veri tutarlılığı için saga deseni
  • API Gateway, servis keşfi ve istemci taraflı yük dengeleme
  • Dayanıklılık desenleri: circuit breaker, retry, timeout ve bulkhead
  • Dağıtık izleme, merkezî loglama ve sağlık uç noktalarının mimariye yerleştirilmesi
Modül 2
Spring Boot ile REST Servisi
  • Spring Initializr, starter bağımlılıkları ve otomatik yapılandırma mantığı
  • @RestController, @RequestMapping, DTO doğrulama (Bean Validation) ve hata yönetimi (@ControllerAdvice)
  • Spring Data JPA, Repository arayüzleri ve PostgreSQL bağlantısı
  • application.yml profilleri (dev, prod) ve @ConfigurationProperties kullanımı
  • Spring Boot Actuator: /actuator/health, metrics ve liveness / readiness probe grupları
  • Maven / Gradle ile çalıştırılabilir jar üretimi ve JUnit ile servis testi
Modül 3
Temel Docker CLI Komutları
  • docker run bayrakları: -d, -it, --rm, --name, -p, -e, --restart ve --entrypoint kullanımı
  • Konteyner durumları: create, start, pause, stop, kill ve rm arasındaki farklar
  • docker exec ile çalışan konteynere girme, docker cp ile dosya taşıma
  • docker logs -f --tail ve docker top, docker stats ile anlık gözlem
  • docker inspect çıktısında --format (Go template) ile IP, mount ve env değerlerini çekme
  • docker ps -a filtreleri, docker container prune ve çıkış kodlarının yorumlanması
Modül 4
Dockerfile Yazımı
  • FROM, WORKDIR, COPY ve RUN talimatları; RUN zincirleme ve katman sayısı yönetimi
  • COPY ile ADD farkı, .dockerignore ile bağlam boyutunu küçültme
  • CMD ile ENTRYPOINT ayrımı: exec form ve shell form, PID 1 ve sinyal iletimi
  • ARG ile ENV farkı, build-time ve run-time değişken yönetimi
  • USER ile root dışı çalışma, EXPOSE ve LABEL (OCI annotation) kullanımı
  • HEALTHCHECK talimatı: interval, timeout, retries ve docker ps içinde health durumu
Günün hedefiKatılımcı Spring uygulamasını küçük imaja çevirip Compose ile veritabanıyla birlikte çalıştırabilir.
Modül 1
Spring Boot Uygulamasını Docker'a Taşıma
  • Multi-stage Dockerfile: Maven derleme aşaması ve JRE tabanlı çalışma aşaması
  • Layered jar (-Djarmode=layertools) ile bağımlılık / uygulama katmanı ayrımı ve önbellek kazancı
  • spring-boot:build-image (Cloud Native Buildpacks) ve Jib ile Dockerfile'sız imaj
  • JVM konteyner bilinci: -XX:MaxRAMPercentage, -XX:+UseContainerSupport ve heap sınırları
  • Compose ile Spring + PostgreSQL: healthcheck, depends_on ve Flyway migrasyonları
  • Profil ve ortam değişkenleriyle SPRING_DATASOURCE_URL gibi ayarların dışarıdan verilmesi
Modül 2
Multi-stage Build ve İmaj Optimizasyonu
  • Multi-stage build: builder aşaması, COPY --from ve hedef aşama seçimi (--target)
  • Taban imaj seçimi: alpine, slim, distroless ve scratch avantaj/dezavantajları (musl-glibc farkı)
  • BuildKit özellikleri: RUN --mount=type=cache, --mount=type=secret ve paralel aşama çalıştırma
  • Katman önbelleği sıralaması: bağımlılık dosyalarını önce kopyalama ile cache hit artırma
  • docker buildx ile çoklu platform (linux/amd64, linux/arm64) imaj üretimi
  • dive ve Hadolint ile imaj israfı ve Dockerfile kural denetimi
Modül 3
Docker Compose ile Çok Konteynerli Uygulamalar
  • compose.yaml yapısı: services, networks, volumes ve image / build alanları
  • ports, environment, env_file ve .env ile yapılandırma ayrıştırma
  • depends_on ve condition: service_healthy ile başlatma sırası kontrolü
  • docker compose up -d, down -v, ps, logs -f, exec ve run komutlarının kullanımı
  • Birden fazla dosyayla ortam ayrımı: compose.override.yaml ve -f birleştirme
  • docker compose config ile birleşmiş yapılandırmayı doğrulama ve değişken yerine koyma
Modül 4
Docker Ağ Modelleri
  • Varsayılan bridge (docker0) ile kullanıcı tanımlı bridge farkı ve otomatik DNS çözümleme
  • Ağ sürücüleri: bridge, host, none, overlay, macvlan ve ipvlan kullanım alanları
  • Port yayınlama (-p, -P), iptables DOCKER zinciri ve NAT kuralları
  • docker network create --subnet / --gateway ile özel alt ağ ve sabit IP atama
  • Konteynerler arası iletişim: servis adıyla erişim, --network-alias ve çoklu ağa bağlama
  • tcpdump, nslookup ve docker network inspect ile ağ sorunlarını teşhis etme
Günün hedefiKatılımcı çok servisli topolojiyi kalıcı veri, merkezi log ve güvenli imajlarla işletebilir.
Modül 1
Mikroservisleri Konteynerleştirme
  • Servis başına Dockerfile standartları ve ortak taban imaj stratejisi
  • Monolitten ayrılan modülü strangler fig yaklaşımıyla konteynere taşıma
  • Compose ile çoklu servis topolojisi: gateway, servisler, veritabanı ve mesaj kuyruğu
  • Yapılandırmanın ortama göre dışarıdan verilmesi: env değişkenleri, config dosyaları ve secrets
  • Servisler arası ağ izolasyonu: frontend ve backend ağlarının ayrılması
  • Her servis için healthcheck, graceful shutdown (SIGTERM) ve merkezi log çıkışı
Modül 2
Volume, Bind Mount ve tmpfs
  • Üç depolama türü: named volume, bind mount ve tmpfs; --mount ile -v söz dizimi farkı
  • docker volume create / inspect / prune ve /var/lib/docker/volumes yapısı
  • Bind mount izinleri: host UID/GID eşleşmesi, :ro bayrağı ve SELinux için :z / :Z etiketi
  • Volume yedekleme ve geri yükleme: geçici konteyner ile tar arşivleme
  • Veritabanı konteynerlerinde (PostgreSQL, MySQL) veri dizini kalıcılığı ve initdb betikleri
  • Volume sürücüleri: local sürücüde NFS / CIFS seçenekleri ve konteynerler arası veri paylaşımı
Modül 3
Loglama ve İzleme
  • Log sürücüleri: json-file, local, syslog, journald, fluentd ve gelf farkları
  • max-size / max-file ile log rotasyonu ve disk dolmasının önlenmesi
  • cAdvisor ile konteyner metriği toplama ve Prometheus scrape yapılandırması
  • Grafana panoları: CPU, bellek, ağ ve yeniden başlama sayısı
  • Docker Engine metrics-addr ile daemon metriklerini açma
  • Uyarı kuralları: yeniden başlama döngüsü ve bellek eşiği için Alertmanager örneği
Modül 4
Konteyner Güvenliği
  • Root dışı kullanıcı, --read-only kök dosya sistemi ve --cap-drop ALL ile yetenek kısıtlama
  • seccomp profilleri, AppArmor ve no-new-privileges bayrağı
  • Rootless Docker ve userns-remap ile UID eşleme
  • Trivy ve Docker Scout ile CVE taraması, CI içinde ciddiyet eşiğine göre build durdurma
  • İmza doğrulama: Docker Content Trust ve cosign ile imaj imzalama
  • Gizli bilgi yönetimi: ENV yerine BuildKit secret ve Docker secrets; docker.sock risklerinden kaçınma
Günün hedefiKatılımcı CI/CD hattıyla imajı registry'ye gönderip Kubernetes'e geçiş için manifest hazırlayabilir.
Modül 1
Compose İleri Özellikleri
  • profiles ile isteğe bağlı servisler (debug, test) ve --profile kullanımı
  • secrets ve configs tanımları, /run/secrets altından okuma
  • healthcheck, restart politikaları ve deploy.resources limit/reservation ayarları
  • extends ve YAML anchor (&, *) ile tekrarı azaltma
  • docker compose up --scale ile yatay çoğaltma ve yük dengeleme için nginx önü
  • docker compose watch ile geliştirme sırasında otomatik senkron ve yeniden derleme
Modül 2
Docker ile CI/CD Hatları
  • GitHub Actions: docker/setup-buildx-action, docker/build-push-action ve cache-from / cache-to
  • GitLab CI ve Jenkins ajanlarında Docker-in-Docker ile docker.sock bağlama farkları
  • Etiketleme: git SHA, semver ve branch tabanlı etiket üretimi (docker/metadata-action)
  • Konteyner içinde birim ve entegrasyon testi: Testcontainers ve compose tabanlı test ortamı
  • Güvenlik geçidi: Trivy taraması başarısızsa pipeline durdurma ve SBOM üretimi (syft)
  • Ortam terfisi: aynı imajı dev, staging, prod ortamlarına yeniden derlemeden taşıma
Modül 3
Özel Registry Kurulumu
  • registry:2 konteyneri ile yerel registry, depolama sürücüleri ve volume bağlama
  • TLS sertifikası, htpasswd tabanlı kimlik doğrulama ve insecure-registries riski
  • Registry HTTP API v2: /v2/_catalog ve tags/list sorguları
  • Garbage collection ve silme ayarı ile disk geri kazanımı
  • Pull-through cache (mirror) yapılandırması ve rate limit azaltma
  • Harbor alternatifi: proje, robot hesabı ve imaj saklama (retention) politikaları
Modül 4
Kubernetes Temelleri
  • Kubernetes mimarisi: API server, etcd, scheduler, controller-manager ve kubelet
  • Pod, ReplicaSet ve Deployment nesneleri; kubectl apply -f ile bildirimsel yönetim
  • Service türleri: ClusterIP, NodePort ve LoadBalancer; Ingress ile HTTP yönlendirme
  • ConfigMap ve Secret nesnelerinin env ve volume olarak bağlanması
  • Namespace, label ve selector ile kaynak organizasyonu
  • kubectl get, describe, logs, exec ve port-forward ile temel hata ayıklama

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Mikroservis Tasarımı

Bir monoliti bounded context sınırlarına göre mikroservislere ayırıp iletişim modelini seçebilirsiniz.

✅
CLI Yetkinliği

docker run, exec, logs ve inspect komutlarıyla konteyner yaşam döngüsünü eksiksiz yönetebilirsiniz.

✅
Java Konteyneri

Spring Boot uygulamasını katmanlı, küçük ve konteyner duyarlı JVM ayarlarıyla imajlayabilirsiniz.

✅
Compose Kullanımı

compose.yaml ile web, veritabanı ve önbellek içeren çok servisli uygulamaları tek komutla ayağa kaldırabilirsiniz.

✅
Kalıcı Veri

Named volume, bind mount ve tmpfs seçeneklerini doğru kullanarak verinin konteynerden bağımsız kalıcılığını sağlayabilirsiniz.

✅
Güvenli Konteyner

Rootless çalışma, yetenek kısıtlama ve imaj taramasıyla konteyner saldırı yüzeyini küçültebilirsiniz.

✅
CI/CD Hattı

Build, tarama, test ve registry push adımlarını içeren Docker tabanlı CI/CD hattı kurabilirsiniz.

✅
Kubernetes Temeli

Pod, Deployment ve Service nesneleriyle konteynerleri Kubernetes üzerinde çalıştırabilirsiniz.

Kimler İçin Uygundur?

  • Java ve Spring bilgisi olan
  • mikroservis geliştirip konteynerde yayınlamak isteyen yazılım geliştiriciler
  • teknik liderler için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Java ve Spring bilgisi olan, mikroservis geliştirip konteynerde yayınlamak isteyen yazılım geliştiriciler ve teknik liderler için uygundur.
Eğitime katılmak için ön koşul ve ortam gereksinimi nedir?
Java 17 ile sınıf, arayüz, koleksiyon ve Maven/Gradle kullanımı bilgisi beklenir. HTTP, REST ve JSON kavramlarına aşinalık gerekir.
Java 17 dışında bir sürüm kullanılabilir mi?
Evet, Java 17 önerilir; 21 LTS ile de laboratuvarlar sorunsuz çalışır.
Kubernetes bu eğitimde zorunlu mu?
Hayır. Son gün Kubernetes'e geçiş için temel manifest hazırlığı gösterilir; ana odak Docker ve Compose'tur.
Eğitim sonunda sertifika alabilir miyim?
Programı tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Building Applications with Microservices, Docker and SpringB Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre4 gün
SeviyeOrta Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Docker ve KonteynerleştirmeDocker'a Giriş Eğitimi
DevOps ve Konteyner Eğitimleri

Docker'a Giriş Eğitimi

3 günBaşlangıçOnline / Yüz Yüze / Hibrit

Docker kurulumu, temel komutlar, Dockerfile, volume ve Compose ile ilk konteyner uygulamanızı adım adım oluşturun; yeni başlayanlara uygundur.

Detayları Gör →
Docker ve Konteynerleştirme.NET Core Development with DevOps Technologies with Docker Eğitimi
DevOps ve Konteyner Eğitimleri

.NET Core Development with DevOps Technologies with Docker Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

ASP.NET Core için çok aşamalı Dockerfile, Compose, SQL Server, Testcontainers ve GitHub Actions ile .NET konteyner geliştirme ve CI/CD uygulayın.

Detayları Gör →
Docker ve KonteynerleştirmeAdvanced Azure: Containerized Workloads on Azure Eğitimi
DevOps ve Konteyner Eğitimleri

Advanced Azure: Containerized Workloads on Azure Eğitimi

3 günİleriOnline / Yüz Yüze / Hibrit

ACR, Azure Container Apps, AKS, ACI, KEDA ölçekleme, yönetilen kimlik ve Azure Monitor ile Azure'da konteyner iş yüklerini tasarlayıp işletin.

Detayları Gör →
Docker ve KonteynerleştirmeAdvanced Docker Principles: Docker for Microservices Strategies Eğitimi
DevOps ve Konteyner Eğitimleri

Advanced Docker Principles: Docker for Microservices Strategies Eğitimi

3 günİleriOnline / Yüz Yüze / Hibrit

Docker ile mikroservis: servis sınırları, API gateway, RabbitMQ/Kafka, saga, circuit breaker ve bağımsız dağıtım stratejilerini uygulamalı öğrenin.

Detayları Gör →
Docker ve KonteynerleştirmeAdvanced Docker Principles: Multiple Docker Containers Eğitimi
DevOps ve Konteyner Eğitimleri

Advanced Docker Principles: Multiple Docker Containers Eğitimi

3 günİleriOnline / Yüz Yüze / Hibrit

Compose override ve profiller, healthcheck bağımlılıkları, çok ağlı topoloji, ölçekleme ve Swarm stack ile çok konteynerli sistemleri yönetin.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn