Uživatel:Keny

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání

Aleš Kapica (*1969) – IT administrátor, zaměstnaný na DCE (Katedra řídicí techniky) FEL ČVUT od května 2008 a od dubna 2016 i na DC (Katedra kybernetiky). Vývojář MediaWiki, specialista na Linux a správce infrustruktury pro laboratorní Diskless, využívaný na DCE a DC na Karlově náměstí v Praze.

Jak jsem se stal vývojářem MediaWiki

Jak jsem se dostal k vývoji disklessové infrastruktury

Cesta k linuxu

Výkonné sálové počítače s terminálovým přístupem si mohly dovolit jen velké instituce. Proto se pro většinu lidí stalo synonymem počítače až relativně levná, ojetá, repasovaná PC, dovážená do zemí bývalého RVHP po roce 1990 většinou ze západního Německa, kde se původně tato PC používala v režimu „tlustého klienta” k práci na výkonném sálovém počítači (mainframe).

Spokojeni byli všichni. Západní instituce, které chtěly nakoupit novější a výkonnější stroje nemusely řešit likvidaci rychle zastarávajících strojů, které různí podnikavci, kteří je od nich vykupovali jako šrot určený k likvidaci, který následně se ziskem prodali v ČR. Nové stroje tehdy byly pro většinu zájemců v zemích bývalého RVHP finančně nedostupné. Jen pro zajímavost. V roce 1990 stála 3,5" Floppy mechanika 3500Kčs, IBM PC AT (tj. i286 na 10MHz) kompatibilní počítač 100 tisíc Kčs a výkonnější i386 150 tisíc Kčs. V té době se dal za takové peníze koupit rodinný dům se zahradou. Průměrná mzda byla okolo 4,5 tis. Kčs a nový automobil značky Škoda Favorit stál 84 tisíc Kčs.

O 5 let později už ceny starších modelů počítačů klesly natolik, že si je mohli dovolit i mnozí nadšenci a protože je výpočetní výkon těchto strojů nutil k tomu, aby produkovali lepší a efektivnější kód, vyrostla v České republice generace vývojářů co dnes patří podle statistiky vývojářů dle země původu z června 2023 mezi světovou špičku.

Konstrukčně složitější PC bylo mnohem dražší než terminál, ale mělo k dispozici vlastní CPU, RAM a výpočetní grafickou kartu, takže centrální počítač (server) nemusel plýtvat výkonem na operace, které si mohl „tlustý klient” zajistit vlastními prostředky. PC mělo navíc mnohem univerzálnější využití, protože mohlo fungovat i nezávisle na připojení k síti.

Na druhou stranu šlo o složitější mechanismul a pravděpodobnost, že se vyskytne problém se kterým si „Běžný Franta Uživatel” (BFU) neporadí výrazně stoupla, což vyvolalo poptávku po lidech schopných takové problémy rychle a operativně řešit. Mezi takové jsem patřil i já, a tak jsem během brigády v brněnské překladatelské agentuře Skřivánek s.r.o. roku 1999 dostal nabídku, abych z uklízeče kanceláří „povýšil” na IT specialistu. Nicméně placen jsem byl za odvedenou práci editora. A personální změny vedly k tomu, že zakázky které mne živily začal nový obchoďák přihrávat svým kamarádům. Proto jsem tuhle firmu asi po roce opustil, abych místo toho nastoupil na přední webový portál v ČR, kterým byl tehdy prudce expandující Atlas.cz jako pracovník helpdesku – v Praze.

Trvalý pracovní poměr v Praze již nebylo možné kombinovat s denním studiem v Brně a měl jsem také jiné zájmy. Proto jsem studium ukončil, abych pracoval dále na živnost jako IT poradce. Ale velice záhy jsem zjistil, že mne podnikání nebaví.

Přerušil jsem živnost a v květnu 2003 byl vybrán v rámci výběrového řízení na pozici webmastera ÚMOb Ostrava-Jih, který patří k nejlidnatějším městským obvodům v České republice. Tam využívali ke zpracování agendy pro 120 tisíc obyvatel obvodu centrální počítač s terminálovým přístupem již od 90. let a krátce před mým nástupem (v květnu 2003) nahradily původní terminály linuxové stroje. Což byl i jeden z důvodů, proč jsem byl přijat.

Fungovaly jako dataless node – neboli tlustý klient, který využíval datový prostor na SCO serveru k uložení uživatelských profilů. Instalaci klientů měl na starosti můj dnes již zesnulý kolega Ivan Doležal (*1964 – †2014) a o SCO server se staral dnes již zesnulý, Jozef „Bedřich” Perzyna (*1963 – †2022), můj budoucí šéf. Během pohovoru se mne zeptal na nějakou blbost ohledně MS Windows a když jsem mu upřímně řekl, že tenhle systém už je mimo okruh mého zájmu protože mne zajímá Linux, bylo rozhodnuto.

OpenIntranet

