devops alapelvek

47
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

Upload: felho

Post on 25-Jan-2015

156 views

Category:

Technology


5 download

DESCRIPTION

 

TRANSCRIPT

Page 1: DevOps alapelvek

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

Page 2: DevOps alapelvek

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

Page 3: DevOps alapelvek

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

Page 4: DevOps alapelvek

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

Page 5: DevOps alapelvek

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

Page 6: DevOps alapelvek

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

Page 7: DevOps alapelvek

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

Page 8: DevOps alapelvek

NOW PLAYING LIVE8

VÁLTOZÁS

2014 Jún. 4.APP!SYSTEM 2014

Borland Netscape

Page 9: DevOps alapelvek

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

Page 10: DevOps alapelvek

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

Page 11: DevOps alapelvek

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

Page 12: DevOps alapelvek

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

Page 13: DevOps alapelvek

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

Page 14: DevOps alapelvek

NOW PLAYING LIVE14

SZTEREOTÍPUSOK

2014 Jún. 4.APP!SYSTEM 2014

Page 15: DevOps alapelvek

NOW PLAYING LIVE15

SZTEREOTÍPUSOK

2014 Jún. 4.APP!SYSTEM 2014

Page 16: DevOps alapelvek

NOW PLAYING LIVE16

SZTEREOTÍPUSOK

2014 Jún. 4.APP!SYSTEM 2014

Page 17: DevOps alapelvek

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

Page 18: DevOps alapelvek

NOW PLAYING LIVE18

HOGYAN ÉRDEMES BELEVÁGNI?

2014 Jún. 4.APP!SYSTEM 2014

életszerű kontextust ad könnyen érthető menedzsment buy in

Page 19: DevOps alapelvek

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

Page 20: DevOps alapelvek

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

Page 21: DevOps alapelvek

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

Page 22: DevOps alapelvek

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

Page 23: DevOps alapelvek

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

Page 24: DevOps alapelvek

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

Page 25: DevOps alapelvek

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

Page 26: DevOps alapelvek

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

Page 27: DevOps alapelvek

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

Page 28: DevOps alapelvek

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

Page 29: DevOps alapelvek

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

Page 30: DevOps alapelvek

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

Page 31: DevOps alapelvek

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

Page 32: DevOps alapelvek

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

Page 33: DevOps alapelvek

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

Page 34: DevOps alapelvek

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

Page 35: DevOps alapelvek

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

Page 36: DevOps alapelvek

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

Page 37: DevOps alapelvek

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

Page 38: DevOps alapelvek

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

Page 39: DevOps alapelvek

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

Page 40: DevOps alapelvek

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

Page 41: DevOps alapelvek

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

Page 42: DevOps alapelvek

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

Page 43: DevOps alapelvek

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

Page 44: DevOps alapelvek

NOW PLAYING LIVE44

METRIKÁK, JOBBAN TELJESÍTÜNK-E?

2014 Jún. 4.APP!SYSTEM 2014

Page 45: DevOps alapelvek

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

Page 46: DevOps alapelvek

NOW PLAYING LIVE46 2014 Jún. 4.APP!SYSTEM 2014

?

Page 47: DevOps alapelvek

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