H5: Microservices Flashcards
(29 cards)
Wat zijn de voordelen en nadelen van een Monolith? (3 + 3)
+ Well known structure (layered)
+ IDE Friendly
+ Easy sharing, deployment, testing
- Limited Agility
- Moeilijk voor continue delivery
- Je zit vast met een stack
Waarom Service over library? (3)
- Hoeft niet te redeployen bij library change
- Onafhankelijk deploybaar
- Expliciete component interface
Wat is het verschil tussen microservices en ESB aanpak?
Dumb services, Smart pipes vs Smart services, Dumb pipes
Welke invloed heeft decentralized governance op teams?
Je krijgt meer cross-functional teams
Wat zijn de 4 eigenschappen van de Reactive Manifesto? Welke volgorde? Waar staan ze voor?
Responsive:
Het systeem reageert in een tijdige manier.
- Lazy Loading
- Progress show
- Trage services slowen rest niet down
Elastic:
Het blijft reagerend onder workload. Misschien zelf predictive scaling.
- Resources scalen met input
- Load balancing
- No contention points en centrale bottlenecks
Resilient:
Elke service kan failen, detect deze failures snel door monitoring. Er zijn altijd fall back services.
- Chaos monkeys
- Best manier tegen failures is je systeem proberen breken.
Message Driven:
- Asynchrone message passing tussen components
- Dit zorgt voor loose coupling, isolatie en locatie transparantie
Wat heeft netflix gedaan voor resilience? (4)
Ze hadden een simian army:
- Chaos Monkey: Laat random services failen
- Latency Monkey: Artificiele delays
- Janitor Monkey: Verwijderd ongebruikte resources
- Security Monkey: Zoekt veiligheids issues
Wat is het verschil tussen VM’s en containers?
- Virtualisatie van hardware
- Flexible, Robust en safe
vs - Lightweight
- Gebruikt onderliggend OS host
Wat is het verschil tussen:
- Type 1 Hypervisor
- Type 2 Hypervisor
- OS-level integration
- Heeft geen onderliggend OS, in cloud gebruikt
- Heeft onderliggend OS (bijvoorbeeld VM-box)
- Gebruikt OS van Host (Docker)
Wat zijn pros en cons van containers? (2 + 1)
+ Flexibel: Je kan een container of systeem containeriseren
+ Lightweight: Geen OS in container, libraries en bins zijn shared, net genoeg OS om te werken
- Kan geen ander OS dan de host OS gebruiken.
Wat is de container checklist en welke zaken vallen hieronder? (6)
Processes:
- Zorg dat een minimum aan processen runt
Throttling / limits:
- Geen noisy neighbours
Prioritization:
- Geef belangrijke pods hogere priority
Resource Isolation:
- Afzonderlijke resources
Root File System:
- De root van de container is onafhankelijk van de host, maar kan gemount worden
Security:
- Containers zijn protected
Wat zijn linux control groups? (6)
Kernel features die de volgende zaken doen:
- Device Access
- Resource limiting
- Prioritization
- Accounting: Resource Usage per group
- Control: Freezing en Checkpointing
- Injection: Packet tagging
Wat valt er bij linux cgroups onder CPU control? (5)
- CPU verdelen en porties prio geven
- Scheduling uitvoeren
- SLA luisteren
- Containers / Jobs aan CPU cores linken
- Core switching cost verlagen
Wat valt er bij linux cgroups onder Device Access? (3)
- Devises Isoleren / minder visible maken
- Veilige sharing
- Device blacklist / whitelist
Wat is een linux namespace?
Het is een mannier om resources op te delen zodat ze behoren tot een deelverzameling van de taken.
Welke opties zijn er voor linux namespaces? (6)
- MNT: mount points, file systems, …
- PID: Process ID
- NET: NIC, routing
- IPC: Inter process communication, queues enzovoort
- UTS: Host en domain name
- USER: UID en GID
Wat doen pivot_root en chroot?
- Copied root direct naar MNT namespace
- pivot_root heeft geen parent
Hoe zorgen we ervoor dat processen in containers blijven? (2)
Linux Security Modules:
- Mandatory Access Control
- Definieert capabilities per process.
Wat is horizontal scaling
Adding extra computing power to the current nodes
Wat is vertical scaling?
Adding extra computing components
Definitie Microservice?
Een manier van software applicatie designing als groepen van onafhankelijk deploybare services.
Wat is een component?
Een deel software dat individueel vervangbaar is en upgradebaar.
Wat is een ESB?
Een architectuur waar alle messaging via een centrale messaging backbone gedaan wrodt. (Enterprise Service Bus)
What is polyglot persistence
Right tool for the right job op gebied van databases
Wat is Reactive Manifesto (zonder de eig)
Knowledge -> highly scaling en flexible applications