Jste rozhodnutí vydat se při vývoji vaší příští aplikace cestou Cloud Native, ale zajímá vás, jak to bude s následným provozem? Nemáte zkušenosti se správou cloudové infrastruktury a rádi byste věděli, co můžete očekávat? Chcete, aby vaše řešení bylo co nejvíce bezúdržbové a efektivní?
Vaše obavy plně chápeme, a proto vám přinášíme odpovědi na tyto otázky v tomto článku. Přečtěte si, jak vám cloud pomůže s provozem a údržbou Cloud Native aplikací a jaké výhody nabízí. A pokud se budete chtít svěřit do rukou profesionálů, rádi se vašeho projektu ujmeme a vše si vezmeme na starost!
Automatické škálování (autoscaling) je jednou z hlavních motivací, proč firmy a organizace hromadně přecházejí na Cloud Native řešení. Slibují si od něj efektivnější provoz infrastruktury a také nižší náklady. Principem autoscalingu je automatické přizpůsobování výpočetní kapacity aktuálním potřebám, což vede ke stabilnímu, předvídatelnému výkonu za nejnižší možnou cenu. Dělí se na vertikální („up“ and „down“) a horizontální („out“ a „in“). Automaticky škálované aplikace si zachovávají optimální dostupnost i při nepředvídatelném nebo neustále se měnícím zatížení, protože výpočetní kapacitu lze mnohonásobně zvýšit nebo naopak snížit během velmi krátké doby.
Servery a kontejnery
Na úrovni serverů probíhá automatické škálování podle definovaných scénářů, jako jsou například návštěvnost nebo míra využití. Počet aktivních serverů se přizpůsobuje provozu v reálném čase bez jakýchkoli ručních zásahů. Všichni tři největší poskytovatelé cloudových služeb – AWS, Microsoft Azure i Google Cloud – nabízejí vlastní nástroje pro autoscaling serverů.
K bezstarostnému provozu Cloud Native aplikací přispívá také automatické škálování kontejnerů. Funguje na podobném principu jako autoscaling serverů a zajišťuje dostupnost vaší služby v případě neočekávaného nárůstu návštěvnosti. Jednou z forem škálování je zvyšování nebo snižování počtu kopií kontejneru vaší aplikace spuštěných v clusteru, které probíhá na základě definovaných zásad autoscalingu a alarmů.
Databáze
Na podobném principu funguje i autoscaling databází. Vertikální škálování v případě databází znamená navyšování nebo snižování výpočetního výkonu, popřípadě počtu databází. Používá se tehdy, když je zapotřebí rychle reagovat na problémy s nedostačujícím výkonem. Tento postup se uplatňuje v případě náhlého nárůstu počtu požadavků (zatížení). Pojmem horizontální škálování databází se myslí rozdělení rozsáhlejších databází na menší uzly (tzv. „sharding“). Škálování na více instancí je vhodné použít tehdy, když není k dispozici dostatek prostředků pro požadované úlohy ani při nejvyšší možné úrovni výkonu. Data se tak rozloží mezi několik databází na více serverech do tzv. horizontálních oddílů, které lze samostatně škálovat podle potřeby ve vertikálním směru.
Další služby
Cloud Native řešení dále využívají i automaticky škálovaných cache (vrstvy pro krátkodobé ukládání dat) a load balancerů (jednotky distribuující provoz mezi více cílů, jako jsou EC2 instance, IP adresy nebo kontejnery). S tím souvisí i koncept CDN neboli Content Delivery Network (síť pro doručování obsahu), který zrychluje odezvu aplikace tím, že připojí návštěvníka webu nebo uživatele aplikace k nejbližšímu serveru.
Obecně lze říct, že automatické škálování se týká převážné většiny produktů AWS. Nezáleží na tom, zda si vyberete managed cloud služby v oblasti analytiky, strojového učení, IoT nebo třeba datových úložišť – díky autoscalingu pro vás nebude provoz těchto nástrojů znamenat žádné starosti navíc a vaše aplikace tak poběží bez problémů 24/7.
Serverless architektura je metoda vytváření a provozu aplikací a služeb, která nevyžaduje správu serverové infrastruktury – ať už vlastní, nebo pronajaté. Aplikace samozřejmě na nějakých serverech běží, ale vy s jejich provozem ani údržbou nemáte žádné starosti. Vše zajišťuje AWS, takže nemusíte vytvářet, škálovat ani udržovat žádné servery, na kterých fungují vaše databáze a úložné systémy. Pokud máte vlastní vývojáře, ušetříte jim tak spoustu práce a uvolníte jim ruce k tomu, aby se mohli naplno zabývat samotným produktem namísto provozních záležitostí.
AWS má k dispozici několik cloudových služeb, pomocí kterých můžete snadno implementovat serverless architekturu a zjednodušit tak provoz a správu vašich aplikací.
AWS Lambda umožňuje spuštění kódu bez nutnosti vytvořit nebo spravovat infrastrukturu – kód stačí jednoduše napsat a nahrát ve formátu .zip nebo jako image kontejneru. S touto službou navíc ušetříte, protože budete platit pouze za využitou výpočetní dobu podle milisekund. AWS Lambda totiž automaticky reaguje na požadavky na exekuci kódu v téměř libovolném měřítku – od několika desítek událostí za den až po stovky tisíc za sekundu.
AWS Fargate je služba serverless computingu pro kontejnery na bázi pay-as-you-go. Uživatelé se díky ní nemusí starat o nasazení a správu infrastruktury, ale pouze aplikací. Navíc umožňuje integraci s bezpečnostními službami AWS (např. Amazon CloudWatch Container Insights), které slouží k monitorování aplikací a jejich metrik.
Amazon Aurora Serverless je on-demand konfigurace autoscalingu pro nástroj Amazon Aurora. Automaticky škáluje výpočetní kapacitu oběma směry podle momentálních potřeb vaší aplikace. Můžete tak svou databázi provozovat bezstarostně v cloudu bez správy instancí databáze. Platby vám jsou účtovány podle vteřin za skutečně využitou výpočetní kapacitu databáze.
Amazon API Gateway je plně managed cloudová služba, která vývojářům usnadňuje vytváření, zveřejňování, údržbu a monitorování API v jakémkoli rozsahu. Tento nástroj může přijímat a zpracovávat až stovky tisíc souběžných volání API, a i zde platíte pouze za skutečný počet volání API a množství přenesených dat.
Amazon DynamoDB šetří uživatelům administrativní zátěž spojenou s provozem a škálováním distribuované databáze. S touto plně managed NoSQL databází můžete klidně zapomenout na vytváření, nastavování, konfiguraci a replikaci virtuálních strojů nebo škálování clusterů.
Flexibilita Cloud Native řešení se projevuje také v nasazování nových verzí a aktualizací. Na rozdíl od klasických systémů, které bylo nutné vždy jednou za několik měsíců kompletně přeinstalovat, se aktualizace Cloud Native aplikací zavádějí průběžně. Tento model se označuje jako rolling update, případně rolling release. Vylepšení, opravy a novinky nejsou distribuovány v dávkách, ale jsou implementovány téměř nepřetržitě. Tento iterativní přístup vám dává možnost pružně reagovat na požadavky vašich uživatelů a provádět i drobné úpravy systému, kdykoli si vzpomenete.
Druhým inovativním konceptem je tzv. blue/green deployment. Jedná se o strategii nasazení, která spočívá ve vytvoření dvou samostatných, avšak identických prostředí. Na jednom z nich (blue) běží aktuální a na druhém (green) nová verze aplikace. Tento přístup k nasazení opět přispívá ke zvýšení dostupnosti aplikace a snižuje riziko spojené s nasazením nové verze – pokud dojde k nějaké chybě, lze snadno provést rollback (vrácení do předchozího stavu). Poté, co v „zeleném“ prostředí proběhnou všechny testy, bude provoz přesměrován právě na toto prostředí.
Další z mnoha výhod nasazení v AWS je koncept Multi-AZ deployment. Tento High Availability (HA) model zajišťuje stabilní chod aplikace a výkon požadovaných funkcí. Umožňuje vysokou dostupnost instancí RDS a automatickou podporu pro failover (spuštění aplikace na záložním serveru). Jednoduše řečeno, vaše cloudové řešení potřebuje pro svůj chod databáze. Pokud používáte koncept Multi-AZ, nemusíte se obávat jejich plánovaných ani neplánovaných výpadků – v případě, že některá z instancí databáze ve vaší zóně přestane být dostupná, AWS automaticky přepne na záložní repliku v jiné zóně a funkčnosti vašich služeb se to nijak nedotkne. To platí nejen pro databáze, ale i pro veškeré ostatní komponenty aplikací. Stačí vaše řešení napojit na službu Amazon RDS Multi-AZ.
Funkce alarmů zajišťuje primárně služba Amazon CloudWatch, která umožňuje monitorování zdrojů a aplikací jak přímo v AWS, tak i na jiných cloudech. Její alarmy lze rozdělit na dvě skupiny: na metrické a kompozitní alarmy.
Metrické alarmy sledují vždy pouze jednu metriku definovanou v CloudWatch, případně výsledek matematického výrazu založeného na metrikách této služby. Alarm provádí jednu nebo více akcí v závislosti na hodnotě metriky nebo výrazu vůči prahové hodnotě. Touto akcí může být například odeslání notifikace do Amazon SNS, akce v Amazon EC2 / Amazon EC2 Auto Scaling nebo vytvoření incidentu v AWS Systems Manager.
Naproti tomu kompozitní alarmy se řídí pravidly, která zohledňující ostatní vámi vytvořené alarmy. Jinými slovy kompozitní alarm přejde do stavu alarmu pouze v případě splnění všech podmínek daného pravidla. Alarmy specifikované v rámci těchto pravidel mohou zahrnovat jak metrické, tak ostatní kompozitní alarmy. Výhodou tohoto typu alarmů je omezení falešných výstrah: Uživatelé si mohou vytvořit více metrických alarmů a seskupit je pod jedním kompozitním alarmem, který vydá výstrahu pouze při aktivaci všech dílčích metrických alarmů.
Hlavní výhodou alarmů AWS je zasílání notifikací prostřednictvím SMS zpráv nebo e-mailů. Pokud chcete využít této možnosti, stačí Amazon CloudWatch integrovat s nástrojem Amazon Simple Notification Service (SNS). V našem případě to funguje například tak, že u menších problémů dostáváme zprávy do komunikačního kanálu na Slacku. Pokud se jedná o závažnější problém, kontaktuje nás telefonicky notifikátor z PagerDuty (platforma pro sledování incidentů).
Kromě alarmů nabízí svým uživatelům AWS také několik služeb v oblasti detekce anomálií, což je strategie spočívající v kontrole konkrétních datových bodů a hledání nezvyklých, podezřelých událostí a odchylek od běžných vzorců. Tento přístup k bezpečnosti je stěžejní zejména v odvětvích jako je bankovnictví nebo maloobchod. Klasickým příkladem je situace, kdy vaše banka odhalí podezřelou aktivitu na vašem účtu a ochrání vaše peníze tím, že transakce zablokuje.
Široké portfolio služeb v oblasti detekce anomálií zahrnuje například nástroje AWS Panorama, Amazon DevOps nebo Amazon OpenSearch.
Cloud Native řešení využívají pro práci s daty mimo produkční prostředí datové sklady. Jedná se o centrální úložiště, do kterých pravidelně přicházejí data z transakčních systémů, relačních databází a dalších zdrojů. I datové sklady jsou dnes již do značné míry automatizované, což přispívá k jejich bezúdržbovosti a velmi snadnému provozu 24/7.
Firmy využívající datové sklady mohou prostřednictvím analýz získávat přehledy, sledovat výkonnost, využívat automatických backupů a činit informovanější rozhodnutí. Dále mají díky nim přístup ke konsolidovaným datům z mnoha zdrojů a mohou se dívat do jejich historie.
Datový sklad je tvořen několika vrstvami. Tou první je front-end klient pro prezentaci výsledků získaných nástroji pro vytváření přehledů, analýzu a data mining. Prostřední vrstvu tvoří analytický engine, který má přístup k datům za účelem analýzy. A třetí vrstvou architektury je server databáze, na kterém jsou data nahrávána a ukládána.
I v této oblasti nabízí AWS svým uživatelům plně managed cloudové služby. Vynikající poměr cena/výkon zaručuje Amazon Redshift – řešení pro cloudové datové sklady. Tato služba poskytuje mimo jiné statistiky všech dat v reálném čase během a zcela eliminuje starosti se správou infrastruktury, takže pro vás její provoz 24/7 nepředstavuje žádnou zátěž navíc.
Amazon Virtual Private Cloud (VPC) je primární službou AWS v oblasti zabezpečení, která umožňuje spouštění AWS zdrojů v logicky izolované virtuální síti definované uživatelem. Tato virtuální síť se velmi podobá tradiční síti provozované ve vlastním datovém centru, ovšem s tím rozdílem, že zde lze využít škálovatelné infrastruktury AWS a všech jejích výhod. Vzhledem k tomu, že vše je do značné míry automatizované, vyžaduje nastavení a správa virtuální sítě minimum času a provoz je tak víceméně bezstarostný.
AWS Trusted Advisor poskytuje uživatelům doporučení, jak se řídit osvědčenými postupy AWS. Služba vyhodnocuje stav vašeho účtu na základě kontrol, které identifikují možnosti optimalizace vaší AWS infrastruktury, zlepšení zabezpečení a výkonu a snížení nákladů. Podle těchto doporučení můžete následně zefektivnit provoz svých služeb a využití IT zdrojů. AWS Trusted Advisor analyzuje využití a konfiguraci vašich prostředků, upozorňuje na bezpečnostní rizika a hlídá dodržování kvót na služby.
Služba AWS Network Firewall zajistí bezpečnost celé vaší virtuální infrastruktury pomocí síťového firewallu. Flexibilní engine umožňuje definovat až tisíce vlastních pravidel a nabízí možnost centrální správy bezpečnostních zásad na všech účtech a virtuálních cloudech.
Na ochranu webových aplikací se zaměřuje AWS Web Application Firewall (AWS WAF). S tímto nástrojem ušetříte čas díky managed pravidlům, takže se budete moct naplno věnovat tvorbě aplikací. Dále služba usnadňuje monitorování a blokování běžných botů a jiných hrozeb, které negativně ovlivňují dostupnost vašeho řešení a způsobují nadměrné využívání IT zdrojů.
Speciálně pro korporátní aplikace je zde služba AWS Verified Access, která poskytuje bezpečný přístup k těmto aplikacím bez použití VPN. Každý požadavek na přístup je vyhodnocován v reálném čase na základě předem definovaných podmínek. S tímto řešením můžete také definovat unikátní zásady přístupu pro každou aplikaci.
Máte i po přečtení našeho článku o provozu Cloud Native aplikací otázky, na které jste nenašli odpovědi? Hledáte někoho, kdo vám pomůže s vývojem a následnou údržbou vašeho softwarového řešení, abyste se skutečně mohli naplno soustředit jenom na své podnikání? Potřebujete optimalizovat provoz již zaběhnuté služby? Ať už jsou vaše požadavky jakékoli, rádi si je poslechneme a domluvíme se s vámi na spolupráci. Ozvěte se nám a sjednejte si s námi schůzku – díky našim expertům poběží vaše aplikace jako na drátkách!