Den ze života aplikace: základem moderního datacentra je software

17. 9. 2020
Doba čtení: 9 minut

Sdílet

 Autor: Depositphotos
Online konference s názvem Den ze života aplikace se zabýval především softwarovou stránkou dnešních datacenter. Ta byla dříve zaměřena na hardwarové prvky, čím dál více tu ale podstatnou roli hraje software.

Ve středu 16. září proběhla online akce Den ze života aplikace. Hlavním tématem byla moderní datacentra a cloudové služby zaměřené na běh rozsáhlých aplikací. Na webu akce naleznete také záznamy z prezentací. Root.cz je partnerem akce.

Lukáš Erben: trendy v IT

České firmy řeší podobná témata jako firmy světové velikosti. Často mají nadnárodní majitele, takže řeší témata jako kontejnery, mikroslužby, hybridní cloud a podobně, řekl Lukáš Erben ze serveru Inside.cz. V posledním půlroce jde samozřejmě o problémy spojené s pandemií COVID-19.

V krátkodobém horizontu často nové technologie přeceňujeme, v tom dlouhém je naopak podceňujeme. Když přijde něco nového, jsme z toho nadšení, ale netušíme, jestli přinese nějakou revoluci v horizontu deseti patnácti let. Zásadní ale je do nových technologií investovat, abychom získali nějakou výhodu.


V oblasti informačních technologií se řeší především infrastruktura, cloud a také důležitá automatizace. Ta je nadstavbou nad tím vším a je to další krok.

Velkým tématem jsou také softwarově definované sítě, které už ty největší společnosti nasazují a ostatní to čeká. Je to postupně přicházející trend, který budou muset firmy postupně řešit, pokud budou chtít udržet krok s konkurencí. SDN už není ve fázi největšího hype, ale postupně se posouvá do běžného používání. Procesně a provozně se firmy posouvají díky automatizaci.

Miloš Pavlík: software jako základ datacentra

Základním důvodem stavění datových center je, aby bylo možné v nich spouštět aplikace. Aplikace jsou to, co vytváří zákazníkům byznys, řekl Miloš Pavlík ze společnosti Cisco. Klíčové slovo při stavbě datacenter mají také vývojáři. Aplikace jsou dnes budovány distribuovaně, takže se multicloudové prostředí stalo novým datovým centrem.

Datacentrum se skládá ze tří základních částí: síťová, výpočetní a úložiště. Na úrovni infrastruktury se snažíme implementovat obrovskou míru automatizace a chceme co nejvíce prvků řešit pomocí softwarově definovaných sítí. Nad síťovým prostředím tvoří zastřešení technologie Intersight, která automatizuje všechny části infrastruktury.

Infrastruktura běží a může provozovat aplikace, ale potřebujeme také vědět, jak dobře vše funguje. Běží vše optimálně? Nemůžeme provést nějaké změny? Nebylo by lepší přesunout aplikaci do jiného datacentra? Manuálně nemáte šanci na tyhle otázky odpovědět. I v této oblasti se proto prosazuje automatizace, Cisco má řešení Workload Optimization Manager.


Heslem posledních let jsou kontejery, Cisco má vlastní řešení zvané Container Platform, což je vlastní implementace Kubernetes. Je dobře prointegrované se zbytkem řešení včetně automatizace a monitoringu. Je to nejrychlejší způsob, jak spouštět kontejnery.

Nejdůležitější je pak samotná aplikace, takže nás zajímá nejen samotná infrastruktura, ale i situace uvnitř aplikace. Potřebujeme vidět, jak aplikace funguje, co se v ní děje.

K datacentrům neodmyslitelně patří i bezpečnostní řešení, mezi která patří moderní firewall, vyhledávání anomálií v síti či zbytku infrastruktury. Můžeme použít sondy, které dovolují sledovat situaci v různých místech sítě nebo třeba v koncových stanicích.

Josef Venzhöfer: infrastruktura jako kód

Cisco má vlastní řešení typu softwarově definovaná infrastruktura nazvané ACI (Application Centric Infrastructure), které integruje různé části infrastruktury různého typu. Ať už jde o multicloudové řešení, propojení různých datacenter či samostatných lokalit. Celou síť je pak možné řídit z jednoho místa, aniž by bylo nutné jednotlivé části přizpůsobovat cílové aplikaci.

Konfigurace je silně abstrahovaná a konfigurace se skládá z objektů, které na sebe vzájemně navazují. Konfigurovat je možné buď pomocí grafického rozhraní nebo pomocí automatizačních nástrojů. Při nasazení větší aplikace by už bylo nutné projít mnoho dialogu a opakovat řadu klikání, proto je výhodnější si pomoci silnějším nástrojem. Vše je proto zastřešeno pomocí REST API, takže je možné výsledek zařadit do automatizační strategie.


