Heronovo IT doupě

Dotýkat se své práce

Námět tohoto blogu je už několik let starý. Všechno už je několik let staré. I tento blog už rok nedostal nový obsah. Tak alespoň dostane starý obsah :-D. Rád sleduju YT videa, kde někdo šikovnější než já něco tvoří. Velmi často se dřevem nebo kovem. K tomu nemám přístup. Do sklepa by se mi soustruh nevešel. Ani hoblovačka. Ne, že bych to zkoušel. Mám tam osciloskopy. Multimetry. Zdroje. Počítače. Ne kecám, nemám je ve sklepě, mám je vedle v pokoji. Ve sklepě je … kde jsem to byl? Á to husitské hnutí…

Před pár lety se komentáře pod těmito videi začaly podezřele měnit. Místo dřívějšího mírného obdivu v mezích zákona, začaly houstnout komentáře typu: Proč to vyrábíš, když se to dá koupit? A tak nějak podobně. Naprosté nepochopení tématu. Fakt někdo nechápe, proč někdo jiný něco vyrábí? A potom přišlo něco ještě horšího. Horšího? No prostě jiného. Proč nemáš CNC stroj? Proč to děláš ručně? Víš, že existují 3D tiskárny? Prostě se toho nedotýkej, dělej všechno na počítači!

Takže truhlář se nesmí dotýkat dřeva, modelář se nesmí dotýkat modelů, zámečník má mít CNC stroj. Řidič má mít self driving car. :-D

Tento světonázor přišel i do IT. Takže čeho se nemáme dotýkat? Správně, počítačů. Vycházely články s titulky „pokud se přihlašujete na ssh, děláte to špatně“. Nebo tak nějak. Byla to reklama na školení vzdálené správy (všechny ty Chefy, Ansibly a co já vím. Vlastně ansible není tak špatnej. Stačí vám ssh přístup, python je stejně všude. Zkuste ho.). Ne, že by na vzdálené správě bylo něco vyloženě špatného, špatné je tím začínat. Nebo to mít jako cíl.

Ale to není dost cool. Je vůbec cool ještě cool? Trendem dneška je vytvářet vrstvy. Čím víc vrstev, tím víc (warning: ad blocked). Takže OS má sice dokonalé oddělení uživatelů a programů, ale tak to se zahodí tím, že budeme všechno dělat pod jedním uživatelem a v jednom programu. Ano, mluvím o browseru. Mluvím? Nemluvím, píšu. Takže veškerá dosavadní práce na zabezpečení OS, ochraně paměti, práv, priorit, limitů, capabilities se může zahodit. Teď je potřeba pracovat na ochranně tabů. V jednom programu. U jednoho uživatele. Na jednom počítači. Jedné říše. (?)

Něco podobného se stalo s balíčky. Nikdo nechce tvořit balíčky. Místo toho vytváří něco jiného, co je sice taky balíček, ale nesmí se tomu říkat balíček. Takže místo starého dobrého otáčky za minutu nebo deb (Na to jsem nic nevymyslel. Nic slušného.) tady máme ploštěnky (ploštice? plochozem?), které jsou ve skutečnosti jen squashfs image se soubory pro daný program. Ano, sice tyto soubory můžete úplně stejně strčit do rpm nebo deb, ale to by na vás bylo asi moc vtipné.

Ne, prostě se budeme balíčkům vyhýbat. Protože jsou dvacet let staré a cokoliv, co je dvacet let staré nemá právo existovat.

Další způsob, jak se vyhnout balíčkům je vytváření balíčků v podobě kontejnerů. Kontejner je nádoba na odpad. Do kontejneru dáte svůj odpad a tváříte se, že zmizel. Jenže co je pro jednoho odpad, je pro druhého poklad. Takže kontejner 1) naložíte na velrybu, 2) ? 3) profit!

Ano, kontejnery jsou super, jaily, lxc, nspawn, klidně i ten docker. Ale nezblázněte se z toho. Pamatujte, že je tady stále ten starý dobrý os se svým super zabezpečením. Spouštět normální procesy je sice old school, ale měla by to být první volba. Někteří se do tohoto modernismu zamotali tak, že i pro své golang výtvory vytvářejí kontejner s jednou binárkou. Hele, o dvě vrstvy níž máš OS, kde to můžeš rovnou spustit. Napiš si k tomu systemd unitu. Unita do /etc/systemd/system, binárka do /usr/local/bin, zabal to do .deb a voilà. Funguje install, update, start, stop, uninstall. Like magic.

A pokud trpíš ssh fóbií a strašně se bojíš, že ti terminál sežere duši (což není sranda), tak si napiš ve svém oblíbeném správci repositářů (pokud to zrovna náhodou není gitea) CI skript, který vygeneruje balíček, vstrčí jej do lokálního repositáře, na testovacím tester server targetu pustí apt update && apt install můjnejlepšíbalíčeknasvětě a je to. Potom po každém commitu máte čerstvý testovací tester k testování. Jestli je vhodné spouštět CI skript po každém commitu nechám schválně nezodpovězené.

No my starší tohle sice nepoužíváme, protože máme Makefile. I když syntaxe Makefile je strašná a nikdo by se na ni neměl dívat. No a my ještě starší (sakryš, kolik vás tady je? hele, běžte pryč, tohle už dopíšu sám, jo dík za pomoc a nazdar) se nebojíme ssh a pouštíme to ručně. Protože se rádi dotýkáme své práce.

OSZAR »