Ślad: • azure_devops

Azure DevOps

Writing /home/grochu/public_html/wiki/data/meta/zajecia/npr/lab/azure_devops.meta failed
Unable to save metadata file. Hint: disk full; file permissions; safe_mode setting.
Creating directory /home/grochu/public_html/wiki/data/attic/zajecia/npr/lab failed
Writing /home/grochu/public_html/wiki/data/attic/zajecia/npr/lab/azure_devops.1794435574.txt.gz failed
Writing /home/grochu/public_html/wiki/data/meta/zajecia/npr/sidebar.meta failed

View page as slide show

Azure DevOps

Application Lifecycle Management (ALM)

ALM (zarządzanie cyklem życia aplikacji) to proces zarządzania produktem od pomysłu aż po jego wycofanie z użycia

  1. zdefiniowanie wymagań i projekt aplikacji
  2. rozwój aplikacji (Dev)
    • implementacja i budowanie aplikacji
    • testy, weryfikacja poprawności działania i naprawa błędów
  3. utrzymanie produktu (Ops)
    • wdrażanie kolejnych wersji produktu
    • konfiguracja i monitorowanie działania aplikacji
    • naprawa błędów

Azure DevOps - wszystko w jednym miejscu

Metodyka DevOps

DevOps - założenia

  • DevOps = „development” (programowanie) + „operations” (operacje)
  • koordynacja i współpraca zespołów w celu tworzenia lepszych, bardziej niezawodnych produktów
  • silny nacisk na automatyzację i monitoring wszystkich etapów wytwórczych
  • przyspieszenie cyklu powstawania nowych wydań
  • możliwość lepszego reagowania na potrzeby klientów
  • bezpieczeństwo uwzględniane na każdym etapie (DevSecOps, zob. dalej)


Azure DevOps - przegląd

Azure DevOps - usługi

  • Azure Boards - planowanie i śledzenie pracy: backlogi, tablice Kanban, sprinty, zadania (work items)
  • Azure Repos - prywatne repozytoria Git (oraz TFVC), pull requesty, polityki gałęzi
  • Azure Pipelines - CI/CD dla dowolnego języka i platformy, kontenery Docker i Kubernetes, wdrożenia do Azure, AWS, Google Cloud i środowisk lokalnych
  • Azure Test Plans - testy manualne, eksploracyjne i integracja z testami automatycznymi
  • Azure Artifacts - pakiety NuGet, npm, Maven, Python i Universal
  • pulpity (Dashboards), wiki projektu, powiadomienia, Analytics i raporty Power BI

Azure DevOps - kluczowe możliwości

  • continuous integration i continuous delivery (ciągła integracja i dostarczanie) - automatyzacja procesu wytwórczego:
    synchronizacja kodu, budowanie aplikacji, testy (kodu, aplikacji), środowisko uruchomieniowe, raporty, powiadomienia, deployment, hostowanie aplikacji, …
  • zwinne metodyki zarządzania
    m.in. Scrum i Kanban, zarządzanie zgłoszeniami (Work item), przydział zadań, powiązanie z kodem, testami, raportami
  • repozytorium kodu, system kontroli wersji
    Git (domyślny wybór dla nowych projektów) oraz Team Foundation Version Control (TFVC)
  • rozbudowany system raportów i pulpitów (Dashboards, Analytics, Power BI), analiza postępów prac, powiązania między wymaganiami, kodem, testami i wdrożeniami

Potok ciągłej integracji

Azure DevOps wersje

  • Azure DevOps Server - wersja instalowana lokalnie (on-premises)
    • wcześniej: Team Foundation Server (TFS), Visual Studio Team System; obecnie m.in. Azure DevOps Server 2022
    • te same podstawowe usługi co w wersji chmurowej, ale wymaga własnej infrastruktury i utrzymania; dla organizacji, które muszą przechowywać dane u siebie
  • Azure DevOps Services - wersja chmurowa
    • dawniej: Visual Studio Team Services, Team Foundation Service, Visual Studio Online

Azure DevOps Services

  • usługi DevOps hostowane przez Microsoft, gotowe do użycia bez własnej infrastruktury, z automatycznymi aktualizacjami i SLA 99,9%
  • uwierzytelnianie za pomocą Microsoft Entra ID (zalecane w organizacjach) lub konta Microsoft
  • darmowe dla zespołów do 5 użytkowników, 2 GB w Azure Artifacts, nieograniczona liczba użytkowników typu Stakeholder; dodatkowi użytkownicy są płatni
  • Azure Pipelines (projekty prywatne): 1 bezpłatne zadanie na agencie Microsoft-hosted (do 60 minut na uruchomienie, 1800 minut miesięcznie; wymaga powiązania organizacji z subskrypcją Azure) oraz 1 bezpłatne zadanie na własnym agencie (self-hosted) bez limitu czasu
  • nieograniczona liczba prywatnych repozytoriów Git
  • skalowalne agenty buildów hostowane przez Microsoft (Microsoft-hosted) lub własne (self-hosted)
  • projekty publiczne zostały wycofane: nie można tworzyć nowych, a istniejące zostaną zamienione na prywatne od 2027 r.
  • częste aktualizacje


