„Nie jesteśmy programistami, jesteśmy administratorami”
My, jak czasy się zmieniły na gorsze: a starzec jak ja było oczekiwać, aby być lepszym programistą niż profesjonalnych programistów, albo nigdy nie byłby w stanie przejść przez administratora systemu .
Teraz mamy „administratorów systemu”, którzy są w zasadzie użytkownikami komputerów z systemem Windows, którzy w pewnym momencie przekonwertowali się na Linuksa i nie mogą programować, i nie znajduje w tym nic złego.
Słoń w pokoju jest powodem, dla którego kierownictwo toleruje takie destrukcyjne podejście. Niszczycielskie dla kogo lub co? Do biznesu i infrastruktury.
Powrót do tematu Puppet [, CFEngine, Chef]: jak tylko ustali się takie rozwiązanie, przegrywa. Wszyscy przegrywają. Dlaczego? Ponieważ ktokolwiek wpadnie na ten pomysł, nie jest w stanie zaprojektować zamkniętego zarządzania konfiguracją w postaci ładnych, czystych pakietów systemu operacyjnego Kickstart [, JumpStart, Automated Installer, AutoYaST, Ignite-UX, NIM]. Kiedy musisz użyć zautomatyzowanego narzędzia hakerskiego, takiego jak Puppet (lub Chef, lub CFEngine), oznacza to, że brakuje ci środków na zaprojektowanie i wdrożenie procesu, który dzięki temu samemu projektowi wymusiłby całkowicie nieskazitelne i całkowicie oświetla zarządzane systemy, w pełni zautomatyzowane i całkowicie nieinteraktywne.
Innym ważnym punktem jest to, czy trzeba mieć Marionetka czy coś takiego rozwiązania do poprawiania kogoś hacking system lub konfiguracji aplikacji ręcznie, które również sięga nie mając doświadczenia zaprojektowanie procesu, aw tym procesie ramy gdzie konfiguracja jest pakowany na dyskretne elementy. W efekcie, ktokolwiek wdraża Puppet i tym podobne, nie ma pojęcia właścicieli komponentów, wydań, zarządzania konfiguracją, modelu dojrzałości zdolności. Szybko staje się to bardzo poważnym problemem w branży.
Praca z Puppet pomogła mi również nauczyć się Ruby, który zastąpił Bash jako mój domyślny język narzędzi systemowych. ”
Dlaczego Ruby jest potrzebny, gdy kompleksowe, kompleksowe zarządzanie konfiguracją może być zawarte w sekcjach preinstalacji, postinstalacji, preremove i postremove pakietów systemów operacyjnych, tylko przy użyciu programów powłoki Bourne, AWK i sed? Że ktoś dołoży wszelkich starań, aby nauczyć się ezoterycznego języka Ruby i jego dialektu w kontekście Marionetki, jest zupełnie niepotrzebny. Problem zarządzania konfiguracją można łatwo rozwiązać (a mianowicie został rozwiązany) za pomocą programów powłoki i AWK oraz trochę sed (1) tu i tam jako kleju.
Fajnie jest widzieć, jak manifest Puppet konfiguruje od nowa całą maszynę lub nową usługę.
Jeszcze fajniejszą rzeczą jest obserwowanie, jak robi to Kickstart, AutoYaST lub JumpStart, bez jednego wiersza kodu , i możliwość zapytania systemu operacyjnego za pomocą wbudowanych narzędzi, bez potrzeby używania ezoterycznego lub dodatkowego oprogramowania , bez klienta-serwera wymagana architektura (SSH jest więcej niż w porządku, znacznie więcej niż w porządku), a twój system operacyjny jest świadomy każdej wprowadzonej zmiany.
5.Oddziel kod od danych. Jest to jedna z trudniejszych koncepcji do nauczenia się. Wartości na stałe, takie jak monitorowanie hostów w kodzie modułu, są złe. Umieszczenie ich w magazynie danych (db, yaml (Hiera używa tego domyślnie), csv, cokolwiek), które moduły mogą zużywać, jest dobre. Przykładem jest aplikacja internetowa korzystająca z MySQL. Pozwala to na oddzielne przesyłanie kodu i danych. Ułatwia to proces programowania.
... Lub możesz po prostu utworzyć szablon plików konfiguracyjnych ze zmiennymi powłoki, nawet cudzysłowami (na przykład ls -1 ...
) i napisać skrypt powłoki, który używa AWK do wywołania eval (1) i rozwinąć wszystkie zmienne w szablonie, wykorzystując w ten sposób dokładnie taką samą moc analizator składni, który mają wbudowane powłoki. Po co to komplikować, skoro może być naprawdę, bardzo proste? Gdzie będziesz przechowywać wartości konfiguracji? Dlaczego, gdziekolwiek zechcesz, na przykład pliki pkginfo (4), baza danych taka jak Oracle, czy prawie wszędzie . Nie ma potrzeby stosowania ultrakompleksowych rozwiązań. Biblioteka wspominam powyżej może być po prostu pochodzić z sekcji preinstalacji lub postinstall w pakietach systemu operacyjnego, usuwając w ten sposób powielania i wykorzystując środkową część kodu ...
Ale przede wszystkim uważam, że powyższy cytat jest przykładem nowej generacji administratorów systemu, którzy potrzebują korepetycji nie przez administratorów systemu, ale przez inżynierów systemowych . Znajdź siwobrodego i zarejestruj się jako uczeń.