Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[HU] DevOps alapelvek

[HU] DevOps alapelvek

Avatar for felhobacsi

felhobacsi

June 05, 2014

Other Decks in Technology

Transcript

  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
  8. 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
  9. 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
  10. 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
  11. NOW PLAYING LEGFŐBB AKADÁLY 2014 Jún. 4. APP!SYSTEM 2014 12

    §  Silók: legdurvább hatékonyság gyilkos §  Munka átadása
  12. 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
  13. 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
  14. NOW PLAYING HOGYAN ÉRDEMES BELEVÁGNI? 2014 Jún. 4. APP!SYSTEM 2014

    18 §  életszerű §  kontextust ad §  könnyen érthető §  menedzsment buy in
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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
  38. 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
  39. 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
  40. 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
  41. 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