Dlaczego administratorzy systemów powinni zostać inżynierami DevOps

Dlaczego administratorzy systemów powinni zostać inżynierami DevOps

Nie ma lepszego czasu na naukę w życiu niż dzisiaj.


Jest rok 2019, a DevOps jest bardziej aktualny niż kiedykolwiek. Mówią, że czasy administratorów systemów minęły, podobnie jak era komputerów mainframe. Ale czy tak jest naprawdę?
Jak to często bywa w IT, sytuacja uległa zmianie. Metodologia DevOps pojawiła się, ale nie może istnieć bez osoby posiadającej umiejętności administratora systemu, czyli bez Opsa.

Zanim podejście DevOps nabrało nowoczesnej formy, sklasyfikowałem siebie jako Ops. A wiem doskonale, co przeżywa administrator systemu, gdy zdaje sobie sprawę, jak wiele jeszcze nie potrafi i jak mało czasu ma na naukę.

Dlaczego administratorzy systemów powinni zostać inżynierami DevOps

Ale czy to naprawdę takie straszne? Powiedziałbym, że braku wiedzy nie należy postrzegać jako jakiegoś dużego problemu. To raczej wyzwanie zawodowe.

Produkty internetowe opierają się na systemie Linux lub innym oprogramowaniu typu open source, a na rynku jest coraz mniej osób potrafiących je utrzymać. Zapotrzebowanie przerosło już liczbę specjalistów w tej dziedzinie. Administrator systemu nie będzie już mógł po prostu kontynuować pracy bez poprawy swoich umiejętności. Musi posiadać umiejętności automatyzacji, aby zarządzać wieloma serwerami/węzłami i dobrze rozumieć, jak działają, aby rozwiązać pojawiające się problemy.

Zanim zostaniesz członkiem zespołu DevOps, musisz przejść dość długą, ale ciekawą podróż, poznając nowe technologie i różne narzędzia niezbędne do utrzymania systemu zgodnie ze standardami DevOps.

Jak zatem administrator systemu może przejść od zwykłego podejścia do pracy do nowej koncepcji DevOps? Wszystko jest jak zwykle: najpierw musisz zmienić swoje myślenie. Nie jest łatwo porzucić podejście, które stosowałeś przez ostatnie dziesięć, dwadzieścia lat i zacząć robić rzeczy inaczej, ale jest to konieczne.

Przede wszystkim należy zrozumieć, że DevOps to nie konkretne stanowisko w firmie, ale zbiór konkretnych praktyk. Praktyki te obejmują dystrybucję izolowanych systemów, ograniczenie szkód spowodowanych błędami i błędami, częste i terminowe aktualizacje oprogramowania, ugruntowaną interakcję pomiędzy programistami (Dev) i administratorami (Ops), a także ciągłe testowanie nie tylko kodu, ale także całą strukturę procesu ciągła integracja i dostarczanie (CI/CD).

Wraz ze zmianą sposobu myślenia trzeba nauczyć się utrzymywać infrastrukturę i zapewniać jej stabilne działanie, niezawodność i dostępność dla ciągłej integracji i dostarczania aplikacji, usług i oprogramowania.

Jako profesjonaliście operacyjnemu możesz brakować umiejętności programowania. Obecnie pisanie skryptów (skryptów), których administratorzy systemów używają do automatycznego instalowania poprawek na serwerze, zarządzania plikami i kontami, rozwiązywania problemów i kompilowania dokumentacji, jest już uważane za przestarzałe. Skrypty nadal mają zastosowanie w stosunkowo prostych przypadkach, ale DevOps polega na rozwiązywaniu problemów na dużą skalę, niezależnie od tego, czy są to implementacje, testowanie, kompilacje czy wdrożenia.

Jeśli więc chcesz nauczyć się automatyzacji, musisz choć trochę opanować programowanie, nawet jeśli nie jesteś programistą, ponieważ na tym etapie swojego rozwoju automatyzacja infrastruktury w DevOps wymaga tej umiejętności.

Co robić? Aby pozostać poszukiwanym specjalistą, trzeba zdobyć odpowiednie umiejętności - opanować przynajmniej jeden język programowania, na przykład Python. Osobie zawodowo zajmującej się administracją może się to wydawać trudne, gdyż jest przyzwyczajona do myślenia, że ​​programują tylko programiści. Nie trzeba być ekspertem, wystarczy znajomość jednego z języków programowania (może to być Python, Bash lub nawet PowerShell), na pewno będzie zaletą.

Nauka programowania zajmuje trochę czasu. Bycie uważnym i cierpliwym pomoże Ci być na bieżąco podczas komunikacji z członkami zespołu DevOps i klientami. Twoim głównym celem powinno być pół godziny dziennie, godzina lub więcej, nauka języka programowania.

