Close

Narzędzia DevOps

Wybierz narzędzia dla każdej fazy cyklu życia DevOps.


Otwarty łańcuch narzędzi

DevOps to kolejna faza ewolucji metodyk Agile. Zmiana kulturowa przynosząca współpracę między zespołami programistycznymi i operacyjnymi. DevOps to praktyka, która obejmuje zmianę kulturową, nowe zasady zarządzania i narzędzia technologiczne, które ułatwiają wdrażanie najlepszych rozwiązań.

Jeśli chodzi o łańcuch narzędzi DevOps, organizacje powinny szukać narzędzi, które usprawniają współpracę zespołową, ograniczają przełączanie kontekstu, wprowadzają automatyzację oraz umożliwiają wgląd i monitorowanie w celu szybszego dostarczania oprogramowania lepszej jakości.

Istnieją dwa podstawowe podejścia do łańcucha narzędzi DevOps: łańcuch kompleksowy lub otwarty. Kompleksowy łańcuch narzędzi DevOps zapewnia kompletne rozwiązanie, które zwykle nie integruje się z narzędziami innych firm. Otwarty łańcuch narzędzi można dostosować do potrzeb zespołu za pomocą różnych narzędzi. Atlassian jest zdania, że otwarty łańcuch narzędzi jest najlepszym podejściem, ponieważ można go dostosować do unikatowych potrzeb organizacji za pomocą najlepszych narzędzi. Zastosowanie tego podejścia często prowadzi do przyspieszenia prac i skraca czas wprowadzania produktów na rynek.

Przeczytaj więcej o łańcuchach narzędzi DevOps.

Niezależnie od typu łańcucha narzędzi DevOps stosowanego przez organizację, w procesie DevOps muszą być używane odpowiednie narzędzia w odniesieniu do kluczowych faz cyklu życia DevOps:

  • Planowanie
  • Kompiluj
  • Ciągła integracja i wdrażanie
  • Monitorowanie
  • Obsługa
  • Ciągłe informacje zwrotne

Dzięki otwartemu łańcuchowi narzędzi DevOps wybrane narzędzia odnoszą się do wielu etapów cyklu życia DevOps. W poniższych sekcjach przedstawiamy wybór najpopularniejszych narzędzi DevOps, jednak biorąc pod uwagę charakter rynku, ta lista często się zmienia. Dostawcy dodają nowe możliwości, które pozwalają na objęcie większej liczby etapów cyklu życia DevOps, nowe integracje są ogłaszane co kwartał, a w niektórych przypadkach dostawcy konsolidują oferty, aby skupić się na konkretnym problemie użytkowników.


Planowanie

Logo Jira Software Logo Confluence Logo Slack

Czerpiąc z podręcznika Agile, polecamy narzędzia, które umożliwiają zespołom programistycznym i operacyjnym podział pracy na mniejsze, łatwe do zarządzania kawałki w celu przyspieszenia wdrożeń. Dzięki temu można szybciej poznać opinie użytkowników i na ich podstawie zoptymalizować produkt. Szukaj narzędzi, które umożliwiają planowanie sprintów, śledzenie zgłoszeń i współpracę, takich jak Jira.

Inną dobrą praktyką jest ciągłe zbieranie informacji zwrotnych od użytkowników, organizowanie ich w praktyczne dane wejściowe i ustalanie priorytetów działań dla zespołów programistycznych. Szukaj narzędzi, które zachęcają do prowadzenia „asynchronicznej burzy mózgów” (jeśli chcesz). Każdy pracownik powinien mieć możliwość udostępniania i komentowania wszystkiego: pomysłów, strategii, celów, wymagań, harmonogramów i dokumentacji.

Nie zapomnij też o integracjach i flagach funkcji. Jakikolwiek zakres dla funkcji lub projektu wybierzesz, powinien on być przekształcony w historyjki użytkowników w backlogu prac programistycznych. Flagi funkcji są instrukcjami warunkowymi w bazie kodu, które umożliwiają zespołom włączanie i wyłączanie funkcji.

Aby uzyskać więcej informacji na temat tej fazy, zapoznaj się z tym wpisem autorstwa menedżerów produktów Atlassian dotyczącym porządkowania i priorytetyzacji backlogów.


Kompiluj

Logo Kubernetes Logo Docker

Środowiska identyczne z produkcyjnymi na potrzeby prac programistycznych:

