Bagikan melalui


Gambaran umum arsitektur untuk Azure DevOps Server

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

Untuk merencanakan dan mengelola penyebaran, Anda harus terlebih dahulu memahami arsitektur Azure DevOps Server yang mendasar. Memahami arsitektur dapat membantu Anda menjaga kesehatan penyebaran secara keseluruhan dan membantu memastikan ketersediaan keseluruhan server dan layanan yang diperlukan tim pengembangan Anda.

Anda dapat menyebarkan Azure DevOps Server dengan beberapa cara: di satu server; di banyak server; atau dalam satu domain atau grup kerja, atau di seluruh domain. Atau, Anda dapat memilih untuk menggunakan Azure DevOps Services, di mana semua elemen server penyebaran dihosting untuk Anda oleh Microsoft. Memahami arsitektur dapat membantu Anda memutuskan topologi apa yang paling memungkinkan untuk memenuhi kebutuhan bisnis Anda. Terlepas dari pilihan topologi Anda, jika Anda memahami arsitektur Azure DevOps Server yang mendasar, Anda dapat mengelola persyaratan fisik dan logis dengan lebih baik. Artikel ini memberikan gambaran umum sederhana tentang berbagai arsitektur, dengan tautan ke informasi selengkapnya tentang contoh penyebaran. Ini juga menyediakan informasi teknis tentang layanan, database, informasi konfigurasi, dan port jaringan dan protokol penyebaran lokal.

Untuk memahami arsitektur Azure DevOps Server dan pengaruhnya terhadap penyebaran, Anda harus mempertimbangkan hal berikut:

  • Aplikasi logis, data, dan tingkat klien Azure DevOps, dan apakah Anda ingin menggunakan satu atau beberapa server untuk tingkat aplikasi dan data, atau apakah Anda ingin aplikasi dan tingkat data dihosting di cloud untuk Anda dengan menggunakan Azure DevOps Services
  • Lokasi server fisik atau virtual yang menghosting tingkat tersebut
  • Team Foundation Build serta jumlah dan lokasi komputer build yang berjalan di lingkungan Anda, termasuk berapa banyak yang mungkin dibutuhkan untuk mendukung praktik pengembangan, atau apakah Anda akan menggunakan layanan cloud Azure Pipelines untuk membangun dan menyebarkan aplikasi perangkat lunak
  • Potensi kebutuhan untuk Server Proksi Azure DevOps

Selain itu, Anda harus mempertimbangkan interaksi-interaksi antara entitas-entitas ini. Misalnya, jika memilih untuk menggunakan layanan Azure DevOps Server yang dihosting, Anda harus memastikan bahwa klien Anda dapat mengakses layanan pada port 443. Jika memilih untuk menyebarkan Azure DevOps Server secara lokal, Anda harus mengetahui layanan Web, database, dan model objek apa yang Azure DevOps Server gunakan. Selain itu, Anda harus mengetahui port dan protokol jaringan mana yang Azure DevOps Server gunakan secara default dan port jaringan mana yang dapat Anda sesuaikan. Terakhir, Anda harus memahami izin apa yang harus Anda tetapkan dalam Azure DevOps Server dan komponen dan program tempat penyebaran Anda bergantung.

Selain layanannya sendiri, Azure DevOps Server bergantung pada layanan-layanan lain agar berfungsi. Untuk informasi selengkapnya tentang layanan ini, lihat Konsep Azure DevOps Server dan Komponen gudang data Azure DevOps Server. Untuk informasi selengkapnya tentang persyaratan dan dependensi untuk penginstalan, lihat Panduan pemasangan Azure DevOps Server.

Penting

Anda tidak boleh mengubah database Azure DevOps Server secara manual kecuali Anda diperintahkan untuk melakukannya oleh Dukungan Microsoft, atau Anda mengikuti prosedur yang dijelaskan untuk mencadangkan database secara manual. Modifikasi lainnya dapat membatalkan perjanjian layanan Anda.

Azure DevOps Services

Azure DevOps Services

Microsoft menawarkan opsi untuk menggunakan Azure DevOps Services, yang dapat menghosting semua aspek Azure DevOps Server sisi server untuk Anda. Kode sumber, item kerja, konfigurasi build, dan fitur tim Anda semuanya dihosting di cloud. Dari sudut pandang arsitektur, ini sangat menyederhanakan penggunaan Azure DevOps Server Anda, karena satu-satunya aspek arsitektur yang perlu Anda pertimbangkan adalah komponen klien dan akses Internet mereka.

