Hlavní navigace

Jak monitorovat rozsáhlé sítě

O potenciálu virtualizace, její roli při vývoji monitorovacího softwaru a testování v produkčním prostředí

Chtěli jste si někdy vyzkoušet, jaké to je být síťovým administrátorem nadnárodní korporace? Nebo to naopak víte až moc dobře a jste si vědomi nutnosti testování různých scénářů, předtím než je nasadíte do firemní sítě? V obou případech pro vás máme dobrou zprávu – díky virtualizaci a stále dostupnějším cloudovým řešením si můžete prakticky jakoukoliv síť nasimulovat na pár kliknutí.

S Jiřím Pokorným, Technical Lead Developerem ve společnosti SolarWinds, jsme se bavili o potenciálu virtualizace, o její roli při vývoji monitorovacího softwaru pro velké firmy a o nutnosti testování v produkčním prostředí.

Společnost SolarWinds je v současné době lídrem na trhu síťových monitorovacích systémů pro správce sítě. Řešení této firmy po celém světě používají tisíce IT profesionálů.

Používáte virtualizaci výhradně k testování nových aktualizací v průběhu vývoje, nebo tato metoda najde využití i k jiným účelům?

Virtuálně jsme si vybudovali celou testovací laboratoř, ve které zkoušíme různé scénáře od sítí o deseti serverech až po ty s desítkami tisíc serverů. Přesně takhle totiž vypadá infrastruktura našich zákazníků. Není to ale jenom o testování nových aktualizací našich produktů. Stává se nám, že potřebujeme přesně nasimulovat prostředí konkrétního zákazníka, který má nějaký problém a potřebuje s něčím poradit. Díky možnosti virtualizace si nasimulujeme jeho síť, podíváme se na ni, otestujeme, co je třeba, a jsme schopni mu říct, jak má svoji IT infrastrukturu optimalizovat, aby dosáhl lepšího výkonu bez nutnosti dalších investic do nového hardwaru.

Jaké možnosti se dají k simulování sítí používat?

Těch možností je celá řada. Pokud jde jen o testování programů pod různými operačními systémy, lze použít některý z virtualizačních nástrojů, ať už je to například VMware® vSphere, nebo Microsoft® Hyper-V®. Pro otestování konkrétních aplikací může člověk použít například Docker®, který je distribuovaný jako open source řešení. A pro nasimulování samotné infrastruktury, tedy virtuálních routerů, switchů a dalších síťových prvků, používáme GNS3 emulátor. Společnost SolarWinds zakoupila GNS3® v roce 2015, nicméně tento emulátor nadále nabízíme zdarma v rámci open-source licence.

Takže při vaší práci nelze použít jedno univerzální řešení?

Počítačové sítě se už staly natolik komplexní záležitostí, že si lze jen těžko představit nějaké univerzální řešení, které by dokázalo nasimulovat všechno, na co si vzpomenete. Vždy jde o to, co přesně chcete otestovat. Dá se říct, že jsme schopni zobecnit jednotlivé testy do tří kategorií – jednorázové simulace zákazníkovy sítě, obecný scénář síťového nastavení, který bude testovat prvky společné velkému počtu různých sítí, a opakující se konfigurace používané pro sérii výkonnostních testů.

K čemu je dobré provádět testy různých operačních systémů ve virtuálním prostoru? Nebylo by jednodušší mít zkrátka pár počítačů se systémy Windows® a Linux®?

Vypadá to na první pohled jednoduše a logicky – tři operační systémy, tři stroje, na kterých se testuje. Ovšem podporovaných verzí všech tří operačních systémů je u každého produktu několik, včetně různých verzí linuxových distribucí, které se na mnoha úrovních vzájemně liší. To všechno se při testování musí vzít v úvahu. Navíc to není jenom o tom, jestli se program na daném systému spustí, ale také o tom, jestli ho umí monitorovat, jak se chová při specifických konfiguracích nebo jestli mezi sebou dokáží komunikovat konzole spuštěné na různých typech operačního systému. Najednou už bychom se bavili o prostředí obsahujícím fyzicky desítky serverů a pracovních stanic. V takovém případě je jednodušší i ekonomičtější sáhnout po virtualizaci. Tohle řešení navíc umožňuje i testování celých jednodušších síťových scénářů, jako je přidání nového síťového adaptéru bez ohledu na jeho skutečnou fyzickou dostupnost. V případě větších projektů je však i virtualizace dosti náročná na hardware, jelikož každý virtuální stroj alokuje část paměti a několik GB místa na disku. Stále však v porovnání s vybudováním, údržbou a upgradováním „reálné“ testovací laboratoře je virtualizace nákladově mnohem efektivnější. Virtualizace má ale i své nevýhody. Je nemožné testovat cokoli, co je závislé čistě na hardwaru, jako například měření teploty na procesoru.

Existuje metoda, která není tak náročná na systémové zdroje?

