Java Microservices

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
Course type
Online
Language
English
Duration
30 hours
Location
Online
Language
English
Code
JVA-079
Training for 7-8 or more people? Customize trainings for your specific needs
Java Microservices
Duration
30 hours
Location
Online
Language
English
Code
JVA-079
€ 750 *
Training for 7-8 or more people? Customize trainings for your specific needs

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. 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.

certificate
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



Still have questions?
Connect with us