DevOps Flashcards
(22 cards)
DevOps waarom?
Wanneer de applicatie eenmaal is ontwikkeld door de developers wordt deze doorgestuurd naar operations.
De applicatie wordt hierbij “over de muur” gegooid: vaak is de documentatie onvolledig, onjuist en/of ontbrekend.
Aan het einde van de dag gaan de ontwikkelaars naar huis, terwijl de mensen in operations het risico lopen ‘s nachts uit bed gebeld te worden wanneer de applicatie niet doet wat de gebruiker verwacht.
DevOps Wat?
Dit zijn “The Three Ways” van DevOps.
First way: “Understand and increase flow”, oftewel het product (de applicatie) sneller, makkelijker en beter bij de gebruiker krijgen
Second way: “Shorten and amplify feedback loops”, oftewel ervoor zorgen dat je meer, sneller en betere feedback krijgt
Third way: “Continuous Experimentation & Learning”, oftewel tijd en moeite blijven investeren om te experimenteren en te leren.
DevOps Ontwikkelproces
Traditioneel ziet vaak zo het software proces bij organisaties uit:
Ontwikkelaars ontwikkelen een applicatie (requirements -> ontwerp -> code -> applicatie)
Testers testen de applicatie (veelal controleren of de applicatie voldoet aan de requirements)
(Applicatie)beheerders rollen een applicatie uit en beheren deze (applicatie <-> gebruiker)
Dit proces in grote lijnen geldt ook voor veranderingen aan software.
Leg DevOps uit
DevOps is de vereniging van ontwikkelaars, operations én testers om samen op te trekken om systemen te ontwikkelen, operationaliseren en onderhouden.
Wat is DevOps niet
- Simpelweg Development en Operations teams samenvoegen
- Een apart team (dus naast Development en Operations)
- One-size fits all
- Cloud
- Een tool
- Automation
- Een rol
DevOps fases
Devops in een oneindige lus die begint bij
Plan: Maak een plan om het proces en het product te verbeteren
Build: Voer het plan uit; maak het product en richt het proces in
Continuous integration: Voeg het gemaakte wijzigingen aan het reeds bestaande toe Deploy: rol het gemaakte product uit
Operate: Voer ondersteunende taken uit (denk aan monitoring, gebruikersondersteuning, onderhoud, backups, etc.)
Continuous feedback: vergaar op zo veel mogelijk manieren feedback (bijv. van gebruikers, van het platform, het netwerk, andere applicaties, monitoring en logging)
Probeer zo veel mogelijk van de stappen te automatiseren: dit maakt het proces sneller en betrouwbaarder!
Wat is de kern van “The First Way” in DevOps?
Het optimaliseren van de flow van werk (waarde) van ontwikkeling naar productie, zodat sneller en betrouwbaarder waarde geleverd kan worden aan de klant.
Wat is een belangrijk verschil tussen software en fysieke producten?
Software is abstract en virtueel, waardoor het moeilijk direct zichtbaar en meetbaar is, in tegenstelling tot fysieke producten die tastbaar en visueel controleerbaar zijn.
Waarom zijn Kanban- en Scrum-borden nuttig in softwareontwikkeling?
Ze maken werk visueel, verbeteren inzicht in voortgang en helpen bij prioritering en samenwerking met stakeholders.
Wat betekent WIP (Work in Progress) limiteren en waarom is dat belangrijk?
Het beperken van het aantal taken waaraan tegelijkertijd gewerkt wordt; dit verhoogt focus, doorstroming en voorspelbaarheid.
Wat is het effect van multitasken bij mensen vergeleken met computers?
Multitasken verhoogt mentale overhead bij mensen door verlies van focus, terwijl computers efficiënter kunnen schakelen via time slicing.
Wat is een ‘hand-off’ en waarom wil je deze beperken?
Een overdracht van werk tussen teams; deze zorgen voor vertraging, miscommunicatie en informatieverlies.
Wat is een ‘constraint’ in een proces en waarom is deze belangrijk?
De beperkende factor in een proces die de totale output bepaalt; optimalisatie zonder deze te kennen kan averechts werken.
Wat zijn de 5 stappen van de Theory of Constraints?
- Identificeer, 2. Exploiteer, 3. Subordineer, 4. Verhoog capaciteit, 5. Herhaal als constraint verandert.
Waarom is automatisering belangrijk bij flow-optimalisatie?
Automatisering maakt processen herhaalbaar, betrouwbaar en vermindert handmatig werk dat foutengevoelig is.
Wat is het voordeel van geautomatiseerde omgevingsopzet (bijv. met Docker)?
Consistente test-, acceptatie- en productieomgevingen zonder handmatig werk; sneller, foutvrij en schaalbaar.
Waarom is schaalbaarheid cruciaal bij DevOps-systemen?
Zodat systemen snel kunnen reageren op veranderende vraag (bijvoorbeeld bij plotseling succes van een app).
Wat is het doel van een repository in DevOps?
Een centrale plek voor code, scripts, documentatie en testresultaten – inclusief versiebeheer en rollback-mogelijkheden.
Waarom zijn duidelijke afspraken over ‘klaar’ belangrijk?
Voorkomt miscommunicatie en zorgt dat werk niet onnodig wordt verlengd of voortijdig wordt gestopt.
Wat is het principe van Test-Driven Development (TDD)?
Eerst een test schrijven die faalt, dan code schrijven tot de test slaagt.
Wat is het verschil tussen automatische en handmatige tests?
Automatisch: snel en betrouwbaar voor logica. Handmatig: beter voor UI en visuele feedback.
Wat is een CI/CD pipeline?
Een geautomatiseerde keten voor Continuous Integration, Delivery en (soms) Deployment.