Jak Microsoft provozuje spolehlivé systémy s DevOps
Microsoft provozuje komplexní online platformy od nejstarších dnů komerčního internetu. V průběhu vývoje jsme vyvinuli podstatnou sadu postupů, abychom zachovali dostupné, zdravé a zabezpečené systémy. Tyto postupy jsou součástí větší iniciativy, která udržuje a vylepšuje živou kulturu webu.
Živá kultura webu
Živá kultura webu je cílem organizace určit prioritu prostředí a spolehlivosti živého webu před vším ostatním. Koneckonců, zákazníci se můžou v dnešní době poměrně snadno pohybovat mezi poskytovateli služeb s cloudovými a internetovými službami, což výrazně zvětší důležitost důvěry zákazníků. Živý web musí být vždy dostupný a musí být zákazníkům přislíben jako přislíben.
Existují různé faktory, které přispívají k úspěšné živé jazykové verzi webu.
První živý web
Uvedení živého prostředí webu jako první je nedílnou součástí úspěšné platformy. Týmy se nemůžou soustředit na nové, lesklé funkce a ignorují cestu, ve které jsou tyto funkce prezentovány uživatelům. Spoléháme na postupy bezpečného nasazení, které pomáhají zajistit, aby naši zákazníci měli nepřetržitý přístup k platformě. To může být zvlášť složité, pokud jde o vydávání aktualizací služby se správou verzí bez výpadků.
Řízení expozice prostřednictvím příznaků funkcí
Při nasazování prostřednictvím našich okruhů a fází jsme kontrolovali vystavení příznakem funkcí, občas zjistíme problém v produkčním prostředí. Navzdory veškeré automatizaci a recenzím se věci někdy stále stávají. Jak říkají, není místo jako výroba!
Monitorování stavu a telemetrie nás obvykle upozorňují, když něco není v pořádku. Vývojář může vytvořit větev vypnutoumain
, provést opravu a požádat o přijetí změn .main
Zachování stejného obecného pracovního postupu znamená, že vývojáři nemusí přepínat kontext nebo učit jiný proces pro jinou změnu kódu.
Pokud chcete vyřešit nasazení oprav hotfix, je potřeba ještě jeden krok, který je potřeba vybrat změnu do větve vydané verze. Každé pracovní dny spustíme nasazení oprav hotfix mimo aktuální větev vydané verze, i když to můžeme udělat i na vyžádání pro naléhavé opravy. Oprava skutečně dosáhne produkčního provozu z větve vydané verze jako první. Ale vzhledem k tomu, že se vyvíjíme jako main
první, víme, že při vytvoření main
nové větve vydané verze nedojde k dalšímu sprintu.
Verze místních produktů jsou z velké části stejné, i když bez okruhů nasazení a fází. Vzhledem k tomu, že provádíme ruční testování různých konfigurací a obrazců dat, existuje delší chvost mezi řezáním větve vydávání verzí a uvedením produktu do rukou zákazníků.
Zabezpečení by se mělo brát osobně
Zaměřte se na to, aby ohrožení zabezpečení byla skutečná a osobní. To zajistí, aby lidé opravdu pečovali. Používáme také rozsáhlé použití war her k nalezení a řešení bezpečnostních rizik v celém systému, ať už v kódu, nebo ne. Když červený tým může ukázat, že se dostal do kódu tím, že přetáhl dialogové okno vzhůru nohama, skutečně motivuje vlastníka kódu k vyřešení problému a ujistěte se, že se nestane znovu nikde jinde. Tento druh konkurence je mnohem realnější a osobní než upozornění statické analýzy na potenciální riziko XSS. Tento druh kultury a dynamicky vytváříme prostřednictvím válečných her a dalších bezpečnostních cvičení. Lidé se hrdě na hacking do kódu sebe navzájem nebo může blokovat pokusy. Tím se vynucuje zabezpečená jazyková verze kódu.
Nemůžeme plánovat všechny vektory útoku, ale můžeme předpokládat, že dojde k porušení zabezpečení a naplánujeme, jak rychle můžeme na toto porušení reagovat. Hodně práce na zabezpečení je kolem toho pro naše týmy.
Nakonec lidé dělají chyby. Někdy jsou opožděné a dělají věci, jako je ukládání hesel do sdílených složek. Můžeme jim říct, že ne a můžeme je poslat na bezpečnostní školení a můžeme dělat nejrůznější věci. Většina lidí se učí, ale k narušení systému stačí jen jedna osoba. Můžete mít nejrůznější seznamy osvědčených postupů, ale pokud to neuděláte skutečně, musíte předpokládat, že lidé budou dělat chyby. To vyžaduje určitou úroveň dohledu, aby se zajistilo, že jsou sledovány kritické procesy.
Inženýrství je více než provozní partner
Brzy jsme se naučili, aby živý web byl důležitou součástí odpovědnosti technického týmu. To bylo pro nás obrovské, protože v minulosti mohl někdo nasadit něco, opustit víkend a vrátit se pondělí a najít 900 problémů se zákazníky, se kterými se zákaznická podpora a provozní týmy zabývaly celý víkend. Je důležité, aby technický tým zaplatil cenu za problémy s živými weby. Jinak není nutné vytvářet systémy, které by se těmto problémům vyhnuly. Když zavoláte v 2:00, abyste vyřešili něco, co jste zlomili, pamatujete.
Jak jsme vyvinuli tuto zodpovědnost, live web je nejdůležitější věcí, kterou děláme , se stal mantra celého týmu. Jedná se o zkušenosti zákazníků, které právě teď mají, a nejedná se jen o daň. Je to vlastně něco, co od nás lidé spoléhají a my se na to pyšně podíváme. Musí to být jiná funkce našeho produktu.
Produkční telemetrie je prezenční signál vaší služby.
Abychom mohli přežít ve světě s rychlým tempem, kde se prakticky cokoli může pokazit, potřebujeme skvělé systémy upozorňování. Neakční výstrahy, redundantní výstrahy nebo zahlcení svazků upozornění umožňují ignorovat všechna upozornění. Je snadné vytvořit příliš mnoho upozornění, takže proces skutečně zstiluje jednoduchou otázku: Je tato výstraha použitelná? Tím zajistíme, že se budeme zabývat správnými problémy zákazníků a co nejrychleji je zpracováváme.
Vzhledem k tomu, že technický tým vynuloval výstrahy s akcemi, všimli si, že mnoho problémů, které se objeví, zejména uprostřed noci, mají tendenci mít podobné opravy, alespoň dočasně. Výsledkem je zaměření na systémy, které byly lepší při převzetí služeb při selhání a samoopravení. Teď k problémům dochází, zvedněte upozornění a pak se opravte dostatečně dobře, aby technický tým čekal až do rána, než se opraví. To by se nestalo, kdyby technický tým právě vytáhl bity, které ostatní lidi držely v noci. Nyní pracují na vyvážení těchto vylepšení jako součást nejen rychlosti funkcí, ale také technického zlepšení rychlosti.
Shrnutí
Přijetí živé kultury webu ovlivnilo způsob, jakým Microsoft vytváří a dodává software. Díky tomu, že technické týmy tvoří klíčovou součást zabezpečení a provozu, kvalita našeho kódu a prostředí koncových uživatelů se výrazně zlepšila. Když jste úplným účastníkem provozních operací, je příprava klíčového účastníka, což vede k systémům, které jsou navržené pro lepší provoz.