Azure DevOps Server 2019 RC Kurulumu

Azure DevOps Server 2019, eski adıyla Team Foundation Server (TFS), Microsoft’un düzenli bir şekilde yazılım projeleri geliştirmeyi mümkün kılan bir ürün ailesidir. Yazılım geliştirme ekiplerinin ve yazdıkları kodları yönetmeyi sağlamanın yanında versiyon kontrol sistemi (VCS), Jira gibi bir sorun takip aracı (issue tracker) ve yazılım yaşam döngüsü yönetiminden (ALM) oluşan bir kombinasyondur.

Bu yazımızda Azure DevOps Server 2019’un RC (nihai sürüm adayı) sürümünü, yine yakında zamanda kullanıma sunulan Windows Server 2019 işletim sistemi üzerine kurulumunu anlatacağım. Neden RC sürüm ve neden Windows Server 2019? Girizgah yazımda da belirttiğim tecrübe edeceğimiz bütün ürün ve servislerde son sürümlerini kullanmaya özellikle dikkat edeceğiz.

DevOps Server 2019 RC’yi kuracağımız altyapıyı kurgulamanın birçok yöntemi var. Bütün sunucu rollerinin, veri tabanının ve dosya depolarının tek sunucuda olduğu küçük ölçekli kurulumlardan, çoklu sunucu mimarisinde, hem Front Tier hem de Data Tier bileşenlerinin birden çok sunucuya yayıldığı, yüksek erişilebilir, esnek ve ölçeklenebilir yapılarda da kurulum gerçekleştirilebilir. Burada önemli olan iş ihtiyaçları, maliyet, performans ve feragat edeceğiniz özelliklere göre doğru kararı vermektir.

Sunucularımızı Microsoft Azure bulut ortamındaki sanal makineler üzerinde ayaklandıracağız. DevOps Server 2019’u Front Tier katmanını bir sunucuya, Data Tier katmanını ise ayrı bir sunucuya kuracağız. Data Tier katmanı bileşenleri olan veri tabanı, Analysis Services ve Reporting Services (SSRS) aynı sunucuda olacak. İstersek bu katmanı SQL AlwaysOn Availability Groups veya bu sürüme yeni eklenen Azure SQL (PaaS) desteği ile yüksek erişilebilir şekilde de kurabiliriz. Özellikle Azure’da AlwaysOn Availability Group kurulumu başlı başına bir makale konusu olabileceği için şimdilik burada buna değinmeyeceğiz. Fakat ürün nihai sürüme ulaştığında yüksek erişebilir bir yapıda kurulumu anlatan bir makale de yayımlamayı planlıyorum. Hatta son teknoloji demişken veri tabanını Azure SQL’de dahi konumlandırabiliriz. Yorum kısmına bu konuyla ilgili görüşlerinizi bildirmenizi rica ediyorum.

Yazımızın bazı noktalarında ürünün Azure’da konumlandırılmasına has bazı konfigürasyonlar yapacağız. Burada makalenin amacını bozmadan, ufak tüyolar ile konuyu pekiştireceğim.

Test ortamımızda halihazırda bir Active Directory sunucusu var. Dolayısıyla bütün kurulum, AD Domain yapısı üzerinde kurgulanmış durumda. Eğer bir AD sunucunuz yoksa öncesinde bunu kurup yapılandırmanız gerekecektir.

Öncelikle sanal makinelerimizi oluşturalım. Ücretsiz olarak açabileceğiniz bir Azure hesabı ile portala giriş yaptıktan sonra sanal makine oluşturma ekranına geçin. İlk olarak Front Tier katmanının kurulacağı sunucuyu oluşturalım.

2 çekirdek ve 8 GB RAM’e sahip bir sanal makine oluşturalım. Makine türü olarak B2ms’yi seçiyoruz. Dışarıya açılması gereken portlar tarafında HTTPS, HTTPve RDP’yi seçiyoruz.
İşletim sistemi için 128 GB boyutunda bir Standard SSD, dosya depoları içinse 512 GB’lık bir Standard SSD yeterli olacaktır. Kurulum sırasında ikincil diski neden eklediğimiz daha iyi anlaşılacak.
Networking sekmesinde Virtual Netwok ve Public IP ayarlarını yapalım.
Management sekmesinde Boot ve OS Diagnostics ayarlarını açık hale getirip bu verilerin yazılacağı Storage Account’u oluşturalım.
Gözden geçirme ekranında yaptığımız ayarları son bir kez bakarak “Create” butonuna basalım.

Application Tier, yani DevOps Server 2019'un kurulumunu yapacağımız makineyi böylece ayaklandırmış olduk. Şimdiyse veri tabanı, Analysis Services ve Reporting Services rollerinin kurulacağı ikinci sunucuyu ayaklandıralım.

Yine B2ms makine tipini seçelim ve Disks sekmesinde ek olarak şu ayarları yapalım.

Yine Standard SSD tipini kullanıyoruz. Bu sefer OS diskinin yanına iki adet 256 GB’lık data diski daha ekliyoruz.

