Omówienie architektury dla Azure DevOps Server

Azure DevOps Server 2022 r. | Azure DevOps Server 2020 r. | Azure DevOps Server 2019 r.

Aby jak najlepiej zaplanować wdrożenie i zarządzać nim, należy najpierw zrozumieć podstawową architekturę Azure DevOps Server. Zrozumienie architektury może pomóc w utrzymaniu ogólnej kondycji wdrożenia i zapewnić ogólną dostępność serwerów i usług, których potrzebują zespoły programistyczne.

Można wdrożyć Azure DevOps Server na kilka sposobów: na jednym serwerze, na wielu serwerach; w jednej domenie lub grupie roboczej lub w różnych domenach. Alternatywnie możesz użyć Azure DevOps Services, gdzie wszystkie elementy serwera wdrożenia są hostowane przez firmę Microsoft. Zrozumienie architektury może pomóc w wyborze topologii, która najprawdopodobniej spełnia Twoje potrzeby biznesowe. Niezależnie od wybranej topologii, jeśli rozumiesz architekturę podstawową Azure DevOps Server, możesz lepiej zarządzać wymaganiami fizycznymi i logicznymi. Ten artykuł zawiera proste omówienie różnych architektur wraz z linkami do dodatkowych informacji na temat przykładowych wdrożeń. Zawiera również informacje techniczne dotyczące usług, baz danych, informacji o konfiguracji oraz portów sieciowych i protokołów wdrożeń lokalnych.

Aby zrozumieć architekturę Azure DevOps Server i jej wpływ na wdrożenie, należy wziąć pod uwagę następujące kwestie:

  • Logiczna aplikacja, dane i warstwy klienta usługi Azure DevOps oraz czy chcesz używać co najmniej jednego serwera dla warstw aplikacji i danych, czy też chcesz, aby warstwy aplikacji i danych były hostowane w chmurze przy użyciu Azure DevOps Services
  • Lokalizacja serwerów fizycznych lub wirtualnych hostujących te warstwy
  • Team Foundation Build oraz liczba i lokalizacja komputerów kompilacji uruchomionych w danym środowisku, w tym liczba, które mogą być potrzebne do obsługi praktyk programistycznych, lub czy użyjesz usług Azure Pipelines w chmurze do kompilowania i wdrażania aplikacji oprogramowania
  • Potencjalna potrzeba serwera proxy usługi Azure DevOps

Ponadto należy wziąć pod uwagę interakcje między tymi jednostkami. Jeśli na przykład zdecydujesz się korzystać z hostowanej usługi Azure DevOps Server, musisz upewnić się, że klienci będą mogli uzyskiwać dostęp do usługi na porcie 443. Jeśli zdecydujesz się wdrożyć Azure DevOps Server lokalnie, musisz wiedzieć, jakie usługi sieci Web, bazy danych i modele obiektów Azure DevOps Server używać. Ponadto musisz wiedzieć, które porty sieciowe i protokoły Azure DevOps Server używać domyślnie i które porty sieciowe można dostosować. Na koniec musisz zrozumieć, jakie uprawnienia należy ustawić w Azure DevOps Server oraz składniki i programy, od których zależy wdrożenie.

Oprócz własnych usług Azure DevOps Server zależy od innych usług, aby działać. Aby uzyskać więcej informacji na temat tych usług, zobacz Azure DevOps Server pojęcia i składniki magazynu danych Azure DevOps Server. Aby uzyskać więcej informacji o wymaganiach i zależnościach instalacji, zobacz przewodnik instalacji Azure DevOps Server.

Ważne

Nie należy ręcznie modyfikować żadnej z Azure DevOps Server baz danych, chyba że zostanie to poinstruowane przez pomoc techniczna firmy Microsoft lub postępować zgodnie z procedurami opisanymi w celu ręcznego tworzenia kopii zapasowych baz danych. Wszelkie inne modyfikacje mogą unieważniać umowę serwisową.

Usługa Azure DevOps Services

Usługa Azure DevOps Services

Firma Microsoft oferuje możliwość korzystania z Azure DevOps Services, które mogą hostować wszystkie aspekty po stronie serwera Azure DevOps Server dla Ciebie. Kod źródłowy, elementy robocze, konfiguracje kompilacji i funkcje zespołu są hostowane w chmurze. Z punktu widzenia architektury znacznie upraszcza to korzystanie z Azure DevOps Server, ponieważ jedynymi aspektami architektury, które należy wziąć pod uwagę, są składniki klienta i ich dostęp do Internetu.