Saat menggunakan Azure DevOps Services, Anda menggunakan browser web untuk menyambungkan ke layanan menggunakan akun Microsoft Anda. Anda dapat membuat proyek, menambahkan anggota ke tim Anda, dan bekerja seperti yang dilakukan dengan Azure DevOps Server yang diinstal secara lokal, tanpa overhead mengelola server. Azure DevOps Services menghosting tingkat aplikasi, tingkat data, dan server build Anda di cloud.

Untuk mempelajari selengkapnya tentang layanan cloud versus penyebaran lokal, tinjau Azure DevOps Services vs. Azure DevOps Server.

Model objek

Dengan arsitektur yang dihosting atau disebarkan secara lokal, Anda dapat memperluas fitur dan fungsionalitas Azure DevOps dengan menulis aplikasi yang didasarkan pada server atau model objek kliennya. Di semua jenis penyebaran, Anda dapat menulis aplikasi yang memperluas kemampuan klien. Namun, jika ingin memperluas kemampuan server, aplikasi Anda harus berjalan di server tingkat-aplikasi. Untuk memperluas kemampuan klien, Anda harus menjalankan aplikasi pada komputer yang sama dengan Team Explorer.

Model objek Azure DevOps Server

Layanan web dan database untuk penyebaran lokal

Azure DevOps Server menyertakan sekumpulan layanan web dan database yang Anda pasang dan konfigurasikan secara terpisah di server atau server yang menghosting aplikasi logis, data, dan tingkat klien untuk Azure DevOps. Beberapa fitur, seperti papan tugas, dan fitur backlog berbasis-tim, sepenuhnya berbasis web dan hanya diakses melalui portal web, layanan berbasis web sisi-klien. Lainnya, seperti fitur kontrol versi, dapat diakses melalui portal web atau melalui aplikasi klien. Ilustrasi berikut ini menyediakan tampilan tingkat-tinggi layanan web, aplikasi, dan database untuk penyebaran lokal Azure DevOps Server.

Azure DevOps Server tingkat layanan utama

Layanan Azure DevOps Server opsional

klien Azure DevOps Server

Layanan tingkat-koleksi

Layanan tingkat-koleksi menyediakan fungsionalitas untuk operasi di tingkat koleksi proyek. Anda dapat membuat aplikasi yang memperluas Azure DevOps Server dengan menggunakan beberapa layanan ini. Untuk informasi selengkapnya tentang membuat aplikasi untuk Azure DevOps Server, lihat Mengembangkan Ekstensi.

Catatan

Beberapa layanan muncul di lebih dari satu tingkat. Misalnya, layanan Registri berfungsi di tingkat koleksi dan tingkat server, dan muncul di kedua daftar.

Layanan kerangka kerja:

  • Layanan registri
  • Layanan pendaftaran (untuk kompatibilitas dengan versi Azure DevOps Server yang lebih lama)
  • Layanan Properti
  • Layanan Kejadian
  • Layanan keamanan
  • Layanan lokasi
  • Layanan Pengelolaan Identitas
  • Layanan Web Kontrol Versi
  • Layanan Web Pelacakan Item Kerja
  • Layanan Web Build Team Foundation
  • Layanan Web Pengelolaan Lab
  • Layanan Web Administrasi VMM
  • Layanan Web Pengontrol Agen Pengujian

Layanan tingkat-server

Layanan tingkat-server (juga dikenal sebagai layanan tingkat-aplikasi) menyediakan fungsionalitas untuk operasi untuk Azure DevOps Server sebagai aplikasi perangkat lunak. Anda dapat membuat aplikasi yang memperluas Azure DevOps Server dengan menggunakan beberapa layanan ini.

Layanan kerangka kerja:

  • Layanan registri
  • Layanan kejadian
  • Layanan Koleksi Proyek
  • Layanan properti
  • Layanan keamanan
  • Layanan lokasi
  • Layanan Pengelolaan Identitas
  • Layanan Administrasi
  • Layanan Pengelolaan Koleksi
  • Layanan Katalog

Tingkat data