Dostęp

  • portal webowy (Web Portal)
  • Visual Studio
  • Excel - import i masowa edycja zadań
  • Visual Studio Code, IntelliJ, Android Studio, Eclipse i Xcode - integracja z repozytoriami Git
  • dowolny klient Git (Azure DevOps używa standardowego Git)
  • asystenci AI w środowisku programistycznym (np. GitHub Copilot) z dostępem do danych Azure DevOps przez MCP Server (zob. dalej)
  • łatwa integracja z innymi narzędziami: REST API, service hooks, rozszerzenia z Marketplace, integracja z GitHub

Integracja z innymi narzędziami

azure-devops-supports-integration-with-many-third-party-services.png.jpeg

Extensions Marketplace - rozszerzenia dla Azure DevOps

Autoryzacja

  • Azure DevOps Services
    uwierzytelnianie za pomocą Microsoft Entra ID lub konta Microsoft
    https://dev.azure.com/
  • dostęp do wybranej organizacji
    https://dev.azure.com/nazwa_organizacji/ 
  • dostęp do projektu
    https://dev.azure.com/nazwa_organizacji/nazwa_projektu/ 
  • poprzednia domena (nadal aktualna)
    https://nazwa_organizacji.visualstudio.com/

Web Portal i Visual Studio

Web Portal Visual Studio
Planowanie prac:
backlog produktu i sprintów, Task boards, Capacity planning, Kanban board, Dashboards, Widgets, Charts
Zbieranie opinii (feedback)
Zarządzanie testami
Pipelines, Artifacts
Wiki
Security overview
Administracja kontami, projektami, zespołami
Integracja obsługi zadań ze zmianami kodu, Git:
Changes, Branches, Pull Requests, Sync, Work Items, Builds
Integracja z GitHub Copilot i MCP Server (Visual Studio 2022 i nowsze)

Połączenie z Visual Studio

Team Explorer → Manage Connections → Connect to a Project

Zrzuty ekranu pochodzą z Visual Studio 2019; w nowszych wersjach układ okien może się różnić.

Team Explorer

  • Zadania (jednostki robocze/Work Items)
  • Repozytorium (Source Control)
  • Buildy
  • Oczekujące na zatwierdzenie zmiany (Pending changes)

Web Portal

Strona główna z listą organizacji i projektów

Web Portal - konfiguracja

Strona główna ustawień organizacji i projektów

Azure Pipelines - przykład potoku YAML

  • potok jest zapisany jako kod w pliku azure-pipelines.yml w repozytorium
  • każdy commit do gałęzi main uruchamia budowanie i testy
trigger:
  - main

pool:
  vmImage: ubuntu-latest

steps:
  - task: UseDotNet@2
    inputs:
      version: 8.x
  - script: dotnet build --configuration Release
    displayName: Build
  - script: dotnet test --configuration Release
    displayName: Test

Nowości: DevSecOps

  • DevSecOps - uwzględnianie bezpieczeństwa na każdym etapie wytwarzania: kontrole działają automatycznie w repozytorium i w potoku CI/CD, a nie dopiero przed wdrożeniem
  • w Azure DevOps: GitHub Advanced Security for Azure DevOps - dostępne tylko w Azure DevOps Services i dla repozytoriów Git w Azure Repos
  • funkcja płatna, rozliczana według liczby aktywnych autorów zmian (active committers); włączenie wymaga skonfigurowania rozliczeń
  • dwa warianty: pakiet Advanced Security albo osobne produkty Secret Protection i Code Security

DevSecOps - funkcje skanowania

  • Secret scanning - push protection: blokuje wypchnięcie commitów ujawniających sekrety, np. hasła i klucze
  • Secret scanning - repo scanning: wykrywa sekrety zapisane w repozytorium, także w historii commitów
  • Dependency scanning: wyszukuje znane podatności w zależnościach open source (bezpośrednich i przechodnich)
  • Code scanning (CodeQL): analiza statyczna kodu wykrywająca m.in. SQL injection i obejście uwierzytelniania
  • wyniki dostępne na karcie Advanced Security w repozytorium

DevSecOps - włączanie i konfiguracja

  • włączanie na poziomie organizacji, projektu lub pojedynczego repozytorium (Project settings → Repos)
  • push protection i skanowanie repozytorium działają od razu po włączeniu; push protection sprawdza tylko pushe wykonane po włączeniu
  • dependency scanning i code scanning działają w ramach potoków Azure Pipelines, a wyniki są zbierane per repozytorium
  • code scanning, ustawienia domyślne (default setup): skanowanie według harmonogramu tygodniowego dla C#, C/C++, Java, JavaScript/TypeScript, Python, Ruby i Rust
  • code scanning, ustawienia zaawansowane (advanced setup): zadania CodeQL dodane do potoku, np. dla Go i Swift lub niestandardowych kroków budowania

