Microservices met Spring Boot
Lesgeld
Introductie cursus Microservices met Spring Boot
De cursus Microservices met Spring Boot begint met een overzicht van het hoe en waarom van microservices. Microservices zijn ontwikkeld als antwoord op de problemen met monolithische applicaties, die op den duur moeilijk te onderhouden en uit te breiden zijn. Bij een Microservices Architectuur wordt de totale functionaliteit gerealiseerd door samenwerkende microservices, ieder onder verantwoordelijkheid van een team.
Spring Boo
Introductie cursus Microservices met Spring Boot
De cursus Microservices met Spring Boot begint met een overzicht van het hoe en waarom van microservices. Microservices zijn ontwikkeld als antwoord op de problemen met monolithische applicaties, die op den duur moeilijk te onderhouden en uit te breiden zijn. Bij een Microservices Architectuur wordt de totale functionaliteit gerealiseerd door samenwerkende microservices, ieder onder verantwoordelijkheid van een team.
Spring Boot Framework
Het Spring Boot Framework is bijzonder geschikt voor de ontwikkeling van microservices omdat alle dependencies in een jar worden opgenomen. Dit maakt het eenvoudiger om Spring Boot applicaties te implementeren. Daarnaast kunnen deze applicaties eenvoudig worden voorzien van een embedded server, zodat de microservices via HTTP kunnen communiceren.
Inter Process Communicatie in Microservices
In de cursus Microservices met Spring Boot komen verschillende inter process communicatie mechanismen aan bod. We bespreken synchrone communicatie via een REST API en asynchrone communicatie via messaging. Ook communicatie via een binary protocol staat op het programma.
Discovery Patterns voor Microservices
Tevens besteden we aandacht aan de manieren waarop microservices elkaar vinden. Zowel client-side discovery als server-side discovery worden besproken. Ook gaan we in op de inzet van tooling en utilities zoals Netflix Eureka en Apache Zookeeper.
Data Management in Spring Boot Microservices
Een belangrijk onderdeel van de cursus is het omgaan met data in Spring Boot microservices. Microservices hebben vaak een eigen database, en we behandelen hoe transacties kunnen worden afgehandeld die verschillende microservices betreffen. Onderwerpen zoals event-driven architectuur en local en compensating transacties komen aan bod.
Deployment van Microservices met Spring Boot
Voor de deployment van microservices zijn er diverse opties beschikbaar, waaronder virtual machines en containers. We bespreken specifiek de deployment van Spring Boot microservices in Docker containers. Ook containerorkestratie met Kubernetes is een belangrijk onderwerp. Tenslotte behandelen we strategieën om een monolithische architectuur om te vormen naar een microservices architectuur. Voor meer informatie over Docker, kunt u de officiële website van Docker bezoeken. Voor andere relevante cursussen kunt u ook kijken naar de cursus Microservices .NET en Microservices Design Patterns.
Doelgroep Cursus Microservices met Spring Boot
De cursus Microservices met Spring Boot is bestemd voor ervaren Spring Java Developers die Spring Boot willen gebruiken voor de ontwikkeling van Microservices.
Voorkennis Cursus Microservices met Spring Boot
Ervaring met programmeren in Java en Spring is vereist om deel te kunnen nemen aan deze cursus. Basis kennis van een Microservice Architectuur is bevorderlijk voor een goede begripsvorming.
Uitvoering Training Microservices met Spring Boot
De concepten worden behandeld aan de hand van presentaties en demo's. De theorie wordt afgewisseld met oefeningen. De cursustijden zijn van 9.30 tot 16.30.
Certificering Microservices met Spring Boot
De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Microservices met Spring Boot.
Modules
Module 1 : Microservices Intro
- What are MicroServices?
- Components and Services
- Loose coupling
- Passing Messages
- Design Characteristics
- Simplicity and Transparency
- Reproduceability
- Asynchronous calls
- Mocking Components
- Testing Components
- Debugging Components
Module 2 : Using an API Gateway
- REST Web Services
- GET, POST, PUT, DELETE
- @RestController
- Default Content Types
- @ResponseStatus and HttpStatus
- Working with XML and JSON
- Multiple Representations
- Filtering with @JsonView
- REST Clients
- RestTemplate
- Sending HTTP Requests
Module 3 : Spring Boot
- Convention over Configuration
- No XML
- Spring Boot CLI
- Building and Deploying
- Using Templates
- Gathering Metrics
- Using Java With start.spring.io
- Spring Boot Starters
- Building as a Runnable JAR
- Data Access with Spring Data
- Property Support
Module 4 : Interprocess Communication
- Interaction Styles
- Request/response
- Notification
- Publish/Subscribe
- Synchronous vs Asynchronous
- Messaging
- Rest
- Synchronous IPC
- Apache Thrift
- Message Formats
Module 5 : Discovery Patterns
- Client Side Discovery
- Load Balancing
- Service Registry
- Netflix Eureka Example
- Client Side Drawbacks
- Server Side Discovery
- Request Routing
- Kubernetes
- Apache Zookeeper
- Self Registration Pattern
Module 6 : Data Management
- Distributed Data Problems
- ACID Transactions
- Distributed Transactions
- Polyglot Persistence
- Event Driven Architecture
- Eventual Consistency
- Achieving Atomicity
- Local Transactions
- Compensating Transactions
- Mining Transaction logs
Module 7 : Deployment Strategy
- Multiple Services Pattern
- Process or Process Group
- Multiple Service Instances per Host
- No isolation drawback
- Service Instance Per Host
- Service Instance per VM
- Service Instance per Container
- Docker and Kubernetes
- Serverless Deployment
Module 8 : Refactoring to Microservices
- Monolitic Applications
- Application Modernization
- Big Bang Rewrite
- Glue code
- Split Frontend and Backend
- Extract Services
- Prioritizing
- Extract Modules
- Shrinking the Monolith