W przypadku korzystania z Azure DevOps Services użyj przeglądarki internetowej, aby nawiązać połączenie z usługą przy użyciu konta Microsoft. Możesz tworzyć projekty, dodawać członków do zespołu i pracować tak jak w przypadku lokalnie zainstalowanej Azure DevOps Server bez konieczności administrowania serwerami. Azure DevOps Services hostuje warstwę aplikacji, warstwę danych i serwery kompilacji w chmurze.

Aby dowiedzieć się więcej na temat usług w chmurze i wdrożeń lokalnych, przejrzyj Azure DevOps Services a Azure DevOps Server.

Model obiektu

Za pomocą hostowanej lub lokalnie wdrożonej architektury można rozszerzyć funkcje i funkcje usługi Azure DevOps, pisząc aplikację opartą na serwerze lub modelu obiektów klienta. We wszystkich typach wdrożeń można pisać aplikacje, które rozszerzają możliwości klienta. Jeśli jednak chcesz rozszerzyć możliwości serwera, aplikacja musi działać na serwerze warstwy aplikacji. Aby rozszerzyć możliwości klienta, należy uruchomić aplikację na tym samym komputerze co program Team Explorer.

Model obiektów Azure DevOps Server

Usługi internetowe i bazy danych dla wdrożeń lokalnych

Azure DevOps Server zawiera zestaw usług sieci Web i baz danych instalowanych i konfigurowanych oddzielnie na serwerze lub serwerach hostujących logiczną aplikację, dane i warstwy klienta dla usługi Azure DevOps. Niektóre funkcje, takie jak tablica zadań i funkcje zespołu listy prac, są całkowicie oparte na Internecie i dostępne wyłącznie za pośrednictwem portalu internetowego, usługi internetowej po stronie klienta. Dostęp do innych, takich jak funkcje kontroli wersji, można uzyskać za pośrednictwem portalu internetowego lub aplikacji klienckiej. Poniższe ilustracje przedstawiają ogólny widok usług internetowych, aplikacji i baz danych na potrzeby lokalnych wdrożeń Azure DevOps Server.

Azure DevOps Server główne warstwy usług

Opcjonalne usługi Azure DevOps Server

klienci Azure DevOps Server

Usługi na poziomie kolekcji

Usługi na poziomie kolekcji zapewniają funkcjonalność operacji na poziomie kolekcji projektów. Aplikacje rozszerzające Azure DevOps Server można tworzyć przy użyciu niektórych z tych usług. Aby uzyskać więcej informacji na temat tworzenia aplikacji dla Azure DevOps Server, zobacz Develop Extensions (Tworzenie rozszerzeń).

Uwaga

Niektóre usługi są wyświetlane na więcej niż jednym poziomie. Na przykład usługa rejestru działa na poziomie kolekcji i na poziomie serwera, a następnie jest wyświetlana na obu listach.

Usługi struktury:

  • Usługa rejestru
  • Usługa rejestracji (w celu zachowania zgodności z wcześniejszymi wersjami Azure DevOps Server)
  • Usługa właściwości
  • Usługa zdarzeń
  • Usługa zabezpieczeń
  • Usługa lokalizacji
  • Usługa zarządzania tożsamościami
  • Usługa sieci Web kontroli wersji
  • Usługa sieci Web śledzenia elementów roboczych
  • Team Foundation Build Web Service
  • Usługa sieci Web zarządzania laboratorium
  • Usługa sieci Web administracja programu VMM
  • Usługa sieci Web kontrolera agenta testowego

Usługi na poziomie serwera

Usługi na poziomie serwera (znane również jako usługi na poziomie aplikacji) zapewniają funkcje operacji dla Azure DevOps Server jako aplikacji programowej. Aplikacje rozszerzające Azure DevOps Server można tworzyć przy użyciu niektórych z tych usług.

Usługi struktury:

  • Usługa rejestru
  • Usługa zdarzeń
  • Usługa zbierania projektów
  • Usługa właściwości
  • Usługa zabezpieczeń
  • Usługa lokalizacji
  • Usługa zarządzania tożsamościami
  • Usługa administracyjna
  • Usługa zarządzania kolekcjami
  • Usługa wykazu

Warstwa danych

