- Leren door doen
- Trainers met praktijkervaring
- Klassikale trainingen
- Gedetailleerd cursusmateriaal
- Duidelijke inhoudsbeschrijving
- Maatwerk inhoud mogelijk
- Trainingen die doorgaan
- Kleine groepen
In de cursus Microservices Architecture leren de deelnemers de voordelen van de ontwikkeling van applicaties in een Microservices Architectuur ten opzichte van een Monolitische Architectuur. In de Microservices Architecture zijn kleine teams verantwoordelijk voor ontwikkeling en deployment van de microservices die elk een eigen database en user interface kunnen hebben.
De cursus Microservices Architecture begint met een bespreking van de problemen van monolitische applicaties. Vervolgens wordt ingegaan op de kenmerken van een Microservices Architecture, zoals onafhankelijke implementatie, onafhankelijke schaalbaarheid en gescheiden databases. Deze cursus is essentieel voor ontwikkelaars die de overstap willen maken naar een moderne architectuur die flexibiliteit en schaalbaarheid biedt.
Daarnaast wordt uitgelegd hoe volgens de wet van Conway de architectuur van applicaties weerspiegeld wordt in de organisatiestructuur. De overstap naar een Microservices Architectuur vereist dus aanpassingen binnen de organisatie. Hierbij komen ook de principes van Domain Driven Design aan bod, wat essentieel is voor een effectieve implementatie van microservices.
Microservices zijn aparte processen die communiceren via interprocess communicatie. In deze cursus wordt aandacht besteed aan synchrone communicatie via REST, asynchrone communicatie via messaging en communicatie via een binair protocol zoals Thrift. Dit zorgt ervoor dat de verschillende microservices effectief met elkaar kunnen samenwerken.
Daarna bespreken we de user interfaces van Microservices. Diverse benaderingen voor de integratie van een user interface worden behandeld, zoals custom elements, server-side templates en built-time integratie van JavaScript-libraries. Deze aspecten zijn cruciaal voor het ontwikkelen van gebruiksvriendelijke applicaties binnen een microservices-architectuur.
Eveneens komt data management in een Microservices Architectuur aan bod. We bespreken de verschillende patronen voor dataopslag, zoals database per service, shared database, het saga-patroon en event sourcing. Dit is een belangrijk onderdeel van het effectief beheren van gegevens binnen een microservices-omgeving.
Tenslotte worden de opties voor service discovery behandeld, zoals client- en server-side discovery en het gebruik van service registrars. Ook passeren de deployment mogelijkheden van microservices, zoals in virtual machines en containers, de revue. Voor meer gedetailleerde informatie over microservices, kunt u de documentatie op microservices.io raadplegen.
Voor wie deze cursus interessant is? Deze cursus Microservices Architecture is perfect voor softwareontwikkelaars, architecten en projectmanagers die hun kennis van microservices willen verdiepen en toepassen in hun projecten.
Daarnaast kan het waardevol zijn om de cursus Domain Driven Design te volgen, om een breder begrip te krijgen van de architecturale principes die bijdragen aan een succesvolle microservices-implementatie.
De cursus Microservices Architecture is bedoeld voor developers en architecten en anderen die inzicht willen krijgen het waarom en hoe van een Microservices Architecture.
Om aan de cursus Microservices Architecture deel te nemen is algemene kennis van software ontwikkeling en software design wenselijk. Voorafgaande kennis van moderne programmeertalen is bevorderlijk voor de begripsvorming.
De theorie wordt behandeld aan de hand van presentaties. Illustratieve demo's worden gebruikt om de behandelde concepten te verduidelijken. Er is voldoende gelegenheid om te oefenen en afwisseling van theorie en praktijk. De cursustijden zijn van 9.30 tot 16.30.
De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Microservices Architecture.
Module 1 : Intro Microservices |
Module 2 : Design Considerations |
Module 3 : Interprocess Communication |
|
Microservices Architecture Monolithic Applications Software Monolith Problems of Monoliths Layered Architecture Growing Beyond Limits Microservices Characteristics Underlying Principles Independent Deployability Independent Scaling Separated Databases Size of Microservices Frontend Monolith Micro Frontend Architecture Blurry Service Boundaries |
Conways's Law Law as Enabler Domain Driven Design Building Blocks Bounded Context Reactive Manifesto Reactive Microservices Microservices with UI Microservices Benefits Effective Modularization Replaceability Microservices Continuous Delivery Pipeline Free Technology Choice Team Independence Microservices and Languages |
Communicating Processes Interaction Styles Service Communications Styles Defining API’s Netflix Hystrix Asynchronous Messaging Messaging Models Publish and Subscribe Point to Point Advantages of Messaging Synchronous IPC REST Services Resource URI Access Thrift Content Negotiation |
Module 4 : Micro Frontends |
Module 5 : Reactive Microservices |
Module 6 : Data Management |
|
What are Micro Frontends? Monolith versus Micro Frontends Benefits Micro Frontends Delivery Pipeline per Service Avoid Shared Artifacts FrontEnd Integration ESI Composition Links and JavaScript Custom Elements Integration Approaches Server Side Templates Built Time Integration Shared Component Libraries Cross Application Communication Backend Communication |
What is Reactive? Reactive Programming Reactive Extensions Observables Reactive Systems Elasticity and Resilience Reactive Microservices Asynchronous Development Event Loop Reactor Pattern Multireactor Pattern Verticles Callbacks vs Observables RxJava API Monitoring |
Distributed Data Complex Data Access Polyglot Architecture Private Access Design Patterns Database per Service Shared Database Pattern Saga Pattern Event Publishing Consuming Events Responding to Events Base Model Transactions Local Transactions Database Transaction Log Event Sourcing |
Module 7 : Service Discovery |
Module 8 : Deployment Strategies |
Module 9 : Security |
|
Why Service Discovery Finding Services Client Side Discovery Service Registry Server Side Discovery Load Balancers Service Registries Self Registration Pattern Third Party Registration Pattern Service Registrars Netflix Eureka HashiCorp Consul |
Deployment Patterns Virtual Machines Creating Virtual Machines Drawbacks of VM’s Containers Containers versus VM’s Container Orchestration Kubernetes Multiple Instances Per Host Service Instance per Host Service Instance per Container Serverless Deployment |
Microservices Security Security Challenges Key Security Fundamentals Confidentiality Edge Security Securing with OAuth2 Authorization Server Interactions Actors OAuth2.0 Flow OAuth Roles Application Registration Securing with API Gateway Zuul Proxy and OAuth2 |