1. Ana Sayfa
  2. Microsoft Azure
  3. Yazılım Geliştiriciler için Azure: Azure Container Apps’e GitHub Actions ile Continuous Deployment

Yazılım Geliştiriciler için Azure: Azure Container Apps’e GitHub Actions ile Continuous Deployment

featured

İlk bölümde kısa bir giriş yaptığım Azure Container Apps servisine bu makelede ise GitHub üzerinde bulundurduğum uygulama kodlarını, GitHub Actions ile nasıl continous deployment yapılacağını bir örnek üzerinden anlatmaya çalışacağım.

İlk olarak yeni bir blazor uygulaması oluşturarak başlamak istiyorum. Örneği takip ederek yapmak isteyen arkadaşlar için biraz baştan alacağım. İlk olarak dotnet new blazorserver -o myblazorapp komutu ile yeni örnek bir blazor uygulaması oluşturduktan sonra, myblazorapp klasörüne gidip dotnet new gitignore komutu ile bir gitignore dosyası ekleyip, code . komutu ile de bulunduğum klasörde VS Code’u açıyorum.

Resim-1

Daha sonra, ctrl (command)+shift+P ile VS Code command palette’i açıp, Docker:Add Docker Files to Workspace… komutu ile (Docker:Add yazdığınızda gelecektir) ile dockerfile ekliyorum. Daha sonra da dockerfile’a sağ tıklayarak context menüden Build Image in Azure… komutu ile uygulamamı daha önceden oluşturmuş olduğum Azure Container Registry’ye publish ediyorum. Daha detaylı bilgi için buraya bakabilirsiniz.

Resim-2

Son olarak da uygulamamı daha önceden GitHub hesabıma giriş yaptığım VS Code ile Resim-3‘te göreceğiniz gibi Publish to GitHub butonu ile publish ediyorum.

Resim-3

Container App oluştururken ilk bölümdekinin aksine bu kez Azure Container Registry seçip, buraya publish ettiğim container imajını seçiyorum (Resim-4).

Resim-4

Container App’i oluşturtan sonra sırada Continuous deployment ile ilgili ayarları yapmaya geldi. İlk olarak GitHub hesabım ile giriş yapıyorum ve örnek uygulamamın olduğu organization, repository ve branch’i seçiyorum (Resim-5).

Resim-5

Azure Container Registry bilgisini zaten servisi oluştururken vermiştim. Son olarak da RBAC (role-based access control) için service principal ayarlarını yapmam gerekiyor. GitHub’a sadece sign in olmak maalesef yeterli değil. GitHub Actions deployment sırasında gerekli olan credential bilgileri için burada benden 3 alanı doldurmamı bekliyor:

  1. Service principal client id
  2. Service principal secret
  3. Service tenant id

Bu bilgiler için Azure Portal menüsünden Azure Active Directory’ye gitmem gerekiyor. Azure AD altında App registrations sekmesine gelerek oluşturduğum container apps servisini için yeni bir kayıt oluşturmam gerekiyor (Resim-6).

Resim-6

Kayıt için bir isim verdikten sonra diğer ayarlarda herhangi bir değişiklik yapmadan devam uygulama kayıt işlemini tamamlıyorum (Resim-7).

Resim-7

Oluşturduğum uygulama kaydına seçtikten sonra, burada yer alan Certificates & secrets sekmesinden de yeni bir client secret oluşturuyorum. Burada yer alan secret değerini ilk oluşturduğunuz sadece ilk anda alabileceğinizi hatırlatayım, sonrasında ihtiyaç olursa yeni bir tane oluşturmak zorunda kalabilirsiniz.

Resim-8

Şimdi sırada küçük bir yetkilendirme işimiz var. Azure Portal üzerinden Subscriptions altında çalıştığımız yer subscription’a ait Access control (IAM) sekmesine geliyorum (Resim-9) ve buradan sağ en üstte yer alan Add role assignment butonun tıklıyorum.

Resim-9

Contributor rolünü seçtikten sonra, Select members seçeneğinde daha önce oluşturduğumuz app registration adını aratarak members altına ekliyorum (Resim-10) ve son olarak da Review + assign butonu ile işlemi tamamlıyorum.

Resim-10

Bu işlemleri de tamamladıktan sonra, daha önceden not ettiğim client secret değerin yanına, app registration ekranındaki Overview sekmesinde yer alan Application (client) ID ve Directory (tenant) ID değerlerini de not alıyorum (Resim-11).

Resim-11

Artık gerekli olan service principal client id, service principal secret ve service tenant id bilgilerini de girdikten sonra continuous deployment ayarlarımı kaydedebilirim.

Bu işlem sonrasında, GitHub hesabımda ilgili repoya ait sayfadaki Actions sekmesine geldiğimde ise Create an auto-deploy file adında bir workflow çalıştığını görebiliyorum (Resim-12).

Resim-12

Continuous deployment artık hazır, test etmek için uygulama üzerinde küçük bir güncelleme yapıp (Resim-13) commit/push işlemlerinden sonra (workflow dosyası eklendiği için önce pull yapacağım) Azure Container Apps application url’e tıkladığımda bu değişikliğin otomatik olarak yansımasını bekliyorum.

Resim-13

Push işlemi sonrasında Actions’a baktığımda ise yeni workflow’un çalıştığını görebiliyorum (Resim-14).

Resim-14

Workflow tamamlandıktan sonra Application url’e tekrar gittiğimde ise Resim-15‘de de göreceğiniz gibi değişikliğin yansıdığını görebiliyorum.

Resim-15

Bu konuyla ilgili sorularınızı http://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

Azure Container Apps documentation | Microsoft Docs

TAGs: Azure, Yazılım Geliştiriciler için Azure, Containers, Azure Container Apps, Azure Container Instances, DevOps, GitHub, GitHub Actions

Yorum Yap

Yazar Hakkında

Mert Yeter, lisans eğitimini Yıldız Teknik Üniversitesi'nde, yüksek lisans eğitimini ise Bahçeşehir Üniversitesi'nde tamamlamıştır. Yazılım dünyasına üniversitenin ilk yıllarında aldığı QBasic ile başlayan Mert, .NET ve SQL Server gibi Microsoft teknolojileri ile devam etmiş; yüksek lisans tezini ise Linux konusunda yapmıştır. Netaş ve Ziraat Teknoloji gibi sektörün önde gelen firmalarında C#, .NET, SQL Server, Cisco Contact Center ürünleri ve Linux üzerine çalışmış, bir çok firmaya da bu konularda danışmanlık vermiştir.

Yorum Yap