Azure Devops ile Continuous Delivery (CD)
0

Devops süreçlerinin en önemli aşamalarından bir tanesi de build edilen kodun sağlıklı, test edilmiş bir şekilde düzenli olarak deploy edilmesidir. Bu aşama development ortamının ve deployment ortamının standartlaşması, değişkenlerin ilgili ortama göre olması ve güvenlik açısından oldukça kritik bir aşamadır. Bu aşamaların sorunsuz olması müşterilerinize yeni özelliklerin hızlı ve sorunsuz bir şekilde sunulması için oldukça önemlidir. Aynı zamanda developerların kendi deployment ortamları için yaptıkları değişikliklerin sonuçlarını hızlıca test edilmesi açısından önemlidir.

Firmanızın Devops politikalarına göre CD sürecinin saatlik, günlük, haftalık, aylık veya anlık olarak düzenleyebilirsiniz. Tabi ideal olan en kısa zamanda developerlarınıza, testerlarınıza, iç veya dış müşterilerinize mümkün olan en kısa zamanda çözümü ulaştırmaktır.

Azure Devops ürünü aynı CI süreçlerinde olduğu gibi tüm CD sürecinizi otomatize etmek için bir çok araç sunmaktadır. Azure Devops ile uygulamalarınızı sadece Azure ortamına değil, diğer cloud vendorlara, onprem sunucularınıza, serverless yapılarınıza gibi bir çok çeşitli ortama deploy edebilirsiniz.

Bu uygulamamızda uçtan uca tüm CI/CD sürecini otomatize edeceğiz. Yani bir repository’e commit geldiği zaman önce otomatik olarak build edilecek ve daha sonra ilgili paketler hazırlanıp istediğimiz ortama otomatik olarak deploy edeceğiz. Azure Devops ile Continuous Integration kısmını başka bir yazıda göstermiştim. Yazının detayları için Mshowto da Azure Devops makalelerini inceleyebilirsiniz.

Ben örnek olarak ASP.NET Core 2.2 MVC uygulaması kullanıyorum. Bu uygulamayı Azure üzerinde bir PaaS platform olan Web App ortamına deploy edeceğim.

Öncelikle Azure portalimize giriş yapacağız. Eğer bir Azure hesabınız yok ise Mshowto üzerinden ücretsiz Azure hesabının nasıl alabileceğiniz ile ilgili kaynaklara ulaşabilirsiniz.

Resim-1

Azure portaline girdikten sonra “Create Resource” seçeneğine tıklıyoruz ve açılan blade’den Web App seçiyoruz. Veya search alanından web app olarak arama yaparak ilgili kaynağı bulabilirsiniz.

Resim-2

Çıkan alanda gerekli bilgileri giriyoruz. Resource group, Runtime stack, Operating system ve Server size bilgilerini giriyorum. Daha sonra “Review and create” tuşunu tıklıyorum.

Resim-3

Deployment’ım tamamlandı.

Azure tarafında ki işimiz şu an için tamamlandır. Continuous Deployment (CD) örneği için basit bir uygulama seçtik. Bu uygulama da veritabanı veya diğer yükler bulunmuyor. Eğer uygulamada veritabanı veya başka gereksinimler var ise onları da kurmanız gerekir.

https://dev.azure.com adresinden uygulamım olduğu projeyi açıyorum.

CD süreci için öncelikle bir Release pipeline oluşturmam gerekiyor.

Resim-4

“New pipeline” tuşuna tıklıyorum.

Bir şablon seçmem için bize templatelerin olduğu alanı açıyor. Mevcut pipeline’I editleyebilir veya sıfır boş bir pipeline oluşturabilirsiniz.

“Ben Azure App Service deployment” şablonunu seçiyorum ve “Apply” tuşuna tıklıyorum.

Resim-5

Deployment adımımıma bir isim verim sağdaki blade’I çarpı işaretinden kapatıyorum.

Resim-6

Oluşturduğum CD pipeline aşamalarını görmek için üstüne tıklıyorum.

Resim-7

Gördüğünüz üzere basit bir uygulama olduğu için tek aşamalı bir deployment sürecimiz olacak. Ilgili adım için ayarlarımı giriyorum.

Benim Azure Devops ve Azure hesabım aynı hesap olduğu için “Azure Subscription” alanından ilgili subscription’umu seçiyorum. Ama benden Azure Devops ürününe bu subscription üzerinde bu proje için izin vermemi istiyor. Authorize tuşunu tıklıyorum.

Eğer siz Azure Devop ve Azure da farklı hesaplar kullanıyorsanız. “Azure Subscription” yanında ki “manage” linkine tıklayarak ilgili subscription’I girebilirsiniz.