Tingkat data mencakup data, prosedur tersimpan, dan logika terkait lainnya. Saat Anda menggunakan Azure DevOps Services, tingkat data dihosting untuk Anda menggunakan SQL Server Azure. Dalam penyebaran lokal Azure DevOps Server, tingkat data logis terdiri dari penyimpanan operasional berikut dalam SQL Server. Penyimpanan ini mungkin terletak di satu server fisik, atau didistribusikan di banyak server. Anda dapat membuat aplikasi yang memperluas Azure DevOps Server dengan menggunakan beberapa penyimpanan operasional ini.

  • Database konfigurasi (TFS_Configuration)
  • Gudang aplikasi (TFS_Warehouse)
  • Database Analysis Services (TFS_Analysis)
  • Database untuk koleksi proyek (TFS_CollectionName)

Tabel berikut ini menyediakan daftar database yang Azure DevOps Server gunakan dalam penyebaran lokal. Kecuali dinyatakan lain, Anda dapat memindahkan semua database dalam daftar ini dari server asli dan instans tempat database diinstal dan memulihkannya ke server atau instans lain.

Nama Database Deskripsi Server
TFS_Configuration Database ini menyimpan katalog sumber daya dan informasi konfigurasi untuk Azure DevOps Server. Database ini berisi penyimpanan operasional untuk Azure DevOps Server. Instans SQL Server yang digunakan saat Azure DevOps Server diinstal dan dikonfigurasi.
TFS_Warehouse Database ini menyimpan data untuk laporan. Instans SQL Server yang digunakan saat Azure DevOps Server diinstal dan dikonfigurasi.
TFS_Analysis Database multi-dimensi ini menyimpan data yang diagregasi dari koleksi proyek. Instans SQL Server yang digunakan saat SQL Server Analysis Services diinstal dan dikonfigurasi.
Database untuk koleksi proyek Satu database untuk setiap koleksi proyek, berisi data dari semua proyek di dalam koleksi tersebut. Instans SQL Server yang kompatibel dengan Azure DevOps Server.

Tingkat klien

Tingkat klien berkomunikasi dengan tingkat aplikasi melalui model objek server, dan menggunakan layanan Web yang sama yang tercantum untuk tingkat tersebut. Apakah Anda menyebarkan Azure DevOps Server secara lokal, atau jika Anda menggunakan Azure DevOps Services, ini adalah benar. Selain model itu, tingkat klien terdiri dari komponen Visual Studio Industry Partners (VSIP), integrasi Microsoft Office, antarmuka baris-perintah, dan kerangka kerja untuk kebijakan tinjauan.

Konfigurasi

Layanan yang dihosting tergantung pada layanan klien, disebarkan secara lokal, dan koneksi Internet ke aplikasi dan tingkat data yang dihosting di cloud. Penyebaran lokal Azure DevOps Server tergantung pada SQL Server, Layanan Informasi Internet (IIS), dan sistem operasi Windows. Kontingen pada topologi pilihan Anda, Azure DevOps Server mungkin juga bergantung pada Layanan Pelaporan SQL Server atau Produk SharePoint. Oleh karena itu, informasi konfigurasi untuk Azure DevOps Server dapat disimpan di salah satu lokasi berikut:

  • Penyimpanan data IIS.
  • File konfigurasi untuk Azure DevOps Server.
  • Sumber data untuk Layanan Pelaporan (misalnya, data TFSREPORTS).
  • Database konfigurasi untuk Azure DevOps Server. Registri Azure DevOps Server adalah bagian dari database konfigurasi.
  • Registri Windows.

Untuk contoh topologi penyebaran lokal yang berbeda dan tempat sumber daya ini disimpan, lihat Contoh Topologi Sederhana, Contoh Topologi Sedang, dan Contoh Topologi Kompleks. Saat mempertahankan penyebaran Azure DevOps Server lokal, Anda harus mempertimbangkan sumber konfigurasi ini. Untuk mengubah konfigurasi dengan cara apa pun, Anda mungkin perlu memodifikasi informasi yang disimpan di beberapa lokasi. Anda mungkin juga perlu mengubah informasi konfigurasi untuk data dan tingkat klien. Azure DevOps Server menyertakan konsol administrasi dan beberapa utilitas baris-perintah untuk membantu Anda membuat perubahan ini. Untuk informasi selengkapnya, lihat Referensi cepat tugas administratif.