Neden bu makineye iki adet data disk ekledik? Bu makinede SQL Server çalışacak ve dolayısıyla erişim süresi ve gecikmelere hassas bir iş yükü çalışacak. Best practice’te SQL Server’ın her bir bileşeni için ayrı boyut ve tiplerde diskler kullanılır fakat bir lab ortamı olduğu için şimdilik iki adet data diski ekleyeceğiz ve bunları Windows Server 2019'un Software Defined Storage özellikleriyle bir depolama havuzuna dönüştüreceğiz.

Makinelerimiz kurulup ayağa kalktıktan sonra aşağıdaki resimde görüdüğünüz kısımdan makinenin erişim bilgilerini görebileceksiniz.

Public IP address kısmındaki IP’den RDP ile makineye erişebilirsiniz.

Makineler hazır. İlk önce Data Tier katmanından başlayacağız. SQL sürümü olarak SQL Server 2017 Enterprise Edition kullandım. Siz ise Enterprise sürüm ile birebir aynı özellik setini içeren fakat sadece test ve lab ortamları için ücretsiz olarak sunulan Developer Edition’ı indirip kullanabilirsiniz.

SQL Server 2017 Developer Edition’ı aşağıdaki linkten indirebilirsiniz:

Kurulum dosyasını çalıştırdıktan sonra “Download Media” yı seçip ISO formatında indirebilirsiniz.

SQL Server’ı yönetmek için kullanacağımız SQL Server Management Studio’yu (bundan sonra SSMS diyeceğim) aşağıdaki linkten indirebilirsiniz.

Data Tier katmanı için indirilecek kısımlar şimdilik tamam.

Sunucumuzu oluştururken eklediğimiz iki data diskini yapılandıralım. Diskleri RAID0 yapısıyla birleştirip IOPS tarafında maksimum seviyeye ulaşacağız. Başlat ikonuna sağ tıklayıp “Disk Management” a girelim.

Partition Style olarak GPT’yi seçelim.
Diskler “Online” konumuna geçtikten sonra bu pencereyi kapatabiliriz. Bundan sonra konfigürasyonu Server Manager üzerinden yapacağız.
Sırayla File and Storage Services, Volumes, Storage Pools menüsüne girelim. Disklerimizi “Primordial” konumunda görmemiz önemli.
Disklerin üzerine sağ tıklayıp “New Storage Pool” u seçelim.
Bu ekranda iki diski de seçmemiz yeterli. Diğer ayarlar varsayılan olarak kalabilir.

Sihirbazın “Results” aşamasında “Create a virtual disk when this wizard close” kutucuğunu tikleyip Virtual Disk oluşturma sihirbazını tetikleyelim.

Açılan yeni sihirbazda Layout olarak Simple’ı seçiyoruz. Geleneksel disk konfigürasyonunda bu ayar RAID0'a tekabül ediyor. Sihirbazın “Results” aşamasında “Create a volume when this wizard closes” kutucuğunu tikleyip volume oluşturma sihirbazını tetikleyelim.

Oluşturacağımız volume’un dosya sistemini (NTFS), ismini ve sürücü harfini belirledikten sonra sihirbazı tamamlayabiliriz. Artık “striping” mantığında çalışan 512 GB’lık bir depolama havuzumuz var. 256 GB’lık Standard SSD tek başına 500 IOPS ve 60 MB/s througput sunarken şuan Simple disk yapılandırması ile bu rakamları iki katına çıkarmış olduk.

İndirdiğimiz SQL Server 2017 ISO dosyasına çift takladıktan sonra setup.exe dosyasını çalıştıralım ve kuruluma başlayalım. New Standalone Instance seçeneğine tıklayalım.

Feature Selection adımına geldiğimizde Database Engine Services, Full-Text and Semantic Extractions for Search, Analysis Services özelliklerini seçerek devam edelim.

“Looking for Reporting Services?” ifadesinin yanıdaki “Download it from the web” linkinden Reporting Services’ı indirebilirsiniz.

SQL Server 2017 ile Reporting Services ayrı bir indirilebilir dosya olarak internette sunuluyor. Şayet SQL Server 2016 kullanıyorsanız yine bu ekranda Reporting Services’ı da seçmeyi unutmayın.

Server Configuration aşamsında Collation ayarları sekmesinde SQL Server için SQL_Latin1_General_CP1_CI_AS; Analysis Services için Latin1_General_CI_AS seçelim.

Database Engine Configuration ekranına kadar ilerleyelim. Bu ekranda “Add current user” diyerek kurulumu yaptığımız mevcut domain kullanıcısını SQL Server Admin’leri arasına ekleyelim. Sysadmin yetkisi vermek istedğiniz farklı domain kullanıcıları varsa “Add” diyerek bunları ekleyebilirsiniz.

Data Directories sekmesinde Database Directory, Log Directory ve Backup Directory olarak önceki adımlarda oluşturduğumuz depolama havuzunu gösteriyoruz.