Administratorzy systemów i specjaliści DevOps rozwiązują podobne problemy, jednak istnieją istotne różnice. Uważa się, że administrator systemu nie może zrobić wszystkiego, co inżynier DevOps. Mówią, że administrator systemu jest bardziej skupiony na konfiguracji, utrzymaniu i zapewnieniu wydajności systemów serwerowych, ale inżynier DevOps ciągnie cały ten wózek i jeszcze jeden mały wózek.

Ale na ile prawdziwe jest to stwierdzenie?

Administrator systemu: jeden wojownik w terenie

Pomimo różnic i podobieństw wskazanych w tym artykule, nadal uważam, że nie ma znaczącej różnicy pomiędzy administracją systemami a DevOps. Administratorzy systemów zawsze pełnili te same funkcje, co specjaliści DevOps, tyle że nikt wcześniej nie nazywał tego DevOps. Uważam, że nie ma sensu szukać różnic specjalnie, zwłaszcza jeśli nie jest to związane z żadnym zadaniem. Nie zapominaj, że w przeciwieństwie do administratora systemu, DevOps to nie stanowisko, ale koncepcja.

Warto zwrócić uwagę na jeszcze jedną ważną rzecz, bez której rozmowa zarówno o administracji, jak i DevOpsie będzie niepełna. Administracja systemem w potocznym rozumieniu zakłada, że ​​specjalista posiada określony zestaw umiejętności i jest nastawiony na obsługę różnego rodzaju infrastruktur. Nie w tym sensie, że jest to pracownik uniwersalny, ale w tym sensie, że wszyscy administratorzy wykonują szereg zadań.

Na przykład od czasu do czasu muszą pełnić funkcję swego rodzaju majsterkowicza technicznego, czyli robić dosłownie wszystko. A jeśli w całej organizacji jest tylko jeden taki administrator, to z reguły wykona on wszystkie prace techniczne. Może to obejmować wszystko, od konserwacji drukarek i kopiarek po wykonywanie zadań związanych z siecią, takich jak konfigurowanie routerów i przełączników i zarządzanie nimi lub konfigurowanie zapory ogniowej.

Będzie także odpowiedzialny za aktualizacje sprzętu, inspekcję i analizę logów, audyty bezpieczeństwa, instalowanie poprawek serwerów, rozwiązywanie problemów, analizę przyczyn źródłowych i automatyzację — zazwyczaj za pośrednictwem skryptów PowerShell, Python lub Bash. Jeden przykład użycia scenariusze jest zarządzanie kontami użytkowników i grup. Tworzenie kont użytkowników i nadawanie uprawnień jest niezwykle żmudnym zadaniem, ponieważ użytkownicy pojawiają się i znikają niemal codziennie. Automatyzacja poprzez skrypty uwalnia czas na ważniejsze zadania infrastrukturalne, takie jak modernizacja przełączników i serwerów oraz inne projekty wpływające na rentowność firmy, w której pracuje administrator (mimo że powszechnie przyjmuje się, że dział IT nie generuje bezpośrednio przychodów).

Zadaniem administratora systemu nie jest marnowanie czasu i oszczędzanie w jakikolwiek sposób pieniędzy firmy. Czasami administratorzy systemów pracują jako członkowie dużego zespołu, łącząc na przykład administratorów systemów Linux, Windows, baz danych, pamięci masowej i tak dalej. Harmonogramy pracy również są różne. Na przykład zmiana w jednej strefie czasowej na koniec dnia powoduje przeniesienie spraw na następną zmianę w innej strefie czasowej, dzięki czemu procesy nie zostają zatrzymane (follow-the-sun); lub pracownicy mają normalny dzień pracy od 9:5 do XNUMX:XNUMX; lub pracuje w centrum danych XNUMX godziny na dobę, XNUMX dni w tygodniu.

Z biegiem czasu administratorzy systemów nauczyli się myśleć strategicznie i łączyć ważne sprawy z rutynowymi zadaniami. Zespołom i działom, w których pracują, zwykle brakuje zasobów, ale jednocześnie każdy stara się jak najlepiej wykonywać codzienne zadania.

DevOps: rozwój i utrzymanie w jednym

DevOps to swego rodzaju filozofia procesów rozwoju i utrzymania. Takie podejście w świecie IT stało się prawdziwie innowacyjne.