Direktori Aktif dan sinkronisasi identitas grup

Dalam penyebaran lokal di mana Azure DevOps berjalan di domain Direktori Aktif, informasi grup dan identitas disinkronkan ketika salah satu peristiwa berikut terjadi:

  • Server tingkat-aplikasi dimulai.
  • Grup Direktori Aktif ditambahkan ke grup Azure DevOps.

Periode waktu yang ditentukan dalam pekerjaan terjadwal berlalu. Secara default adalah satu jam, dan semua grup dalam Azure DevOps Server diperbarui setiap 24 jam.

Identity Management Services (IMS) disinkronkan dengan Direktori Aktif, dan identitas yang diubah disebarkan dari server ke klien. Secara default, semua grup diperbarui dalam waktu 24 jam, tetapi Anda dapat menyesuaikan ini agar lebih sesuai dengan kebutuhan penyebaran Anda. Untuk informasi selengkapnya, lihat Pertimbangan Kepercayaan dan Forest untuk Azure DevOps Server. Untuk penyebaran lokal yang tidak menggunakan Direktori Aktif, lihat Mengelola Azure DevOps Server dalam grup kerja.

Grup dan izin

Dalam penyebaran lokal, Azure DevOps Server memiliki sekumpulan grup dan izin default sendiri yang dapat Anda atur di tingkat proyek, koleksi, atau server. Anda dapat membuat grup menyesuaikan dan menyesuaikan izin di tingkat grup dan individual. Namun, pengguna atau grup yang Anda tambahkan ke Azure DevOps Server tidak secara otomatis ditambahkan ke dua komponen tempat penyebaran lokal Azure DevOps Server dapat bergantung: Produk SharePoint and Layanan Pelaporan. Jika penyebaran Anda menggunakan program ini, Anda harus menambahkan pengguna dan grup kepada mereka, dan memberikan izin yang sesuai agar pengguna atau grup tersebut berfungsi dengan benar di semua operasi di Azure DevOps Server. Untuk informasi selengkapnya, lihat Mengelola pengguna atau grup di Azure DevOps Server.

Untuk penyebaran yang dihosting, akses dikontrol melalui kombinasi akun Microsoft dan keanggotaan tim. Untuk informasi selengkapnya, lihat Gambaran umum Azure DevOps Services.

Port dan protokol jaringan

Secara default, penyebaran lokal Azure DevOps Server dikonfigurasi untuk menggunakan port dan protokol jaringan tertentu. Ilustrasi berikut menunjukkan lalu lintas jaringan untuk Azure DevOps Server dalam penyebaran sederhana.

Penginstalan lokal sederhana

Demikian pula, layanan yang dihosting untuk Azure DevOps Server dikonfigurasi untuk menggunakan port dan protokol jaringan tertentu. Ilustrasi berikut menunjukkan lalu lintas jaringan dalam penyebaran yang dihosting.

Azure DevOps Server yang dihosting

 

Ilustrasi berikut menunjukkan lalu lintas jaringan dalam penyebaran yang lebih kompleks yang menyertakan komponen untuk Visual Studio Lab Management. (Perhatikan bahwa Pengelolaan Lab tidak digunakan lagi untuk TFS 2017, dan versi yang lebih baru.)

Tingkat aplikasi

Lingkungan virtual

komputer virtual

Mesin virtual menggunakan port 80 untuk berkomunikasi dengan pengontrol pengujian apa pun tentang pengunduhan agen pengelolaan lab. Periksa apakah port ini diaktifkan jika Anda mengalami masalah komunikasi.

Pengaturan jaringan default

Secara default, komunikasi antara komputer dalam penyebaran Azure DevOps menggunakan protokol dan port yang diperlihatkan dalam tabel berikut. Jika tanda bintang (*) mengikuti nomor port, Anda dapat menyesuaikan port tersebut.

