3. RED BUTTON
Cine face release?
Oricine
Cand face release?
Oricand*
Cum face release?
Apasa un buton (magic)
4. ORICAND*
variaza, depinzand de :
- arhitectura (cache – repopulare, validare)
- infrastructura (numar ridicat de servere – code_base mare?)
- rolling deploy (one machine at a time, in cluster, service up all
the time)
Dependintele lui “oricand” genereaza de fapt un DELTA_T (timp)
care trebuie sa treaca de la ultimul release.
5. OFTEN
- release imediat ce “ai terminat”
- de X ori pe zi (variatia X depinzand de echipa, complexitatea
platformei, experienta, confidence, etc)
- you WILL break stuff!
6. DEVELOPMENT PROCESS
- no more branches : toata lumea lucreaza in trunk/master
- “there’s no return” – no more rollbacks, deploy only in “forward”
mode (nu poti da timpul inapoi)
7. DEVELOPMENT PROCESS
realizabil cu 2 conditii majore :
- ownership DEV(OPS)* - dezvoltare, unit testing, teste de
functionalitate
* DEVOPS – imediat ajungem si acolo...
8. DEVOPS
Ce inseamna?
- e un DEV care preia taskuri OPS ?
- e un OPS care stie sa faca si dezvoltare ?
- se obsoleteaza conceptul de sysadmin ?
- se obsoleteaza conceptul (clasic) de dezvoltator ?
- se obsoleteaza conceptul de QA?
- mai exista DBA ca si rol?
9. DEVOPS
Mai exista auxiliary roles?
- release master?
- integrator?
- fire_team?
Mai exista auxiliary processes (separate)?
- integrare
- testare
- maintenance (systems / code)?
10. MANDATORY TOOLSET
Din toolsetul necesar pentru a functiona in aceasta paradigma nu
trebuie sa lipseasca :
* metrics + instrumentation
- monitorizezi orice, setezi metrici de urmarit (de la browser ->
ethernet layer)
- livrabilele sunt bazate pe aceste metrici, masurarea succesului este
determinata de marimi reale, clare si care se pot urmari
- standard (minim) – numar de metrici comune oricarui
proiect/task/feature/etc
- automatizarea si impunerea metricilor de baza
- extensibil (standard-basic metrics trebuie sa poata fi extinse cat mai
simplu)
11. MANDATORY TOOLSET
* functionality flags ( “branching in code” )
- flaguri de on/off pentru $orice
- $orice : functionalitati, portiuni din platforma, flows, etc
* stable trunk
12. MANDATORY TOOLSET
* segmentare
- enable $functionality for 1% of user_base
- enable $functionality for cathegory of users (think : new
customers)
- enable $functionality for a specific flow (think : not logged_in
users)
- enable $functionality for a specific environment (think : browser)
* A/B testing
- posibilitatea testarii functionalitatii in N scenarii (N >= 2)
13. CE AM PREGATIT PENTRU AZI?
- devops
- care fac continous deployment
- masurand cat mai mult
- stiind din start ce vor sa obtina si concluzionand succesul
uitandu-se pe niste grafice
- fara sa se intoarca inapoi
- si controland in amanunt impactul asupra clientilor/utilizatorilor
... and that’s DEVOPS doing CONTINOUS DEPLOYMENT