Petr Chloupek: O AWS, DevOps a budoucnosti cloudu
„AWS je ta část, na kterou se dá spolehnout, je dokumentovaná, predikovatelná, spolehlivá,“ říká Principal DevOps Engineer ze společnosti Trask Solutions.
Petr Chloupek se specializuje na AWS od roku 2008 a patří mezi přední odborníky na automatizaci a návrh cloudových řešení. V rozhovoru odhaluje, proč AWS stále dominuje trhu, jak přistupuje k nástrojům jako CloudFormation nebo EventBridge a jaký vliv má serverless architektura na moderní vývoj aplikací.
Pokud tě zajímají praktické tipy pro práci s AWS, výhody certifikací, strategie pro škálování aplikací a další zajímavé informace, tento rozhovor je přesně pro tebe!
Řekneš nám, jak ses dostal k DevOps a cloudovým technologiím?
Dostal jsem se v roce 2008 k možnosti pracovat s AWS. Dělali jsme desítky menších projektů s Ruby on Rails. Tam jsme používali Capistrano na automatizaci deploymentů. To byl asi takový první krok k něčemu, co je dnes vnímáno jako DevOps.
Cloudové platformy AWS se neustále vyvíjí. Co považuješ za největší inovaci posledních let?
Já tam nějaký masivní vývoj za 15 let nevidím. Přidávají se služby, ale základní principy zůstávají. Stabilní rozhraní je prvním základem jakékoliv úspěšné vývojářské platformy. A v tomto ohledu je AWS velmi konzistentní. Proto mě poněkud zarazilo např. ukončení podpory CodeCommit. Vím o více projektech, které CodeCommit využívají, a AWS neposkytuje úplně adekvátní náhradu.
Ano, je integrováno mnoho existujících projektů (DocumentDB, MSK atd.), ale to nejde v pravém smyslu považovat za inovace.
Serverless architektura získává stále více na popularitě. Jaké výhody přináší pro moderní aplikace a jejich vývoj z tvého pohledu?
V první řadě existuje hodně aplikací, kde jsou výhody přinejmenším sporné. Velkou výhodou AWS jsou „managed services“. Vývoj aplikace se pak z velké části redukuje na integraci existujících služeb a zpracování událostí. Zde serverless poskytuje flexibilitu při vývoji a správě i vývoji. Nicméně ne každý monolit je třeba hned rozbít na event-driven architekturu.
Infrastructure as Code změnil způsob správy cloudových zdrojů. Které nástroje pro IaC využíváš nejčastěji?
Pracoval jsem hodně s CloudFormation. Stále je pro AWS nejflexibilnější – je možné ho používat úplně všude i v prostředí s velmi omezenou bezpečností. Používáme i Terraform a CDK, nicméně tyto nástroje jsou zaměřené hlavně na vývojáře aplikací.
Pro vývoj platforem škálují velice špatně a jsou neuniverzální. CloudFormation jde snadno integrovat do Terraformu i s CDK, ale neplatí to naopak. Náhrada „nové generace“ za CloudFormation pro rozsáhlé infrastrukturní projekty (více než desítky účtů a regionů) na trhu úplně není.
AWS Well-Architected Framework poskytuje strukturovaný přístup k návrhu cloudových aplikací. Jak tento framework využíváš ve své praxi?
Používám framework každý den, protože moje práce se často týká ať už přímo hodnocení projektů z pohledu Well-Architected, anebo návrhů optimalizací procesů a infrastruktury. Well-Architected je dobrá, rychlá příručka, která poskytuje základní strukturu o kterou se v projektech dá dobře opřít.
Automatizace je v DevOps nezbytností. Které AWS služby považuješ za nejdůležitější pro automatizaci?
Nevím, jestli nejdůležitější, ale základní budou CloudFormation, CodeBuild, CodeDeploy, CodePipeline, možná ještě EventBridge a Lambda. Touto množinou už se dá pokrýt poměrně široké spektrum potřeb. Automatizaci jednoduchých úloh můžete často napsat třeba v shellu s pomocí AWS CLI.
Virtual Private Cloud (VPC) je základní stavební kámen AWS sítí. Na které klíčové komponenty se zaměřuješ při návrhu VPC?
Pracoval jsem nějakou dobu jako network administrátor na regionální WAN síti. VPC je vlastně standardizované API rozhraní k síťovým funkcím, které každý network administrátor potřebuje. Snažím se mít přehled v tom, jaké nástroje jsou k dispozici.
Např. minulý rok jsme dělali workshop na migraci dat mezi OCI a AWS. Využívali jsme tam BGP routování mezi virtuálními sítěmi. Není to něco, na co bych se běžně zaměřoval, ale je dobré o té možnosti vědět.
Integrace AWS Lambda s dalšími službami nabízí široké možnosti. Které integrace považuješ za nejefektivnější a proč?
Čím dál častěji používám EventBridge. To je velice univerzální nástroj, který nabízí propojení přes většinu služeb. Dá se taky použít na notifikace mezi účty například pro akceptace Transit Gateway Attachment a podobně. S dobrým návrhem jde zprávy snadno filtrovat a doručovat různým adresátům.
Škálování aplikací je často diskutovaným tématem. Jak přistupuješ k automatickému škálování v AWS?
Měl jsem na starosti asi deset clusterů, kde jsem dělal automatické blue-green deploymenty v produkčních prostředích na téměř denní bázi. Je potřeba velice pečlivě číst dokumentaci a ujistit se, že člověk chápe přesně, co každá vlastnost znamená. Managed služby jako Lambda, SQS, S3 jsou někdy zdrojem vedlejších efektů, které je potřeba znát a připravit se na ně.
Statické webové aplikace na S3 jsou jednoduché a efektivní. S jakými výzvami se nejčastěji setkáváš při jejich nasazování?
Po pravdě řečeno to není pattern, se kterým bych se setkával příliš často. Testoval jsem teď novou verzi Amplify a přijde mi, že se to konečně dostává do stavu, kdy je to využitelné pro lidi, kteří se v této oblasti nespecializují.
Já se většinou pohybuji v oblasti back-end systémů a infrastruktury. Amplify může být dobrý nástroj pro jednoduché UI pro správu platforem, které jinak uživatelsky přívětivé rozhraní nemají.
Migrace do cloudu přináší řadu výzev. S jakými nejčastějšími problémy se setkáváš a jak je řešíš?
AWS k tomu poskytuje celé manuál – Cloud Adoption Framework. Zjednodušeně řečeno: Lidé jsou větší problém než technologie. Od získání podpory managementu přes implementaci nových technologií po vyjasnění přínosu pro byznys. AWS je ta část, na kterou se dá spolehnout, je dokumentovaná, predikovatelná, spolehlivá. Lidský faktor je jednou z největších výzev nejen v IT projektech.
Co tě nejvíce baví na práci s AWS a cloudovými technologiemi?
Učit se od AWS inženýrů jejich návrhy spolehlivé infrastruktury. Rád sleduji přednášky, kde je vysvětleno „co se děje v pozadí“ – technologické deep-dive. Je v nich často inspirace pro vlastní práci.
Které dovednosti považuješ za klíčové pro úspěšnou kariéru v oblasti cloudového inženýrství?
Určitě to budou některá klišé jako „pořád se učit“, ale řekl bych, že se nedá dělat DevOps na vysoké úrovni bez dobré znalosti programování a algoritmizace. Ano, všude okolo jsou důkazy toho, že to jde i bez toho. Ale i tak to považuji za klíčové.
Jak vidíš budoucnost cloud computingu a které trendy podle tebe budou formovat jeho vývoj?
Říká se, že technologie jedné generace je prostředím generace další. Cloud tu je, není to inovace. Je to prostředí. Jako elektřina, voda, veřejná doprava. Není to a nebude to konkurenční výhoda. Pro mě byl cloud možnost vyzkoušet si technologie a postupy, ke kterým bych se jinak neměl jak dostat.
Nyní dochází ke konsolidaci trhu, na druhou stranu nevzniká generace lidí, kteří by chtěli být experti v této oblasti. Stejně tak se nerodí davy „expertních elektrikářů“. Budoucnost je v demokratizaci přístupu pro uživatele řešení. Datoví inženýři nepotřebují dnes ke své práci systémové inženýry. Tento trend bude pokračovat.
Proč jsou AWS certifikace podle tebe klíčové v oblasti cloudových technologií a jaké konkrétní výhody přinášejí profesionálům, kteří je získají?
Každý prochází svou unikátní cestou k získávání IT zkušeností. Snadno na ní nějaká důležitá témata přeskočí. AWS certifikace se snaží zajistit, že budete mít přehled o všech klíčových aspektech AWS platformy, které budete potřebovat pro úspěšnou realizaci svých projektů.
Na druhou stranu ani Professional úroveň certifikací nejsou samy o sobě zárukou toho, že bude vytvářet skvělá řešení. Certifikace jsou spíše vstupenkou, neměly by být cílem. Když jsem se učil na AWS Solution Architect Professional, donutilo mě to vyzkoušet si služby, které jsem dříve nepoužíval. Moje dnešní práce je často na projektech, kde používám právě tyto znalosti.