Pod parasolem DevOps znajduje się zespół programistów z jednej strony i zespół utrzymania ruchu z drugiej. Często dołączają do nich specjaliści ds. zarządzania produktem, testerzy i projektanci interfejsów użytkownika. Razem ci eksperci usprawniają operacje, aby szybko wdrażać nowe aplikacje i aktualizacje kodu, aby wspierać i poprawiać wydajność całej firmy.

DevOps opiera się na kontroli nad rozwojem i działaniem oprogramowania w całym jego cyklu życia. Osoby zajmujące się konserwacją muszą wspierać programistów, a zadaniem programistów jest zrozumienie czegoś więcej niż tylko interfejsów API używanych w systemach. Muszą zrozumieć, co kryje się pod maską (tj. jak działa sprzęt i systemy operacyjne), aby móc lepiej radzić sobie z błędami, rozwiązywać problemy i współpracować z technikami serwisowymi.

Administratorzy systemów mogą przenieść się do zespołu DevOps, jeśli chcą poznać najnowsze technologie i są otwarci na innowacyjne pomysły i rozwiązania. Jak mówiłem wcześniej, nie muszą być pełnoprawnymi programistami, ale opanowanie języka programowania takiego jak Ruby, Python czy Go pomoże im stać się bardzo przydatnymi członkami zespołu. Choć administratorzy systemów tradycyjnie wykonują całą pracę sami i często są postrzegani jako samotnicy, w DevOps mają zupełnie odwrotne doświadczenia, gdzie wszyscy uczestnicy procesu współdziałają ze sobą.

Temat automatyzacji staje się coraz bardziej aktualny. Zarówno administratorzy systemów, jak i specjaliści DevOps są zainteresowani szybkim skalowaniem, redukcją błędów oraz szybkim znajdowaniem i naprawianiem istniejących błędów. Automatyzacja jest zatem koncepcją, w której zbiegają się dwa obszary. Administratorzy systemów są odpowiedzialni za usługi w chmurze, takie jak AWS, Azure i Google Cloud Platform. Muszą rozumieć zasady ciągłej integracji i dostarczania oraz sposób korzystania z narzędzi takich jak Jenkins.

Ponadto administratorzy systemu muszą korzystać z narzędzi do konfiguracji i zarządzania, takich jak Wiarygodne, niezbędne do równoległego wdrożenia dziesięciu lub dwudziestu serwerów.

Główną koncepcją jest infrastruktura jako kod. Oprogramowanie to wszystko. W rzeczywistości, aby zawód administratora systemu nie stracił na znaczeniu, wystarczy nieco zmienić akcent. Administratorzy systemów działają w branży usługowej i muszą umieć skutecznie komunikować się z programistami i odwrotnie. Jak to mówią, jedna głowa jest dobra, ale dwie są lepsze.

I ostatnim szczegółem tego mechanizmu jest git. Praca z Gitem to jeden z tradycyjnych, codziennych obowiązków administratora systemu. Ten system kontroli wersji jest szeroko stosowany przez programistów, specjalistów DevOps, zespoły Agile i wiele innych. Jeśli Twoja praca związana jest z cyklem życia oprogramowania, to na pewno będziesz pracować z Gitem.

Git ma wiele funkcji. Prawdopodobnie nigdy nie nauczysz się wszystkich poleceń Git, ale dokładnie zrozumiesz, dlaczego jest to podstawa komunikacji i współpracy w oprogramowaniu. Dogłębna znajomość Git jest bardzo ważna, jeśli pracujesz w zespole DevOps.

Jeśli jesteś administratorem systemu, musisz lepiej poznać Git, zrozumieć, jak zbudowana jest kontrola wersji i zapamiętać typowe polecenia: git status, git commit -m, git add, git pull, git Push, git rebase, git gałąź, git diff i inni. Istnieje wiele kursów i książek online, które mogą pomóc Ci nauczyć się tego tematu od podstaw i stać się profesjonalistą posiadającym określone umiejętności. Są też wspaniałe ściągawki z poleceniami Git, więc nie musisz ich wszystkich upychać, ale im częściej będziesz korzystać z Gita, tym będzie to łatwiejsze.

wniosek

Ostatecznie to Ty decydujesz, czy chcesz zostać specjalistą DevOps, czy lepiej pozostać administratorem systemu. Jak widać, przed przejściem trzeba się uczyć, ale im szybciej zaczniesz, tym lepiej. Wybierz język programowania i jednocześnie ucz się narzędzi takich jak git (kontrola wersji), Jenkins (CI/CD, ciągła integracja) oraz Wiarygodne (konfiguracja i automatyzacja). Niezależnie od tego, jaką opcję wybierzesz, nie zapominaj, że musisz stale się uczyć i doskonalić swoje umiejętności.

Źródło: www.habr.com

Dodaj komentarz