Continuous Delivery
Sander Aernouts
Info Support in een notendop •
• • • • • • •
Maatwerk softwareontwikkeling van bedrijfskritische kantoorapplicaties Business Intelligence oplossingen Managed IT Services Eigen Kenniscentrum 400 medewerkers NE & BE ISKA’s
Wat gaan we doen?
Continuous Delivery - Introductie
SOFTWARE DEVELOPMENT
Continuous Delivery
Wat is software developement?
Continuous Delivery
INTRODUCTIE CONTINUOUS DELIVERY Continuous Delivery
Introductie Continuous Delivery
‘Standaardwerk’ over het topic uit 2011, Jez Humble & David Farley
Continuous Delivery - Introductie
8 principes van continuous delivery The process for releasing/deploying software MUST be repeatable and reliable. Automate everything! If something is difficult or painful, do it more often. Keep everything in source control Done means “released”. Build quality in! Everybody has responsibility for the release process. Improve continuously. Bron: http://java.dzone.com/articles/8-principles-continuous
Continuous Delivery - Introductie
CD op een sheet
Bron: http://continuousdelivery.com/2014/02/visualizations-of-continuous-delivery/
Continuous Delivery - Introductie
5 niveaus
5 dimensies
Maturity Model
Bron: http://cdmm.infosupport.com
Continuous Delivery - Introductie
Maturity Model
Continuous Delivery
CONTINUOUS DELIVERY IN DE PRAKTIJK Continuous Delivery
Netflix
Continuous Delivery
Tesla Motors
Continuous Delivery - Praktijk Case
Google
Continuous Delivery - Praktijk Case
CONTINUOUS DELIVERY PRACTICES
Continuous Delivery
De 5 dimensies van CD Informatie & Rapportage
Cultuur & Organisatie Specificeren & Testen
Continuous Delivery
Architecture & Ontwerp Build & Deploy
Afronding Continuous Delivery - Praktijk Case
CULTUUR EN ORGANISATIE
Continuous Delivery
Continuous Feedback
Continuous Delivery - Culture & Organization
Agile principles
Continuous Delivery - Culture & Organization
Dev & Ops
Continuous Delivery - Culture & Organization
Business & Dev & Ops
Continuous Delivery - Culture & Organization
Valkuilen in de praktijk Verandering kost tijd! Heel veel communicatie Denk goed na over: – Wie doet wat, afdelingen & rollen – Verantwoordelijkheden binnen teams – Kennis opdoen middels training & coaching
Cultuur & Organisatie
Continuous Delivery - Culture & Organization
ARCHITECTUUR & ONTWERP
Continuous Delivery
Modulairiteit
Continuous Delivery - Design & Architecture
Verschillende “platforms”
Continuous Delivery - Design & Architecture
Service Oriented Architecture
Continuous Delivery - Design & Architecture
Microservices
Continuous Delivery
Valkuilen in de praktijk Wie is verantwoordelijk? Just enough design Denk goed na: – Over inzet herbruikbare componenten (change once, update everywhere) – Het gevaar van ‘Tijdelijke’ oplossingen
Architectuur & Ontwerp
Continuous Delivery - Design & Architecture
BUILD & DEPLOY
Continuous Delivery
Versiebeheer
Continuous Delivery - Deploy & Build
Build script Sources Sources .java
Script
Build
Sources Sources .sql
Test
.zip
.jar
.dll
Sources Sources .cs
Continuous Delivery - Deploy & Build
Continuous integration
Continuous Delivery - Deploy & Build
Continuous deployment
Continuous Delivery - Deploy & Build
Valkuilen in de praktijk Alles onder versiebeheer New single point of failures (build of deploy) Organisatie moet ook mee! Denk goed na over: – Testen als onderdeel van de build – Versioneren van de build
Build & Deploy
Continuous Delivery - Deploy & Build
SPECIFICEREN & TESTEN
Continuous Delivery
Testen & Continuous delivery
Continuous Delivery - Test & Verification
Test Driven Development
Continuous Delivery - Test & Verification
Acceptance Test Driven Dev.
Continuous Delivery - Test & Verification
ATDD tools
Continuous Delivery - Test & Verification
Perceptual Difference
Continuous Delivery - Test & Verification
Fault injection testing
Continuous Delivery
Valkuilen in de praktijk Verantwoordelijkheid voor testomgevingen Testen (onderhoudbaar)automatiseren is lastig Componenten/subsystem isoleren is soms lastig Denk goed na over: – Het (automatisch) uitrollen van testomgevingen – Efficient testen, alleen test draaien voor onderdelen die veranderd zijn Specificeren & Testen
Continuous Delivery - Test & Verification
INFORMATIE EN RAPPORTAGE
Continuous Delivery
Code quality dashboards
Continuous Delivery - Information & Reporting
Scrum dashboards (proces)
Continuous Delivery - Information & Reporting
Analyseer applicatie performance
Continuous Delivery - Information & Reporting
Analyseer gebruik applicatie
Continuous Delivery - Information & Reporting
Let op zij-effecten..
Continuous Delivery - Information & Reporting
Valkuilen in de praktijk Quality metrics zeggen niet alles! (behoud altijd common sense) Proces metrics zijn erg lastig. Denk goed na over: – Weet waarom je meet – Begin klein!
Informatie & Rapportage
Continuous Delivery - Information & Reporting
Wrap up Continuous delivery is geen doel op zich. Begin met heldere visie en doelstellingen. Begin eerlijk en begin klein. Verbeter incrementeel
“Start by doing what's necessary; then do what's possible; and suddenly you are doing the impossible.” Francis of Assisi (+/- 1210 ac)
Continuous Delivery - Wrap up
Continuous Delivery?
Continuous Delivery
De bekende ‘vragen sheet’
Continuous Delivery - Wrap up
Meer informatie Continuous Delivery – http://continuousdelivery.com/ – Continuous delivery (Jez Humble)
CDMM (Maturity Model) – http://cdmm.infosupport.com Scrum – Succeeding with Agile: Software development using Scrum (Mike Cohn) – http://scrum.org DevOps – http://devops.com Cursussen/coaching: standaard en maatwerk Continuous Delivery - Wrap up