V případě, že nepotřebujete testovat operační systémy, ale jednotlivé aplikace, které na nich běží, můžete použít virtualizaci aplikací. K tomu se dá docela dobře použít například Docker®. Ten je distribuovaný jako open source a podporuje celou řadu operačních systémů (byť Microsoft® Windows je na seznamu poměrně krátkou dobu). Každá aplikace ve virtuálním prostředí se chová, jako by běžela na samostatném systému, takže jednotlivé procesy se vzájemně neovlivňují tím, že by soupeřily o stejné systémové prostředky. Hlavní výhodou je, že jste schopni takové prostředí nasimulovat velmi rychle, většinou nemusíte ani nic instalovat, stačí si jen stáhnout předinstalovaný balíček z portálu Dockeru.

Co je možné v takovémto prostředí testovat?

Asi každý správce sítě si chce novou aplikaci otestovat a osahat ještě předtím, než ji nasadí do ostrého provozu, aby si byl jistý, že nedojde k žádným konfliktům. K tomu ale potřebuje testovací prostředí ideálně stojící mimo firemní síť. Pokud ho nemá, vystavuje se nebezpečí spojenému se špatnou konfigurací nové aplikace, s komplikací při instalaci nebo s konflikty s jinými aplikacemi v síti. Dělat si zálohy před instalací aplikace, a pak se k nim vracet ve chvíli, kdy se vyskytne jakýkoliv problém, není zrovna elegantní řešení. Naopak otestování programu ve virtuálním prostoru je v tomto ohledu rychlé a bezpečné.

Má i tohle řešení nějaká omezení?

Ano, bohužel aplikace existuje ve vakuu. To znamená, že nebere v potaz topologii sítě ani některé hardwarové prvky, například použitá disková pole. Je to nicméně jeden ze způsobů, na který by se při testování nemělo zapomínat. Některé problémy s aplikacemi a jejich nastavením lze vyřešit mnohem rychleji a s minimálními náklady.

Vaše firma se soustředí na vytváření nástrojů pro monitorování sítí, serverů a spuštěných aplikací v rámci těchto prostředí. Infrastrukturu tak asi často při svých testech musíte brát v potaz. Co používáte v takovém případě?

To je pravda. Z různých důvodů a v rámci různých scénářů samozřejmě používáme předchozí varianty, protože jak jsem již řekl, neexistuje žádné univerzální řešení. Nejčastěji však používáme k simulaci rozsáhlé síťové infrastruktury emulátor GNS3. Tento nástroj nám umožňuje simulovat celou síť. Asi každý, kdo studoval informatiku, si pamatuje na přednášky o sítích, kdy když se člověk chtěl naučit, jak funguje síťový protokol, musel si nainstalovat několik operačních systémů, nakonfigurovat si síťové adaptéry, a teprve pak mohl začít experimentovat. V případě drahého hardwaru nebo složitých systémů sítě jste s nimi nemohli pracovat bez skutečného hardwaru. To vše dnes lze nasimulovat pomocí emulátoru.

Jak to funguje?

Pomocí systému pluginů si člověk může do své virtuální sítě přidat firmware jakéhokoliv zařízení, které chce v síti mít, a to v libovolném počtu kusů. Jednotlivá zařízení je pak možné pospojovat pomocí „kabelu“ prostě tak, že dva síťové prvky v diagramu jednoduše spojíte čarou. Spojení pak simuluje použití telnetu nebo SSH® protokolu a každý prvek je možné nastavit stejně, jako by šlo o skutečný hardware. Díky tomu můžete testovat chování aplikací v dynamicky se měnící síťové infrastruktuře, můžete simulovat i takové metriky, jako jsou ztracené pakety nebo vysoká latence. Pro naše testery jde o neocenitelnou pomůcku.

Jak rozsáhlá byla největší síť, kterou jste kdy simulovali?

Největší síť, kterou jsme zkoušeli reprodukovat, byla složena z tisíce serverů a jiných síťových prvků. Pro lepší představu, emulátor GNS3 používají společnosti jako Walmart® či AT&T® k simulaci jejich celkové IT infrastruktury. Pokud vím, používá tohle prostředí k testování aktualizací, předtím než je skutečně nasadí do své sítě, i NASA.

Co byste vzkázal těm, kteří by si chtěli virtualizaci sítí vyzkoušet?

Jděte do toho! Simulování komplexního chování sítě nebylo nikdy jednodušší. Na internetu navíc existuje celá řada ukázek hotových topologií, které si můžete stáhnout. Při výběrových řízeních navíc vždycky padne otázka na to, jaké máte zkušenosti. A kolik lidí může říct, že ví, jak vypadá topologie sítě nadnárodní společnosti o tisíci serverech? V SolarWinds kombinujeme testování všemi třemi zmíněnými metodami, ale zejména bez emulátoru GNS3 si už život pomalu ani nedovedeme představit.

Biografie: Jiří Pokorný

Jiří pracuje jako programátor a učitel .NET C#. Zaměřuje se na QA a continuous delivery. Vyučuje jazyk C# na VUT a Masarykově univerzitě v Brně. Je aktivním členem Windows User Group a v České republice již pořádal mnoho přednášek.

SolarWinds Czech

Společnost SolarWinds Czech sídlí v Brně a je hlavním místem vývoje technického softwaru pro správce sítí a systémů. Podle nezávislé studie organizace IDC se společnost na konci minulého roku stala světovým lídrem v oblasti síťového monitoringu. Produkty společnosti obdržely mnoho ocenění od kritiků i odborníků z oboru. Více o společnosti zjistíte na adrese www.solarwinds.com.