~~NOCACHE~~
~~REVEAL theme=simple&size=1024x800~~
====== Azure DevOps ======
===== Application Lifecycle Management (ALM) =====
ALM to proces zarządzania życiem produktu począwszy od pomysłu aż po jego kres istnienia
- 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
===== Dlaczego ALM ? =====
* zarządzanie pracą zespołów
* podział prac, uprawnienia/role/kompetencje członków
* organizacja projektu, przepływ informacji w zespole
* kontrola kodu, ograniczenie błędów, testy aplikacji, przeglądy kodu
* dbałość o jakość produktu
* przyśpieszenie procesów produkcyjnych, ograniczenie ryzyk i kosztów
===== Metodyka DevOps =====
{{zajecia:znd_2020_1:devops-loop-800x380.png?600}}
===== =====
* DevOps = „development” (programowanie) + „operations” (operacje)
* koordynowanie i współpracę zespołów w celu tworzenia lepszych, bardziej niezawodnych produktów
* silny nacisk na automatyzację i monitoring wszystkich etapów wytwórczych
* przyśpieszenie cyklu powstawania nowych wydań
* możliwość lepszego reagowania na potrzeby klientów
===== Azure DevOps =====
{{zajecia:znd_2020_1:azure_devops.png?800}}
===== Azure DevOps =====
* **continuous integration** (nieustanna integracja) - 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, zarządzanie zgłoszeniami (Work item), przydział zadań, powiązanie z kodem, testami, raportami
* repozytorium kodu, system kontroli wersji \\ Git, Team Foundation Version Control (TFVC)
* rozbudowany system raportów, analiza postępów prac, zarządzanie wymaganiami, kosztami, ocena ryzyka, ...
===== Potok ciągłej integracji =====
{{zajecia:znd_2020_1:architecture-devops-dotnet-webapp.png?800}}
===== Azure DevOps wersje =====
* [[https://azure.microsoft.com/pl-pl/services/devops/server/|Azure DevOps Server 2019]]
* wcześniej: Team Foundation Server 2015, TFS 2017, Visual Studio Team System
* TFS Expres 2018 - darmowa wersja dla zespołów do 5 osób, jeden serwer
* [[https://azure.microsoft.com/en-us/services/devops/|Azure DevOps Services]]
* dawniej: Visual Studio Team Services, Team Foundation Service, Visual Studio Online
===== Azure DevOps Services =====
* usługi DevOps w chmurze Azure, skonfigurowane i gotowe do działania
* autoryzacja za pomocą Microsoft Accounts
* darmowe dla zespołów do 5 osób, 2GB artefaktów, 1 zadanie CI 1800 minut na miesiąc
* nieograniczona liczba repozytoriów kodu (Git)
* automatyczna, skalowalna farma buildów
* w praktyce nieskończenie skalowalne testy obciążeniowe
* częste aktualizacje (wersja serwerowa ok. 3 miesiące opóźnienia)
===== Dostęp =====
* portal webowy (Web Portal)
* Visual Studio
* MS Project, Excel - zarządzanie projektem i zadaniami, analiza ryzyka
* Office - wymiana dokumentów
* PowerPoint, storyboard (analiza wymagań), możliwość połączenia z zadaniami
* wiele zewnętrznych aplikacji: \\ Eclipse/Team Explorer Everywhere, Azure DevOps Services Plugin for Android Studio, Azure DevOps Services Plugin for IntelliJ
===== Integracja z innymi narzędziami =====
{{zajecia:znd_2020_1:azure-devops-supports-integration-with-many-third-party-services.png.jpeg?800}}
{{https://marketplace.visualstudio.com/azuredevops/|Extensions Marketplace}} ponad 1K rozszerzeń
===== Autoryzacja =====
* **Azure DevOps Services** \\ autoryzacja za pomocą poświadczeń Microsoft Account \\ 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 ^ Visual Studio ^
| Planowanie prac: \\ //backlog produktu i sprintów, Task boards, Capacity planning, Kanban board, Dashboards, Widgets, Charts // \\ Team rooms \\ Request feedback \\ Zarządzanie testami \\ Wiki \\ Administracja kontami, projektami, zespołami | Integracja obsługi zadań ze zmianami kodu, Git: //Changes, Branches, Pull Requests, Sync, Work Items, Builds// \\ Większa integracja zadań z dodatkowymi narzędziami, np. Office |
===== Połączenie z VS 2019 =====
**Team Explorer ** -> **Manage Connections** -> **Connect to a Project**
|{{:zajecia:znd_2020_1:te-connect-page-connect-to-project-vs2019.png?350}}|{{:zajecia:znd_2020_1:connect-to-a-project-and-github.png?350}}|
===== Team Explorer =====
* Zadania (jednostki robocze/Work Items)
* Repozytorium (Source Control)
* Buildy
* Oczekujące na zatwierdzenie zmiany (Pending changes)
{{zajecia:znd_2014_1:tfs_team_explorer1.png?350}}
===== Web Portal =====
{{zajecia:znd_2020_1:list-projects.png?600}}
Strona głowna z listą organizacji i projektów
===== Web Portal - konfiguracja =====
{{zajecia:znd_2020_1:list-projects-org-settings.png?600}}
Strona głowna ustawień organizacji i projektów
===== Więcej informacji =====
* [[https://www.perforce.com/blog/alm/what-application-lifecycle-management|What Is Application Lifecycle Management?]]
* {{https://software.af.mil/training/devops/|DevOps}}
* {{https://docs.microsoft.com/en-us/azure/devops/?view=azure-devops|Azure DevOps documentation}}
* {{https://jerzywickowski.pl/ci/co-to-jest-azure-devops/|Co to jest Azure DevOps?}}