Pokud se nechceme zabývat API na nejnižší úrovni a skládat makroakce z jednotlivých volání, je možné použít specializované SDK. To nabízí lepší atomicitu a je pohodlnější pro větší využití. Nad tímto SDK pak existuje řada hotových nástrojů, které sice nepokrývají všechny možnosti rozhraní, ale mají připravené moduly pro většinu běžných akcí.

Nejrozšířenějším nástrojem pro automatizaci je Ansible, od verze 2.9 má Cisco více než 65 modulů schopných použít většinu dostupných vlastností.

Martin Diviš: důležitost infrastruktury jako kódu

Když se řekne infrastruktura jako kód, každého v první chvíli napadne klasická provozní automatizace přes API. Stejně důležitá je ale integrace s CI/CD, protože to umožňuje vývoj a testování aplikací v celém rozsahu a kontextu. Vyvineme aplikaci, můžeme spustit celou sadu testů a vše vyzkoušet třeba včetně nasazení databáze a podobně. Máme tak vlastně připravený automatizovaný postup pro nasazení do produkčního prostředí.

Stejně tak se nám automatizace infrastruktury hodí při škálování, kdy jsme schopni pomocí stejných nástrojů rozšířit stávající infrastrukturu nebo ji přesunout do jiného datacentra. Našim standardem je poskytování kompletního API, přes které má zákazník přístup ke všem funkcím. Není tam žádná skrytá funkcionalita, kterou bychom používali nedokumentovaným způsobem.

Snadno je možné vytvářet různá oddělená prostředí a softwarově definovat vlastnosti různých prvků. Samozřejmě to musí dané prvky podporovat, ale můžete pak například snadno vytvořit například oddělené testovací prostředí na několik kliknutí. Veškeré prvky od Cisco si lze pro testovací účely zdarma stáhnout v podobě softwarových simulátorů.


Dokonalý automatizační nástroj neexistuje, zásadní je jen dostupnost API. Velmi univerzálním nástrojem je už zmíněný Ansible, který umožňuje zařídit věci tak, aby hrály dohromady. Mnoho modulů pro řešení Cisco je už součástí standardní instalace Ansible. Poslední dobou je také velmi populární Terraform.

Většina firem dnes přistupuje k vývoji agilním způsobem, kdy se provádějí menší úpravy a poté probíhají unit testy a integrační texty. Velmi často se ale zapomíná na výkonnostní testy. U nich si ale musíme nejprve říct, co je to normální chování. Pak ovšem přichází další problém: jak chybu najít a opravit. Funkční chybu obvykle najdeme rychle a rychle ji opravíme. Praxe ale ukazuje, že výkonnostní chyby se hledají a opravují špatně, protože můžou být kdekoliv.

Johan Sajfrt: nejlepší je otevřená a komerční řešení kombinovat

Velcí zákazníci nevyžadují po společnosti Unicorn Systems použití konkrétní aplikace. Zkoušíme různé technologie, ale píšeme aplikace bez ohledu na prostředí. Musíme jen splnit přísné požadavky klienta. Je pak na odběrateli, aby aplikaci nasadil ve zvoleném prostředí. Máme velké zákazníky z oblasti energetiky a ti řeší infrastrukturu tak, aby byla vysoce spolehlivá.

Z pohledu zákazníka je potřeba dodat určitý standard splňující požadavky a dodavatel musí dělat vše proto, aby vyhověl byznysovým požadavkům. Dodáváme aplikace tak, aby zákazník nemusel řešit, že dnes je populární třeba vlastní infrastruktura a zítra to bude cloud. Klient se tak může soustředit na svou aplikaci a vlastně ani nemusí vědět, kde zrovna běží.


Open-source znamená, že pokud chci něco upravit, musím do toho investovat svůj čas. Komerční řešení znamená, že se o něj stará někdo jiný. Přesto má obojí své místo a je vhodné oba světy kombinovat. Pokud potřebujeme standardní certifikované řešení, sáhneme po komerčním produktu. Pokud ale potřebujeme přizpůsobit funkci konkrétnímu zákazníku na míru, sáhneme po otevřeném software. Komerční řešení sice nabízí API, ale to má svá omezení a bez zdrojových kódů není možné provádět vlastní úpravy. Zákazníci ale zároveň slyší na značky, které z dané oblasti znají.

Kontejnerová řešení jsou aktuálním trendem bez ohledu na to, jestli zrovna běží v cloudu nebo ve vlastní infrastruktuře. Umožňují vytvářet aplikace, které běží bez ohledu na běhové prostředí. Veškeré nakládání s kontejnery je pak pro nás výrazně jednodušší. Lépe se řeší nasazení, aktualizace i automatizace. Kontejnery používáme a podle mého názoru je to budoucnost.

Martin Diviš: monitoring aplikace v širším kontextu