O ile Puppet i Chef przynoszą korzyści przede wszystkim zespołom operacyjnym, programiści używają narzędzi typu open source, takich jak Kubernetes i Docker, do aprowizacji poszczególnych środowisk programistycznych. Pisanie kodu w oparciu o wirtualne, jednorazowe repliki środowiska produkcyjnego pozwala przyspieszyć pracę.

Kiedy każdy członek zespołu pracuje w identycznie aprowizowanych środowiskach, powiedzenie „na moim komputerze działa!” przestaje być irytująco zabawne, ponieważ jest to prawda.

Logo Ansible Logo Chef Logo Docker Logo Puppet Logo Terraform

Infrastruktura jako kod:

Programiści tworzą modułowe aplikacje, ponieważ są one bardziej niezawodne i łatwiejsze w utrzymaniu. Dlaczego więc nie rozszerzyć tego podejścia na infrastrukturę informatyczną? Takie rozwiązanie może być trudne do zastosowania w przypadku systemów, ponieważ te ciągle się zmieniają. Obejściem tego problemu jest używanie kodu do aprowizacji.

Infrastruktura jako kod oznacza, że ponowna aprowizacja jest szybsza niż naprawa — oraz bardziej spójna i powtarzalna. Oznacza to również, że można łatwo uruchomić różne warianty środowiska programistycznego o podobnej konfiguracji jak środowisko produkcyjne. Aprowizowany kod można stosować i stosować ponownie, aby ustawić na serwerze znany punkt odniesienia. Może być on przechowywany w systemie kontroli wersji. Można go testować, włączyć do CI (ciągłej integracji) i równolegle recenzować.

Kiedy wiedza instytucjonalna jest „skodyfikowana” w kodzie, zapotrzebowanie na wykazy procedur i dokumentację wewnętrzną spada. Pojawiają się za to powtarzalne procesy i niezawodne systemy.

Logo Bitbucket Logo Github Logo GitLab

Kontrola źródła i kodowanie oparte na współpracy:

Niezwykle ważną kwestią jest kontrola nad kodem źródłowym. Narzędzia do kontroli źródła ułatwiają przechowywanie kodu w różnych łańcuchach, dzięki czemu możesz zobaczyć każdą zmianę i łatwiej współpracować dzięki udostępnianiu tych zmian. Zamiast czekać na decyzję rady ds. zatwierdzania zmian przed wdrożeniem do środowiska produkcyjnego, można poprawić jakość kodu i wydajność dzięki przeprowadzaniu przeglądu równoległego za pośrednictwem pull requestów.

Nie wiesz, czym są pull requesty? Pull requesty informują zespół o zmianach wypchniętych do gałęzi programowania w repozytorium. Dzięki nim zespół może następnie przejrzeć proponowane zmiany i omówić modyfikacje przed włączeniem ich do linii głównego kodu. Pull requesty poprawiają jakość oprogramowania, co skutkuje mniejszą ilością błędów/incydentów oraz związanym z tym ograniczeniem kosztów operacyjnych i przyspieszeniem prac programistycznych.

Narzędzia do kontroli źródła powinny umożliwiać integrację z innymi narzędziami, co pozwala na połączenie różnych części procesu tworzenia i dostarczania kodu. Dzięki temu można ustalić, czy kod funkcji jest uruchomiony w środowisku produkcyjnym. W przypadku incydentu kod można pobrać, aby wyjaśnić, gdzie tkwi problem.


Ciągła integracja i dostarczanie

Logo Jenkins Logo AWS Logo Bitbucket Logo CircleCILogo Snyk Logo Sonarsource

Ciągła integracja:

Ciągła integracja jest praktyką polegającą na rejestrowaniu kodu we współdzielonym repozytorium kilka razy dziennie i każdorazowym testowaniu go. W ten sposób można automatycznie wykrywać problemy na wczesnym etapie, naprawiać błędy, gdy jest to najłatwiejsze, i udostępniać użytkownikom nowe funkcje tak szybko, jak to możliwe.

Przegląd kodu przy pomocy pull requestów wymaga tworzenia gałęzi i jest obecnie niezwykle popularny. Głównym celem DevOps jest utworzenie przepływu pracy, który skutkuje zmniejszeniem liczby gałęzi i przyspieszeniem pracy nad nimi oraz pozwala zachować rygorystyczne testowanie bez ograniczenia szybkości programowania.

Szukaj narzędzi, które automatycznie stosują testy do gałęzi programowania i dają możliwość wypychania kodu do gałęzi głównej po pomyślnej kompilacji. Jednocześnie dzięki prostej integracji otrzymujesz ciągłe informacje zwrotne za pośrednictwem alertów na czacie w czasie rzeczywistym, które przesyła Twój zespół.

