Course Outline
Introductie
- Systeem- en servicearchitectuur, PaaS en cloud-native ontwerp
Overzicht van monolithische systeemarchitectuur
- Het uitvoeren van een volledige monolithische applicatiefunctionaliteit in één enkel proces
- ScalaMogelijkheid door replicatie over meerdere servers
- Protocollen die worden gebruikt in monolithische systemen: EAI, CORBA, enz.
Overzicht van webservices
- Service Oriented Architecture (SOA) en Microservices Architectuur
Service-Oriented Architecture (SOA)
- Voordeel en kosten van SOA
- Successen en mislukkingen bij de implementatie van SOA
- Berichtgeving en ESB
- Infrastructuur en tools ter ondersteuning van SOA
Hoe Microservices Webserviceconcepten implementeren
- Doe één ding en doe het goed
- DevOps
- Continue implementatie en levering (continue integratie, continu bouwproces, enz.)
- Lichtgewicht protocollen
Microserviceprotocollen en -standaarden
- HTTP, JMS, AMQP, Websockets, JSON, enz.
Ontwikkelingskaders voor de bouw Microservices
- Java-gebaseerde kaders (Spring Cloud)
- Javaop scripts gebaseerde frameworks (Seneca)
Een monolithische toepassing ontleden
- Zelfstandig inzetbare applicaties ontwikkelen
- Microservice-applicaties organiseren op basis van zakelijke mogelijkheden
- Casestudy: Een monoliettoepassing migreren naar drie kernmicroservices
Opzetten van een Spring Cloud ontwikkelomgeving
- Instellen van Docker en Docker Opstellen
- Omgevingsvariabelen instellen
Overzicht van Spring Cloud en Spring Boot
- Spring Cloud Deelprojecten: Config Server & Bus, Eureka, Ribbon, Feign en Hystrix
- Spring Boot
Een Spring Boot-toepassing maken
Gecentraliseerd configuratiebeheer met versiebeheer met Spring Cloud Config
Dynamische configuratie-updates met Spring Cloud Bus
Servicedetectie met Eureka
Taakverdeling met lint
Installatieautomaten toepassen met Hystrix
Declaratieve REST-cliënten met Feign
Werken met API Gateway
Een microservicetoepassing beveiligen
Microservices traceren om latenties aan het licht te brengen
Implementeren Microservices
- Containers (Docker, K8N, LXC, enz...)
- Configuration Management (Ansible, enz...)
- Detectie van services
- Bewaken en beheren Microservices
- Infrastructuur voor Microservices
Cloud en Auto ScalaBiliteit van Microservices
- Redundantie en failover van microservices
- Schaalbaarheid van prestaties voor Microservices
- Automatische schaalbaarheid
- Implementatie van Microservices op OpenStack, AWS en andere cloudplatforms
Veelvoorkomende problemen met gedistribueerde toepassingen oplossen
- Complexiteit van het ecosysteem
- Netwerkprestaties
- Veiligheid
- Implementatie
- Testing
- Nano-diensten
Laatste overwegingen voor het bouwen van productieklare systemen
- Het systeem gemakkelijk maken voor beginners
- Het systeem compleet maken zodat het als basis kan dienen voor bedrijfsapplicaties
Samenvatting en conclusie
Requirements
- Kennis van software en systeemtechniek
- Ervaring met Java-ontwikkeling
- Ervaring met Spring Framework
Publiek
- Java ontwikkelaars die snel microservices willen bouwen en implementeren
- Systeemarchitecten die een microservice-architectuur willen implementeren