Mádi Gábor: Miért kell DevOps stratégia a non-IT cégekben is?
DevOps alapelvek
1. NOW PLAYING
We. Are. .
1
DEVOPS: MI AZ, ÉS MIÉRT FONTOS EGY
ÜZEMELTETŐNEK?
Hodicska Gergely - @felhobacsi
Fejlesztési vezető
2014 Jún. 4.APP!SYSTEM 2014
2. NOW PLAYING
MI NEM A DEVOPS?
Nem egy konkrét metodológia
Nem csak egyféleképpen érhető el
Nem egy beosztás vagy egy csapat
2014 Jún. 4.APP!SYSTEM 2014 2
3. NOW PLAYING
AKKOR MI IS EZ?
“DevOps is the integration of Agile
principles with Operations practices.”
Minden sprint végén legyen egy működő
software-ünk, ÉS a hozzá tartozó
környezet is.
2014 Jún. 4.APP!SYSTEM 2014 3
4. NOW PLAYING
AKKOR MI IS EZ?
“DevOps is the ability to consistently
create and deploy reliable software to an
unreliable platform that scales
horizontally.”
2014 Jún. 4.APP!SYSTEM 2014 4
5. NOW PLAYING
AKKOR MI IS EZ?
A céges erőforrások optimális
kihasználása, ami négy alappillérre épül:
kultúra, automatizálás, mérés és
megosztás.
2014 Jún. 4.APP!SYSTEM 2014 5
6. NOW PLAYING
AKKOR MI IS EZ?
Kedvcsináló - egy hatékony DevOps csapat:
– 30-szor gyakoribb deployment
– 8000-szer gyorsabb ciklus idő
– 2-szer gyakoribb sikeres változtatás
– 12-szer gyorsabban hárítanak el hibákat
– 5-ször nagyobb az esély a cég sikerességének
2014 Jún. 4.APP!SYSTEM 2014 6
7. NOW PLAYING
AKKOR MI IS EZ?
Szükségszerűség túléléshez és a sikerhez
Képesség a gyors változásra
Aki nem tud adaptálódni, meghal
2014 Jún. 4.APP!SYSTEM 2014 7
9. NOW PLAYING
EGY KIS EREDET
2014 Jún. 4.APP!SYSTEM 2014 9
Agile infrastructure
“10 Deploys A Day at Flickr”
DevOpsDays -> #DevOps
Lean startup
Continues Delivery
Cloud térhódítása
10. NOW PLAYING
MIÉRT ÉRDEKES EZ?
Szakemberektől szakembereknek
Nem egy konkrét termék, vendor.
Tapasztalaton nyugvó mozgalom
Decentralizált és nyitott
2014 Jún. 4.APP!SYSTEM 2014 10
11. NOW PLAYING
MINDEN CÉG CÉLJA
Gyorsabb piacra kerülési idő
Jobb minőség
– hibatűrés
– nem funkcionális követelények
Jobb hatékonyság
– több érték az ügyfeleknek
– kevesebb hulladék
2014 Jún. 4.APP!SYSTEM 2014 11
13. NOW PLAYING
A DEVOPS CÉLJA
Lerombolni ezeket a silókat
Kollaboráció és optimalizálás beindítása a
teljes cégben
“DevOps is not a technology problem but a
business problem”
2014 Jún. 4.APP!SYSTEM 2014 13
17. NOW PLAYING
ELINDULÁS
Közös céges irányelv
Csapat vs cég
– egyedül nem nyerhetünk
Egyén
– fejlődés
– jókedv
2014 Jún. 4.APP!SYSTEM 2014 17
18. NOW PLAYING
HOGYAN ÉRDEMES BELEVÁGNI?
2014 Jún. 4.APP!SYSTEM 2014 18
életszerű
kontextust ad
könnyen érthető
menedzsment buy in
19. NOW PLAYING
THE THREE WAYS
összefoglalja a devops alapelveit
first way: rendszerben gondolkodás
2nd way: visszacsatolás megerősítése
3rd way: folyamatos kísérletezés és
tanulás
2014 Jún. 4.APP!SYSTEM 2014 19
20. NOW PLAYING
THE FIRST WAY
2014 Jún. 4.APP!SYSTEM 2014 20
munkafolyamatok
megértése
áteresztőképesség
növelése
a rendszer teljes,
mély megértése
21. NOW PLAYING
AJÁNLOTT GYAKORLAT #1
Munka típusok megértése, vizualizálása
– üzleti projektek (HTTPS streaming)
– belső projektek (Chef automatizálás)
– rutin munkák (élesítés, szerver létrehozása)
– nem tervezett munkák (leáll a site)
2014 Jún. 4.APP!SYSTEM 2014 21
22. NOW PLAYING
AJÁNLOTT GYAKORLAT #2
Környezet létrehozásának automatizálása
– környezet létrehozása a fejlesztés elején
– a kódon és a környezeten egyszerre
dolgozzunk
– a dev, stage, éles környezetek egységes
módon legyenek létrehozva
2014 Jún. 4.APP!SYSTEM 2014 22
23. NOW PLAYING
THE FIRST WAY - EREDMÉNYEK
Közös repó kód és környezet számára
Egységes dev, stage, live környezet
Kiszámítható release folyamat
Rövidebb ciklus idő
Gyakoribb release
2014 Jún. 4.APP!SYSTEM 2014 23
24. NOW PLAYING
THE SECOND WAY
2014 Jún. 4.APP!SYSTEM 2014 24
visszacsatolás
megerősítése,
lerövíditése
ügyfél (külső és belső)
jobb megértése
minőség javítása a
forrásnál (rework)
tudás létrehozása és
beépítése
25. NOW PLAYING
AJÁNLOTT GYAKORLAT #1
Keltsd fel a fejlesztőket
– Több felmérés bizonyította, hogy ha ezt
megtesszük, akkor sokkal gyorsabb a hibák
elhárítása
2014 Jún. 4.APP!SYSTEM 2014 25
26. NOW PLAYING
AJÁNLOTT GYAKORLAT #2
Fejlesztők beágyazása az üzemeltetésbe
– közös hiba elhárítás (dev ügyelet)
– közös post-mortemek (5 whys, Swiss cheese
model)
– egymás oktatása (beleértve a biztonságot is)
– közös monitoring, metrikák
– hozzáférnek az éles rendszerhez
2014 Jún. 4.APP!SYSTEM 2014 26
27. NOW PLAYING
THE SECOND WAY - EREDMÉNYEK
Hibák és biztonsági problémák sokkal gyorsabb
megoldása
Ügyfelek jobb kiszolgálása
Üzemeltetési és biztonsági szempontok
bekerülnek a fejlesztési folyamatba
Csapatok közötti kommunikáció és együttműködés
javul, multidiszciplináris tudás
Gyorsabb és hatékonyabb munkavégzés, csökken
a selejt
2014 Jún. 4.APP!SYSTEM 2014 27
28. NOW PLAYING
THE THIRD WAY
2014 Jún. 4.APP!SYSTEM 2014 28
Folyamatos kísérletezés
(rizikó vállalása) és
tanulás a hibákból
Gyakorlás szükséges a
mesterré váláshoz
Szükséges a folyamatos
fejlődéshez, ismeretlen
területek felderítéséhez
29. NOW PLAYING
AJÁNLOTT GYAKORLAT #1
Ha valami fáj, akkor csináljuk gyakrabban
– ha nem tesszük, akkor nem fogjuk tudni jól
kezelni
– ezáltal van lehetőségünk kevésbé fájóvá tenni
2014 Jún. 4.APP!SYSTEM 2014 29
30. NOW PLAYING
AJÁNLOTT GYAKORLAT #2
Hibák injektálása
– Chaos Monkey
– így leszünk képesek
igazán hibatűrő
rendszereket
készíteni
2014 Jún. 4.APP!SYSTEM 2014 30
31. NOW PLAYING
AJÁNLOTT GYAKORLAT #3
Törjük el a dolgokat élesbe kerülés előtt
– ami csak lehet, legyen a CI folyamat része
– akár például performancia tesztelés
– vagy security ellenőrzések
– statikus kód analízis eszközök
2014 Jún. 4.APP!SYSTEM 2014 31
32. NOW PLAYING
AJÁNLOTT GYAKORLAT #4
Dedikált idő technical debt csökkentésre
– ez mindig keletkezik a rendszerben
– rövid távon akár hasznos is lehet
– ha nem fizetjük vissza, megfojtja az üzletet
– erősen szituáció függő: pl. idő 20%
2014 Jún. 4.APP!SYSTEM 2014 32
33. NOW PLAYING
KULTÚRA VÁLTOZTATÁSA
Kicsiben kell elkezdeni, építsünk bizalmat, biztonságot
(fokozatosság, türelem)
Early adopters (“don’t fight stupid, make more
awesome”)
Legyenek metrikák, amik eladják a “sztorit”, tőkét
építhetünk vele
Ünnepeljük meg a sikereket
Használjuk ki az alkalmakat (FS, Stability)
Conway’s Law (cég struktúra -> minőség)
2014 Jún. 4.APP!SYSTEM 2014 33
34. NOW PLAYING
SIKERES DEVOPS KULTÚRA FŐ JELLEMZŐI
közös cél és ösztönzők
– lásd a sztereotípiák
infrastruktúra mint kód
alkalmazás mint szolgáltatás
Dev + Ops + Többiek mint csapat
– spektrum
2014 Jún. 4.APP!SYSTEM 2014 34
35. NOW PLAYING
INFRASTRUKTÚRA MINT KÓD
automatizálás minden szinten
– system thinking
– munka átadása kritikus
commodity hardware + felhő infrastruktúra
– nem egyedi hardware-re építünk
– rugalmasabb rendszerünk lesz
– hibatűrést a rendszerkialakítás fogja garantálni
megbízhatóság minden szinten
– design for failure, resilience
– hibák mindig is lesznek, megbízhatóság nem megvehető
2014 Jún. 4.APP!SYSTEM 2014 35
36. NOW PLAYING
INFRASTRUKTÚRA MINT KÓD
infrastruktúra APIk
– API-ként kell gondolkodni
– tudnunk kell programozottan kezelni
– Chef, Puppet, OpenStack, Ganeti, Ustream Cloud
infrastruktúra elemek mint szolgáltatás
– gondoljunk rá termékként (az appok a kliensek)
– DNS, tűzfal, loggolás, LB, deployment, skálázás
– viziónk: fejlesztők üzleti logikát készítik csak el
2014 Jún. 4.APP!SYSTEM 2014 36
37. NOW PLAYING
ALKALMAZÁS MINT SZOLGÁLTATÁS
Szolgáltatás/komponens megközelítés
– könnyebb fejleszteni, deploy-olni
– kevesebb függőség, gyorsabb fejlesztés
– egyszerűbb cserélni
Használjunk egyszerű protokollokat
– pl. bonyolult middleware protokoll helyett simán HTTP
Verziózott APIk/komponensek
– sok komponens -> sokféle kliens
– gyorsabban lehet haladni
– néha lehet írtást szervezni (automatizálással támogatható)
2014 Jún. 4.APP!SYSTEM 2014 37
38. NOW PLAYING
ALKALMAZÁS MINT SZOLGÁLTATÁS
Robosztusság, hibatűrés
– Chaos Monkey, Hystrix, graceful degradation
Adattárolás absztrakciója
– ne konkrét megvalósítástól függjünk
– akár az SQL is nagyobb függés, mint egy cél API
Komplexitás minél magasabb szinten
– egyszerűbb komponensek, hibakezelés hívó oldalon
Deep instrumentation
– komplex rendszerek, enélkül vakon repülünk
– FB Scuba, Twitter Zipkin, Linkedin Kafka
2014 Jún. 4.APP!SYSTEM 2014 38
39. NOW PLAYING
DEV + OPS + TÖBBIEK MINT CSAPAT
Agile
– jól illeszkedik, és kell is rugalmasság
– sprint végén működő kód ÉS ahozzá tartozó környezet is
Közös metrikák és monitorozás
– segíti a rendszer megértését, jobb döntések meghozását
– ha látjuk a problémát inkább akarjuk kijavítani
Incidens menedzsment
– katonai üzemmód (kommunikáció)
– stresszes -> gyakorlatozás (DDoS)
Te írtad te üzemelteted
– fejlesztők bevonása a hibák elhárításába (Openduty)
2014 Jún. 4.APP!SYSTEM 2014 39
40. NOW PLAYING
DEV + OPS + TÖBBIEK MINT CSAPAT
Szoros integráció
– együttműködés -> jobb megoldás
– szakértő csapat -> információ áramoltatás
Continuous integration
– forrás kódból futtatható alkalmazás 1 parancs
– unit/integration/acceptance tesztek
– security teszt, teljesítmény teszt, főbb metrikák
Continuous delivery/deployment
– előző kibővítése: deployment pipeline
– canary release, green blue deployment etc.
2014 Jún. 4.APP!SYSTEM 2014 40
41. NOW PLAYING
DEV + OPS + TÖBBIEK MINT CSAPAT
Kis változtatások
– kisebb a hibalehetőség, illetve hiba esetén a hiba hatás
Blameless kultúra
– gyorsabb probléma elhárítás
Merjünk hibázni
– csak tanuljunk belőle
Post mortem
– értsük meg a hibát, így legközelebb elkerülhető
– 5 whys, Swiss cheese model
IM és robotok
– tanulhatunk egymástól, folyamatos kommunikáció
2014 Jún. 4.APP!SYSTEM 2014 41
42. NOW PLAYING
METRIKÁK, JOBBAN TELJESÍTÜNK-E?
Miért jók ezek egyáltalán?
– tájékozottság, megértés
– motiváció, tökéletesítés
– védelem, tőke
Mikor jó egy metrika?
– ha döntéseket lehet hozni az alapján
2014 Jún. 4.APP!SYSTEM 2014 42
43. NOW PLAYING
METRIKÁK, JOBBAN TELJESÍTÜNK-E?
Iterációk ideje
Technical debt
MTTD
MTTR
Quality at the
source
2014 Jún. 4.APP!SYSTEM 2014 43
45. NOW PLAYING
ÖSSZEFOGLALÓ
Az ügyfél a MŰKÖDŐ szolgáltatásért fizet
Nem cél/eszköz, hanem utazás/kultúra
Lépjünk ki a kényelmi zónánkból
Bontsuk le a silókat a szervezetben
Folyamatos fejlődés, tökéletesítés
Értsük meg a többi részleg igényeit
2014 Jún. 4.APP!SYSTEM 2014 45
47. NOW PLAYING
FUN FACTS
Top concurrent viewer number: 1.65M
Top concurrent connected device: 2M
Top concurrent on one stream: >800k
Top concurrent ingests: 9.95k (166 hours / min)
Top concurrent transcoded channels: 4k
Top concurrent recorded channels: 2k
3PB recorded video
2014 Jún. 4.APP!SYSTEM 2014 47