Práci „krmiče webových stránek” (webmastera) na ÚMOb Ostrava-Jih, kterou původně zajišťoval nějaký mládenec na „civilní službě”, jsem nedělal dlouho. Statickému webu již odzvonilo, ale ještě neexistoval žádný open source redakční systém, přes který by si mohli uživatele psát obsah webové stránky sami. Ale webové prohlížeče už měly javascriptové funkce, které de daly využít k práci s HTML kódem na straně uživatele a můj kamarád (a pozdější nástupce na úřadě) Tomáš Lukeštík (*1968), s nimi experimentoval.

Vyzval jsem ho aby se zaměřil na Mozillu, open-source webový prohlížeč použitelný jak na MS Windows, tak v linuxovém prostředí a tak jsme během roku společně vytvořili pro potřebu úřadu první redakční systém s javascriptovým WYSIWYG editorem na světě (nasazený do ostrého provozu od března 2004), který umožnil aby si dávali na web úředníci obsah sami.

Já přinášel podněty a zpětnou vazbu od úředníků. A Tomáš řešil, jak udělat co nejefektivnější kód. Velice brzy jsme přešli na modulární řešení (verze 2.0) a překážky ze strany poskytovatele připojení nás přivedly k řešení intranet-server (verze 3.0), které dodnes žádný jiný redakční systém implementované nemá.

Principiálně jednoduchá záležitost. Ǔředníci zadávali obsah prostřednictvím svých prohlížečů v intranetovém prostředí. A sami určovali, která informace smí být veřejně dostupná a která ne. A před exportem na veřejnou část redakčního systému, umístěnou na serveru musel být každý dokument určený k exportu schválený pověřenou osobou (nadřízený). Jedině tak se dostal ven.

MediaWiki

Diskless

V době mého nástupu na DCE (2008) fungovaly laboratorní stroje pouze jako Half-Diskless a já nevěděl o Disklessu nic. Byl jsem přijat coby expert na virtualizaci linuxových strojů, abych zajišťoval za katederního IT nezbytnou spolupráci při realizaci projektu Eusophos, v jehož rámci byl Ondrou Fialou vyvíjen LabLink – virtuální laboratorní systém, který využíval vrstvení virtualizovaných MS Windows pro zajištění software nezbytného k práci s laboratorními modely – ta koncepce se mi líbila a možná, že právě to mne přivedlo později na myšlenku využít sendviče i pro linuxový laboratorní diskless.

První rok zabrala většinu mé pracovní doby dokumentace toho, co kde bylo v provozu. IT oddělení DCE tehdy ještě neexistovalo. Pracovní stanice řešil Petr Haba. MS Windows server s katederním webem Michal Komrska a František Vaněk měl pod palcem síť a Novell. Vše ostatní jsem měl řešit já, ale co, to nikdo nevěděl. Lukáš Moc, můj předchůdce mi předal štůsek papírů a zmizel, aniž by mi sdělil alespoň přístupové heslo. Bylo to jak v pohádce o kohoutkovi a slepičce. Abych měl kam sbírat informace, rozjel jsem tuhle wiki, ale nejdřív jsem si do ní musel udělat vlastní rozšíření, abych mohl na jednom místě soustředit veřejné i neveřejné infromace.

A tak až po roce jsem se dostal k tomu, abych začal intenzivně spolupracovat s Pavlem Píšou(*1970) na vývoji laboratorního Full-Disklessu na bázi linuxové distribuce. Bohužel moduly linuxového jádra, které jsme potřebovali použít, tehdy ještě nebyly součástí hlavní vývojové větve. Také zavaděč Grub který jsme využívali byl problematický. Původní verze se již nevyvíjela a vývoj nové probíhal pomaleji než bychom si přáli. Takže za rok dosažení cíle lze považovat teprve rok 2011, kdy Pavel Píša odprezentoval náš Full-Diskless systém počítačové laboratoře, zhruba po roce ostrého nasazení, v rámci akce InstallFest (červen 2011).

První implemenace disklessového sendviče

Odseparovat adresář s balíky instalovanými z distribučními repozitářů a překrýt ho dalšími vrstvami bylo možné až poté, co se do linuxového jádra dostal modul overlay, který to umožnil. Jenže nebylo to hned.

Původní verze modulu overlay, vyvíjená od roku 2010 pod názvem overlayfs, uměla – stejně jako aufs, sloučit pouze dva adresáře. Ale kód přejmenovaného modulu, který byl začleněn roku 2015 do hlavní vývojové větve jádra for-next obsahoval změny, které umožnily sloučit do jednoho sendviče několik vrstev najednou. Jenže to mělo háček – overlay neuměl sloučit adresář, který byl namountován přes NFS.

Provizorní řešení přes aplikaci unionfs a modul fuse se mi podařilo najít v únoru 2016. Disklessové stroje sice měly o něco horší výkon při diskových operacích, ale umožnilo nám to opustit aufs, které vyžadovalo kompilaci vlastního jádra.

A protože jsem od dubna 2016 začal pracovat také pro DC, nasadil jsem (od září 2016) stejnou diskless infrastrukturu také tam. To už byl problém s překrytím NFS u modulu overlay vyřešen, takže jsem se mohl zbavit závislosti na kombinaci unionfs a fuse. A když už jsem byl v tom, přepsal jsem rovnou skript overlay tak, aby podporoval více vrstev.

Dynamický ramdisk