Java Microservices
опис
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.
на бланку Luxoft Training
Цілі
To introduce listeners to modern approaches to building microservices.
Цільова аудиторія
Java
Developers
&
Architects
передумови
Good knowledge of Java & Spring.
Дорожня карта
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