Azure DevOps Giriş

Merhaba,

Bu yazımda sizlere Azure DevOps servisinden ve yeteneklerinden bahsedeceğim ve örnek bir web uygulaması için de DevOps kurgusunu oluşturacağız.

Azure DevOps sitesinden “Ücretsiz kullanmaya başlayın” ile yeni bir organizasyon ve proje oluşturacağız.

Organizasyonumuzu oluşturduktan sonra “New Project” diyerek yeni bir proje oluşturuyoruz. Projemizin adını ve açıklamasını yazdıktan sonra visibility, version control ve work item process kısımlarını kendinize göre düzenleyebilirsiniz. Ben resimdeki gibi ilerleyeceğim.

Eğer yeni bir proje oluşturacaksak “Clone to your computer” başlığı altındaki seçeneklerden ilerleyebiliriz. Mevcut kodlarımızı bu repo’ya atmak istiyorsak “Push an existing repository from your command line” başlığı altından ilerlememiz gerekmektedir. Ben sıfırdan bir proje oluşturacağım için “Clone in VS Code” kısmını “Clone in Visual Studio” olarak değiştirerek ilerledim.

Eğer isterseniz VS 2019 açılış ekranında “Clone or check out code” seçeneği altındaki Azure DevOps sekmesinden de clone işlemini yapabiliriz.

Clone ettiğimiz repo içerisine AzureDevOpsSample adında bir proje oluşturdum.

ASP.NET Core MVC projesi oluşturdum. Siz istediğiniz teknolojiyi kullanabilirsiniz.

Team Explorer yardımı ile projemin kodlarını Azure DevOps içerisinde oluşturduğum projemin repos kısmına göndereceğim.

Başarılı bir şekilde local commit yaptıktan sonra “Sync” sekmesinden kodlarımızı pushlayacağız.

Repos kısmını tekrar kontrol ettiğimizde kodlarımızın başarılı bir şekilde gittiğini göreceğiz.

Geliştirdiğimiz web sitesinin yayınlamak için Azure portal üzerinden yeni bir web app oluşturacağım.

Subscription, resource group, name, publish, runtime stack, OS, region gibi ayarları kendimize göre seçtikten sonra web app’i oluşturabiliriz.

Application insights gibi ek özellikler isterseniz “Monitoring” sekmesinden bunu ayarlayabilirsiniz.

https://docs.microsoft.com/tr-tr/azure/azure-monitor/app/app-insights-overview

Kodlarımızda bir push işlemi olduğunda Azure DevOps Pipelines yardımı ile web app üzerinde yayına alınması üzerine bir senaryo oluşturacağız.

Azure DevOps portaline geri dönerek pipelines sekmesinden “Create Pipeline” altındaki “Use the classic editor” sekmesi ile ilerliyoruz. Burada continuous integration kısmını kurgulayacağız.

Azure Kubernetes Servicelerine sonra geleceğiz.

https://azure.microsoft.com/tr-tr/services/kubernetes-service/

Pipelines kısmı ile Repos kısmı tamamen birbirinden bağımsız bir şekilde çalışabilir. Kodlarınız Bitbucket altında da olabilir.

Kodlarımız Azure Repos Git altında olduğu için proje, repository ve build edilecek olan branch’i seçip ilerliyorum. Siz isterseniz farklı branchler yaratıp keninize göre değiştirebilirsiniz.

Others kısmından ASP.NET Core seçiyoruz.

Restore, Build, Test, Publish

Burada gördüğümüz tüm adımları kendi senaryomuza göre ayarlayabiliriz.

Agent Job 1 kısmından bu adımların genel ayarlarını yapabiliriz. Agent pool olarak Azure pipelines ve build için ubuntu-18.04 seçtim. Execution plan, Dependencies ve Additional options altında farklı ayarları kendinize göre değiştirebilirsiniz. Ben default bırakıyorum. Sağ üstteki View YAML sekmesinden YAML çıktısını da alabilirsiniz.

Restore, Build ve Publish adımlarını da default bıraktım. Siz isterseniz değiştirebilirsiniz. Advanced, Control Options ve Output Variables sekmelerindeki ayarları da inceleyebilir, ihtiyacınız halinde düzenleyebilirsiniz.

Senaryomuzda test kısımları olmayacağı için test adımını disable ediyorum.

Enable Continuous Integration

Triggers sekmesinden CI sekmesini enable etmemiz gerekiyor. Çünkü her push işleminde master branchinden gelen kodların artifactinin otomatik olarak oluşmasını istiyoruz. Eğer isterseniz bu işlemi bir zaman aralığı için ayarlayabilirsiniz.

Variables kısmı tamamen kod derleme ayarları. Options kısmında ise build number ayarından, badge işlemlerine kadar tüm ayarları bulabilirsiniz.

Save & queue

Artık master branch her push işleminde yeni bir artifact oluşacak.

Continuous Delivery

Pipelines > Releases > New Release sekmesinden gerekli ayarları yapacağız. Web App’imiz Azure üzerinde olduğu için “Azure App Service deployment” seçeneği ile ilerliyoruz.

Pre-deployment & Post-deployment

CI pipeline altında oluşan her artifact için otomatik olarak başlamasını istiyorsanız “after release”, kendiniz tetikletmek istiyorsanız “manual only” seçeneğini seçmeniz gerekiyor. Eğer isterseniz schedule sekmesi altında bu işlemi bir zaman aralığı için ayarlayabilirsiniz. Pre-deployment approvals seçeneği ile bu işlemi birinin onayına sunabilirsiniz. Onay işlemi Post-deployment için de mevcut.

“Add an artifact” kısmından, artifactları hangi CI pipeline altından alacağını belirtiyoruz. Daha önce oluşturduğumuz CI pipeline seçiyoruz.

CI pipeline seçtikten sonra “Continuous deployment trigger” işlemini yapmamız gerekiyor. Artifact üzerindeki şimşek sekmesi ile ayar ekranını açıyoruz.

Eğer isterseniz Pull request trigger ayarlayabilirsiniz veya build branch filter ekleyebilirsiniz.

Task sekmesinden Azure portal altında açtığım web app’i gösteriyorum.

Run on agent ve Azure App Service deploy kısımlarında da agent pool, agent, post deployment action gibi ayarları özelleştirebilirsiniz.

Save & Create release

Yeni release oluşturduktan sonra Pipeline sekmesinden deploy işlemini tetikliyoruz.

Pipeline içerisindeki tüm adımların işlendiğini ve başarılı bir şekilde tamamlandığını görüyoruz.

Şimdi kodlarımızda değişiklik yapıp push işlemini gerçekleştirdikten sonra kurduğumuz tüm Azure DevOps dünyasının sorunsuz çalıştığından emin olalım.

Sonraki DevOps yazılarımıza AKS ile devam edeceğiz.

Yiğit

Xamarin Developer, Consultant & Architect. Community Leader and Director of Xamarin Türkiye

Post A Reply