Pomysł posiadania inżyniera DevOps stał się ostatnio dość popularny i wydaje się, że atrakcyjne jest po prostu posiadanie osoby, która może wpuszczać i zapewniać wiele korzyści DevOps, jak opisano na blogu Puppet :
Organizacje stosujące praktyki DevOps są w przeważającej mierze sprawnie działające: wdrażają kod do 30 razy częściej niż ich konkurenci, a 50 procent mniej wdrożeń kończy się niepowodzeniem, zgodnie z naszym raportem o stanie DevOps z 2015 roku.
Zauważyłem jednak duży sprzeciw wobec pomysłu Inżyniera DevOps, aby spróbować wprowadzić następujące ulepszenia:
Nawet przy szerokim porozumieniu co do podstawowych atrybutów DevOps, kontrowersje otaczają termin „inżynier DevOps”. Niektórzy twierdzą, że sam termin jest sprzeczny z wartościami DevOps. Jez Humble, współautor Continuous Delivery, zwraca uwagę, że po prostu nazywając kogoś inżynierem DevOps, oprócz dev i ops, można stworzyć trzeci silos - „... wyraźnie zły (i ironiczny) sposób na rozwiązanie tych problemów . ”
Dlaczego może nie być tak dobrym pomysłem dla firmy zatrudnienie inżyniera DevOps, aby spróbować „wdrożyć DevOps”, w przeciwieństwie do zmian organizacyjnych zalecanych przez takie blogi ? Czy korzyści zostaną zanegowane poprzez izolowaną rolę DevOps?
źródło
Odpowiedzi:
TL; DR : Nigdy nie powinieneś próbować zatrudnić zespołu DevOps
Istnieją zasadniczo trzy najczęstsze role do zatrudnienia:
Role te różnią się od 6 podstawowych ról programistycznych, które tradycyjnie składają się na organizację inżynierii oprogramowania:
Przejrzyjmy kolejno trzy role i zobaczmy, jak pasują
DevOps Architect lub Evangelist
W niektórych przypadkach oraz w przypadku mniejszych i średnich firm proces można rozpocząć od zatrudnienia organizacji konsultingowej, takiej jak DORA.
DevOps Engineer
Inżynier CI / CD
źródło
Argumentowałbym, że Devops Engineer, jak opisano w łączu do pytania, jest głównie rolą sysadmin. Przytaczając tutaj umiejętności dla tła tej odpowiedzi:
W tym przykładowym opisie zadania DevOps Engineer to po prostu modne słowo dla sysadmina znającego infrastrukturę opartą na chmurze, automatyzację, potrafiącą odczytać kod, aby pomóc w diagnostyce, i świadomą praktyk i rozwiązań wysokiej dostępności.
Jest to luźno związane z praktykami DevOps i kulturą niszczenia silosów między deweloperami a operacjami, jak widać w tym pytaniu. Jaka jest różnica między Sysadmin a inżynierem DevOps?
To nie będzie dobry pomysł, ponieważ sysadmin, bez względu na to, jak swobodnie może czuć się z praktyką i kulturą deweloperów, nie jest odpowiednią osobą do przeprowadzenia transformacji firmy. Nie będziesz zatrudniać tej osoby z myślą o zmianie kultury, ale z widokiem konfiguracji narzędzia, co tak naprawdę nie pomoże w przerwaniu procesów. Może to również zostać źle odebrane przez jego / jej kolegów, a ty po prostu oprzesz się zmianie, jeśli wcześniej nie zaplanujesz zmiany kultury
Aby uzyskać udany wzorzec w kierunku zdobywania devops, odpowiedź @ Jiri Klouda daje doskonały przegląd dopuszczalnej roli Inżyniera DevOps wraz z krokiem w kierunku zmiany, która przyniosłaby wartość i pomogła w osiągnięciu sukcesu.
źródło
Zdaję sobie sprawę, że ta odpowiedź może nie być dla Ciebie idealna, ale oto co zrobiłem
Byłem pierwszym programistą pracującym przy bardzo zajętym startupie e-commerce, z niewiarygodnie dużym ruchem. Zdaję sobie sprawę, że firma była jeszcze młoda i przez jakiś czas byłbym jedynym wewnętrznym zasobem technicznym.
Wiedząc o tym, zdecydowałem się na taką strukturę infrastruktury, że będę musiał zarządzać systemami ZERO.
Zdecydowałem się hostować w chmurze, ponieważ zwolniło mnie to z konserwacji systemów. Szukałem inżyniera AWS z doświadczeniem marionetkowym. Wspólnie zaprojektowaliśmy infrastrukturę skalowalną automatycznie, zapisaną jako kod w formacji chmurowej. Wszystkie pliki konfiguracyjne zostały wersjonowane w ramach marionetki.
To pozwoliło mi, jako programistom, przejąć rolę programistów. Zbudowałem narzędzia do uwalniania kodu, w Pythonie, w tkaninie. Użyłem tego samego skryptu, aby uruchomić aplikację na nowych serwerach, które są skalowane automatycznie.
Działa to bardzo dobrze, a dziś, 3 lata później, nadal nie wykonuję żadnej konserwacji systemu. Mamy administratora systemu (tego samego inżyniera AWS) przez 10 godzin miesięcznie, a ja próbuję zbudować jego sprinty w taki sposób, aby nie denerwować go. W ten sposób szanuję jego czas i najlepiej zarządzam jego sprintami.
Jeśli system ma obniżoną wydajność, po prostu go przerywam, a na jego miejscu obraca się inny.
Mam nadzieję, że ta odpowiedź może jakoś ci pomóc
źródło
Nie powinieneś zatrudniać inżyniera DevOps, ponieważ DevOps obejmuje tak szeroki zakres dyscyplin, że jedna osoba nie może być ekspertem we wszystkich aspektach tych dyscyplin. Zatrudniając Jacka wszystkich branż, zatrudniłbyś mistrza żadnego.
DevOps z konieczności jest przedsięwzięciem zespołowym i nie można oczekiwać, że jedna osoba spełni oczekiwania całego zespołu. Rozważ zakres DevOps. Jedna osoba nie może:
Niektóre z wyżej nawet sub dyscyplin, takich jak Windows Systems Administrator vs. Administrator Linux / Unix system lub może użyć więcej niż jeden język kodowania w twojej.
Żadna osoba nie może być ekspertem w tym zakresie, co oznacza, że jeśli reklamujesz się dla inżyniera DevOps, kiedy najsłabszym obszarem w zespole DevOps jest Networking, nie radzisz sobie zbyt dobrze z reklamowaniem swojej potrzeby specjalisty ds. Sieci dla twojego zespołu DevOps . Chociaż żadna osoba nie powinna być zaszufladkowana do konkretnej roli w zespole DevOps, zrobiłbyś swojemu zespołowi przysługę, udając, że nie ma żadnych specjalistów ani ekspertów merytorycznych (MŚP) w zakresie DevOps. Przesuwanie wahadła z jednej skrajności do drugiej - od silosu do udawania, jak każda rola w zespole DevOps jest taka sama - może powodować tyle samo problemów.
Podczas gdy członkowie zespołu trenują w więcej niż jednej dyscyplinie - szczególnie w nakładających się obszarach, dobrze jest oczekiwać, że będą w stanie biegle posługiwać się tak dużą ilością wiedzy, po prostu nie jest praktyką.
Oznacza to, że każdy, kto mówi ci, że zna wszystkie aspekty DevOps, prawdopodobnie cię okłamuje. Zatrudnij specjalistę w dziedzinie, w której jesteś najsłabszy, a która pracowała w zespole DevOps - a nie „Inżyniera DevOps”.
źródło
Miałem właśnie takie wyzwanie podczas wdrażania w ASOS. Naszym celem jest posiadanie zespołów, które są samowystarczalne, więc pełnienie dedykowanej roli może być anty-wzorcem, jednak żyjemy w prawdziwym świecie i dla wielu programistów myślenie o dobrych praktykach DevOps nie jest ich podstawową sprawą, dlatego potrzebują pomocy dostać się tam.
To, co zrobiliśmy, to:
stracić kadencję inżynierów DevOps, DevOps to coś, co powinniśmy wszyscy zrobić, a nie nasz tytuł zawodowy, dlatego nazwaliśmy ich czymś innym.
wdrożyłem je do zespołów, ale tylko 1 na 3, co oznaczało, że nie mogli być wykonawcami, ale musieli być postrzegani jako kompetencja, aby pomóc drużynom poprawić się i rozwiązać własne problemy (z wytycznymi)
utrzymywał także centralną funkcję pełniącą rolę centrum kompetencji i zajmując się kwestiami związanymi z przedsiębiorstwem, wszystko, co dotyczy wszystkich zespołów
W trakcie ewolucji dokonujemy przeglądu tego modelu, ale dla nas działa on do tej pory skutecznie
źródło
Nie sądzę, że będziesz w stanie uzyskać ostateczną odpowiedź na to pytanie, ponieważ wydaje się, że bierze to pod uwagę wiele czynników.
Właśnie skończyłem rozmowę kwalifikacyjną na stanowisko i skończyłem z tytułem inżyniera DevOps, ale część tego, co robię, to praca Sys Admin. Jest to po prostu konieczne z uwagi na wielkość firmy i charakter zarządzanych aplikacji. Niektóre stanowiska, z którymi przeprowadzałem wywiady, miały podobny tytuł i bardziej szukały kogoś ze strony programistycznej. Spodziewali się więcej pisania kodu, a nie administratora systemu, który zajmuje się automatyzacją. Wydaje się, że SRE zyskuje na popularności, więc może to być właściwa droga. Miałem siebie jako Administratora Systemu i Inżyniera Automatyki jako moją ostatnią pracę, ponieważ pisałem ansible, a szef kuchni stosował przez pewien czas. Firma stosowała całkiem dobry model devops, w którym wszyscy byli na pokładzie, a devs pracowali razem z ops, ale myślę, że ich przyszłość nie
Teraz, gdy jestem w tej pozycji, próbuję podnieść klakson w jakiejś automatyzacji i mamy problemy z ludźmi, które będziemy musieli rozwiązać. Ludzie przychodzą i odchodzą, a niektóre przepływy pracy zostały zaprojektowane, ponieważ ktoś inny zaprojektował to w ten sposób, a nie dlatego, że pasuje do tego, jak ludzie pracują.
Zasadniczo uważam, że powinieneś zorientować się w opisie stanowiska pracy i nie przejmować się tak bardzo tytułem, chyba że wiąże się to z jakimś zapłatą lub uważasz, że jeden lub drugi przyciągnie odpowiednie osoby.
źródło
Jeśli masz na myśli znaczenie DevOps i podążasz „jedną prawdziwą ścieżką”. Nie powinieneś zatrudniać inżyniera DevOps. Powinieneś zatrudnić inżyniera automatyzacji, inżyniera wdrażania, architekta platformy lub szereg innych ról, które robią to, czego potrzebujesz.
Jeśli bycie prawdziwym praktykiem DevOps nie jest dla ciebie ważne, możesz nazwać to jak chcesz.
źródło