Warstwa danych obejmuje dane, procedury składowane i inną skojarzną logikę. W przypadku korzystania z Azure DevOps Services warstwa danych jest hostowana za pomocą platformy SQL Server Azure. W lokalnym wdrożeniu Azure DevOps Server warstwa danych logicznych składa się z następujących magazynów operacyjnych w SQL Server. Te magazyny mogą znajdować się na jednym serwerze fizycznym lub dystrybuowane na wielu serwerach. Aplikacje rozszerzające Azure DevOps Server można tworzyć przy użyciu niektórych z tych magazynów operacyjnych.

  • Baza danych konfiguracji (TFS_Configuration)
  • Magazyn aplikacji (TFS_Warehouse)
  • Baza danych usług Analysis Services (TFS_Analysis)
  • Bazy danych dla kolekcji projektów (TFS_CollectionName)

Poniższa tabela zawiera listę baz danych, które Azure DevOps Server używane we wdrożeniach lokalnych. O ile nie określono inaczej, można przenieść wszystkie bazy danych na tej liście z oryginalnego serwera i wystąpienia, na którym są zainstalowane, i przywrócić je na inny serwer lub wystąpienie.

Nazwa bazy danych Opis Serwer
Tfs_configuration Ta baza danych przechowuje wykaz zasobów i informacje o konfiguracji dla Azure DevOps Server. Ta baza danych zawiera magazyny operacyjne dla Azure DevOps Server. Wystąpienie SQL Server używane podczas instalowania i konfigurowania Azure DevOps Server.
Tfs_warehouse Ta baza danych przechowuje dane dla raportów. Wystąpienie SQL Server używane podczas instalowania i konfigurowania Azure DevOps Server.
Tfs_analysis Ta wielowymiarowa baza danych przechowuje zagregowane dane z kolekcji projektów. Wystąpienie SQL Server używane podczas instalowania i konfigurowania SQL Server Analysis Services.
Bazy danych kolekcji projektów Jedna baza danych dla każdej kolekcji projektów zawierająca dane ze wszystkich projektów w tej kolekcji. Wystąpienie SQL Server zgodne z Azure DevOps Server.

Warstwa klienta

Warstwa klienta komunikuje się z warstwą aplikacji za pośrednictwem modelu obiektów serwera i używa tych samych usług sieci Web wymienionych dla tej warstwy. Jest to prawda, czy wdrażasz Azure DevOps Server lokalnie, czy też używasz Azure DevOps Services. Oprócz tego modelu warstwa klienta składa się ze składników programu Visual Studio Industry Partners (VSIP), integracji pakietu Microsoft Office, interfejsów wiersza polecenia i platformy do ewidencjonowania zasad.

Konfigurowanie

Hostowana usługa zależy od usług klienckich, wdrożonych lokalnie oraz połączenia internetowego z aplikacją i warstwami danych hostowanymi w chmurze. Lokalne wdrożenie Azure DevOps Server zależy od SQL Server, internetowych usług informacyjnych (IIS) i systemu operacyjnego Windows. Zależne od wybranej topologii Azure DevOps Server mogą również zależeć od SQL Server Reporting Services lub produktów programu SharePoint. W związku z tym informacje o konfiguracji Azure DevOps Server mogą być przechowywane w dowolnej z następujących lokalizacji:

  • Magazyny danych usług IIS.
  • Pliki konfiguracji dla Azure DevOps Server.
  • Źródła danych dla usług Reporting Services (na przykład dane TFSREPORTS).
  • Baza danych konfiguracji dla Azure DevOps Server. Rejestr Azure DevOps Server jest częścią bazy danych konfiguracji.
  • Rejestr systemu Windows.

Przykłady różnych topologii wdrażania lokalnego i miejsca przechowywania tych zasobów można znaleźć w temacie Przykłady prostej topologii, Przykłady umiarkowanej topologii i Przykłady złożonej topologii. Podczas utrzymywania lokalnego wdrożenia Azure DevOps Server należy uwzględnić te źródła konfiguracji. Aby zmienić konfigurację w dowolny sposób, może być konieczne zmodyfikowanie informacji przechowywanych w wielu lokalizacjach. Może być również konieczne zmianę informacji o konfiguracji dla warstw danych i klientów. Azure DevOps Server zawiera konsolę administracyjną i kilka narzędzi wiersza polecenia, które ułatwiają wprowadzanie tych zmian. Aby uzyskać więcej informacji, zobacz Szybki przewodnik dotyczący zadań administracyjnych.

