Część I
Atlassian to jedna z najszybciej rozwijających się firm technologicznych na świecie, której rozwiązania zwiększają potencjał i efektywność pracy zespołów. Jest to także jeden z największych liderów oprogramowania wspierającego deweloperów stosujących dobre praktyki DevOps. Tworzy produkty umożliwiające zarządzanie zwinną metodyką programowania w taki sposób, aby była ona jak najbardziej wydajna i terminowa.
Na początku wypadałoby sobie zadać pytanie, czym jest DevOps i komu ma służyć? DevOps ma na celu poprawę współpracy zespołów rozwoju i utrzymania. Wybór odpowiednich narzędzi pomaga wzmocnić transformacje procesowe, z którymi zmagają się zespoły IT, przyjmując zwinne metodyki tworzenia oprogramowania zmierzające do znalezienia wspólnego języka między iteracyjnie działającymi w Scrumie deweloperami a klientami oczekującymi jak najszybszego i najlepiej skomunikowanego werbalnie rozwiązania spraw przez nich zgłaszanych. W miarę dzielenia projektów na mniejsze etapy coraz bardziej płynny staje się ich workflow. Dzięki odpowiedniej strukturze i procesom umożliwiającym dostosowanie się do mniejszych zadań można tworzyć funkcje, których potrzebują klienci i uwzględnić ich opinie w celu przeprowadzenia kolejnej aktualizacji oprogramowania. DevOps najlepiej wyobrazić sobie na przykładzie organizacji, w których wdrażanie oprogramowania podlega nieustannym zmianom w środowiskach produkcyjnych i jest szczególnie wrażliwe ze względu na główne procesy biznesowe, relacje z klientami oraz czas. Takie aspekty najczęściej dotyczą organizacji z sektora bankowego, mediów i telekomunikacji oraz portali internetowych i e-commerce.
Zmiany w projektach informatycznych to chleb powszedni. Metodyka DevOps opiera się na współpracy dwóch obszarów i wzajemnego zrozumienia swoich potrzeb w zakresie zobowiązań, ograniczeń i wymagań. Chodzi o to, aby stworzyć takie środowisko, które jest w stanie podołać nieustannym modyfikacjom, które stosuje uszczuplone procesy dla skomplikowanych wdrożeń i bazuje na kulturze pracy, charakteryzującej się wysoką wydajnością. Cała metodyka takiej pracy przyczynia się do szybkiego wprowadzenia usług i produktów do obiegu, a także pozwala zaoszczędzić czas i pieniądze. Dobrze realizowany DevOps praktycznie wyklucza przerwy w pracy zespołów tworzących, pozwala uniknąć problemów z wdrożeniami oraz w skrajnych przypadkach konieczności przeprowadzania roll-backs, zawierających ogromną ilość zmian. Wszystkie rozwiązania w miarę możliwości wprowadzamy bezpiecznie i małymi etapami. Podołanie takim wyzwaniom niesie za sobą konieczność „uzbrojenia się” w odpowiednie narzędzia wspierające procesy. Mają one służyć całemu zespołowi do sprawnej współpracy oraz zapewniać najwyższą jakość produktów i usług. Główną filozofię DevOps stanowi fundament niezakłóconej współpracy programistów, działów utrzymania i wsparcia. Gdybyśmy mieli zobrazować cały cykl tworzenia oprogramowania w ramach DevOps to najlepiej przedstawić to w formie lemniskaty:
Dla poszczególnych elementów Atlassian przygotował wsparcie użytecznych narzędzi. Przejdźmy więc przez procesy wytwarzania, wdrażania i utrzymywania produktu w metodyce DevOps z wykorzystaniem narzędzi dostarczanych przez Atlassian.
Jira Software to zdecydowanie najbardziej powszechne i najlepsze narzędzie do rozwoju oprogramowania wykorzystywane w zespołach pracujących z metodykami zwinnymi. Jest to oprogramowanie, które zapewnia najlepsze w swojej klasie narzędzia do zwinnego wytwarzania oprogramowania oraz pogłębionej integracji. Za pomocą Jira Software zespoły mogą planować, śledzić, przygotować wdrożenia i raportować wszystko to, co jest niezbędne w procesie wytwórczym. Jira Software to narzędzie polecane szczególnie dla organizacji, w których występują problemy z przejrzystością działań i uporządkowaną komunikacją oraz słabym poziomem wykorzystania zwinnych metod tworzenia. To także remedium na brak możliwości oceny wydajności zespołów miarodajnym narzędziem. Jira Software pozwala wykorzystać tablice scrum oraz kanban i ma możliwość customizowania przepływu pracy, a także udostępnia panel kontrolny Release hub i daje szerokie możliwości raportowania. Jej integracja z pozostałymi narzędziami Atlassian oraz możliwość rozszerzania funkcjonalności, czyni z niej najlepszy system dla funkcjonowania zespołów programistycznych. Ponadto Jira Software integruje się z repozytoriami kodu (Bitbucket) oraz narzędziami continuous integration, dzięki czemu widzimy wszystkie zmiany w kodzie, jakie dotyczą konkretnych zgłoszeń. Na tym etapie DevOps wykorzystujemy również oprogramowanie Atlassian do tworzenia bazy wiedzy za pomocą Confluence. Confluence daje możliwość tworzenia, udostępniania i jednoczesnej pracy nad wymaganiami, pomysłami oraz gromadzenia informacji zwrotnej w jednym miejscu, co znacznie przyspiesza realizację projektów. Platforma Confluence jest bardzo elastyczna i przydatna do organizacji pracy oraz wpływa na przejrzystość obecnych realizacji. Natomiast łatwość publikowania, uzyskiwania informacji na temat realizowanych projektów, ułatwia zarządzanie procesami tworzenia oprogramowania i zapewnia równą dostępność wiedzy dla wszystkich. Dzięki Confluence łączymy szybkość, jaką daje samodzielne tworzenie oprogramowania z zaletami wspólnej pracy zespołowej. W ramach tej aplikacji można tworzyć notatki na spotkania, plany projektów, wymagania dotyczące oprogramowania, a także dołączać multimedia i dynamiczne treści. Confluence ma intuicyjny i elastyczny edytor stron i pozwala na śledzenie zmian, dokumentację prac i produktów, elastyczne wyszukiwanie, a także podgląd załączników dodanych do stron. Aplikacja tworzy drzewiastą strukturę stron dla bazy wiedzy oraz podpowiada wybrane artykuły klientom Jira Service Desk, dzięki czemu mogą samodzielnie rozwiązywać podstawowe problemy. Confluence jest dobrym rozwiązaniem pod kątem przechowywania specyfikacji wymagań, instrukcji, dokumentacji i bazy wiedzy dla klientów Service Desk. Oczywiście Atlassian zadbał o to, aby administrator w Confluence miał pełną kontrolę nad uprawnieniami związanymi z dostępem i panował nad widocznością treści i zwracanymi przez wyszukiwarkę wynikami.
2. BUILD – JIRA SOFTWARE, BITBUCKET, HIPCHAT
Bitbucket to narzędzie obsługujące repozytoria Git i Mercurial, które pozwala na sprawną i skalowalną pracę z rozproszonymi systemami kontroli wersji, udostępniając intuicyjny, webowy interfejs. Bitbucket posiada prosty mechanizm do code review, umożliwiając prowadzenie dyskusji bezpośrednio w wybranych miejscach kodu źródłowego poprzez dodawanie komentarzy w jego poszczególnych fragmentach. Narzędzie ma także wbudowaną opcję konfiguracji tego, w jaki sposób odbywa się akceptacja zmian przed scaleniem gałęzi kodu. Używając development panelu dostarczany przez Jira Software użytkownicy mają możliwość stworzenia nowego brancha już z poziomu zgłoszenia. Jego nazwa uzupełnia się automatycznie, wykorzystując dane ze zgłoszenia (summary oraz key), na podstawie których zadanie jest obustronnie linkowane przez Jira Software oraz Bitbucket. Ułatwia to późniejsze wyszukiwanie zmian dotyczących konkretnego zadania oraz utrzymanie porządku w repozytorium. Także w dalszych etapach prac nad oprogramowaniem korzystamy z tego połączenia, gdy zaimplementowane w narzędziu triggery potrafią reagować na zdarzenia (takie jak utworzenie pull request wykorzystywanego w code review) i automatycznie procesować zadanie wraz z postępem prac deweloperów. Wspaniała integracja pomiędzy Bitbucket i Jira Software prowadzi do automatycznej aktualizacji wszystkich działań związanych z Bitbucket. Deweloperzy nie muszą przełączać się między aplikacjami, aby dokładnie wiedzieć, co właściwie dzieje się w zespole. Bitbucket w edycji Cloud ma również łatwą w użyciu funkcję Pipeline, która nie wymaga konfiguracji serwerów CI, ani repozytoriów do synchronizacji. Pipeline uruchamiamy jednym kliknięciem. Dla klientów wymagających szczególnej kontroli, indywidualnego dostosowania oraz zaawansowanej konfiguracji Atlassian oferuje Bitbucket w wersji serwerowej, hostowanej na infrastrukturze klienta. Dla przedsiębiorstw o dużej skali, potrzebujących zachować dużą wydajność oraz High Availability Bitbucket jest dostępny w modelu Data Center. Do kogo w szczególności adresowany jest Bitbucket? Dla zespołów deweloperskich pracujących w sposób rozproszony oraz dla wszystkich, którzy chcą prowadzić uproszczony, szybki i intuicyjny code review. Powinniśmy pamiętać, że na każdym etapie pracy nad oprogramowaniem, mamy do dyspozycji komunikator HipChat.
Już teraz zapraszam na drugą część mojego artykułu który ukaże się wkrótce na moim profilu, w której poruszę zagadnienia continuous integration, deploy, operate i continuous feedback. Śledź proszę moje publikacje na blogu firmowym Deviniti oraz na profilu Linkedin.
Masz pytania lub planujesz wdrożyć DevOps w swojej organizacji? Skontaktuj się ze mną i porozmawiajmy o tym jak możemy Ci pomóc.
Leave a Comment