class: title, smokescreen, shelf, no-footer background-image: url(manuel-sardo-CcgN1tGpWQA-unsplash.jpg) # DevOps je pro všechny ### DataScript Morning Talk --- class: img-right-full, roomy ![Michal](/img/2018-vertical.jpeg) # Na začátek - Dotazy do chatu nebo osobně na konci - Prezentace na [taborsky.cz/slides](https://taborsky.cz/slides/) - Pište na [michal@taborsky.cz](mailto:michal@taborsky.cz) - Twitter [@whizz](https://twitter.com/whizz) --- class: col-3 ## Co mají společného DevOps inženýr a jednorožec? ![](engineer.jpg# w-80pct) ![](unicorn.jpg# w-80pct) --- background-image: url(roots.jpg) class: title, fogscreen, no-footer # Kořeny DevOps --- class: img-right-full, roomy # Štíhlá výroba ![Toyota](toyota.jpg) angl. Lean manufacturing, *aka* Toyota Production System ??? - vyrábí se jen to zákazník chce -- * minimalizace plýtvání -- * nadbytečné zásoby materiálu ??? Paralely s IT vývojem * nenasazený vývoj -- * čekání mezi fázemi ??? - nadbytečný proces, který nezvyšuje hodnotu -- * nadbytečná výroba ??? * nadbytečné featury -- * kontrola kvality ??? - manuální testování, schvalování -- * opravy ??? - defekty - časová prodleva mezi vývojem nasazením ztěžujes řešení -- * neefektivní pohyby ??? - přepínání úkolů - čekání na třetí osobu -- * nevyužitá kreativita pracovníků ??? * nestandardní a manuální práce, hrdinství --- class: img-left-full, roomy # Teorie omezení ![Chain](chain.jpg) angl. Theory of Constraints ??? - _Každý proces má v danou chvíli jedno nebo pár omezení, které mu brání v tom dosahovat vyššího výkonu._ - Řetěz silný jako jeho nejslabší článek - program evaluation and review technique/critical path method (PERT/CPM) -- * Pět kroků: 1. Najdi aktuální omezení -- 2. Zjisti co ho způsobuje a rozhodni jak to změnit -- 3. Vše přizpůsob tomuto rozhodnutí -- 4. Odstraň omezení -- 5. Jdi na krok 1 -- * Eliyahu M. Goldratt: The Goal (1984) --- class: title background-image: url(agile.jpg) ??? * 2001 --- class: img-right-full, roomy ![History](history.jpg) # Stručná historie * Velocity 2009 - John Allspaw, Paul Hammond: "10 Deploys per Day: Dev and Ops Cooperation at Flickr" -- * DevOpsDays Gent 2009 - Patrick Debois -- * DevOpsDays Mountain View 2010 - Andrew Shafer, Patrick Debois, John Willis --- class: title, smokescreen background-image: url(three.jpg) # Tři způsoby ??? The Phoenix Project --- class: col-2, roomy # Hodnotový tok (Value stream) ## Klasická výroba "*Sekvence činností v rámci organizace vedoucí k dodání výrobku nebo služby zákazníkovi, obsahující tok materiálu a informací.*" ## DevOps "*Proces nutný k převedu business hypotézy v technologickou službu, která přinese hodnotu zákazníkovi.*" ??? * Hodnota vzniká pouze když je kód v produkci * Musí běžet spolehlivě bez výpadků --- class: img-right-full, roomy ![Flow](flow.jpg) # Tok práce * zviditelnění práce -- ![Kanban Board](board.png) ??? * Tok práce od Dev do Ops * Tech práce je neviditelná, narozdíl od výroby * Mapujeme celý hodnotový tok * Done je v produkci --- class: img-right-full, roomy ![Flow](flow.jpg) # Tok práce * zviditelnění práce * omezení rozpracovanosti (WIP) ??? - David J. Andersen, author of Kanban book: "Stop starting. Start finishing." -- * zmenšení dávek ??? - velké dávky - (výroba) pokud se objeví problém v dávce, je potřeba ji celou předělat - Štíhlá výroba - ideál je dávka velkosti 1 - Continuous delivery -- ![Dávky](batches.png) --- class: img-right-full, roomy ![Flow](flow.jpg) # Tok práce * zviditelnění práce * omezení rozpracovanosti (WIP) * zmenšení dávek * snížení předávek ??? - Automatizace manuálních kroků (CI/CD) - Reorganizace týmů - Architektura - Microservices -- * kvalita práce ??? - Automatické testy - Integrace testování do vývoje -- * kontinuální zlepšování a omezení plýtvání --- class: img-left-full, roomy ![Feedback](feedback.jpg) # Zpětná vazba ??? * První způsob - tok z leva do prava * Druhý způsob - rychlý a konstatní feedback z prava do leva * Cílem je bezpečnější a odolnější systém -- * komplexní systémy ??? * Nevejde se nikomu do hlavy * Stejná akce nemusí mít stejný výsledek -- * monitoring ??? * detailní monitoring všeho, viditelný všem * constinuous delivery snižuje riziko a zjednodušuje diagnostiku -- * Andon ??? * každý ho může použít, není za to postih * když se rychle nepodaří vyřešit, zastaví se linka * všichni pracují na odstranění závady -- * kvalita vzniká u zdroje ??? * automatizace menuálních kroků (vytváření zdrojů, cfg management) * peer review místo komisí a vytváření rozsáhlé dokumentace -- * optimalizace pro následné kroky ??? * empatie pro kolegy --- class: img-right-full, roomy ![Learning](learning.jpg) # Učení a experimentování ??? * kdo dělá chyby je potrestán, kdo upozorňuje na problémy je "potížista" -- * vyhrazený čas na vylepšení a učení * *kaizen blitz* -- * řešení incidentů a "lidská chyba" ??? * medicína - potrestání viníka, chyby se nereportují * letectví - zkoumání systému * veřejné post-mortem - 1987: Alcoa 2% z 90000 pracovníků zraněno ročně - za 10 let 95% snížení -- * game day ??? * Aisin Seiki Global - matrace, při nižší poptávce si hrají s jednou linkou ze dvou a hledají optimalizace -- * chaos engineering ??? * vkládání zpoždění a chybových stavů * vypínání komponent --- class: roomy background-image: url(three.jpg) # Tři způsoby ## 1. Tok práce ## 2. Zpětná vazba ## 3. Učení a experimentování --- class: title, fogscreen background-image: url(start.jpg) # Jak začít --- class: title background-image: url(autodevops.png) --- class: title background-image: url(autodevops.png) ![Auto devops](autodevops2.png# w-70pct ba bw-2) --- class: title, fogscreen background-image: url(start.jpg) # Jak začít ??? * Courtney Kissler, Nordstrom 2011 * Byli optimalizování na náklady - outsourcing * 97% úspěšnost v odhadech * Mobilní appka - vytvoření separátního týmu - odpoutání od firemní kadence releasů - integrace testování a operations - kontinuální plánování, jeden backlog - zdvojnásobili dodadné featury, chyby na polovinu * Value stream mapping * Transformační tým * Linkedin 2011 - InVersion, 2 měsíce --- class: img-right-full, roomy ![Tools](tools.jpg) # Nástroje * cloud * kontejnery * lambda funkce * configuration management * infrastructure as code * continuous integration * monitoring, alerting * microservices architektura --- class: img-left-full, roomy ![Legal](legal.jpg) # DevOps vs. legislativa "Nemůžeme použít DevOps přístup, protože SOX nám nařizuje, že vývojáři nesmí mít přístup do produkce a administrátoři nesmí mít přístup ke kódu." ??? SOX ve skutečnosti říká, že se nesmí nic nasadit do produkce bez nezávislého reviews --- class: img-left-full, roomy ![Legal](legal.jpg) ## Tradiční přístup * Vytvoří se *release team* * Vývojáři dokončují práci ve fázi "připraveno pro nasazení" * Release team vytváří softwarové artefakty (balíčky) * Operations balíček nainstalují ## Výsledek * Nasazuje se jednou za kvartál * Pokaždé je to stejně prů... švih ??? Základní problém: release team nedostatečně rozumí změnám (protože nemluví se zákazníkem) --- class: img-left-full, roomy ![Legal](legal.jpg) ## DevOps přístup - Proces nasazení je plně automatický - Bez zásahu obsluhy - Součást pipeline i povinný review krok - Vše je auditované ## Výsledek - Nasazuje se kdykoliv je to potřeba --- class: roomy, img-right-full ![Mistake](mistake.jpg) # Časté chyby -- * Soustředění hlavně na nástroje ??? - bez změny organizace a kultury to nejde -- * Zaměření na rychlost ??? - cílem je spíše agilita, eliminace plýtvání -- * Potlačení kontinuálního zlepšování -- * Nedostatek upřímnosti a sebereflexe ??? - 1. den 50%, 2. 90%, 3. 99%, 4. už jen poslední chybka - odteď už to pojede a doženeme to -- * Předpoklad, že změna je snadná --- class: col-3 ## Co mají společného DevOps inženýr a jednorožec? ![](engineer.jpg# w-80pct) ![](unicorn.jpg# w-80pct) --- class: img-right ![Phoenix Project](phoenix-project.jpg# w-80pct) # Zdroje - [Velocity 2009: Allspaw, Hammond: 10+ deploys per day](https://www.youtube.com/watch?v=LdOe18KhtT4) - [2019 Accelerate State of DevOps Report](https://cloud.google.com/devops/state-of-devops/) ### Knihy - [The Phoenix Project](https://amzn.to/2SryooX) - [DevOps Handbook](https://amzn.to/3bcCsSz) - [The Goal](https://amzn.to/3b3Z0EJ) - [The Mythical Man-Month](https://amzn.to/36U8wqA) --- # Kontakt a prezentace .qrcode.db.fr.w-40pct.ml-4[] * [taborsky.cz/slides](https://taborsky.cz/slides/) nebo jděte přímo přes QR kód. ## Kurz "[DevOps - od teorie k praxi](https://www.datascript.cz/kurzy/devops/devops-od-teorie-k-praxi/)" * 2.--3. března * 27.--28. dubna ## Kontakt - [michal@taborsky.cz](mailto:michal@taborsky.cz) - [@whizz](https://twitter.com/whizz)