- Leren door doen
- Trainers met praktijkervaring
- Klassikale trainingen
- Gedetailleerd cursusmateriaal
- Duidelijke inhoudsbeschrijving
- Maatwerk inhoud mogelijk
- Trainingen die doorgaan
- Kleine groepen
In de cursus Microservices Design Patterns van SpiralTrain leren de deelnemers welke design patterns kunnen worden toegepast in een Microservices Architectuur. De structuur en toepasselijkheid van de verschillende design patterns wordt diepgaand behandeld. Deelnemers krijgen inzicht in de voordelen van microservices, zoals schaalbaarheid en flexibiliteit, en leren hoe ze deze design patterns effectief kunnen implementeren in hun projecten.
In deze cursus Microservices Design Patterns leren deelnemers over de verschillende ontwerpprincipes en architecturale patronen die essentieel zijn voor het bouwen van microservices. Microservices zijn een krachtig architecturaal paradigma dat schaalbaarheid en flexibiliteit biedt ten opzichte van traditionele monolithische architecturen. In de cursus worden de voordelen zoals cohesie en onafhankelijke ontwikkeling grondig besproken.
In deze module worden de belangrijkste architectuurpatronen voor microservices behandeld. Dit omvat gelaagde architecturen en het scheiden van verantwoordelijkheden. Ook communicatiepatronen zoals REST en HTTP komen aan bod. Specifieke patronen zoals Backend for Frontend en Micro Frontends worden diepgaand besproken om een goed begrip te krijgen van hoe deze patronen bijdragen aan de effectiviteit van microservices.
De cursus behandelt het gebruik van een API Gateway als façade en reverse proxy. Dit patroon dient als een enkel toegangspunt voor externe clients en ondersteunt belangrijke functies zoals aggregatie van verzoeken, routering naar interne services, en het gebruik van service registry en discovery.
Deelnemers leren hoe elke microservice zijn eigen database kan beheren, wat essentieel is voor onafhankelijkheid en schaalbaarheid. Onderwerpen zoals polyglot persistence en gedistribueerde transacties, inclusief het Saga-patroon, worden uitgebreid behandeld.
Het aggregator patroon is cruciaal voor het combineren van gegevens uit meerdere microservices. Varianten zoals scatter-gather, chained aggregatie en branch variaties worden besproken. Ook de rol van service discovery in dit proces komt aan bod.
Deelnemers leren hoe het circuit breaker patroon helpt om uitval van microservices te voorkomen. Onderwerpen zoals beschikbaarheid en het vermijden van cascaderende uitval worden behandeld, evenals de verschillende toestanden van een circuit breaker: open, gesloten en half-open.
Deze module introduceert het CQRS-patroon, waarbij lees- en schrijfbewerkingen worden gescheiden. Dit voorkomt inefficiënte joins en maakt gebruik van verschillende opslagmethodes voor lees- en schrijfoperaties, waardoor de prestaties van microservices verbeteren.
De focus ligt op de communicatie tussen microservices via messaging. Onderwerpen zoals pub-sub patronen, message brokers zoals RabbitMQ en Kafka, en AMQP worden behandeld. Deze patronen zijn cruciaal voor het realiseren van losgekoppelde en schaalbare systemen. Voor meer informatie over messaging en gerelateerde technologieën, bezoek de officiële RabbitMQ website.
Bekijk ook de cursus Microservices .NET voor meer verdieping in de wereld van microservices.
De cursus Microservices Design Patterns is bestemd voor senior developers en software architecten die design patterns in een microservices architectuur willen toepassen.
Goed begrip van software development concepten en gedistribueerde systemen. Ervaring met cloud platforms en containers is bevorderlijk voor de begripsvorming.
Demos onder leiding van de trainer afgewisseld met presentaties, besprekingen van case studies en praktische oefeningen.
De deelnemers krijgen na het goed doorlopen van de cursus een certificaat van deelname aan Microservices Design Patterns.
Module 1: Intro Microservices |
Module 2: Architecture Patterns |
Module 3: API Gateway Pattern |
|
What are Microservices? Monolith versus Microservices Benefits of Microservices Challenges of Microservices Single Responsibility Minimize Coupling Maximize Cohesion Scalability |
System Design Patterns Layered Architectures Separation of Concern Microservices Patterns Synchronous Communication Using REST and HTTP Backend for Frontend Micro Frontends |
What is an API Gateway? Facade Functionality Reverse Proxy Single Entry Point Requests Aggregation Request Routing Service Registry Service Discovery |
Module 4: Database per Service |
Module 5: Saga Pattern |
Module 6: Aggregator Pattern |
|
Dedicated Databases Separation of Concerns Independent Data Management Polyglot Persistence Independent Scaling Data Encapsulation Reducing Coupling Shared Database Anti-Pattern |
Transaction Handling Distributed Transactions Two Phase Commit Maintaining Data Consistency Compensating Transactions Saga Coordination Saga Choreography Saga Orchestration |
Distributing Requests Aggregating Results Scatter Gather Variation Chained Variation Multiple Chains Branch Variation Comparison Proxy Pattern Using Service Discovery |
Module 7: Circuit Breaker Pattern |
Module 8: Command Query Segregation |
Module 9: Asynchronous Messaging |
|
Need for Circuit Breaking Failing Microservices High Availability Preventing Downtime Circuit Barrier Preventing Cascade Failure Circuit Breaker States Open, Closed, Half Open |
CQRS Pattern Separate Operations Avoid Complex Queries Prevent Inefficient Joins Read versus Update Commands for Update Queries for Read Different Databases |
Interprocess Communication Asynchronous Communication Backend Internal Microservices DIP Principle Publish and Subscribe Using Message Brokers async AMQP protocol Rabbit MQ and Kafka |
Module 10: Event Sourcing |
Module 11: Strangler Pattern |
Module 12: Decomposition Patterns |
|
Storing Events Single Source of Truth Sequential Event List Materialized Views Denormalized Views Splitting Databases Replaying Events Increase Query Performance |
Legacy System Modernization Application Migration Evolve Gradually Avoid Bing Bang Rewrites Resource Utilization Risk Management Implementing Strangulation API Gateway as Proxy |
Decomposing Microservices By Business Capability By Subdomain Domain Driven Design Bounded Context Pattern Propagating Cohesiveness Strategic DDD Tactical DDD |