Narzędzia DevOps dla użytkowników Windows

Od środowisk deweloperskich IDE po narzędzia do testów, przedstawione niżej oprogramowanie znacznie ułatwi pracę w duchu DevOps.

Bez automatyzacji nie ma DevOpsa. Sposób wdrożenie automatyzacji – od procesu ciągłego dostarczania kodu po automatyzację testów – różnią się znacznie w zależności od firmy. Rozbieżności zaczynają się od systemu operacyjnego – Windows i Linux wymagają nieco innego podejścia. Nie każde narzędzie DevOps sprawdza się również dobrze w systemach Linux i Windows. Wprawdzie są specjaliści, którzy uważają, że można nimi zarządzać tak, jakby stanowiły jedną infrastrukturę. Owszem, taki jest cel. Jednak w firmach przyzwyczajonych do Windows to jest spory wyzwaniem.

Dlatego przedstawiamy przegląd kluczowych narzędzi DevOps, które są lepiej dostosowane do środowiska Windows. Niezależnie, czy chodzi o firmę korzystającą wyłączenie z Windows, czy o taką, w której pracuje zarówno Windows i Linux, te narzędzia okażą się niezastąpione w przypadku komputerów z Windows.

Zobacz również:

  • 7 praktyk devops poprawiających wydajność aplikacji

Środowisko programistyczne

Automatyzację w Devops osiąga się nie dzięki zarządzaniu poprzez graficzny interfejs, lecz z wykorzystaniem odpowiedniego kodu. Ten kod jest integralną częścią procesu tworzenia oprogramowania. Deweloperzy i inżynierowie Devops potrzebują środowiska programistycznego, które umożliwi im szybkie i efektywne edytowanie skryptów automatyzujących.

Visual Studio – to potężne narzędzie do Windows, ale w rosnącym stopniu także do innych platform. Ma wbudowane wsparcie dla języków C, C++, VB.Net, C oraz F. Poprzez odpowiednie rozszerzenia umożliwia programowanie także w innych językach.

Jednak Visual Studio jest dość drogie – koszt licencji to 500-1200 dolarów, ale narzędzie to można kupić taniej w ramach różnych programów Microsoftu. Oferuje integrację z wieloma usługami, jak Azure, AWS czy Hyper-V. Jednakże Visual Studio to znacznie więcej niż IDE (Integrated Development Environment). Jest to kompleksowy produkt oferujący wiele funkcji. Dla dewelopera Visual Studio może być niezbędne, ale dla osób zajmujących się DevOpsem jego złożoność może być wadą. Dlatego warto rozejrzeć się za innym środowiskiem programistycznym.

Visual Studio Code – to również świetne IDE. Lekkie i proste w porównaniu do Visual Studio, a również obsługuje wiele języków programowania. Oferuje podobne funkcje, co Visual Studio, np. możliwość korzystania z pluginów, kontrolę integracji i wiele innych. Visual Studio Code jest bezpłatne, co więcej, dostępny jest kod źródłowy, co oznacza, że można je samodzielnie modyfikować.

Ponieważ Visual Studio Code to nowe IDE, wiele funkcji dostępnych w dojrzałych platformach nie jest jeszcze w nim wbudowanych. Z drugiej jest to produkt intensywnie rozwijany i regularnie pojawiają się aktualizacje. Jest to świetny wybór dla osób, które szukają prostego narzędzia bez wielu dodatkowych funkcji.

Sapien PowerShell Studio – to dopracowane środowisko IDE, ale dostępne tylko do Windows i przeznaczone do pracy z PowerShellem. Może być traktowane jako zmiennik Visual Studio dla deweloperów PowerShell. Nie jest to jednak bezpłatne narzędzie – licencja kosztuje kilkaset dolarów. Jeśli w firmie PowerShell służy wyłącznie do realizacji zadań związanych z DevOpsem, a jednocześnie potrzebuje się dojrzałego, przetestowanego IDE, PowerShell Studio nie będzie dobrym wyborem.

Kontrola kodu źródłowego

