Microservices Architecture
Lesgeld
Introductie tot Cursus Microservices Architecture
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.
Ontw
Introductie tot Cursus Microservices Architecture
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.
Ontwerp Overwegingen
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.
Interprocess Communicatie
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.
Micro Frontends
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.
Data Management in Microservices Architecture
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.
Discovery en Deployment
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.
Doelgroep Cursus Microservices Architecture
De cursus Microservices Architecture is bedoeld voor developers en architecten en anderen die inzicht willen krijgen het waarom en hoe van een Microservices Architecture.
Voorkennis training 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.
Uitvoering cursus Microservices Architecture
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.
Certificering cursus Microservices Architecture
De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Microservices Architecture.
Modules
Module 1 : Intro Microservices
- 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
Module 2 : Design Considerations
- 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
Module 3 : Interprocess Communication
- 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
- 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
Module 5 : Reactive Microservices
- 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
Module 6 : Data Management
- 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
- 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
Module 8 : Deployment Strategies
- 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
Module 9 : Security
- 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