fbpx

10 powodów dlaczego każdy programista musi znać DevOps!

Opublikowane przez Jerzy Wickowski w dniu

zegar/licznik z samochodu

Chciałbym dziś poruszyć temat wracający do mojej głowy za każdym razem, gdy widzę zespół mający problem z wdrożeniem lub z wydajnością. Pracowałem w różnych firmach, w różnych zespołach dla różnych klientów. Regularnie spotykam zespoły mające problemy ze wdrażaniem swojej aplikacji. W każdym z tych przypadków brakuje przynajmniej jednego elementu. Automatyzacji, będącej najlepszym przyjacielem programisty. Chciałbym Ci pokazać, że umiejętności związane z DevOps przydadzą Ci się na 100%. Przed Tobą 10 powodów, dlaczego każdy programista musi znać DevOps.

1. By wdrożyć Swój kod

Skoro tworzysz oprogramowanie, to powinieneś wiedzieć jak je zainstalować w sposób automatyczny. Dlaczego? Bo inaczej nikt go nie będzie używał. Owszem możesz dostarczyć klientowi kod, z instrukcją, by sobie skompilował i zainstalował. Mam pewne podejrzenia, że nie będzie usatysfakcjonowany, nawet jeśli udokumentujesz mu, jak cały proces powinien przebiegać. Zrób coś lepszego. Skonfiguruj proces CI/CD umożliwiający, Tobie oraz jemu, łatwy, szybki i stabilny deployment. Prosta konfiguracja CI nie zajmie mniej czasu, niż spędzisz na telefonie, tłumacząc klientowi, jak i co ma zainstalować.

2. By oszczędzać czas

Raz skonfigurowany proces oszczędzi setki jak nie tysiące godzin. W jaki sposób? Na bieżąco, zweryfikuje jakość kodu, sprawdzi, czy testy przechodzą. Zarówno jednostkowe, jak i te bardziej zaawansowane, wymagające prawdziwego środowiska. Po czym automatycznie zainstaluje kod na odpowiednie serwery, niwelując tym samym czasochłonne i błędogenne procesy manualne.

3. By maksymalizować BusFactor

Od lat, jak mantrę słyszę, że powinniśmy dbać o BusFactor, czyli współczynnik określający, ile ludzi może zostać potrąconych przez autobus, by zespół nadal pracował sprawnie. Jeżeli byłeś w projekcje, gdzie tylko jeden człowiek zajmował się konfiguracją CI. To wiesz, jak wyglądała sytuacja, gdy znikał na chwilę. Strach, pot i łzy wraz z lamentowaniem co teraz będzie. Przecież nikt z nas nie zna DevOpsów! Jak tę sytuację zniwelować? Zapoznaj się z podstawami automatyzacji, przejmij część jego zadań i wysysaj od niego wiedzę, póki jest dostępny. Wszyscy na tym zyskają.

4. By być wszechstronnym

Temat wytwarzania oprogramowania jest zbyt rozległy, by specjalizować się we wszystkim. Nierealne jest poznanie, na poziomie eksperckim, wszystkich języków, frameworków, czy narzędzi. Jednak warto je kojarzyć, Thomas Huxley kiedyś powiedział “Try to learn something about everything and everything about something”. Zgadzam się z nim w 100%. Nie musisz być carem DevOpsa, ale poznaj jego założenia. Zrozum, jak to powinno działać. Jeżeli to ogarniesz, to Twoje spojrzenie będzie szersze, a część drzwi otworzy się przed Tobą otworem.

5. By dostosować się do teraźniejszości

Kiedyś aplikacje wdrażało się raz na pół roku albo rzadziej. Historia jednak pokazuje nam, że są lepsze sposoby deploymentu oprogramowania. Dzisiaj aplikacje powinno się wdrażać możliwie często. Ze względu na wszechobecną chmurę oraz konieczność częstych zmian, ta wiedza jest przydatna jeszcze bardziej.

6. By awansować

Twoja specjalizacja, nawet doprowadzona do mistrzostwa, może okazać się niewystarczająca. Staniesz przed zaawansowanym problemem, takim jak projektowanie oprogramowania, musisz posiadać szeroką perspektywę. Każdy architekt, podejmując decyzje, o wielu składowych systemu uwzględnia, jak będzie wyglądał deployment i jego konfiguracja.

7. By pisać lepszy kod

Wiedza i doświadczenie zdobywane latami pozwala nam na tworzenie coraz lepszych produktów. Wiedząc jak działa GC, będziesz tworzył wydajniejszy kod. Znając mechanizmy działania aplikacji webowych lub mobilnych, będziesz tworzył lepsze API. Nie inaczej jest z DevOpsem. Wiedząc, jak Twoja aplikacja będzie żyć i jak będzie wdrażana, zaprojektujesz ją lepiej. Zwrócisz uwagę na zarządzanie konfiguracją, logowanie i wiele innych czynników.

8. Bo podstawy nie są trudne

