Java Microservices

This course covers the topic of developing microservices in Java. It starts from architectural principals of splitting an application into microservices, then discusses the communication of microservices via different protocols, as well covering various data management approaches in distributed applications. Finally, it touches on deployment with Docker and Kubernetes, using Service Mesh as an example of Istio.

  • duration 30 hours
  • Language English
  • format Online
duration
30 hours
location
Online
Language
English
Code
JVA-079
price
€ 750 *

Available sessions



Training for 7-8 or more people?
Customize trainings for your specific needs
customize trainings

Description

This comprehensive course provides a deep dive into microservice architecture development using Java, starting with core principles and characteristics of microservices. We cover vital aspects such as splitting an application into microservices, modeling and communication, exploring decomposition strategies, synchronous / asynchronous communication methods including REST, gRPC and messaging with Kafka.

 

The course also delves into data management complexities, addressing different persistence strategies, distributed database principles, and transaction management. It includes hands-on sessions on deployment, focusing on Docker and Kubernetes, plus exploring Service Mesh using Istio. By the end of the course, learners will have gained thorough expertise in developing, managing, and scaling microservices effectively.

After completing the course, a certificate is issued on the Luxoft Training form

Objectives

To introduce listeners to modern approaches to building microservices. 


Target Audience

Java Developers & Architects

Prerequisites

Good knowledge of Java & Spring. 


Roadmap

Module 1: Microservices in a Nutshell

  • Definition
  • Key Solvable Problems
  • Interaction
  • Granularity
  • Key Defining Characteristics
  • Trade-Offs

 

Module 2: Modeling Microservices

  • Key Decomposition Strategies
    • Decompose by Object -Oriented Design (OOD)
    • Decompose by Business Capability
    • Decompose by Subdomain (DDD)
  • Selecting a Component Architecture
  • Selecting a Framework

 

Module 3: Microservice s communication

  • Synchronous communication
  • REST with RestTemplate
  • REST with WebClient
  • REST with Feign
  • gRPC
  • Asynchronous communication
  • Asynchronous vs. synchronous communication
  • Messaging with Spring Cloud Stream
  • Using Kafka for messaging

 

Module 4: Data Management

  • Persistence Strategies
  • Shared Database
  • Database per Service
  • Alternatives Ways
  • Private-table-per-service
  • Schema-per-service
  • ACID
  • CAP Theorem
  • Eventual consistency
  • Distributed Transactions - 2PC
  • SAGA
  • Event Sourcing
  • CQRS

 

Module 5: Deployment

  • Key Principles
  • Containerization with Docker
  • Container Orchestration with Kubernetes
  • Database Deployment
  • Deployment Infrastructure Automation

 

Module 6: Service Mesh

  • What is Service Mesh?
  • Istio
  • Sidecar Proxy
  • Istio Installation Options
  • Istio Main Components: VirtualService and DestinationRule
  • Istio Gateway
  • Request routing
  • Retries
  • Circuit Breaker
  • Rate Limiter
  • Fault Injection
  • Deployment Strategies
  • Visualizing Istio Metrics

Leszek Gawron
  • Trainer

Leszek Gawron

Team leader, Java/Kotlin developer


Related courses

You may also be interested in

Discover more about professional growth and skills development

contact us