Analysis Services Configuration adımında Server Cofiguration Mode’unu “Multidimansional and Data Mining Mode” olarak işaretleyelim.

Data Directories sekmesinde yine önceden oluşturduğumuz depolama havuzunu seçelim.

Bundan sonraki adımları hızlıca geçerek kurulumu başlatalım.

Kurulum bittiğinde internetten indirdiğimiz Reporting Services dosyasına çift tıklayarak çalıştıralım.

Free Edition seçip kurulumu başlatalım.
Configure Report Server’a tıklayıp konfigürasyon bittikten sonra sunucumuzu yeniden başlatalım.

Sunucumuz yeniden açıldıktan sonra son olarak Windows Firewall’da iletişim için gerekli portları açmamız gerekiyor. Başlat menüsünden “Windows Defender with Advanced Security” yi aratarak firewall’ı açalım.

Inbound Rules’a sağ tıkalyıp “New Rule” diyerek SQL Server, Analysis Services ve Reporting Services için gerekli portları tanımlamak için “Port”u seçelim.
Spesific local ports kısmında 1433, 2383, 80 ve 443 portlarını açalım ve sihirbazı tamamlayalım.

Data Tier katmanız artık hazır. Şimdi Front Tier kurulumuna geçebiliriz.

Front Tier için oluşturduğumuz sunucuya RDP ile bağlanalım ve aşağıdaki linkten Azure Devops Server 2019 RC’yi indirelim.

İndirdiğimiz mini kurulum dosyasına çift tıklayıp açılan ekranda “Install” diyerek geri kalan kurulum dosyalarının indirilip kurulması sürecini başlatalım.

Kurulum bittikten sonra konfigürasyon için “Start Wizard” butonuna basalım.

Yeni bir kurulum yapacağımız için seçeneği seçiyoruz. Şayet yeni sürüme migrasyon yapıyor olsaydık ikinci seçeneği seçecektik.
New Deployment — Advanced, gelişmiş konfigürasyon seçeneği ile ilerleyelim.

Database adımına kadar ilerleyelim. Burada biraz önce kurduğumuz SQL sunucumuzun IP adresini ve sunucu ismini belirtip “test” butonuna basalım. Testten başarıyla geçtiysek devam edebiliriz. Testin başarıyla geçmesi için SQL sunucusunda önceki adımlarda belirttiğimiz portların Windows Firewall’da açılmış olması ve kurulumu yapan domain kullanıcısının SQL Server’da sysadmin yetkisine sahip olması gerekiyor.

Accounts kısmına geçmeden önce Active Directory ortamında “tfs.service” ve “tfs.reports” isimli iki kullanıcı açalım. Bu kullanıcılardan ilkini DevOps Server service account, ikincisini ise Reporting Services service account’u olarak kullanacağız. Eğer Search hizmetini de kuruyor olsaydık bu işi için de bir service account açmamız gerecekti fakat bu yazımızda Search servisini kurmayacağız.

Hesap bilgilerini girerek Test butonuna basalım.
Varsayılanda 8080 portu seçili olsa da ben bunu 80 olarak değiştirdim. Kullanacağınız her bir site için ayrı bir hostname belirlediğiniz takdirde aynı port üzerinde istediğiniz kadar site açabilirsiniz. Dolayısıyla seçim burada size ait.

Yazımızın başında bu sunucu için 512 GB’lık ikincil bir data disk eklemiştik. İşte bunun sebebi File Cache Location için ayrı bir diskin tavsiye edilmesidir. Bu diski “Disk Management” üzerinden işletim sistemine tanıtıp, devreye aldıktan sonra bu ekranda dosya yolu olarak gösterelim.

“Configure Reporting for use with Azure DevOps Server” ile kurulumun SSRS’i yapılandırmasını sağlıyoruz.
SSRS Instance kısmında SQL sunucumuzun IP adresini veya sunucu ismini ve Intance ismini belirttikten sonra “Populate URLs” ile linklerin gelmesini sağlayalım. Eğer burada bir hata alıyorsanız SSRS konfigürasyonunuzu yeniden gözden geçirmeniz gerekebilir.
Analysis Services’ı SQL Server’ı kurduğumuz sunucuya kurduğumuz için yine bu sunucunun IP adresini veya sunucu ismini veriyoruz.
Bu adımda SSRS bağlantısı için oluştrduğumuz tfs.reports domain kullanıcısının bilgilerini giriyoruz.

Project Collection adımında projelerimizi barındıracağımzı ilk koleksiyonun ismini belirleyip Readiness Checks’e geçiyoruz.

Şayet bu pencereyi görüyorsak konfigürasyona başlayabiliriz demektir.

Kurulum bittiğinde web tarayıcınıza “http://ApptierSunucuİsmi/tfs” linkinten DevOps Server 2019 platformunun kullanıcı arayüzüne ulaşabiliriz.

Kurulumumuz böylelikle tamamlanmış oldu. Başka makalelerde görüşmek dileğiyle.

--

--