devops alapelvek
DESCRIPTION
TRANSCRIPT
NOW PLAYING LIVE
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
NOW PLAYING LIVE2
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
NOW PLAYING LIVE3
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
NOW PLAYING LIVE4
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
NOW PLAYING LIVE5
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
NOW PLAYING LIVE6
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
NOW PLAYING LIVE7
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
NOW PLAYING LIVE8
VÁLTOZÁS
2014 Jún. 4.APP!SYSTEM 2014
Borland Netscape
NOW PLAYING LIVE9
EGY KIS EREDET
2014 Jún. 4.APP!SYSTEM 2014
Agile infrastructure “10 Deploys A Day at Flickr” DevOpsDays -> #DevOps Lean startup Continues Delivery Cloud térhódítása
NOW PLAYING LIVE10
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
NOW PLAYING LIVE11
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
NOW PLAYING LIVE12
LEGFŐBB AKADÁLY
2014 Jún. 4.APP!SYSTEM 2014
Silók: legdurvább hatékonyság gyilkos Munka átadása
NOW PLAYING LIVE13
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
NOW PLAYING LIVE14
SZTEREOTÍPUSOK
2014 Jún. 4.APP!SYSTEM 2014
NOW PLAYING LIVE15
SZTEREOTÍPUSOK
2014 Jún. 4.APP!SYSTEM 2014
NOW PLAYING LIVE16
SZTEREOTÍPUSOK
2014 Jún. 4.APP!SYSTEM 2014
NOW PLAYING LIVE17
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
NOW PLAYING LIVE18
HOGYAN ÉRDEMES BELEVÁGNI?
2014 Jún. 4.APP!SYSTEM 2014
életszerű kontextust ad könnyen érthető menedzsment buy in
NOW PLAYING LIVE19
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
NOW PLAYING LIVE20
THE FIRST WAY
2014 Jún. 4.APP!SYSTEM 2014
munkafolyamatok megértése
áteresztőképesség növelése
a rendszer teljes, mély megértése
NOW PLAYING LIVE21
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
NOW PLAYING LIVE22
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
NOW PLAYING LIVE23
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
NOW PLAYING LIVE24
THE SECOND WAY
2014 Jún. 4.APP!SYSTEM 2014
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
NOW PLAYING LIVE25
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
NOW PLAYING LIVE26
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
NOW PLAYING LIVE27
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
NOW PLAYING LIVE28
THE THIRD WAY
2014 Jún. 4.APP!SYSTEM 2014
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
NOW PLAYING LIVE29
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
NOW PLAYING LIVE30
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
NOW PLAYING LIVE31
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
NOW PLAYING LIVE32
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
NOW PLAYING LIVE33
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
NOW PLAYING LIVE34
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
NOW PLAYING LIVE35
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
NOW PLAYING LIVE36
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
NOW PLAYING LIVE37
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
NOW PLAYING LIVE38
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
NOW PLAYING LIVE39
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
NOW PLAYING LIVE40
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
NOW PLAYING LIVE41
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
NOW PLAYING LIVE42
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
NOW PLAYING LIVE43
METRIKÁK, JOBBAN TELJESÍTÜNK-E?
Iterációk ideje Technical debt MTTD MTTR Quality at the
source2014 Jún. 4.APP!SYSTEM 2014
NOW PLAYING LIVE44
METRIKÁK, JOBBAN TELJESÍTÜNK-E?
2014 Jún. 4.APP!SYSTEM 2014
NOW PLAYING LIVE45
Ö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
NOW PLAYING LIVE46 2014 Jún. 4.APP!SYSTEM 2014
?
NOW PLAYING LIVE47
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