W zmiennym środowisku kody aplikacji zmieniają się regularnie, a jednocześnie muszą być szybko dostarczane do użytkowników. Te zmiany powinny być rejestrowane w centralnym repozytorium, aby móc kontrolować zmiany i wycofywać je w razie wystąpienia problemów. Wraz z zagłębianiem się organizacji w DevOps, kontrola kodu źródłowego nabiera kluczowego znaczenia.

Microsoft Team Foundation Server (TFS) – to jedno z rozwiązań do kontroli kodu źródłowego, które integruje się z Visual Studio. Wprawdzie nie jest to wymóg technologiczny, ale z TFS najlepiej korzysta się właśnie z poziomu Visual Studio. Oprócz lokalnej kontroli kodu źródłowego, TFS obsługuje również repozytoria Git, co umożliwia programistom korzystającym z Git zespołową pracę nad kodem.

Microsoft oferuje TFS również w wersji chmurowej. Znana jako Visual Studio Team Services (VSTS), usługa chmurowa wydaje się być priorytetowa dla Microsoftu. Nowe funkcje są wprowadzane najpierw do VSTS, a dopiero później do wersji instalowanej lokalnie. Usługa VSTS jest dostępna bezpłatnie dla maksymalnie 5 użytkowników. Powyżej tej liczby pojawią się opłaty.

Z uwagi na integrację z innymi produktami i technologiami Microsoftu, firmy pracujące głównie w środowisku Windows mogą używać TFS nie tylko do kontroli źródeł, ale również do śledzenia zadań i zarządzania wersjami.

Git i GitHub – jest to obecnie najpopularniejsze repozytorium do kontroli źródeł. Oryginalnie powstały jako samodzielne repozytorium, serwis GitHub stał się bardzo popularny i obecnie umożliwia współpracę również z innymi środowiskami dystrybucji oprogramowania. Git i GitHub oferują klienta do systemu Windows. Można nawet znaleźć rozszerzenie wprowadzające obsługę PowerShella. Git jest bezpłatny, z kolei GitHub jest bezpłatny jako publiczne repozytorium, ale oferuje również płatny dostęp dla użytkowników korporacyjnych, którzy potrzebują prywatnych repozytoriów.

Dostarczanie kodu

Jedną z potencjalnych korzyści DevOpsa jest szybkie dostarczanie dobrej jakości kodu. Aby to było możliwe, organizacje muszą korzystać z wystandaryzowanych, przewidywalnych metod dostarczania kodu do użytkowników. Jest to realizowane z wykorzystaniem specjalnych kanałów.

Microsoft Team Foundation Server (TFS) – dobrze sprawdza się w środowisku Windows. TFS to jeden z kluczowych elementów DevOps w Windows. Wbudowane funkcje zarządzania wersjami sprawiają, że jest to świetny wybór w firmach, które w dużym zakresie korzystają z systemów operacyjnych Windows.

Jenkins – jest to kolejny, popularny produkt wśród osób praktykujących DevOps. Ten projekt open source to oprogramowanie, które umożliwia dostarczanie kodu od deweloperów do użytkowników. Umożliwia korzystanie z pluginów, których jest dostępna bardzo duża liczba.

Mimo że nie jest to produkt dedykowany do Windows, może być zainstalowany w tym systemie, ponieważ został napisany w Javie. Używając Jenkinsa w Windows warto zainstalować wtyczkę PowerShella, która ułatwi dostarczanie skryptów pisanych w tym języku.

Team City – podobnie jak Jenkins, powstał w Javie i również nie skupia się na środowisku Microsoftu. Jednakże Team City nie jest bezpłatnym produktem, chociaż jest dostępna również bezpłatna licencja. W systemie Windows Jenkins i Team City muszą być skonfigurowane jako usługa. Ponieważ są to narzędzia napisane w Javie, ich uruchomienie jako serwera do zarządzania wersjami nie jest tak proste jak w przypadku TFS.

Zarządzanie konfiguracją

Jeśli środowisko nie będzie skonfigurowane poprawnie, nie da się uruchomić kodu, który został dostarczony. Narzędzia do zarządzania konfiguracją ułatwiają wprowadzenie mechanizmów automatyzacji i mają kluczowe znaczenie dla powodzenia wdrożenia DevOps.

