4 wskazówki DevOps dla małych zespołów
Opublikowany: 2020-02-08Zastanawiasz się, jak wdrożyć DevOps dla małych zespołów? DevOps to rozwijająca się dziedzina strategii i realizacji w firmach każdej wielkości. Przyspiesza czas wprowadzania na rynek, umożliwia szybsze wdrażanie i sprawia, że programiści, menedżerowie operacyjni i klienci są szczęśliwsi.
Porozmawiamy o tym, czym jest DevOps, jak duże firmy go wdrażają oraz jakie lekcje i wskazówki mogą teraz zebrać i wdrożyć małe firmy.
Co to jest DevOps?
DevOps jest trudnym terminem do zdefiniowania, głównie dlatego, że obejmuje szereg praktyk. Zasadniczo DevOps to połączenie dwóch rzeczy w celu lepszej komunikacji: „Dev” oznacza „deweloperów” i „Ops” dla operacji.
DevOps to zazwyczaj grupa zarówno programistów kodu, jak i menedżerów operacji systemowych, którzy współpracują w celu przełamania silosów wiedzy — w istocie, aby upewnić się, że zawsze są na tej samej stronie, jeśli chodzi o efektywne opracowywanie i wdrażanie kodu.
DevOps to efektywna komunikacja między działami. Oznacza to wspólną pracę nad tworzeniem strategii dla jednego działu, które ułatwiają życie drugiemu działowi. Ogólnie oznacza to również większą automatyzację kodu, mniejsze fragmenty kodu, systemy kontroli źródła i być może kilka dodatkowych spotkań.
Ale co się dzieje bez DevOps?
Dlaczego potrzebny jest DevOps?
Tradycyjnie menedżerowie operacyjni utrzymują środowisko produkcyjne — czyli wszystko, z czym klienci i klienci wchodzą w interakcje.
Deweloperzy natomiast pracują za kulisami, tworząc kod w środowisku testowym — obszarze odgrodzonym od środowiska produkcyjnego. To środowisko programistyczne idealnie symuluje środowisko produkcyjne i sposób działania kodu lub aplikacji w świecie rzeczywistym.
W praktyce oznacza to, że programiści piszą kod w swojej bańce i wysyłają go do wdrożenia w środowisku produkcyjnym, gdzie menedżerowie operacyjni muszą wymyślić, jak zapewnić sprawne i stabilne działanie podczas integracji nowego kodu. A programiści są zwykle zbyt zajęci kodowaniem nowych funkcji, a menedżerowie ds. Ops są zbyt zajęci próbą utrzymania każdej płyty, więc czas na komunikację i zmianę środowiska jest krótki.
Chociaż konfiguracja DevOps zajmuje trochę czasu, wyniki mogą sprawić, że każda firma — duża lub mała — będzie bardziej elastyczna i bardziej konkurencyjna.
DevOps w dużych firmach
DevOps to slam dunk w dużych firmach. Przy dużej liczbie programistów i wystarczająco dużej bazie kodu, tworzenie i wdrażanie kodu może być tytaniczną walką.
Duże firmy mają więcej klientów. Więcej klientów oznacza więcej serwerów, często więcej funkcji i większe obciążenie sieci. Tworzy to większą bazę kodu, co oznacza, że nawet małe poprawki mogą mieć efekt kaskadowy w środowisku. A ponieważ duże firmy często próbują uzyskać nowe funkcje, aby utrzymać konkurencyjność na rynku, potrzebują one środowiska programistycznego i środowiska produkcyjnego, aby być w ciągłym ruchu.
Firmy takie jak Netflix, Amazon i Target wdrożyły DevOps, aby usprawnić swoje usługi. Integracja ich środowiska programistycznego ze środowiskiem produkcyjnym (wraz z ciężką automatyzacją) pozwala Netflix i Amazon wdrażać tysiące razy dziennie .
Amazon korzysta z systemu ciągłego wdrażania i automatycznej kontroli źródeł, aby automatycznie sprawdzać wersje, poddając je procesowi kompilacji i testowania bez ingerencji człowieka.
NASA stosuje podobny system, wykorzystując połączenie usługi Amazon AWS i kontenerowych systemów danych, aby umożliwić specjalistom NASA udostępnianie danych telemetrycznych i analiz swoim inżynierom w stałym tempie.
Ale te firmy i organizacje są ogromne. Jak mały zespół może nawet podejść do tego poziomu organizacji i automatyzacji? Jak działa DevOps dla małych zespołów na wolności?
Rozwiązania DevOps, które mogą zastosować małe zespoły
Małe zespoły nie mają takiej samej przepustowości jak większe firmy — zarówno pod względem liczby osób, działów, jak i zasobów. To jednak kończy się mieczem obosiecznym, ponieważ generalnie mniejsze zespoły korzystają już z wielu rozwiązań DevOps. Nawet jeśli to niezamierzone.
Nie oznacza to jednak, że nie ma pracy do zniesienia. Obecnie tylko 25% branży oprogramowania korzysta z DevOps na wysokim poziomie.
Inne narzędzia i strategie DevOps można przejąć od większych firm i zastosować równie skutecznie.
1. Stwórz zespół DevOps
Jeśli nie masz dużego zespołu programistów, utworzenie samodzielnego zespołu DevOps prawdopodobnie nie wchodzi w rachubę. Jeśli masz jednego programistę i jednego menedżera systemów lub te role pełni ta sama osoba, pomysł „zespołu” może wydawać się nawet głupi.
I to jest w porządku. Niekoniecznie chodzi o stworzenie jakiejś grupy zadaniowej — chodzi tylko o komunikację. Nawet jeśli masz jednego programistę i jednego menedżera IT, twoją formą „zespołu” DevOps może być cotygodniowe spotkanie i codzienne asynchroniczne aktualizacje, aby informować się nawzajem o tym, co się dzieje.
Głównymi celami zespołu powinno być dostosowanie środowiska programistycznego do środowiska produkcyjnego, częstsze pisanie (i wdrażanie) mniejszych fragmentów kodu oraz zwiększenie automatyzacji i kontroli źródła.
Porozmawiajmy o tym, co te rzeczy oznaczają i jak można je osiągnąć.
2. Dopasuj praktyki i środowiska
Nawet małe zespoły mogą zacząć dostosowywać swoje środowiska, dając programistom większy dostęp do środowiska produkcyjnego, nawet tylko w celu monitorowania wpływu zmian na produkt końcowy.
Spróbuj udostępnić swojemu zespołowi programistów bieżący kanał informacji o stanie sieci, nawet jeśli znajduje się on tylko na monitorze w rogu. Mogą natychmiast zobaczyć, jak ich wdrożony kod może wpływać na ruch, lub zauważyć, że nagły spadek może stanowić poważny problem.
Będziesz także potrzebować zespołu DevOps, aby stworzyć strategię, dzięki której środowisko testowe deweloperskie i rzeczywiste środowisko produkcyjne będą jak najbardziej zbliżone — najlepiej identyczne. Będzie to obejmować wiele spotkań i solidny projekt dokumentacji, aby nie tylko dostosować środowiska, ale także utrzymać je w zgodzie w miarę zmian zachodzących w czasie.
Dopasowanie tych dwóch środowisk oznacza, że zespół operacyjny spędza mniej czasu na próbach dostosowania kodu programisty do realiów produktu końcowego.
3. Wdrażaj mniejsze fragmenty kodu
Trzecim krokiem jest pozbycie się mentalności wielkiej aktualizacji. Testowanie, zatwierdzanie i wdrażanie dużych wersji kodu może zająć tygodnie lub miesiące. Spowalnia to wdrażanie funkcji i ogólnie zmniejsza Twoją konkurencyjność na rynku. Sprawia również, że jesteś mniej zwinny w przypadku nowego, ekscytującego trendu lub katastrofalnego problemu.
Jednym z kluczy do rozszerzenia DevOps dla małych zespołów w Twojej firmie jest przyzwyczajenie się do pisania mniejszych fragmentów kodu i szybszego ich wdrażania. Powinny one być na tyle małe, aby można je było przetestować i wdrożyć w ciągu kilku godzin.
4. Obejmij automatyzację i kontrolę źródeł
Ostatnią ścieżką do udanego DevOps dla małych zespołów jest intensywne wykorzystanie automatyzacji.
Dlaczego automatyzacja? Po pierwsze, automatyzacja przyspiesza testowanie i wdrażanie kodu. Daje to również czas zarówno programistom, jak i menedżerom operacyjnym na wdrożenie wymienionych powyżej strategii DevOps. Ten dodatkowy czas pozwala również twoim zespołom deweloperskim i operacyjnym skupić się na rzeczach, które usprawnią biznes, zamiast po prostu gasić pożary. I wreszcie, zwiększa wydajność i dokładność dokumentacji, z których obie mają swoje zalety w zakresie wdrażania, edukacji i zgodności.
Najpierw będziesz potrzebować czegoś, co pomoże Ci w ciągłym tworzeniu i testowaniu kodu w dowolnym momencie. Aplikacja taka jak Jenkins lub Bitrise może ułatwić ciągłą integrację i dostarczanie.
Następnie będziesz potrzebować platformy kontroli źródła do śledzenia i zarządzania poprawkami w kodzie. Platformy takie jak GitHub i SourceForge mogą Ci w tym pomóc.
Następnym krokiem w łańcuchu będzie system zarządzania konfiguracją, który pozwoli zachować spójność i jakość we wszystkich obszarach. Narzędzia takie jak Chef czy SaltStack to świetne miejsca na początek.
New Relic tworzy platformę do obserwacji wszystkich Twoich systemów i jest niezwykle przydatny do monitorowania tego rodzaju kompleksowej automatyzacji kodu.
Dobrym pomysłem może być również przyjrzenie się konfiguracji dynamicznej na wypadek, gdybyś musiał szybko skierować cały zautomatyzowany system w nowym kierunku.
Wdrażanie DevOps dla małych zespołów i małych organizacji
Nie martw się, że Twój zespół lub firma jest zbyt mała, aby skutecznie wdrażać DevOps. Zamiast tego pomyśl o tych narzędziach jak o stole w formie bufetu, z którego możesz czerpać pomysły organizacyjne.
Żadna organizacja, bez względu na jej wielkość, nie ucierpi z powodu większej komunikacji, większej odpowiedzialności oraz bardziej szczegółowego śledzenia zmian.