Ludzie, patrząc na DevOpsa, widzą Voldemorta, uprawiającego czarną magię w czarnej konsoli. Boją się tego, czego nie znają, a w dodatku wygląda na trudne. Też ta masz? Jeżeli tak to niepotrzebnie, ponieważ legendarna czarna konsola, nie jest potrzebna na starcie. Jeśli zrozumiesz jak wygląda pipeline to proces konfiguracji CI jest prosty jak konstrukcja cepa. Większość dobrych narzędzi posiada intuicyjny interfejs użytkownika ułatwiający początkową konfigurację, obniżając próg wejścia do minimum. Po prostu spróbuj.

9. By czuć frajdę, jak dawniej

Jesteś programistą. Pamiętasz tę ekscytację po napisaniu pierwszego programu. Gdy pierwszy raz komputer zapytał Cię o imię, a następnie napisał “Cześć Jurek”. Było to coś niesamowitego, był to moment, kiedy odkrywasz, że możesz zmusić komputer do wszystkiego. To Ty jesteś panem. Jednak wraz z upływem lat taki przypływ dopaminy zdarza się coraz rzadziej. Weź sprawy w swoje ręce i sprawdź, jak wielce satysfakcjonujący jest wynik, zautomatyzowany przez Ciebie proces odpala się po komicie i wszystko robi się samo.

10. Bo to nie jest zarezerwowane dla ekspertów

Konfiguracja CI to nie jest zadanie dla uber specjalisty, ale powinien to robić każdy w zespole, gdyż jak pisałem wyżej, to nie jest czarna magia.

Na zakończenie

Mam wielką nadzieję, że chociaż na chwilę rozpaliłem w Twojej głowie myśl, że może warto poznać tego DevOpsa. 


Jeżeli tak to zapraszam Cię na DeployAcademy.pl/10, gdzie pobierzesz DARMOWY dokument z poradami jak deployować 100 razy dziennie

Jeżeli nie to napisz mi koniecznie dlaczego. Bardzo chciałbym poznać Twoje zdanie.


A może coś ważnego pominąłem?
Daj poroszę znać w komentarzu.



Czy to był wartościowy artykuł? Zapisz się, a wyślę Ci dwa ebooki o czystym kodzie oraz będę informował Cię o nowych postach

6 Komentarzy

Tomasz Prasołek · 2019-04-15 o 12:28

„powinniśmy redukować BusFactor” – nie wiem czy do dobrze zrozumiałem :) Chyba powinny zwiększać ten współczynnik?

BusFactor == 1 to znaczy jedna osoba znika z projektu i pojawiają się problemy. BusFactor == 15, to 15 osób znika z projektu i dopiero pojawiają się problemy.

    Jerzy Wickowski · 2019-04-15 o 13:30

    Hej @Tomasz,
    Dzięki.
    Masz rację, trochę na opak to opisałem. Chociaż, główna idea w obu przypadkach jest zachowana.
    Już poprawiam.

Rafał Barszczewski · 2019-04-16 o 21:03

Dzięki za artykuł, sam staram się od pewnego czasu zainspirować programistów do zgłębienia tematu. Dodam tutaj jeszcze jeden powód, choć wiąże się on z #6: wszyscy CTO od kilku lat mają wpajane do głów (na swoich konferencjach, w magazynach branżowych itd.), że DevOps = zysk. Oni bardzo chcą to mieć, tylko często jeszcze nie do końca wiedzą co to jest i jak to w firmie/produkcie wdrożyć. A jak rozmawiają sobie z middle managementem, to zwykle usłyszą 100 powodów, dla których to jest niemożliwe albo się nie uda (a w najlepszym razie efektem jest stworzenie stanowiska/zespołu o nazwie ‚DevOps’). Dlatego jeśli takiemu CTO uda się spotkać w połowie drogi z ogarniętym liderem/deweloperem, który widzi jak to można zrobić i po prostu to robi, to może otworzyć wiele drzwi.

    Jerzy Wickowski · 2019-04-17 o 08:00

    Cześć @Rafał,

    Dzięki wielkie za komentarz.
    Bo to jest zysk, kiedy uświadomimy sobie jak wiele rzeczy możemy zautomatyzować by działy się „same”. Jeżeli potrzebowałbyś pomocy to chętnie pomogę.

Mateusz · 2019-04-22 o 12:26

Cześć,
bardzo ważny temat poruszyłeś – wiedza devopsowa przede wszystkim uczy jak coś działa – co jest turbo ważne, jeśli chce się świadomie tworzyć kod, trochę podobny punkt widzenia przedstawiłem u siebie – https://mmazurek.dev/3-rzeczy-ktore-powinienes-wiedziec-jako-programista/

    Jerzy Wickowski · 2019-04-23 o 07:41

    Cześć @Mateusz,
    Dziękuję za komentarz. Mój punkt 7, a twój 1 odnoszą się do tego samego. Zgadzam się. Znajomość całokształtu pozwala na lepsze tworzenie kodu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany.

This site uses Akismet to reduce spam. Learn how your comment data is processed.


Zapisz się

Wyślę Ci dwa dokumenty mówiące o jakości kodu. Dodatkowo będę Cię informował o nowych postach i nowościach.