Monitorovací nástroje je potřeba chápat v celkovém kontextu, ne jako jednotlivé sondy. Často vidím u zákazníků, že používají různé nástroje pro monitoring infrastruktury, síťových prvků, serverů, databáze, storage a podobně. Neexistuje univerzální nástroj, který by dovoloval sbírat data ze všech prvků. Je to logické, takový nástroj by byl zřejmě komplikovaný a drahý a většina zákazníků by ho stejně nevyužila. V současném stavu je ale potřeba v případě problémů proklikat řadu různých nástrojů a zjistit, kdo za to vlastně může.

Cisco proto nabízí vlastní řešení zvané AppDynamics, které umožňuje sledovat jednotlivé součásti aplikace od infrastruktury přes databázi až po samotnou aplikaci. Je tak možné velmi rychle zjistit, ve které části se objevila anomálie a začít ji řešit. Optimalizace dává největší smysl v oblasti veřejných cloudů, kde vám každý měsíc přijde faktura. Pokud budete optimalizovat, může být ta faktura výrazně nižší.

Josef Venzhöfer: aplikační bezpečnost

Tradičně se aplikační bezpečnost zajišťuje na úrovni síťové infrastruktury pomocí firewallu, který odděluje servery od veřejného internetu. Práce s takovou konfigurací je nelehká, seznam pravidel roste a správa se komplikuje. Různé platformy mají různá vlastní řešení, mají vlastní firewally, filtry a podobně. Tohle zase naráží na to, že se o každou část infrastruktury stará jiný správce a ti mezi sebou musejí složitě komunikovat.

Z pohledu bezpečnosti je možné pokrýt segmentaci sítě pomocí už zmíněné ACI. Možnost aplikovat jednotnou politiku napříč celou infrastrukturou je silný argument pro nasazení podobné technologie. Dokáže velmi snadno zúžit provoz, který pak směřuje na centrální firewall. Můžeme specifikovat, že provoz mezi určitými uzly je možné vyřídit přímo. Stejně tak je možné jeden konkrétní typ komunikace přesměrovat do specializovaného zařízení, například DPI nebo firewallu.

Centralizovaná bezpečnostní politika tak může fungovat napříč různými prostředími, například mezi vlastní infrastrukturou a částmi aplikace nasazenými u různých poskytovatelů cloudu. To je výhodou v rychle se měnícím světě sítí. Pokud máme komplikované prostředí, potřebujeme silný nástroj, který nám umožňuje se do celého prostředí podívat a zjistit aktuální stav.

Martin Diviš: široký pojem bezpečnost

U zákazníků je často klíčovým problémem zjistit, jak vlastně má bezpečnostní politika vypadat. U nových aplikací je to jednodušší, protože pokud uděláme něco špatně, nefunguje to. Co ale u aplikací, které provozujeme už dlouhou dobu a mají stovky komponent. Obvykle platí, že čím větší organizace, tím větší pozorujeme problém.

Aplikační bezpečnost je široký pojem. Snažíme se omezit vektory útoků na síťové vrstvě, ale pak je tu celá řada zranitelnosti, které se netýkají sítě. Jde o různé zranitelnosti v aplikaci samotné, v knihovnách nebo v běhových prostředích. Potřebujeme tedy detekovat nejrůznější anomálie a zároveň pak musíme provést podrobnou analýzu útoku.

Cisco nabízí nástroj Tetration Analytics, který umožňuje sbírat dat, analyzovat je a poté odpovědět na to, jak situace vypadá a jak bychom měli nastavit mikrosegmentaci. Poskytuje různé přístupy k datům, od webového rozhraní, přes REST API až po notifikace různých událostí jako jsou anomálie.

Víme vždycky, jak spolu součástí aplikace komunikují? Když jsou těch částí stovky a nevíme to, máme obvykle problém. Je tedy nejprve potřeba provést takzvané mapování toho, co vlastně provozujeme. Tetration je poměrně inteligentní a automaticky zjistí, že některé součásti dělají stejnou práci. Výsledkem je aplikační mapa, která přesně ukáže, kdo s kým komunikuje a jakou činnost vykonává.

bitcoin_skoleni

Automaticky je pak navržena politika, která zajistí, aby se žádná komunikace nepřerušila, ale aby nebylo nic otevřeno do světa zbytečně. Je možné doplnit i vlastní pravidla, která chceme aplikovat vždycky a za každou cenu. Můžeme tak vynucovat vlastní bezpečností politiku. Výstupem jsou pak konfigurace pro firewally a další součásti sítě.

Žádné jednotlivé opatření není dokonalé, ale dohromady dávají smysl. Tím se dostaneme k mikrosegmentaci, která pracuje na velmi nízké úrovni a dokáže výrazně zvýšit bezpečnost. Není potřeba zůstávat jen na síťové úrovni, ale je možné se podívat i do jednotlivých operačních systémů a zkontrolovat používaný software na známé bezpečnostní chyby.