Authorize işlemi tamamlandıktan sonra ilgili ayarları seçiyorum.

Resim-8

Web App tipini hatırlarsanız yukarıda Linux olarak yapmıştım. Bu ayarı seçiyorum ve oluşturduğum Web App listeleniyor.

Daha sonra yukarıdan Save seçeneğini tıklıyorum.

Resim-9

Azure Devops üzerinde root folder’a saklıyorum.

Resim-10

Bu pipeline’I otomatik hale getirmem için build kısmından aldığım paketlerin burayı tetiklemesi gerekiyor. Continuous Integration (CI) aşamasında build ettiğim projenin paketlerini “Artifact” olarak drop etmiştim.

Resim-11

Bu buildden gelen paketlerimi otomatik olarak Continuous Delivery (CD) sürecimi tetiklemesini ve uygulamamın deploy edilmesini istiyorum.

Resim-12

Ilgili artifact’imi ekliyorum.

Resim-13

Artifact’im eklendi.

Resim-14

Şimdide Deployment Trigger’ımı seçmem gerekiyor.

Resim-15

Deployment trigger’ımı seçmek için artifact’in sağındaki şimşek işaretine tıklıyorum.

Resim-16

Continuous Deployment trigger’ımı açıyorum. Ve sağdaki blade’I kapatıyorum.

Daha sonra sağ üst köşeden release pipeline’I mı saklıyorum.

Resim-17

Şimdi ortamımızı test etmek için Azure Repos içerisinden basit bir commit gönderiyorum.

Resim-18

Öncelikle Azure Build Pipeline’ım tetikleniyor.

Resim-19

Bu işlem bitince ise deployment’ım (Release Pipeline’ım) tetikleniyor.

Resim-20

Deployment’ım release pipeline’ıma gelen artifact’ler ile başlıyor ve tamamlanıyor.

Resim-21


Resim-22

Otomatik deployment işlemim tamamlandı. Şimdi uygulamamızı canlı ortamda görelim.

Azure portaline gidiyoruz. Uygulamamın deploy edildiği daha önce oluşturduğumuz web app den URL sine tıklıyorum.

Resim-23

Resim-24

Projemiz için tüm CI/CD sürecini otomatikleştirdik. Bu şekilde tek bir commit ile güncellenen kod Azure Devops üzerinde önce build ediliyor ve daha sonra Azure üzerine deploy ediliyor. Ve Continuous Delivery sürecimizi tamamlamış oluyoruz.

Devops süreçlerinde ki bu otomasyon gücü bize çözümlerin daha hızlı bir şekilde müşterilerimize ulaştırmak için önemli bir avantaj sağlıyor. Aynı zamanda tüm bu süreç Devops tool’u üzerinden yapıldığı için, izlenebilir, denetlenebilir, kolaylıkca düzenlenebilir hale geliyor. Bu tüm development ve production ortamlarının standardizasyonu açısından da oldukça önemli.

Azure Devop sürecinde uçtan uca tasarladığımız bu sürecin aşamalarını istediğiniz kadar özelleştirebilir, kontrol mekanizmaları ekleyebilir, onay aşamaları oluşturabilirsiniz.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

Tags: Azure, Azure Devops, Devops, Azure Web App, Continuous Delivery, Continuous Integration, Azure Artifacts, Automatic Deployment, Continous Deployment, Continuous Delivery, CI/CD, Azure Application Development, Cloud Native Development, Release Pipeline, Devops araçları, Devops ile otomatik geliştirme, Devops ile otomatik kurulum.

Bu İçeriğe Tepkin Ne Oldu?
  • 2
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Onur Yüksektepeli - Chief Technology Architect | Micosoft MVP Onur Yüksektepeli Nephocraft firmasının kurucusu aynı zamanda kendi firmasında teknoloji çözümleri mimarıdır. 15 Yıldan fazla IT tecrübesi ile temel uzmanlık alanı olan Platform ve diğer teknolojiler için müşterilerine ürün ve hizmetler sunmaktadır. Microsoft MVP ünvanına sahip Onur Yüksektepeli birçok IT etkinliğinde aktif konuşmacı olarak ve IT topluluklarında yönetici olarak aktif rol üstlenmektedir. Nephocraft firmasın da yönetici olarak oluşturduğu çözümlerde yeni teknoloji gelişmelerini de göz önünde bulundurarak, müşterilerine esnek, yenilikçi, akıllı ve üretken iş çözümleri üretmektedir.Onur Yüksektepeli bulut, platform, data, devops, development gibi konularda aktif danışmanlık ve IT eğitmenliğine de devam etmektedir.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir