Adopt the right patterns to build reliable, scalable distributed systems
A microservices architecture is much more than just a technical breakdown: it stems from sound principles such as Domain-Driven Design, autonomous deployment, horizontal scalability and continuous integration. This training course guides you through the concrete implementation of these principles with the Spring Cloud stack.
You'll discover the key patterns required for a distributed architecture: service discovery with Eureka, asynchronous communication via Kafka, exposure via an API Gateway, centralized configuration management, data sovereignty, targeted testing. Through hands-on workshops, you'll transform an existing monolithic application into a set of coherent, independently testable and deployable microservices.
This course will enable you to master Spring Cloud tools (Gateway, Config, Netflix, Kafka) while assimilating the fundamental architecture decisions needed to evolve your projects in complex distributed environments.
Is it for you ?
Developers and architects.
Prerequisites
This course requires a sound knowledge of the basics of Java programming (principles of object-oriented programming, generic types, annotations, lambda expressions), Spring and Spring boot and experience of working with Eclipse or IntelliJ.
What You'll Walk Away With
- ✓ Design a microservices architecture using bounded contexts and stateless services
- ✓ Implement service discovery with Eureka including load balancing and health checks
- ✓ Enable asynchronous communication between services using Kafka and Spring-Kafka
- ✓ Expose and secure services through an API Gateway with routing and request handling
- ✓ Centralize and secure application configuration using Spring Cloud Config
Training content
1 Introduction
- Bounded contexts as a prerequisite for micro-services architecture.
- Stateless operation to promote horizontal scalability.
- Types of deliverables: stand-alone application or serverless function.
- Data sovereignty.
- Communication between micro-services.
- Testing.
Putting it into practice: refactoring a monolithic application into micro-services.
2 Service discovery with Spring cloud Netflix
- Service discovery: introducing the concept.
- The role of the Eureka server.
- Self registration and self unregistration operations.
- Registry propagation.
- Health checks as a means of keeping the registry up to date.
- Implementing load balancing.
- Requesting an application with RestClient.
Practical application: getting to grips with a Spring application (data access, REST API, testing).
3 Publish / subscribe with the brokerApache Kafka
- The role of the broker in a micro-services architecture.
- Introducing Kafka.
- Subscribing to a topic.
- Sending messages to a topic.
Putting it into practice: asynchronous communication between micro-services with Kafka and spring-kafka.
4 Exposing microservices with Spring cloud API Gateway
- The API Gateway as an entry point to a set of micro-services.
- Routing rules.
- API Gateway action on requests and responses (retries, security, etc.).
- Data aggregation.
Putting it into practice: creating an API Gateway with Spring Cloud Gateway to expose the micro-services developed above.
5 Centralizing configuration with Spring Cloud Config
- The role of a config server.
- Storing and protecting properties.
- Property encryption methods.
- Coupling with a Eureka Server.
- Declaring a config server in client applications.
Putting it into practice: creating a config server with Spring cloud Config, coupling micro-services with it.
📌 Practical information
Our training sessions are offered in Montreal or Quebec City, in person or in a virtual classroom. Dates and locations are specified when you select your session below. If you have any questions, check out our FAQ.