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
- zdefiniowanie wymagań i projekt aplikacji
- rozwój aplikacji (Dev)
- implementacja i budowanie aplikacji
- testy, weryfikacja poprawności działania i naprawa błędów
- 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
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
Web Portal - konfiguracja
Azure Pipelines - przykład potoku YAML
- potok jest zapisany jako kod w pliku
azure-pipelines.ymlw repozytorium - każdy commit do gałęzi
mainuruchamia 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ć naprawioneAdvancedSecurity/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