Tingkat dan layanan Protokol Port
Tingkat aplikasi – Layanan Web HTTP/HTTPS 8080/443*
Tingkat aplikasi – Administrasi Produk SharePoint HTTP 17012* jika Produk SharePoint diinstal dengan Azure DevOps Server; jika tidak, dihasilkan secara acak
Tingkat aplikasi – Produk SharePoint dan Layanan Pelaporan HTTP
Layanan Windows Management Instrumentation (WMI) (diperlukan selama penginstalan untuk menentukan dan memverifikasi URL untuk layanan pelaporan)
80* port Dinamis
Tingkat data MS-SQL TCP 1433*
Tingkat data (SQL Server Analysis Services) MS-AS default (2382 atau 2383)*
Port default bervariasi tergantung pada versi SQL Server yang Anda instal dan jenis instans. Gunakan Pengelola Konfigurasi SQL Server untuk menentukan port yang digunakan oleh penyebaran Anda.
Server Proksi Azure DevOps - klien ke proksi HTTP 8081*
Server Proksi Azure DevOps - proksi ke tingkat aplikasi HTTP/HTTPS 8080/443*
Tingkat klien - Layanan Pelaporan HTTP 80*
Tingkat klien - Layanan web HTTP/HTTPS 8080/443*
Membangun pengontrol ke HTTP/HTTPS tingkat aplikasi 8080/443
Membangun agen ke tingkat aplikasi HTTP/HTTPS 8080/443
Server Pengelolaan Rilis HTTP atau HTTPS 1000*
Klien Pengelolaan Rilis HTTP atau HTTPS 1000*
Agen Pengelolaan Rilis HTTP atau HTTPS 1000*
Menguji pengontrol ke tingkat aplikasi HTTP/HTTPS 8080/443*
Tingkat aplikasi untuk menguji pengontrol .NET jarak jauh 6901*
Tingkat aplikasi ke Sistem Nama Domain (DNS) Pembaruan Dinamis DNS 53
Tingkat aplikasi – Pengelola Mesin Virtual HTTP 8100
Menguji pengontrol untuk menguji agen .NET jarak jauh 6910*
Menguji agen untuk menguji pengontrol .NET jarak jauh 6901*
Membangun pengontrol untuk membangun agen SOAP melalui HTTP 9191
Agen lab ke agen lab di lingkungan yang terisolasi Soket TCP 9050
Membangun agen untuk membangun pengontrol SOAP melalui HTTP 9191
Konsol Administrator Pengelola Mesin Virtual – Pengelola Mesin Virtual HTTP 8100
Pengelola Mesin Virtual– Host Pengelola Mesin Virtual Windows Remote Management (WinRM) untuk melakukan tindakan
Background Intelligent Transfer Service (BITS) untuk mentransfer data
80 untuk melakukan tindakan
443 untuk mentransfer data
Pengelola Mesin Virtual– Pustaka server Pengelola Mesin Virtual WinRM untuk melakukan tindakan
BITS untuk mentransfer data
80 untuk melakukan tindakan
443 untuk mentransfer data
Tingkat aplikasi – Host Pengelola Mesin Virtual Komunikasi Model Objek Komponen Terdistribusi/Antarmuka Pengelolaan Windows (DCOM/WMI) untuk mentransfer data 135
Ditetapkan secara dinamis dalam rentang 49152 hingga 65535
Tingkat klien – Host Pengelola Mesin Virtual Koneksi berbasis-host ke mesin virtual. 2179 untuk melakukan koneksi berbasis-host
Layanan dihosting HTTPS 443

Pengaturan jaringan yang dapat disesuaikan

Seperti yang ditunjukkan tabel sebelumnya, Anda dapat mengubah komunikasi antara tingkat aplikasi, data, dan klien dalam penyebaran lokal dengan memodifikasi Azure DevOps Server untuk menggunakan port kustom. Tabel berikut ini menjelaskan contoh perubahan port dari HTTP ke HTTPS.

Catatan

Untuk mengonfigurasi Azure DevOps Server menggunakan HTTPS dan Secure Sockets Layer, Anda tidak hanya boleh mengaktifkan port untuk lalu lintas jaringan HTTPS tetapi juga melakukan banyak tugas lainnya. Untuk informasi selengkapnya, lihat Menyiapkan HTTPS dengan Secure Sockets Layer (SSL) untuk Azure DevOps Server.

Layanan Protokol Port
Layanan Web dengan SSL HTTPS Dikonfigurasi oleh administrator
HTTPS Administrasi Pusat SharePoint Dikonfigurasi oleh administrator
Produk SharePoint HTTPS 443
SQL Server Reporting Services HTTPS 443
Layanan Web Klien HTTPS Dikonfigurasi oleh administrator
Pengelolaan Rilis HTTPS Dikonfigurasi oleh administrator