Od prawie pięciu lat praktykuję i doradzam w DevOps jako konsultant z różnymi klientami, zanim do mojej obecnej pozycji zajmowałem stanowiska w tworzeniu oprogramowania, operacjach sieciowych i administracji systemami. Z mojego osobistego doświadczenia DevOps występuje w wielu smakach.
Wzorce organizacyjne
DevOps Antipatterns:
NoOps i NoDevs - nie ściśle DevOps w najściślejszym sensie, jednak zespoły te zarówno budują, jak i obsługują oprogramowanie, nie dzieląc linii między Programowaniem a Operacjami. Wyzwania związane z tymi zespołami sprowadzają się do dojrzałości, zespoły programistów mogą być ekspertami w dziedzinie tworzenia oprogramowania, ale nowymi operatorami i odwrotnie.
DevOps Bridge - tutaj jeden lub więcej zespołów ponosi odpowiedzialność za przejęcie pracy od zespołów programistycznych i „ wyprodukowanie ” go, aby działał . Wyzwanie sprowadza się do tego, że obecnie występują dwa hand-offy, tj. Rozwój → DevOps i DevOps → Operacje.
Zespół DevOps - może to prawdopodobnie działać, jeśli zespół jest odpowiedzialny za budowanie narzędzi wspierających Model operacyjny z włączonym DevOps, jednak prawdopodobnie powinien być nazywany „zespołem narzędzi” lub „zespołem platform”.
Wzory DevOps:
Wbudowane DevOps - częściej określane jako Inżynieria Platformy, w ramach której w zespole jest ktoś, kto jest odpowiedzialny, ale nie jest odpowiedzialny za zapewnienie automatyzacji, narzędzi i infrastruktury do dostarczania i wdrażania rozwiązania, czasami także za obsługę oprogramowania - w mojej opinii , to ten ostatni jest faktycznie reprezentatywny dla DevOps.
Zinstytucjonalizowane DevOps - gdzie zespół projektowy jest odpowiedzialny zarówno za rozwój, jak i działanie pakietu oprogramowania budującego wspólną własność i pozytywne pętle zwrotne.
Praktyki
Rzeczywista praktyka DevOps opiera się na kilku innych praktykach, a mianowicie:
Każda z powyższych praktyk opiera się na drugiej, można nie stosować się do niej, oznacza to jednak brak ważnego cyklu informacji zwrotnej, który może wskazywać na „utraconą okazję”. Kluczowym rozróżnieniem pomiędzy stosowaniem innych praktyk a DevOps jest działanie oprogramowania w produkcji .
Trzy sposoby
W The Phoenix Project Gene Kim i jego współautorzy opisują trzy sposoby DevOps :
Systemy myślenia
Pierwszy sposób kładzie nacisk na wydajność całego systemu, w przeciwieństwie do wydajności konkretnego silosu pracy lub działu - może to być tak duży dział (np. Dział rozwoju lub IT) lub tak mały jak indywidualny współpracownik (np. , programista, administrator systemu).
Z mojego doświadczenia wynika, że programiści biorą pod uwagę obawy operacyjne i wymagania niefunkcjonalne osiągają ten cel. To bardzo część kulturowych aspektów DevOps.
Wzmocnienie pętli sprzężenia zwrotnego
Drugi sposób polega na tworzeniu pętli sprzężenia zwrotnego od prawej do lewej. Prawie każda inicjatywa doskonalenia procesu ma na celu skrócenie i wzmocnienie pętli sprzężenia zwrotnego, aby można było ciągle wprowadzać niezbędne poprawki.
Zasadniczo osiągam to poprzez ciągłą integrację / dostarczanie / wdrażanie oraz wspólne monitorowanie i alarmowanie, co bardzo dobrze pasuje do komponentu narzędziowego DevOps.
Kultura ciągłego eksperymentowania i uczenia się
Trzecia droga polega na tworzeniu kultury, która wspiera dwie rzeczy: ciągłe eksperymentowanie, podejmowanie ryzyka i uczenie się na porażce; oraz zrozumienie, że powtarzanie i praktyka są warunkiem opanowania.
To bardzo pasuje do przestrzeni kultury , choć w dużym stopniu zależy od narzędzi i procesu umożliwiającego wzrost kultury.