Panika została nam zaprogramowana w nieskończonych iteracjach ewolucyjnego procesu jako mechanizm obronny. Ot, zjawia się coś wielkiego, co chce nas zeżreć - w normalnych warunkach zostalibyśmy zeżarci w trymiga, ale dzięki panice dostajemy nagle zastrzyk adrenaliny, rośnie nam odporność na ból, szybciej biegamy, wyżej skaczemy i - ogólnie rzecz ujmując - na kilka chwil przełączamy się w tryb Supermana. Może nie zatrzymamy gołymi rękoma jadącego pociągu, ale prawie 😉
W tak zwanych krajach rozwiniętych panika jest atawizmem raczej mało przydatnym. Tygrysy nie biegają luzem, co najwyżej możemy czasem trafić na niepilnowane stadko miłośników futbolu, którego przedstawiciele będą grzecznie dopytywać się, czy może mamy jakiś problem.
Czasami jednak bywa tak, że nie potrzeba nam udresowionego mięśniaka pytającego o telefon (i nie chodzi bynajmniej o numer telefonu tylko telefon per se), żeby ciśnienie podskoczyło nam do przedzawałowego, a adrenalina pobudziła nasze neurony do pracy w trybie overclockingu. Uczestnikiem (a także, niechlubnie chwaląc się, bezpośrednią przyczyną) takiej sytuacji byłem całkiem niedawno ja sam, o czym dziś krótko napiszę.
Jak co poniektórzy Czytelnicy mogą kojarzyć, jakiś czas temu zmieniłem pracodawcę. Zamiast, jak pambuk przykazał, szorować gary na zmywaku, zajmuję się teraz zamiataniem i odkurzaniem liści.
Powyższa przenośnia ma obrazować fakt, że się troche przebranżowiłem. Tak, nadal duże tabelki z jeszcze większymi ilościami danych, ale zestaw technologii z całkiem obcego podwórka. W czasie interview jednak byłem na tyle przekonujący, że pomimo iż tych nowych techologii całkiem nie znam, zostałem wcielony do nowej drużyny i nawet dali mi "Senior" w nazwie stanowiska. Ja rozumiem, skończyłem czterdziestkę, ale nie trzeba mi tego tak nachalnie przypominać...
Tak czy siak, moja praca polega na tym, że jestem wypożyczany (na czas dłuższy lub krótszy) do różnych innych firm, dla których odkurzam i zamiatam, a jak się odkurzanie i zamiatanie kończy, przerzucają mnie w inne miejsce.
Jednym z takich miejsc okazała się ostatnio duża firma państwowa, obsługująca na co dzień miliony obywateli iKraju. Bardzo ważna, bardzo oficjalna i ogólnie bardzo bardzowa. Trzeba pod krawatem, ą ę, Francja elagancja, procedury, zabezpieczenia, pierdnąć się nie da bez uprzedniego wetknięcia we właściwe miejsce karty dostępowej.
Dla tejże firmy wykonywałem niedawno upgrade jednego z serwerów.
Żeby było śmieszniej, technologii używanej na tym serwerze nie znałem w ogóle. Ale się nie przyznałem, no bo przecież senior, prawda?
Dali mi najpierw do dyspozycji wersję developerską serwera, żebym się pobawił. Na wersji developerskiej upgrade poszedł bezproblemowo, acz zajął mi dobry tydzień, bo musiałem się w międzyczasie nauczyć kupy nowych rzeczy. No ale wreszcie sukces.
Potem dali mi serwer w wersji UAT, czyli taki już bardziej upubliczniony, z prawdziwymi użyszkodnikami i Wogle. Tam poradziłem sobie z zadaniem w jeden dzień, a także byłem przekonany, że kolejny serwer w tej technologii będę w stanie podnieść do nowej wersji w dwie, góra trzy godziny.
No i wreszcie nadejszła wiekopomna data, czyli lecimy na żywo, wersja produkcyjna, z tysiącami użytkowników, generująca na bieżąco prawdziwe dane używane na co dzień do obsługi obywateli.
Tydzień wcześniej do wszystkich użyszkodników poszedł oficjalny komunikat, że dnia tego a tego system będzie niedostępny z powodu, że będzie niedostępny, oraz, że niedostępność owa potrwa maksymalnie jeden dzień, a potem będzie już tylko lepiej, świetlana przyszłość, orkiestra, tusz.
W dniu Zero, z samego rana, z miną 007 zasiadłem do konsoli owego serwera (tak naprawdę użyłem RDP więc nigdzie sie nie musiałem przesiadać, ale tak lepiej brzmi), przeciągnąłem się, aż mi w kościach zaskrzypiało, i zabrałem się za upgrade.
No i teraz najciekawsze. Jednym z początkowych kroków takiego upgrade-u jest wykonanie kopii zapasowej bieżącej konfiguracji, danych i innych etceterów. Zasadniczo wszystkiego w promieniu trzech parseków.
"Jakoś" mi się ten krok przeoczył. Przecież nie będę patrzył w jakieś tam instrukcje, prawda? Robiłem już ten upgrade tyle razy, że wiem dokładnie co i jak.
Brak kopii zapasowej nie miałby żadnego znaczenia, gdyby sprawy poszły tak gładko jak na pierwszych dwóch serwerach. Jak się już jednak znudzony Czytelnik zapewne domyśla, sprawy poszły trochę inaczej.
Upgrade szedł sprawnie mniej więcej do trzynastego (z około dwudziestu) kroków, kiedy to jedna z usług zupełnie bez przyczyny wyłączyła się w najbardziej newralgicznym momencie, wypluwając niezrozumiały komunikat błędu i przerywając proces.
Myślę sobie, co tam, to tylko jeden komunikat błędu, pewnie nie ja pierwszy go widzę, ktoś to już musiał przede mną napotkać i rozwiązać.
Wujek Gugiel niestety okazał się być nieprzydatny, ponieważ błąd dotyczył szerszego spektrum problemów i trzeba było zacząć kombinować.
Tymczasem zrobiła się godzina czwarta po południu. Szef projektu podpytał mnie jak tam idzie, ja mu na to, że spoko, jesteśmy na kroku 13 z 20. On mi na to, że w takim razie super, że on już idzie do domu, i że gdyby coś poszło nie tak, mam przywrócić system z kopii zapasowej, żeby był dostępny na rano. I że wtedy przełożymy upgrade na za tydzień albo dwa.
Pokiwałem głową, przełykając jednocześnie ślinę. Coś mnie tknęło.
Kopia zapasowa. No tak.
Sprawdziłem ze trzy razy, nawet w tych najbardziej zakurzonych zakamarkach serwera. Czym bardziej jednak zaglądałem, tym bardziej kopii tam nie było.
Serwer tymczasem rozbebeszony do połowy, zawrócić się nie da, bo upgrade już w trakcie, do przodu się nie da, bo tajemniczy błąd. Do końca dnia pracy jeszcze półtora godziny, potem trzeba się ewakuować, bo security, kody, wiadomo.
Ech.
Na szczęście w tym właśnie momencie włączyła mi się ostra panika. Poczułem intensywne doładowanie krwi do tętnic, na chwilę świat zawęził się do tego jednego błędu, który blokował mi drogę do zakończenia upgrade-u, skupiłem się, wyostrzyłem zmysły, mózg jak żyleta...
... i nic.
Wbrew temu, co napisałem powyżej, w obliczu wielkiego, mającego mnie zaraz zeżreć potwora, nie byłem w stanie nic wykombinować.
Po chwili jeszcze intensywniejszej paniki stwierdziłem, że mam to w dupie, idę po kawę, bo ileż można.
Parząc kawę wykonałem ze trzy intensywne "guuus frabaaaa" (kto oglądał tamten film ten wie o czym mówię), odsunąłem problem na bezpieczną odległość i skupiłem się na dobraniu optymalnych proporcji kawy, wody, cukru i mleka.
I tu mię tkło. Przecież taki instalator upgrade-ów to musi generować jakieś logi, prawda?
Faktycznie, udało mi się namierzyć log ze szczegółowym komunikatem błędu. Okazało się, że ktoś, kto kiedyś instalował ten serwer w wersji produkcyjnej, zmienił jedną malutką opcję w jednym z dziesiątków plików konfiguracyjnych. Opcja ta miała za zadanie jednorazowe wygenerowanie zaszyfrowanych identyfikatorów użytkowników do innego pliku konfiguracyjnego, i ustawiało się ją wyłącznie na chwilę, zaraz po instalacji serwera, a potem trzeba ją było wyłączyć. Koleś najwyraźniej nie wyłączył, dzięki czemu w trakcje upgrade-u się zesrało i mam teraz materiał na najnudniejszy wpis roku.
Po zmianie rzeczonej opcji trzeba jeszcze było przewalić serwer, uruchomić ręcznie parę usług i intensywnie modlić się do dowolnie wybranych bóstw - wszystko się jednak udało i piętnaście minut przed zamknięciem firmy dzwoniłem już do kontrolnego użyszkodnika, żeby się zalogował i sprawdził, czy mu działa.
Działało mu.
Tylko się dziwował, czemu teraz ma zaokrąglone narożniki w tych okienkach, a przedtem miał proste.
Na to pytanie już nie potrafiłem udzielić odpowiedzi. W końcu nie muszę się znać na wszystkim, prawda?
Wnioski:
1. Czytać instrukcje
2. Robić backupy
3. W razie problemów iść na kawę
Ha.
Rany julek, jaki dreszczowiec. Przestalam oddychać, gdy to czytalam ;)))
Ledwo wytrzymałam napięcie. Już myślałam, że nie dałeś rady. Jak mogłam…Mam nadzieję, że Twój pracodawca nie czyta Twojego bloga. Albo niech czyta…w sensie, że, jak tu u nas mówią “pasiony glapami nie jesteś”
Prawdziwi twardziele backupu nie robia 😉
Więcej szczęścia niż rozumu. Aż sie boje się pomyśleć jak by sie nie udał upgrade. Chyba kryminał
Nie miałem okazji się dowiedzieć i lepiej, żeby tak pozostało 😉