Wiele firm developerskich i zespołów programistycznych korzysta z metodyki DevOps. Co to tak naprawdę oznacza?
Udostępnij!
Termin „DevOps” powstał z połączenia słów „development” (programowanie) oraz „operations” (operacje) i określa metodykę spajającą ludzi, procesy i technologie, tak aby umożliwić ciągłe dostarczanie wartości klientom.
Co DevOps oznacza dla zespołów? Dzięki tej metodyce, funkcjonujące do tej pory osobno działy – odpowiedzialne za programowanie, operacje, inżynierię jakości i zabezpieczenia — mogą koordynować swoje działania i współpracować w celu tworzenia lepszych, bardziej niezawodnych produktów. Stosując kulturę, narzędzia i praktyki DevOps, zespoły zyskują możliwość lepszego reagowania na potrzeby klientów, podnoszą swoją wydajność, zwiększają zaufanie do tworzonych aplikacji i szybciej realizują cele biznesowe, takie jak skuteczne wejście na rynek, dostosowanie się do jego wymogów i utrzymanie konkurencyjności oraz stabilność i niezawodność rozwiązań.
Kluczowym elementem wdrażania DevOps w organizacjach jest wybór odpowiednich narzędzi wspierających pracę zespołów. Od lat dostarcza je firma Microsoft – kiedyś jako Team Foundation Server, dzisiaj natomiast Azure DevOps.
Azure DevOps to grupa kilku usług:
- Azure Boards – usługa pozwalająca śledzić postępy prac dzięki tablicom Kanban, listom prac oraz pulpitom nawigacyjnym zespołów. Umożliwia również tworzenie bardzo rozbudowanych raportów i zwiększa produktywność. Z Azure Boards można połączyć repozytorium kodu i łączyć zatwierdzenia czy żądania ściągnięcia kodu z elementami roboczymi.
- Azure Pipeline – potoki zadań hostowanych w chmurze dla systemów Windows, Linux lub MacOS. Automatyzują kompilacje i wdrożenia rozwiązań.
Usługa działa z dowolnym językiem i platformą (przykładowe – Node.js, Python, Java, PHP, Ruby, C/C++,.NET, Android, iOS).
Używając Azure Pipeline, można łatwo kompilować i wypychać obrazy do rejestru kontenerów, np. Azure Container Registry. Za pomocą Azure Pipeline da się również wdrożyć własne rozwiązania w dowolnym środowisku np. Azure, AWS czy GCP z wykorzystaniem CI/CD.
- Azure Repos – hostowana w chmurze usługa nieograniczonych prywatnych repozytoriów na potrzeby projektów. Zapewnia dostęp do prywatnego repozytorium Git z możliwością skalowania i pozwala nawiązywać z nim bezpieczne połączenia z dowolnego środowiska lub klienta. Posiada zaawansowane mechanizmy wyszukiwania pozwalające zawsze znaleźć w bazie kodu to co akurat jest potrzebne.
- Azure Test Plans – testowanie ręczne i eksploracyjne. Wysoka jakość produktu wymusza na organizacjach ciągłe testowanie nawet najmniejszych fragmentów kodu. Azure Test Plans znacznie to ułatwia. Zaplanowane testy ręczne można wykonywać za pomocą skryptów, a następnie kompleksowo je śledzić i monitorować. Testy eksploracyjne maksymalizują jakość tworzonego oprogramowania.
- Azure Artifacts – tworzenie, hostowanie i udostępnianie pakietów oprogramowania. Zaledwie kilka kliknięć pozwala w pełni skonfigurować zarządzalną funkcję zarządzania pakietami możliwą do wykorzystania w potokach CI/CD. Pozwala zarządzać pakietami npm, Maven, NuGet, Python, udostępniać kod między zespołami i organizacjami, wykorzystywać pakiety w dowolnych potokach i elastycznie zarządzać całością.
Każda z wymienionych usług jest niezależna i można używać ich osobno, prawdziwa siła całego rozwiązania objawia się jednak dopiero przy korzystaniu ze wszystkich naraz. Przykładowo, z poziomu tworzenia Pull Requesta można podpiąć zadania do Azure Boards.
Trzeba pamiętać, że platforma Azure DevOps jest bardzo młoda i ciągle się rozwija. Jeśli nie chce się przegapić ciekawych nowości, warto się z nią bliżej zaprzyjaźnić.