Usługa Active Directory i synchronizacja tożsamości grup

W przypadku wdrożeń lokalnych, w których usługa Azure DevOps jest uruchomiona w domenie usługi Active Directory, informacje o grupie i tożsamości są synchronizowane w przypadku wystąpienia dowolnego z następujących zdarzeń:

  • Serwer warstwy aplikacji jest uruchamiany.
  • Grupa usługi Active Directory jest dodawana do grupy usługi Azure DevOps.

Okres określony w zaplanowanym zadaniu. Wartość domyślna to jedna godzina, a wszystkie grupy w Azure DevOps Server są aktualizowane co 24 godziny.

Usługi Zarządzania tożsamościami (IMS) synchronizują się z usługą Active Directory i zmieniają tożsamości propagowane z serwera do klientów. Domyślnie wszystkie grupy są aktualizowane w ciągu 24 godzin, ale można dostosować je tak, aby lepiej odpowiadały potrzebom wdrożenia. Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące zaufania i lasów dla Azure DevOps Server. W przypadku wdrożeń lokalnych, które nie korzystają z usługi Active Directory, zobacz Zarządzanie Azure DevOps Server w grupie roboczej.

Grupy i uprawnienia

We wdrożeniu lokalnym Azure DevOps Server ma własny zestaw domyślnych grup i uprawnień, które można ustawić na poziomie projektu, kolekcji lub serwera. Możesz tworzyć grupy niestandardowe i dostosowywać uprawnienia na poziomie grupy i poszczególnych poziomów. Jednak użytkownicy lub grupy dodane do Azure DevOps Server nie są automatycznie dodawane do dwóch składników, na których lokalne wdrożenia Azure DevOps Server mogą zależeć od: produktów programu SharePoint i usług Reporting Services. Jeśli wdrożenie korzysta z tych programów, należy dodać do nich użytkowników i grupy oraz przyznać odpowiednie uprawnienia, aby użytkownicy lub grupy działały prawidłowo we wszystkich operacjach w Azure DevOps Server. Aby uzyskać więcej informacji, zobacz Zarządzanie użytkownikami lub grupami w Azure DevOps Server.

W przypadku wdrożeń hostowanych dostęp jest kontrolowany za pomocą kombinacji kont Microsoft i członkostwa w zespole. Aby uzyskać więcej informacji, zobacz omówienie Azure DevOps Services.

Porty sieciowe i protokoły

Domyślnie lokalne wdrożenie Azure DevOps Server jest skonfigurowane do używania określonych portów sieciowych i protokołów. Na poniższej ilustracji przedstawiono ruch sieciowy dla Azure DevOps Server w prostym wdrożeniu.

Prosta instalacja lokalna

Podobnie hostowana usługa dla Azure DevOps Server jest skonfigurowana do używania określonych portów sieciowych i protokołów. Na poniższej ilustracji przedstawiono ruch sieciowy we wdrożeniu hostowanym.

Hostowana Azure DevOps Server

 

Na poniższej ilustracji przedstawiono ruch sieciowy w bardziej złożonym wdrożeniu, który obejmuje składniki do zarządzania laboratorium programu Visual Studio. (Należy pamiętać, że rozwiązanie Lab Management zostało wycofane z wersji TFS 2017 i nowszych).

Warstwa aplikacji

Środowiska wirtualne

maszyny wirtualne

Maszyny wirtualne używają portu 80 do komunikowania się z dowolnym kontrolerem testów dotyczącym pobierania agenta zarządzania laboratorium. Sprawdź, czy ten port jest włączony, jeśli masz problemy z komunikacją.

Domyślne ustawienia sieciowe

Domyślnie komunikacja między komputerami we wdrożeniu usługi Azure DevOps korzysta z protokołów i portów przedstawionych w poniższej tabeli. Jeśli gwiazdka (*) jest zgodna z numerem portu, możesz dostosować ten port.

