Absolutnie nie!
DevOps polega na rozbiciu tradycyjnych silosów (działów) w celu zwiększenia wydajności.
Lepsza komunikacja między zespołami, lepsza widoczność oraz niezawodny i zautomatyzowany proces to sposoby na uzyskanie lepszego produktu.
Pracowałem dla dużej firmy medialnej, w której wspieraliśmy wewnętrzne narzędzie i rozwijaliśmy publiczne witryny.
Korzyści DevOps w naszym przypadku były następujące:
- Poprzez ciągłe budowanie informujemy zespół programistów wcześniej niż później, jeśli występują problemy z integracją lub kompilacją kodu. Mogą naprawiać problemy, podczas gdy ich umysł wciąż pracuje nad fragmentem kodu, który właśnie popełnił.
- Dzięki ciągłym testom i dostawom (do kontroli jakości) umożliwiliśmy zespołowi kontroli jakości wcześniejsze znajdowanie problemów i zgłaszanie ich wcześniej. Skróciło to czas potrzebny na znalezienie i poprawienie błędów, a także zmniejszyło złożoność tego dochodzenia.
- Dzięki naszym narzędziom do gromadzenia i agregowania dzienników daliśmy programistom dostęp do czegoś, na co zwykle nie patrzyli (bardzo chętnie debugowali :) - zrozumienie, w jaki sposób dzienniki są widziane i wykorzystywane przez inne zespoły, poprawiło ogólną jakość dzienników
- Często dzieliliśmy się informacjami i tworzyliśmy dokumentację w celu dzielenia się wiedzą między zespołami, próbując zburzyć mury. Rozumiejąc potrzeby Ops, tworzymy kilka przewodników, o których zawsze należy pamiętać podczas ładowania aplikacji (gdzie / jak zarządzać właściwościami itp.). Rozumiejąc rzeczywistość Dev (kod więcej funkcji, szybciej, gogogogo!) Mogliśmy sprawić, że operatorzy stworzyli serwery i klastry, które byłyby lepiej dostosowane do potrzeb dewelopera.
- Znacząco poprawiono także ogólną jakość wdrożeń. Wdrożenia były obsługiwane przez nasz zespół, więc mieliśmy doskonałą widoczność zarówno w Ops, jak i Dev. To wyeliminowało wiele problemów związanych z „przekazaniem kodu”, w którym programista przekazałby pakiet i jednostronicowy dokument operatorom mówiącym „Zainstaluj to!”.
Ogólnie rzecz biorąc, powiedziałbym, że bez względu na to, czy aktualizujesz środowisko produkcyjne raz dziennie, czy raz w miesiącu i niezależnie od liczby klientów lub modelu biznesowego, każde przedsiębiorstwo może korzystać z lepszej komunikacji, lepszych narzędzi, lepszej widoczności, szybszej informacji zwrotnej, itp.
Mój zespół i ja jesteśmy odpowiedzialni za opracowanie „jednorazowych” produktów, które po zakończeniu są przekazywane klientowi do utrzymania lub w niektórych przypadkach są zarządzane przez nas za opłatą.
Nadal musimy utrzymywać solidny ciąg rozwoju, aby obsługiwać ciągłe informacje zwrotne od naszych klientów, aby zapewnić, że dostarczamy im coś niezawodnego i sprawdzonego w działaniu.
Chociaż klient nie dba o DevOps (w większości przypadków), nadal jest dla nas pomocny. Dzięki DevOps możemy szybko wypuszczać nowe wersje, dzięki czemu klienci mogą zobaczyć opinie w ciągu kilku minut, a nie godzin, a także jesteśmy w stanie wykryć wszelkie błędy / błędy dzięki naszym testom za pośrednictwem Jenkins / Travis.
Aby zapewnić, że nasze strategie wdrażania są takie same we wszystkich projektach, koncentrujemy się na konteneryzacji naszych aplikacji. Korzystając z Dockera, możemy łatwo przekazać aplikację naszym klientom.
Koszt zaoszczędzony przez DevOps jest trudny do ustalenia. Mamy dodatkowe koszty w postaci oprogramowania, które wybieramy do instalacji (Travis, Jenkins, Puppet, co masz), ale oszczędzamy również czas i pieniądze, naprawiając błędy / szybko informując klientów. Nasz szybki czas reakcji sprawia, że nasi klienci są zadowoleni, a nasze portfele są zadowolone.
źródło
Pracowałem dla firm produkujących oprogramowanie jako produkty z folią termokurczliwą, jako w pełni zainstalowane i obsługiwane wdrożenia oraz jako kod osadzony w urządzeniach. We wszystkich tych firmach DevOps zapewnia niezbędne wsparcie dla rozwoju:
We wszystkich przypadkach są to rzeczy, które indywidualni programiści mogliby robić jednorazowo, ale nie byłoby to dobre wykorzystanie czasu programisty, ani nie mieliby takiej samej kontroli konfiguracji, jaką mają zautomatyzowane kompilacje.
źródło
Działania związane z opracowywaniem i wdrażaniem oprogramowania wcześniej nie wymagały głębokiej integracji między działami. Ale na dzień dzisiejszy konieczna jest ścisła współpraca wszystkich działów (Rozwój, Operacje IT, Zapewnienie jakości itp.).
Dla programistów zmiana jest tym, za co otrzymują zapłatę. Biznes zawsze potrzebuje zmian, które pasują do współczesnego świata. To zrozumienie popycha programistów do wprowadzenia maksymalnej możliwej liczby zmian. Specjaliści IT mają inne rozumienie, w którym zmiana jest szkodliwa. Każdy z nich uważa, że działa poprawnie, z korzyścią dla firmy. Rzeczywiście, jeśli rozważymy je osobno, obie mają rację.
Wszyscy pracownicy muszą zrozumieć, że są częścią jednego procesu. DevOps kultywuje myślenie, co pozwala uświadomić sobie, że osobiste decyzje i działania każdego powinny być ukierunkowane na realizację jednego celu. Sukces należy mierzyć w odniesieniu do całego cyklu rozwoju od dostawy, a nie od sukcesu poszczególnych ról. W wyniku ścisłej współpracy między programistami i specjalistami ds. Konserwacji powstaje nowa generacja inżynierów, którzy wykorzystują najlepsze osiągnięcia obu dyscyplin i łączą je z korzyścią dla użytkownika. Przejawia się to w pojawieniu się zespołów wielofunkcyjnych z doświadczeniem w projektowaniu, zarządzaniu konfiguracją, zarządzaniu bazami danych, testowaniu i zarządzaniu infrastrukturą.
Metodologia jest więc przydatna nie tylko w SaaS.
źródło
Ani trochę. Chociaż w tym wątku są już świetne przykłady, chciałbym podzielić się własną anegdotą. W 2001 roku odziedziczyłem projekt oprogramowania z wydaniem, które wymagało stworzenia płyty CD. Dokumentacja procesu wydania zawierała 40 (!) Kroków udokumentowanych przez poprzedniego inżyniera, w tym kilka śmiesznych odręcznych instrukcji, takich jak „otwórz ten plik konfiguracyjny i zmień nazwę pliku .jar w wierszu 41, aby uwzględnić numer wersji nowa wersja ”.
Agresywnie zautomatyzowaliśmy każdy etap tego procesu kompilacji, zastępując ręcznie pisane instrukcje takimi rzeczami, jak „łatka” skryptowana przez bash. Musieliśmy nawet otworzyć bilety u naszego zewnętrznego dostawcy narzędzia instalacyjnego, aby pliki ich projektów były łatalne.
Po zautomatyzowaniu tego procesu kupiliśmy „CD Jukebox”. Każdej nocy po przejściu testów maszyna do tworzenia automatycznie tworzy nową instalacyjną płytę CD. Nasi testerzy mogli przyjść następnego dnia rano, wziąć dysk i upewnić się, że wszystko można zainstalować.
Z pewnością mamy ściślejsze sprzężenia zwrotne, gdy możemy wdrożyć oprogramowanie jako usługę, ale obowiązują podstawowe zasady automatyzacji, sprzężenia zwrotnego, czasu cyklu, małych wydań itp.
źródło