Ileż to razy widziałem zespoły mające problemy ze stabilnym wdrażaniem lub wydajną pracą. Bywałem w różnych firmach, w różnych zespołach. W każdym niewydajnym zespole brakowało 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 Warto 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ć.
Możesz to zrobić w Azure DevOps lub w innym narzędziu do CI.
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. Zakasaj rękawy i automatyzuj, bo już wiesz dlaczego warto znać DevOps.
Już wiesz dlaczego warto znać DevOps
Mam wielką nadzieję, że chociaż na chwilę rozpaliłem w Twojej głowie myśl, że może warto poznać tego DevOpsa.
A może coś ważnego pominąłem? Daj znać w komentarzu
1 Komentarz
blogprogramisty.net · 29 października, 2020 o 10:02
Tak konfiguracja CI to jest dobra sprawa i fakt, że w zespole jestem jedyny co to ogarnia, jak nie działa i mnie nie ma to wdrożenia stoją.
Wydaje się jednak, że konfiguracja na początku jest zawsze prosta a później się mocno rozrasta i czasem ciężko się w to wgryźć.
Brakuje mi chyba, jeszcze na początku jakieś definicji tych DevOps-ów : )
Możliwość dodawania komentarzy nie jest dostępna.