DevSecOps - ochrona pull requestów

  • adnotacje w pull requestach dla dependency scanning i code scanning, gdy polityka Build validation obejmuje zadania skanowania
  • status checks jako polityki gałęzi blokujące scalanie:
    • AdvancedSecurity/AllHighAndCritical - wszystkie alerty krytyczne i wysokie muszą zostać naprawione
    • AdvancedSecurity/NewHighAndCritical - blokuje wprowadzanie nowych podatności
  • przepływ: commit → pull request → build validation ze skanowaniem → status check → scalenie

DevSecOps - przegląd bezpieczeństwa i Copilot Autofix

  • Security overview (Organization settings): karty Risk, Coverage i Alerts, filtrowanie, eksport do CSV oraz widoki do koordynacji napraw (security campaigns)
  • Copilot Autofix (wersja zapoznawcza, public preview): agentowa naprawa alertów code scanning i dependency scanning
  • agent przygotowuje pull request z proponowaną poprawką, którą należy przejrzeć, przetestować i scalić
  • nie obejmuje alertów o sekretach ani malware; generowanie poprawek zużywa kredyty AI

Nowości: agenty AI i MCP Server

  • Model Context Protocol (MCP) - standard łączący asystentów AI z zewnętrznymi danymi i narzędziami
  • Azure DevOps MCP Server daje asystentowi AI dostęp do rzeczywistych danych organizacji: projekty i zespoły, zadania (work items), pull requesty, buildy i potoki, plany testów
  • zapytania w języku naturalnym zamiast ręcznego przeglądania portalu, np. o stan sprintu, zablokowane zadania lub pull requesty czekające na przegląd
  • asystent AI musi działać w trybie agenta (agent mode)
  • MCP Server jest bezpłatny, ale obowiązują standardowe koszty Azure DevOps; korzystanie z asystenta AI może być osobno płatne

MCP Server - warianty i bezpieczeństwo

  • zdalny (remote) - zalecany: hostowany przez Azure DevOps, bez instalacji; obsługiwany m.in. w VS Code z GitHub Copilot, Visual Studio, Microsoft Foundry, Copilot Studio i GitHub Copilot CLI
  • uwierzytelnianie przez Microsoft Entra; organizacja musi być oparta na Microsoft Entra (organizacje z samym kontem Microsoft nie są obsługiwane)
  • lokalny (local) - uruchamiany na własnym komputerze (Node.js 20+), przeznaczony dla klientów niewspierających zdalnego serwera, np. Claude Desktop, Claude Code, Cursor i Codex
  • użytkownik kontroluje, do jakich danych ma dostęp asystent AI

Przykładowe zapytania do asystenta AI

Zadanie Przykładowe zapytanie
Przegląd projektu Podsumuj stan bieżącego sprintu w projekcie Contoso: otwarte zadania, aktywne pull requesty i ostatnie buildy
Zablokowane zadania Wyświetl zadania w projekcie Contoso, które są zablokowane lub mają przeszkody
Kondycja potoków Pokaż odsetek udanych uruchomień wszystkich potoków w projekcie Contoso z ostatnich 2 tygodni
Nieaktualne pull requesty Wymień otwarte pull requesty w projekcie Contoso bez aktywności od ponad 5 dni
Śledzenie powiązań Dla user story 1234 pokaż powiązane commity, pull requesty, buildy i wyniki testów
Nieprzetestowane funkcje Pokaż ukończone funkcje w projekcie Contoso bez powiązanych przypadków testowych

Wskazówka: aby uniknąć korzystania z danych pobranych wcześniej, dodaj do zapytania polecenie „Nie używaj wcześniej pobranych danych”.

Dobre praktyki przy użyciu AI

  • wyniki asystenta AI to propozycje: weryfikuj podsumowania, a zmiany w kodzie kieruj przez pull request i przegląd kodu
  • nadawaj asystentowi tylko niezbędne uprawnienia i nie przekazuj mu sekretów
  • łącz AI z DevSecOps: skanowanie, polityki gałęzi i status checks chronią przed błędami także w kodzie generowanym automatycznie

Podsumowanie

  • Azure DevOps obejmuje cały cykl: Plan → Code → Build → Test → Deploy → Monitor → Repeat
  • Boards, Repos, Pipelines, Test Plans i Artifacts działają razem i są powiązane śledzalnymi łączami
  • DevSecOps: bezpieczeństwo sprawdzane automatycznie w pull requestach i potokach
  • AI: MCP Server i Copilot Autofix wspierają zarządzanie projektem i naprawę podatności, ale decyzję podejmuje człowiek

Więcej informacji