Microservices met Spring Boot
Lesgeld
Intro Microservices
De cursus gaat van start met een overzicht van het hoe en waarom van microservices. Microservices zijn ontwikkeld in reactie op problemen met monolithische applicaties die op den duur moeilijk onderhoudbaar en uitbreidbaar zijn gebleken. Bij een Microservices Architectuur wordt de totale functionaliteit gerealiseerd door samenwerkende microservices die ieder onder verantwoordelijkheid van een team vallen.
Spring Boot
Het Spring Boot Framework is bi
Intro Microservices
De cursus gaat van start met een overzicht van het hoe en waarom van microservices. Microservices zijn ontwikkeld in reactie op problemen met monolithische applicaties die op den duur moeilijk onderhoudbaar en uitbreidbaar zijn gebleken. Bij een Microservices Architectuur wordt de totale functionaliteit gerealiseerd door samenwerkende microservices die ieder onder verantwoordelijkheid van een team vallen.
Spring Boot
Het Spring Boot Framework is bij uitstek geschikt voor de ontwikkeling van microservices omdat bij Spring Boot applicaties alle dependencies in een jar worden opgenomen. Ook kunnen Spring Boot applicaties eenvoudig worden voorzien van een embedded server zodat de microservices via HTTP kunnen communiceren.
Inter Process Communicatie
In de cursus Microservices met Spring Boot komen diverse inter process communicatie mechanismen tussen de microservices aan de orde zoals synchrone communicatie via een REST API en asynchrone communicatie via messaging. En ook communicatie via een binary protocol staat op het programma.
Discovery Patterns
Voorts is er aandacht voor de manieren waarop microservices elkaar vinden. Zowel client side discovery als server side discovery wordt besproken. En eveneens wordt ingegaan op de inzet van tooling en utilities zoals Netflix Eureka en Apache Zookeeper.
Data Management
Ook het omgaan met Data in Spring Boot Microservices is onderdeel van het programma van de cursus. Microservices hebben veelal een eigen database en aan de orde komt hoe in dat geval transacties kunnen worden afgehandeld die verschillende microservices betreffen. Zowel een event driven architectuur als local en compensating transacties worden besproken.
Deployment
Voor de deployment van Microservices zijn diverse opties beschikbaar waaronder virtual machines en containers. Met name wordt de deployment van de Spring Boot Microservices in docker containers besproken. En ook container orkestratie met Kubernetes staat op het programma. Tenslotte wordt ingegaan op de strategieën om een monolithische architectuur om te vormen naar een microservices architectuur.
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