Poza takim narzędziem, jak Desired State Configuration (DSC), większość rozwiązań nie działa w systemie Windows. Wprawdzie wszystkie w jakiś sposób obsługują Windows, ale są rozwijane przez społeczność linuksową i skupiają się na tym systemie operacyjnym.

Desired State Configuration (DSC) – to wizja DevOpsa zrealizowana przez Microsoft. DSC jest platformą do zarządzania konfiguracją, która może zarządzać szeregiem środowisk. Składnia DSC jest podobna do PowerShella. Ponadto DSC może płynnie wykonywać kod PowerShella. Jednakże DSC wychodzi poza PowerShella, ponieważ umożliwia zarządzanie konfiguracją deklaratywnie.

DSC jest częścią system Windows i powszechnie korzystają z niego inne narzędzia do zarządzania konfiguracja. Wprawdzie DSC można postrzegać jako konkurencję dla innych narzędzi, ale Microsoft publicznie deklarował, że tak nie jest. Przeciwnie, producent uważa, że jest to narzędzie, z którego mogą korzystać inne produkty do zarządzania konfiguracją.

Chef – to produkt do automatyzacji, który realizuje szereg różnych zadań: zarządzanie konfiguracją, zarządzenie wersjami czy zapewnienie zgodności z przepisami. Wprawdzie Chef Server jest instalowany w Linuksie, ale to narzędzia obsługuje również komputery z systemem Windows poprzez różne rozszerzenia. Chef może uruchamiać w komputerach skrypty PowerShella służące do wprowadzania zmian w konfiguracji, dostarczać skrypty DSC czy przywoływać zasoby DSC. W komputerach z Windows administratorzy poświecą najwięcej czasu na tworzenie zasobów DSC, które będą uruchamiane z poziomu Chefa.

Puppet – narzędzie podobne do Chefa. Składa się z głównego serwera, który działa w Linuksie, ale obsługuje również komputery z Windows. Od niedawna obsługuje również DSC, ale w mniejszym zakresie niż Chef. Puppet ma moduły zrobione z myślą o Windows, które umożliwiają wykonywanie wielu typowych zadań w tym systemie operacyjnym. W tym przypadku administratorzy najwięcej czasu spędzą jednak, tworząc skrypty PowerShella i DSC, które będą uruchamiane z poziomu Puppeta.

Ansible – to produkt, który działa nieco inaczej niż Chef i Puppet. Znany jest z bezagentowej architektury i łatwości użycia, ale niestety nie obsługuje Windows. Natomiast, podobnie jak inne produkty, są dostępne rozszerzenia, które umożliwiają obsługą Windows z poziomu Ansible. Jednak w ograniczonym zakresie i nie ma na razie modułu umożliwiającego integrację z DSC. Ansible wymaga do działania serwera Linux. Nie potrzebuje agentów, np. z systemem Windows komunikuje się zdalnie poprzez PowerShell Remoting (WinRM), aby wykonywać polecenia.

Platformy do testów

Kolejnym fundamentalnym elementem udanego wdrożenia DevOps jest automatyzacja testów. Testy jednostkowe kodu oraz testy integracji i akceptacyjne to bardzo ważny składnik procesu dostarczania dobrej jakości kodu. W zespołach pracujących w Windows najczęściej programuje się w C lub PowerShellu.

Pester – jest bardzo pomocy przy pisaniu skryptów PowerShella. Umożliwia przeprowadzanie testów jednostkowych, ale może również służyć do testów infrastruktury, aby sprawdzać poprawność konfiguracji poszczególnych komponentów środowiska. Niestety umożliwia testowanie tylko kodu PowerShella. Z drugiej strony jest to obecnie jedyna platforma do testowania PowerShella, ale na szczęście Pester jest dopracowanym narzędziem. Dostępny jako open source.

nUnit – to narzędzie do testowania kodu w C i dostępne jako open source. Większość nowoczesnych rozwiązań do zarządzania wersjami jest zintegrowanych z nUnit. Ponieważ sam nUnit również jest napisany w C#, jest to świetny wybór do prowadzenia testów w środowisku Windows. nUnit jest bezpłatny i rozwijany jako projekt społecznościowy. Pester potrafi generować wyniki w pliku XML zgodnym z nUnit.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200