Warstwa i usługa Protokół Port
Warstwa aplikacji — usługi sieci Web HTTP/HTTPS 8080/443*
Warstwa aplikacji — Administracja produktami programu SharePoint HTTP 17012* jeśli produkty programu SharePoint zostały zainstalowane z Azure DevOps Server; w przeciwnym razie wygenerowane losowo
Warstwa aplikacji — produkty programu SharePoint i usługi Reporting Services HTTP
Usługa Instrumentacja zarządzania Windows (WMI) (wymagana podczas instalacji w celu określenia i zweryfikowania adresów URL usług raportowania)
80* Port dynamiczny
Warstwa danych MS-SQL TCP 1433*
Warstwa danych (SQL Server Analysis Services) MS-AS wartość domyślna (2382 lub 2383)*
Port domyślny różni się w zależności od wersji zainstalowanego SQL Server i typu wystąpienia. Użyj SQL Server Configuration Manager, aby określić porty używane przez wdrożenie.
Serwer proxy usługi Azure DevOps — klient do serwera proxy HTTP 8081*
Serwer proxy usługi Azure DevOps — serwer proxy do warstwy aplikacji HTTP/HTTPS 8080/443*
Warstwa klienta — Reporting Services HTTP 80*
Warstwa klienta — usługi sieci Web HTTP/HTTPS 8080/443*
Kompilowanie kontrolera do warstwy aplikacji HTTP/HTTPS 8080/443
Kompilowanie agenta w warstwie aplikacji HTTP/HTTPS 8080/443
serwer Release Management HTTP lub HTTPS 1000*
Release Management Client HTTP lub HTTPS 1000*
agent Release Management HTTP lub HTTPS 1000*
Testowanie kontrolera do warstwy aplikacji HTTP/HTTPS 8080/443*
Warstwa aplikacji do testowania kontrolera Komunikacja zdalna platformy .NET 6901*
Warstwa aplikacji do systemu nazw domen (DNS) Aktualizacja dynamiczna DNS 53
Warstwa aplikacji — Virtual Machine Manager HTTP 8100
Kontroler testów do agenta testowego Komunikacja zdalna platformy .NET 6910*
Test agenta do testowania kontrolera Komunikacja zdalna platformy .NET 6901*
Kompilowanie kontrolera kompilacji do agenta kompilacji Protokół SOAP za pośrednictwem protokołu HTTP 9191
Agent laboratorium do agenta laboratorium w środowisku izolowanym Gniazda TCP 9050
Kompilowanie agenta do kompilowania kontrolera Protokół SOAP za pośrednictwem protokołu HTTP 9191
Konsola administratora programu Virtual Machine Manager — Virtual Machine Manager HTTP 8100
Virtual Machine Manager — hosty programu Virtual Machine Manager Zdalne zarządzanie systemem Windows (WinRM) do wykonywania akcji
Usługa inteligentnego transferu w tle (BITS) do przesyłania danych
80 do wykonania akcji
443 do przesyłania danych
Virtual Machine Manager — serwer biblioteki programu Virtual Machine Manager Usługa WinRM do wykonywania akcji
Usługa BITS do transferu danych
80 do wykonania akcji
443 do przesyłania danych
Warstwa aplikacji — hosty programu Virtual Machine Manager Komunikacja modelu obiektów składników rozproszonych/interfejsu zarządzania windows (DCOM/WMI) w celu przesyłania danych 135
Dynamicznie przypisywane w zakresie 49152 do 65535
Warstwa klienta — hosty programu Virtual Machine Manager Połączenie oparte na hoście z maszyną wirtualną. 2179 do wykonywania połączeń opartych na hoście
Hostowane usługi HTTPS 443

Ustawienia sieciowe z możliwością dostosowywania

Jak pokazano w poprzedniej tabeli, możesz zmienić komunikację między aplikacją, danymi i warstwami klienta we wdrożeniach lokalnych, modyfikując Azure DevOps Server, aby używać portów niestandardowych. W poniższej tabeli opisano przykładowe zmiany portów z protokołu HTTP na HTTPS.

Uwaga

Aby skonfigurować Azure DevOps Server do korzystania z protokołu HTTPS i secure Sockets Layer, należy nie tylko włączyć porty dla ruchu sieciowego HTTPS, ale także wykonywać wiele innych zadań. Aby uzyskać więcej informacji, zobacz Konfigurowanie protokołu HTTPS z protokołem Secure Sockets Layer (SSL) dla Azure DevOps Server.

Usługa Protokół Port
Usługi internetowe z protokołem SSL HTTPS Skonfigurowane przez administratora
Protokół HTTPS administracji centralnej programu SharePoint Skonfigurowane przez administratora
Produkty programu SharePoint HTTPS 443
Reporting Services HTTPS 443
Usługi sieci Web klienta HTTPS Skonfigurowane przez administratora
Zarządzanie wydaniami HTTPS Skonfigurowane przez administratora