Artykuł pochodzi z wydania: Styczeń 2023
Skryptowa automatyzacja może nie jest tak skomplikowanym procesem deweloperskim jak pisanie aplikacji, niemniej jednak możemy w tym celu wykorzystywać te same specjalistyczne narzędzia. Dzięki nim nawet tak proste rozwiązania jak skrypty Windows PowerShell mogą być wytwarzane w profesjonalny sposób.
W zarządzaniu infrastrukturą IT automatyzacja zadań pozwala na ustandaryzowanie przeprowadzanych prac oraz znaczne skrócenie czasu wykonywanych operacji. W środowisku systemów Windows, ale i nie tylko, jako podstawowe narzędzie do automatyzacji przyjęło się używać skryptowego języka, jakim jest Windows PowerShell.
Wspomniane skrypty PowerShella dają nam praktycznie nieograniczone możliwości kreowania własnej infrastruktury. Jednak im więcej mamy skryptów, tym trudniej nimi zarządzać. W szczególności gdy niektóre z rozwiązań mogą ciągle ewoluować, np. poprzez optymalizację kodu czy po prostu implementowanie nowych funkcjonalności. By móc łatwo odnaleźć się w omawianym środowisku skryptowym, konieczne jest wdrożenie centralnego repozytorium kodu, z poziomu którego będą przeprowadzane wszelakie zmiany deweloperskie. Dodatkowo konieczne jest zastosowanie centralnego rozwiązania do dystrybucji skryptów, tak by mogły być w łatwy sposób zaimplementowane w ramach docelowych serwerów końcowych. Takim centralnym rozwiązaniem do dystrybucji skryptów może być usługa Azure DevOps.
> AZURE DEVOPS
Usługa Azure DevOps jest narzędziem wykorzystywanym do nowoczesnego zarządzania procesami deweloperskimi. Przeznaczona jest głównie do wykorzystywania podczas tworzenia aplikacji, niemniej jednak może być również skutecznie zastosowana w mniejszej skali, np. do zarządzania własnymi skryptami. Usługa dostarcza szereg komponentów, m.in. repozytorium kodu źródłowego Git, automatyzację procesów przy wykorzystaniu Azure Pipelines czy dedykowaną przestrzeń do hostowania pakietów przeznaczonych do dalszej dystrybucji.
Przewagą wspomnianego narzędzia jest jego dostępność. Całe rozwiązanie jest zlokalizowane w chmurze usług Microsoft, dzięki czemu nie musimy implementować żadnych dodatkowych elementów wewnątrz lokalnej infrastruktury organizacji. Dodatkowo w przypadku niewielkich rozwiązań nieprzekraczających 2 GB oraz skupiających maksymalnie pięciu deweloperów z całego środowiska możemy korzystać zupełnie bez ponoszenia dodatkowych kosztów.
Aby wykreować nowe środowisko Azure DevOps, należy przejść do witryny usługi i skorzystać z opcji Rozpocznij bezpłatnie. Ostatecznie wystarczy zalogować się do usługi za pomocą służbowego lub osobistego konta Microsoftu w celu wykreowania nowej organizacji. W ramach wspomnianej organizacji usługi Azure DevOps będziemy mogli tworzyć projekty do zarządzania swoimi rozwiązaniami skryptowymi.
> ARTEFAKTY
Każdy projekt usługi Azure DevOps ma zdefiniowany zestaw komponentów do organizacji pracy deweloperskiej. Jednym z nich są artefakty (Azure Artifacts). Pozwalają one na udostępnianie pakietów, wśród których mogą znajdować się m.in. paczki typu NuGet. W przypadku omawianej prywatnej galerii skryptów jest to idealne narzędzie do centralnego składowania gotowych do dystrybucji skryptów PowerShella. Analogiczny mechanizm paczek NuGet jest również stosowany w ramach oficjalnej galerii skryptów, jaką jest PowerShell Gallery.
Domyślnie każda organizacja ma automatycznie wdrożony jeden kanał artefaktów (Artifacts Feed). Jednakże jeżeli potrzebujemy ich więcej, możemy utworzyć własne dedykowane kanały. Jest to szczególnie przydatne, gdy zamierzamy rozdzielić poszczególne skrypty, tak by konkretne rozwiązania były od siebie odseparowane, a co za tym idzie, nie były dostępne w ramach jednego docelowego repozytorium skryptów Windows PowerShell podmapowanego na końcowych serwerach. Proces tworzenia kanału artefaktów nie jest skomplikowany i został pokrótce przybliżony w ramce Krok po kroku: Tworzenie kanału artefaktów.
[…]
Michał Gajda
Autor ma wieloletnie doświadczenie w administracji oraz implementowaniu nowych technologii w infrastrukturze serwerowej. Pasjonat technologii Microsoft. Posiada tytuł MVP Cloud and Datacenter Management.