Zobacz, jak Bitbucket Pipelines ułatwia automatyzację kodu — od testów do wdrożenia produkcyjnego.

Logo Mabl Logo Sauce Labs Logo Xray Logo Zephyr

Testowanie:

Narzędzia do testowania obejmują wiele funkcji i możliwości, w tym testowanie eksploracyjne, zarządzanie testami i orkiestracja. Jednak w przypadku łańcucha narzędzi DevOps niezbędną funkcją jest automatyzacja. Zautomatyzowane testowanie opłaca się w dłuższej perspektywie, gdyż przyspiesza cykl tworzenia i testowania oprogramowania. A w środowisku DevOps jest ważne także z innego powodu — pozwala na zwiększenie świadomości.

Automatyzacja testów pozwala poprawić jakość oprogramowania i zmniejszyć ryzyko dzięki przeprowadzaniu testów na wczesnym etapie i z dużą częstotliwością. Zespoły programistyczne mogą wielokrotnie wykonywać zautomatyzowane testy, które obejmują kilka obszarów, takich jak testowanie interfejsu użytkownika i obciążenia lub skanowanie zabezpieczeń. Generowane są również raporty i wykresy trendów, które pomagają zidentyfikować obszary ryzyka.

Ryzyko jest nieodłącznym elementem tworzenia oprogramowania i aby je ograniczyć, należy je przewidywać. Wyświadcz swojemu zespołowi operacyjnemu przysługę i wybierz się wraz z nim na poszukiwania. Poszukajcie narzędzi obsługujących ekrany prezentacji i pozwalających wszystkim zaangażowanym w projekt komentowanie wyników konkretnych kompilacji lub wdrożeń. Dodatkowe punkty powinny dostać narzędzia, które ułatwiają zaangażowanie pracowników działu operacyjnego w testowanie błyskawiczne i eksploracyjne.

Logo Jira Software

Pulpity wdrażania:

Jednym z najbardziej stresujących elementów dostarczania oprogramowania jest konieczność zebrania wszystkich informacji o zmianach, testach i wdrożeniach dotyczących nadchodzącego wydania w jednym miejscu. Ostatnią rzeczą potrzebną przed wydaniem jest długie zebranie poświęcone omówieniu aktualnego statusu prac. Właśnie tutaj mogą przydać się pulpity wydawania.

Szukaj narzędzi z pojedynczym pulpitem zintegrowanym z repozytorium kodu i narzędziami do wdrażania. Postaraj się znaleźć coś, co zapewnia pełny wgląd w ostrzeżenia dotyczące gałęzi, kompilacji, pull requestów i wdrożeń w jednym miejscu.

Logo Bitbucket Logo Zephyr

Zautomatyzowane wdrażanie:

Nie ma magicznego przepisu na zautomatyzowane wdrażanie, które mogłoby działać w przypadku każdej aplikacji i środowiska informatycznego. Częstym sposobem na początek jest przekształcenie wykazu procedur operacyjnych w skrypt wykonywalny cmd za pomocą języka Ruby lub bash. Sprawdzone praktyki inżynierskie są niezwykle ważne. Użyj zmiennych do wyodrębnienia nazw hostów — utrzymywanie niepowtarzalnych skryptów lub unikatowego kodu dla każdego środowiska nie jest wygodne (i nie rozwiązuje w pełni problemu). Utwórz metody narzędziowe lub skrypty, aby uniknąć zduplikowanego kodu. I korzystaj z recenzji współpracowników, aby sprawdzać poprawność skryptów.

Spróbuj najpierw zautomatyzować wdrożenia w środowisku najniższego poziomu, w którym najczęściej będziesz korzystać z tej automatyzacji, a następnie zreplikuj ją aż do środowiska produkcyjnego. Pozwoli to w najgorszym przypadku wyłowić różnice między środowiskami i uzyskać listę zadań pozwalających na ich standaryzację. Dodatkową korzyścią jest to, że standaryzacja wdrożeń poprzez automatyzację zmniejsza występowanie zmian konfiguracji serwera między środowiskami i w ich obrębie.


Obsługa

Logo AppDynamics Logo Datadog Logo Slack Logo SplunkLogo New Relic Logo Opsgenie Logo Pingdom Logo Nagios Logo Dynatrace Logo Hosted Graphite Logo Sumo Logic

Monitorowanie wydajności aplikacji i serwerów:

