Zainspirowany tym pytaniem zadaję odwrotnie: ile o programowaniu powinni wiedzieć administratorzy systemów? Mówiąc dokładniej, jakie narzędzia programistyczne są przydatne dla sysadmin?
Zainspirowany tym pytaniem zadaję odwrotnie: ile o programowaniu powinni wiedzieć administratorzy systemów? Mówiąc dokładniej, jakie narzędzia programistyczne są przydatne dla sysadmin?
Odpowiedzi:
Zacząłbym od:
Administracja systemem to tylko programowanie. System zarządzania konfiguracją pozwala zobaczyć całą infrastrukturę jako maszynę rozproszoną. Jako administrator systemu Twoim zadaniem jest zaprogramowanie tego komputera.
Zna jeden edytor tekstu. Zwykle vi dla sysadmins, emacs dla programistów.
Umieć pisać. Wybierz język skryptowy. Perl jest wiecznym ulubieńcem, podobnie jak kombinacja shell / sed / awk. Ruby i Python mogą działać, ale w wielu przypadkach obiekty są niewłaściwym paradygmatem.
Umieć pisać czytelną dokumentację.
Kontrola wersji. Kluczowe dla utrzymania plików konfiguracyjnych i ścieżek audytu.
Naucz się myśleć w kategoriach programistycznych. Zrozumienie proceduralnych, obiektowych i funkcjonalnych paradygmatów programowania. Nie można ich nigdy używać, ale ich znajomość sprawia, że jesteś nieskończenie bardziej produktywny.
Naucz się korzystać z debugera (lub więcej) i logowania.
Naucz się korzystać z RDBMS. Istnieje wiele wymagań dotyczących przetwarzania danych, które można uprościć, używając poprawnie RDBMS. Nawet możliwość przejścia na rolę DBA na żądanie może zdziałać cuda.
Przetestuj przed wdrożeniem. Zobacz filozofię programowania opartą na testach.
Programowanie par jest dobre. Niech ktoś czuwa nad twoim ramieniem, aby uczył się / doradzał / poprawiał.
Naucz się przynajmniej znać znajomość wielu języków. Ucz się nowego języka każdego roku.
Skrypty są niezbędne, ale poparłbym radę, że znajomość niektórych „prawdziwych” języków jest zdecydowaną zaletą. Na przykład możesz zrobić kilka bardzo przydatnych rzeczy z przestrzenią nazw .NET System.DirectoryServices.
Jestem programistą i starszym administratorem / integratorem. Aby pracować tam, gdzie ja, musisz znać następujące rzeczy:
Większość młodszych administratorów może spojrzeć na jednego z naszych programistów i powiedzieć (z upoważnieniem), tak, zainstalowałem go poprawnie, tutaj jest przeciek, dlatego właśnie kod, który właśnie wypuściłeś, łamie się. Lub „Nie, to nie jest nasza wersja MySQL, spójrz na swoje zapytanie tutaj ...”
Wydaje mi się, że jesteśmy nieco inni, kiedy zatrudniamy utalentowanego administratora. Spodziewamy się, że w połowie (ostatecznie) znajdą sposób na programowanie, nawet jeśli po prostu włamuje się do czegoś, czego używamy do pracy w sposób, w jaki potrzebują .
Podsumowując, bycie dobrze zaokrąglonym nigdy cię nie skrzywdzi.
Wiele, wiele lat temu (w rzeczywistości Windows NT 3.1) zacząłem jako programista specjalizujący się w usługach pisania, a nawet sporadycznych sterownikach urządzeń. Oznacza to, że bardzo dobrze poznajesz jądro systemu Windows. Z czasem trochę się nudziłem programowaniem i przestawiłem na zarządzanie siecią. Odkryłem, że moje doświadczenie w programowaniu było niezwykle cenne w kółko.
Nie chodzi tylko o to, że pisanie skryptów VBScript jest stosunkowo bezbolesne. Wiedza o tym, jak działa wnętrzności systemu Windows, a zwłaszcza jak działa protokół IP, pomaga w rozwiązywaniu problemów z serwerem i siecią. To także sposób myślenia. Programiści są przyzwyczajeni do dokumentacji i kontroli wersji. Przeraża mnie to, że ilu administratorów systemu Windows po prostu spróbuje czegoś sprawdzić, czy to działa, i martwię się o rozwiązanie problemu.
Wszystko bardzo dobrze, ale nie jest zbyt przydatną radą powiedzieć, żebyś odszedł i pracował jako programista przez dziesięć lat! Myślę jednak, że pomogłoby to większości sysadminów mieć doświadczenie w programowaniu w „twardym” języku, takim jak C ++ lub C #. A jeśli masz oswojonych programistów w swojej organizacji, napij się z nimi!
John Rennie
Zdarzają się złe rzeczy, Twój kod będzie trwał dłużej, niż myślisz. Z wdziękiem zawodzą dzięki przydatnym komunikatom o błędach. Skończy Ci się dysk, ram, procesor, czas itp., Poradzisz sobie z tym.
Nie bądź tak optymistyczny, że dziwne przypadki na milion zdarzają się zbyt często w produkcji.
Biorąc pod uwagę wszystkie opisy tutaj, nie powiem, że jestem administratorem systemu. Ale fakt, że zbudowałem i zarządzam kilkoma serwerami Windows / Linux, muszę coś przyznać:
w Linuksie skrypt bash jest koniecznością - jeśli wiesz, jak go zintegrować z perl / awk / etc, lepiej. Przekonałem się, że wiele zadań stało się łatwiejszych dzięki użyciu.
Znajomość programowania w C / C ++ bardzo pomaga. Czasami musisz zmodyfikować kod źródłowy GNU (jeśli go używasz), aby dopasować go do swoich potrzeb, ponieważ produkt GNU nie gwarantuje, że zawsze otrzymasz potrzebną pomoc na czas - i wiele razy są one napisane w C / C ++.
Umiejętność łączenia się z LDAP i uzyskiwania potrzebnych informacji w wybranym języku skryptowym jest kluczem do wszystkiego - od rozwiązywania problemów po naprawdę przyspieszenie różnych rodzajów automatyzacji (zapewnianie kont i zasobów, bardziej inteligentne kontrole kont użytkowników lub komputerów).
Może się to wydawać podstawowe, ale widziałem wiele sklepów z masłem, w których ludzie nie sądzą, że potrzebują takiej administracji systemem. Wiele miejsc wydaje duże $$$ na duże zestawy narzędzi administracyjnych i, o ile mogę powiedzieć, 95% tego, do czego używają tych narzędzi, można było zrobić za pomocą kilku godzin pisania skryptów, gdyby ktokolwiek wiedział o tym lub wiedział, jak to zrobić Zrób to.
Przekonałem się, że znajomość skryptów bash, dos batch i PowerShell zapewnia administratorowi systemu frameworki do robienia wszystkiego, w dowolnym popularnym systemie.