Istnieje wiele różnych powodów, dla których różne organizacje przechodzą na DevOps.
Spróbuję wymienić te, które często się pojawiają.
Skróć czas na zmianę cyklu
Często zdarza się długi czas między złożeniem wniosku o zmianę a faktycznym wdrożeniem i użyciem w organizacji. Najpierw jest planowany przez programistów w jednym z cykli programistycznych, a po dostarczeniu planowany w jednym z cykli wydawniczych. Oba cykle obejmują testowanie, aw przypadku wykrycia problemów oba cykle resetują się. Integrując działy rozwoju i operacji, możemy usprawnić oba procesy.
Oprogramowanie a problemy sprzętowe
Pamiętasz kreskówkę Królik Bugs, w której Bugs i Daffy kłócą się, czy to sezon na kaczki, czy na sezon królika? Teraz wyobraź sobie, że zamiast tego zrobiliśmy to z programistami i operacjami, w których programiści twierdzą, że jest to problem sprzętowy, a operacje twierdzą, że jest to problem z oprogramowaniem. Dla użytkownika końcowego jest to rozróżnienie bez różnicy. Chcą tylko to naprawić.
Łącząc programistów i operacje, będą musieli rozwiązać problemy. I może się okazać, że był to problem z oprogramowaniem i sprzętem.
My kontra ich
W wielu firmach odległość między testerami a programistami rosła, ponieważ były to oddzielne działy, a cykl rozwoju był coraz bardziej sformalizowany i ustandaryzowany.
Wraz z pojawieniem się Agile, programiści i testerzy zaczęli bliżej współpracować i zaczęliśmy wzajemnie postrzegać swój punkt widzenia na temat cyklu rozwoju, a może nawet go szanować.
Coś podobnego musi się wydarzyć między programistami a operacjami, ponieważ wraz z dojrzewaniem obu pól i dalszymi formalizacjami i standaryzacją procesów rośnie odległość między tymi działami. Tak więc jednym z problemów tradycyjnego modelu jest to, że wydaje się, że „my” kontra „oni” zarówno dla programistów, jak i operacji. Obie nie do końca rozumieją trudność obowiązków drugiej osoby.
Oczekiwania / zalety
W DevOps obie specjalizacje nauczą się niektórych umiejętności tradycyjnie wykonywanych przez drugą. Nikt nie spodziewa się, że administrator systemu zostanie inżynierem oprogramowania, a programista inżynierem sieci, ale oboje powinni wziąć na siebie część obowiązków drugiej osoby. Oznacza to, że gdy naprawdę potrzebujesz dodatkowych rąk, są one dostępne.
Są też pewne pozytywne strony dla programistów: teraz masz większą kontrolę nad swoimi środowiskami testowymi, łatwiej będzie Ci wdrożyć oprogramowanie dla użytkowników i mieć więcej osób w organizacji, z którymi możesz dzielić się swoją miłością do rzemiosła.