Istnieją dwa rodzaje monitorowania, które powinny zostać zautomatyzowane: monitorowanie serwerów i monitorowanie wydajności aplikacji.

Ręczne zaznaczenie pola wyboru lub przeprowadzenie testu interfejsu API jest wystarczające w przypadku kontroli wyrywkowej. Jednak aby zrozumieć trendy i ogólną kondycję aplikacji (i środowisk), potrzebujesz oprogramowania, które monitoruje i rejestruje dane całodobowo. Bieżący wgląd jest kluczową funkcją dla skutecznych zespołów DevOps.

Szukaj narzędzi, które umożliwiają integrację z klientem czatu grupowego, aby alerty trafiały prosto do pokoju Twojego zespołu lub do pokoju dedykowanego incydentom.

Logo Jira Service Management Logo Jira SoftwareLogo Opsgenie Logo Statuspage

Śledzenie incydentów, zmian i problemów:

Kluczem do usprawnienia współpracy między zespołami DevOps jest zadbanie o to, aby miały wgląd w te same prace. Co się dzieje w przypadku zgłaszania incydentów? Czy są powiązane z problemami z oprogramowaniem i da się je śledzić z poziomu tych problemów? Czy po wprowadzeniu zmian są one powiązane z wydaniami?

Nic nie utrudnia współpracy zespołów programistycznych z operacyjnymi bardziej niż sytuacja, w której incydenty oraz projekty programistyczne są śledzone w różnych systemach. Szukaj narzędzi, które pozwalają na pracę z incydentami, zmianami, problemami i projektami oprogramowania na jednej platformie, dzięki czemu można szybciej identyfikować i rozwiązywać problemy.


Ciągłe informacje zwrotne

Logo GetFeedback Logo Slack Logo Jira Service Management Logo Pendo

Klienci wiedzą od razu, czy Twój produkt jest dobry — wystarczy ich wysłuchać. Ciągłe informacje zwrotne obejmują zarówno kulturę i procesy, które pozwalają regularnie zbierać opinie, jak i narzędzia do wyciągania wniosków na ich podstawie. Praktyki dotyczące ciągłych informacji zwrotnych dotyczą gromadzenia i przeglądania danych NPS, ankiet po rezygnacji z produktu, raportów o błędach, zgłoszeń pomocy technicznej, a nawet tweetów. W kulturze DevOps wszyscy członkowie zespołu produktowego mają dostęp do komentarzy użytkowników, ponieważ są one pomocne na każdym etapie procesu — od planowania wydania po sesje testów eksploracyjnych.

Szukaj aplikacji, które umożliwiają integrację Twojego narzędzia czatu z ulubioną platformą do przeprowadzania ankiet, aby otrzymywać informacje zwrotne w stylu NPS. Z czatem można również zintegrować Twittera i/lub Facebooka, aby uzyskiwać opinie w czasie rzeczywistym. Aby uzyskać bardziej szczegółowy wgląd w informacje zwrotne pochodzące z mediów społecznościowych, warto zainwestować w platformę zarządzania mediami społecznościowymi, która pozwala generować raporty na podstawie danych historycznych.

Analizowanie i wykorzystanie informacji zwrotnych może z pozoru spowalniać tempo prac programistycznych w krótkim okresie, ale w dłuższej perspektywie jest bardziej efektywne niż wydawanie nowych funkcji, których nikt nie chce.


Podsumowując…

W Atlassian zdajemy sobie sprawę, jak ważne jest posiadanie łańcucha narzędzi DevOps, który można zintegrować z ulubionymi narzędziami zespołów programistycznych i operacyjnych. Dlatego opracowaliśmy naszą platformę DevOps, aby umożliwić integrację z ponad 171 wiodącymi dostawcami zewnętrznymi oraz pozwolić Ci na podejmowanie najlepszych decyzji w zakresie wszystkich używanych narzędzi. Rozwiązanie DevOps nie powinno być kupowane od jednego dostawcy — należy je zbudować.

Aby rozpocząć, wypróbuj bezpłatnie rozwiązanie DevOps firmy Atlassian.


Zalecane lektury

Dodaj te zasoby do zakładek, aby dowiedzieć się więcej na temat rodzajów zespołów DevOps lub otrzymywać aktualności na temat metodyki DevOps w Atlassian.

Ilustracja DevOps

Społeczność DevOps

Ilustracja DevOps

Warsztaty symulacyjne

Ilustracja mapy

Zacznij korzystać za darmo

Zarejestruj się, aby otrzymywać nasz newsletter DevOps

Thank you for signing up