DevOps z Atlassian – efektywne wsparcie procesu tworzenia oprogramowania – część II

Atlassian, Devops, Zarządzanie

14 czerwca 2018 • 16 min czytania

    Atlassian tworzy produkty umożliwiające zarządzanie zwinną metodyką programowania w taki sposób, aby była ona jak najbardziej wydajna i terminowa. W pierwszej części artykułu skupiłem się na zagadnieniach związanych z fazami planowania oraz budowy aplikacji. W ramach tej publikacji poruszę tematykę narzędzi wspierających fazy: continuous integration, deploy, operate, continuous feedback.

    CONTINUOUS INTEGRATIONBamboo, Bitbucket

    Teraz rozpoczyna się etap ciągłej integracji. Na tym etapie produkt powinien zacząć działać i przynosić ważne informacje zwrotne. Continuous integration to praktyka polegająca na ciągłej integracji zmian wprowadzanych przez deweloperów. Takie rozwiązanie pozwala zapobiegać konieczności łączenia ogromnych paczek kodu dotyczących złożonych funkcjonalności, których scalanie może zajmować długie godziny.

    Po każdej zmianie w repozytorium projekt jest przebudowywany i przeprowadzane są testy jednostkowe. Ciągłe testowanie aplikacji bardzo się opłaca, ponieważ przyspiesza cały cykl programowania, a przede wszystkim zwiększa świadomość tego, co się dzieje z naszym projektem. Oddawanie projektu i weryfikacja jego działania w małych etapach znacznie ułatwia kontrolę nad całym procesem. To niezbędny element DevOps.  

    Ponieważ procesy ciągłego tworzenia nowych gałęzi kodu i ich scalania (branch&merge) są nieco monotonne, każde narzędzie, które wspiera ten proces, będzie mile widziane. Atlassian dedykuje odpowiednie rozwiązanie dla powyższych czynności tak, aby utrzymać rygor testowy oraz szybkość wdrażania tworzonych aplikacji w ramach CI. 

    Bamboo ma funkcje służące automatyzacji procesów związanych z ciągłą integracją. Jest to w pełni profesjonalne, skalowalne narzędzie do CI, w dodatku świetnie skomunikowane z pozostałymi narzędziami Atlassian. Bamboo jest w stanie automatycznie, po wykryciu zdarzenia w repozytorium kodu zbudować aplikację, wykonać testy oraz umieścić ją w na dowolnym środowisku testowym lub produkcyjnym. 

    Bamboo to aplikacja szczególnie polecana dla zespołów, które chcą przyspieszenia wykonywania build`ów, które nie mają rozwiązania automatycznie budującego kod z repozytorium, a także nie posiadają serwerów, wykonujących automatyczne testy oraz zorientowanych na automatyzacje release na wybrane środowiska.

    Więcej informacji o niesamowitych korzyściach z używania Bamboo w ramach Continuous Integration uzyskasz w tym miejscu.

    DEPLOYBamboo, Jira Software

    Jedną z bardziej stresujących rzeczy w trakcie przygotowania oprogramowania do wdrożenia jest zebranie wszystkich wyników, zmian, testów i informacji w jednym miejscu. I na pewno jedną z ostatnich rzeczy, na jaką masz ochotę, jest tworzenie kompleksowych raportów zawierających dosłownie wszystko, co potrzebne.  

    Rozwiązaniem tego problemu są aplikacje oferujące zintegrowane pulpity obsługujące repozytoria oraz narzędzia wdrożeniowe. Najlepiej, jeśli jest to takie oprogramowanie, które daje pełną widoczność brachów, buildów, pull requests oraz innych zgłoszeń dotyczących wdrożenia. Tutaj ponownie najlepszym rozwiązaniem jest Jira Software. To narzędzie zapewnia możliwość śledzenia tego, co dzieje się z naszą nową aplikacją oraz weryfikacji i wglądu w historię każdej zmiany.

    OPERATEJira Service Desk, Statuspage, Jira Software, Confluence

    Kluczem do odblokowania współpracy między zespołami jest upewnienie się, że oglądają tę samą pracę. Co dzieje się po zgłoszeniu problemu? Czy problemy można sprawnie identyfikować i powiązać ze sobą? 

    Istnieją dwa rodzaje monitoringu, które powinny być zautomatyzowane: monitorowanie serwera i monitorowanie wydajności aplikacji. Testowanie API jest jak najbardziej sensowne, jeśli chodzi o wybiórczy monitoring, ale żeby zrozumieć trend, w jakim kierunku podąża rozwijane oprogramowanie oraz jego ogólny stan, potrzeba oprogramowania, które nasłuchuje i zapisuje dane dwadzieścia cztery godziny na dobę, przez siedem dni w tygodniu.

    Istnieją różne aplikacje, które temu służą m.in. New Relic, Splunk, Nagios. Jeśli chodzi o produkty Atlassian, to w ofercie znajdziemy ciekawą aplikację Statuspage, którą można zintegrować z Customer Portalem w Jira Service Desk. Statuspage może pobierać dane np. z New Relic i wyświetlać je użytkownikowi, pokazując u góry portalu informację o tym, że został wykryty jakiś problem. Poinformowanie użytkowników o już wykrytym incydencie i możliwość wglądu w status prac nad jego rozwiązaniem zmniejsza szansę na tworzenie nowych zgłoszeń dotyczących tego samego problemu. 

    Atlassian dostarcza rozwiązanie bazy wiedzy – Confluence, który również doskonale integruje się z portalem klienta oferowanym przez Jira Service Desk. Połączenie dwóch aplikacji pomaga w podpowiadaniu potencjalnych rozwiązań oraz stworzeniu self-service dla popularnych problemów, których rozwiązanie nie wymaga specjalistycznej wiedzy.

    Konsekwencją takiego podejścia jest obniżenie liczby tworzonych zgłoszeń i konieczności ich obsługi przez zespół agentów w sytuacji, w której baza wiedzy oferuje dokładny opis postępowania oraz sposobu rozwiązywania problemów przez samych użytkowników. W przypadku pojawienia się zgłoszenia, które wymaga reakcji deweloperów agent może stworzyć odpowiednie zgłoszenie w projekcie Jira Software i monitorować jego status.

    CONTINUOUS FEEDBACK – HipChat, Jira Service Desk

    W tej fazie klient daje nam rozbudowany feedback obejmujący dane NPS, ankiety Churn (powody rezygnacji, porzucania aplikacji), raporty o błędach, zgłoszenia do service desk, a nawet tweety w mediach społecznościowych. Wszystko jest weryfikacją tego, czy to co stworzyliśmy, odpowiada jego potrzebom.

    Dzięki Jira Service Desk możesz zarządzać wszystkimi zapytaniami klienta w ramach continuous feedback w twoim zespole programistycznym. Przy każdej czynności używasz HipChat Atlassiana, aby współpraca z zespołem przebiegała płynnie i w czasie rzeczywistym szczególnie, gdy poszczególnych zgłoszeń jest wiele.

    Najlepsze rozszerzenia dla Jira w kontekście DevOps

    Na koniec pragnę zwrócić uwagę na trzy rozszerzenia w Jira, które mogą przydać się zespołom pracującym nad tworzeniem nowego oprogramowania w ramach DevOps, przy wsparciu produktów Atlassian. Jeśli chodzi o przedstawione narzędzia, to powinniśmy wziąć pod uwagę takie rozszerzenie jak Extension dla Jira Service Desk. Dodatek usprawnia funkcjonalności portalu klienta poprzez wprowadzenie rozszerzeń, takich jak udostępnianie poszczególnych request type’ów dla wybranych grup, dynamiczne ukrywanie pól i widoczne dla klienta metryki SLA.  Kolejnym rozszerzeniem zasługującym na uwagę jest Issue Templates, które pozwala na opracowywanie szablonów ułatwiających tworzenie gotowych zgłoszeń, automatyczne uzupełnianie pól, kopiowanie zgłoszeń oraz subtasków. Dodatek TestFLO jako nowoczesne zarządzanie testami aplikacji, które zapewnia planowanie testów, tworzenie szablonów, raportowanie oraz automatyzację. Dedykowane menedżerom zespołów testerskich oraz testerom.

    Coraz lepsze wykorzystanie narzędzi DevOps

    Atlassian tworzy narzędzia wspierające współpracę zespołów na każdym etapie cyklu rozwoju oprogramowania. Zestaw tych narzędzi jest stale wzbogacany o kolejne funkcje i dodatki. Obojętnie czy mamy do czynienia z małą firmą, czy dużą organizacją działania DevOps opierają się na integracji działów rozwoju i utrzymania. Ma to na celu wydatne przyspieszenie całego procesu i jego zautomatyzowanie niezależnie czy dotyczy małej grupy programistów, czy działów dużej korporacji.

    Wybór odpowiednich narzędzi wspierających działania DevOps jest kluczowy dla procesu operacyjnego programowania w IT, a produkty Atlassian odgrywają w nim niezwykle istotną rolę. Skontaktuj się proszę ze mną, jeśli chcesz dowiedzieć się więcej o możliwościach produktów Atlassian i wsparciu, jakie dzięki nim można uzyskać w zakresie realizacji DevOps.

    [contact-form-7 404 "Not Found"]