Automatyzacja nowym kołem
Takie studium przypadku. Dawno, dawno temu, w odległej jaskini… „Marian! Daj spokój z tym kamieniem, choć poniesiemy na plecach – będzie szybciej. Poza tym znamy już to, nie trzeba siedzieć, wymyślać, a samo się przecież nie zrobi.” Cóż rzeczony prehistoryczny Marian uczynił? Pewnie wstał i poszedł z worem manioku na plecach przez niebezpieczny świat zeszłej epoki. Tak chodził, chodził, aż go coś zażarło. Wielu jego następców, Marianów synów, wnuków i prawnuków, wylądowało również w tej samej paszczy lwa. Dopiero któryś z Marianusów Sapiens wpadł na pomysł, że może jednak warto w tej jaskini posiedzieć, pomyśleć i z kamienia przekazywanego sobie od dziada-pradziada wytoczyć koło. Zbudować drogę, wyciąć trochę puszczy i zamiast na plecach, w pocie i znoju ciągnąć ten maniok ze wsi do wsi, to lepiej położyć go na wózeczku i popychać przed sobą. Fakt, trzeba w pewnym momencie tego procesu robić dwie rzeczy na raz – i na plecach nosić i drogę budować, ale efekt końcowy i tak, z punktu widzenia zasady zachowania energii, będzie się opłacał.
Ta niemal biblijna przypowieść o Marianusie Sapiens uczy nas, że jak, zamiast bezsensownie pracować, poświęci się tę chwilę, usiądzie na moment i zastanowi nad swoim życiem, to nawet jak mówił Kubuś Puchatek, „swoim małym rozumkiem” jest się w stanie wykoncypować rozwiązanie zmieniające wszystko. Trzeba tylko czasem się zatrzymać, wziąć głęboki oddech i pomyśleć, gdzie się biegnie, a nie tylko biec. Popatrzmy czasem na swoją pracę – robimy tyle bezsensowych rzeczy, tyle nikomu niepotrzebnej energii idzie w gwizdek. W imię czego? W zasadzie to nie wiadomo. Cytując bezimiennego klasyka „Panie! Tak mój dziad robił, to i jo będę robić”. Można też dalej w jaskini siedzieć i jeść swoje kozy… albo ruszyć się i zmienić trochę swoje otoczenie.
Nie chodzi tutaj o to, aby zmieniać pracę. Bo wszędzie ten hipotetyczny wór manioku trzeba ciągnąć, ale zmienić coś w swojej pracy. Zamiast bezmyślnie powtarzać czynności, które robimy codziennie klikając jak Marianus Erectus – zmiana hasła, założenie konta, powołanie VM, rekonfiguracja sieci. Zautomatyzujmy to. Nawet najmniejsze zadanie opisane w kodzie może zdawać się głupotą, ale to wiele zmienia. Transformujemy bowiem swoje przyzwyczajenia z powtarzalnego klikania GUI do sformatowanej w tekście procedury wykonawczej, którą da się poprawiać i finalnie wykonuje się bezbłędnie. Oczywiście na wstępie to podwójna robota, bo napisanie kodu na tak trywialne zadania zajmuje kilkukrotnie więcej czasu, niż ich organiczne wykonanie. Jednak nie to jest celem ćwiczenia… Podczas tak prostych przykładów można się nauczyć struktury kodu, nauczyć się układania swoich myśli w ciąg przyczynowo skutkowy, rozpoznać zmienne i opisać je. Dużo rzeczy, które o wiele naturalniej wyjdą nam w przyszłości, w zadaniach o wiele bardziej złożonych. Można też klikać, jak idiota, przez 20 lat w to samo. Tylko po co?
Zmiana w IT jest procesem ciągłym i bardzo dynamicznym. Zmienia się wszystko, a tempo tych zmian nie tyle że wzrasta, ale odbywa się na bardzo wielu płaszczyznach. W związku z tym, bardzo często pojawia się argument, że dziś nasze skrypty działają, a jutro już działać nie będą. Oczywiście! Tak samo jak nasze przyzwyczajenia – dziś GUI czy konsola wygląda tak, a za klika lat producent zmieni sobie design… żeby nie być tutaj gołosłownym przypomnieć sobie można lifting Windows lub zmianę między RHEL 6 i 7. Dlatego warto sięgnąć po zewnętrzne rozwiązania do automatyzacji – Ansible, Terraform, Puppet, CHEF itd. Jest ich kilka, a postrzegać je należy nie, jako języki programowania infrastruktury – mają zasady, komendy i tak jak w C++, czy innej Javie ich podstawy się nie zmieniają, a jedynie rozbudowują o kolejne funkcje zarządzające nowymi platformami. Jednak nie to jest najważniejsze, który z tych automatyzatorów wybierzemy, ale to, że raz napisane procedury będzie nam łatwo przełożyć na inny język, ponieważ jest on tylko interfejsem do rozmowy z infrastrukturą. Najważniejsze jest to, że nie będziemy ciągać na plecach tego całego syfu, a pracy nie będzie mniej, ale będzie inna… Co po kilkunastu latach mierzenia się z tymi samymi problemami i zadaniami okazać się może zbawienne.
Artykuł został opublikowany na łamach IT Professional.
What I recommend
Cloud Field Day 21: Too many clouds