Takip et

GitHub Actions ve Azure Web Apps ile Sürekli Entegrasyon/Sürekli Teslimat (CI/CD)

GitHub Actions ve Azure Web Apps ile Sürekli Entegrasyon/Sürekli Teslimat (CI/CD)

Modern yazılım geliştirme süreçlerinde hız ve güvenilirlik olmazsa olmazdır. Sürekli Entegrasyon/Sürekli Teslimat (CI/CD) bu ihtiyacı karşılayan önemli bir yaklaşımdır. Bu makalede, GitHub Actions ve Azure Web Apps kullanarak kodunuzdan buluta sorunsuz bir CI/CD boru hattı nasıl kuracağınızı adım adım öğreneceksiniz. GitHub’ın güçlü otomasyon yetenekleri ve Azure’un ölçeklenebilir altyapısıyla, hızlı ve güvenilir bir geliştirme döngüsü oluşturabilirsiniz. Hazırsanız, başlayalım!

GitHub Actions ve Azure Web Apps: Temel Kavramlar

Öncelikle, CI/CD, GitHub Actions ve Azure Web Apps’in ne olduğunu ve neden önemli olduklarını anlamamız gerekiyor. CI/CD, kod değişikliklerini sık sık ve otomatik olarak test edip, dağıtma sürecini kapsar. Bu süreç, hataları erken yakalamaya, geri bildirimi hızlandırmaya ve daha hızlı yayınlara olanak tanır. GitHub Actions, GitHub depolarınızda otomasyon çalıştırmanıza olanak tanıyan bir platformdur. Azure Web Apps ise, web uygulamalarınızı ve API’lerinizi barındırmak için kullanılan bulut tabanlı bir hizmettir. Bu iki platformu bir araya getirerek, kodunuzdaki değişiklikleri otomatik olarak test edip, Azure’a dağıtabilirsiniz.

Basitçe söylemek gerekirse, GitHub Actions, kod değişikliklerini algılar, testleri çalıştırır ve Azure Web Apps’e dağıtım yapar. Bu, manuel işlemleri ortadan kaldırır ve geliştirme sürecini önemli ölçüde hızlandırır. Ayrıca, her dağıtımda tutarlılık sağlar ve insan hatası riskini azaltır. Bu sistem, hem küçük hem de büyük projeler için uygulanabilir ve ölçeklenebilir bir çözüm sunar. Bir sonraki bölümde, pratik bir uygulama ile bu konsepti daha iyi anlayacağız.

Azure Web App’inizi Hazırlama: Nasıl Yapılır?

İlk adım olarak, Azure portalında bir Web App oluşturmanız gerekiyor. Bu adımda, uygulamanızın hangi kaynak grubunda barındırılacağını, hangi uygulama hizmeti planını kullanacağınızı ve hangi çalışma zamanını (örneğin, Node.js, Python, .NET) seçeceğinizi belirlemeniz gerekecektir. Azure portalında yeni bir Web App oluştururken, “Gelişmiş” seçeneklerine dikkat ederek, uygulama ayarlarınızı özelleştirebilirsiniz. Örneğin, custom domain kullanımı, SSL sertifikası kurulumu gibi detayları burada ayarlayabilirsiniz. Ayrıca, uygulama için gerekli olan diğer kaynakları (örneğin, veritabanı, depolama) da bu aşamada oluşturabilirsiniz. Uygulama oluşturulduktan sonra, dağıtım yöntemini belirlemek için Azure Web Apps’in sağladığı çeşitli seçenekleri inceleyebilirsiniz. Bunlar arasında FTP, Git, Docker gibi yöntemler bulunmaktadır. Bizim CI/CD boru hattımızda Git dağıtımı kullanacağız, dolayısıyla bu seçeneği işaretlemeniz önemlidir. Daha fazla bilgi için, resmi Azure belgelerini (https://docs.microsoft.com/tr-tr/azure/) inceleyebilirsiniz.

GitHub Actions ile CI/CD Boru Hattı Oluşturma: Adım Adım

Şimdi, GitHub deponuzda bir .github/workflows dizini oluşturun ve içine main.yml adında bir dosya ekleyin. Bu dosya, CI/CD boru hattınızı tanımlayacaktır. Aşağıda, basit bir Node.js uygulaması için bir örnek main.yml dosyası bulunmaktadır:

name: Node.js CI/CD

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - name: Use Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 16
      - run: npm install
      - run: npm run build
      - name: Deploy to Azure Web App
        uses: azure/webapps-deploy@v2
        with:
          app-name: ${{ secrets.AZURE_WEBAPP_NAME }}
          slot-name: ${{ secrets.AZURE_SLOT_NAME }}
          publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}

Bu dosyada, on: push bölümü, kod değişiklikleri main dalına push edildiğinde işlemin tetikleneceğini belirtir. jobs bölümü ise, yapılacak işlemleri tanımlar. uses: actions/checkout@v3 adımı, deponuzu klonlar. uses: actions/setup-node@v3 adımı, Node.js'i belirtilen versiyonda kurar. npm install ve npm run build adımları, bağımlılıkları yükler ve uygulamayı derler. Son olarak, uses: azure/webapps-deploy@v2 adımı, uygulamayı Azure Web App'e dağıtır. secrets anahtarları, Azure Web App'inizin adını, slot adını ve yayımlama profilini içerir. Bu anahtarları GitHub Secrets'te tanımlamanız gerekmektedir. Bu anahtarları doğrudan kodunuza yazmaktan kaçının, güvenlik açısından çok önemlidir.

Azure Web App Yayımlama Profilini Alma: Nasıl Yapılır?

Azure portalında Web App'inizin "Gelişmiş" ayarlarına gidin ve "Yayımlama profilleri" bölümünden gerekli olan yayımlama profilini indirin. Bu dosya, Azure Web App'inize uygulamanızı dağıtmak için gerekli olan kimlik bilgilerini içerir. Bu dosyayı GitHub Secrets'te AZURE_WEBAPP_PUBLISH_PROFILE adıyla saklamanız gerekmektedir. Dikkat: Bu dosyayı GitHub deponuzda public olarak paylaşmamalısınız. Güvenlik açısından çok önemlidir. Yayımlama profilinizi gizli tutmak için GitHub Secrets özelliğini kullanmanız gerekir. Bu özellik, hassas bilgilerinizi kodunuzdan ayrı tutmanızı sağlar ve güvenliğinizi artırır. GitHub Secrets'in nasıl kullanılacağı hakkında daha fazla bilgi için GitHub belgelerini inceleyebilirsiniz.

İleri Düzey Konular: Ortam Değişkenleri ve Güvenlik

Daha gelişmiş CI/CD süreçleri için, ortam değişkenleri ve güvenlik önlemlerini kullanmanız önemlidir. Ortam değişkenleri, uygulamanızın yapılandırma ayarlarını deponuzdaki koddan ayırmanıza olanak tanır. Bu, farklı ortamlar (geliştirme, test, üretim) için farklı ayarlar kullanmanızı kolaylaştırır. Ayrıca, gizli bilgileri (örneğin, veritabanı bağlantı dizileri, API anahtarları) doğrudan kodunuzda saklamaktan kaçınarak güvenliği artırabilirsiniz. GitHub Secrets, bu gizli bilgileri güvenli bir şekilde saklamak ve uygulamanıza eriştirmek için ideal bir çözümdür. Daha ileri düzeyde, uygulamanızın güvenliğini daha da artırmak için, kodunuzun statik ve dinamik analizini gerçekleştirmek, güvenlik açıklarını tespit etmek ve bunları gidermek için ek adımlar ekleyebilirsiniz. Bu adımlar, uygulamanızın güvenliğini artırır ve olası saldırılara karşı korur.

Ayrıca, dağıtım öncesi ve dağıtım sonrası senaryoları özelleştirebilirsiniz. Örneğin, dağıtım öncesi adımlarda, uygulamanızın tüm testlerini çalıştırabilir, performans ölçümlerini alabilirsiniz. Dağıtım sonrası adımlarda ise, uygulamanızın başarılı bir şekilde dağıtıldığını doğrulayabilir, bildirimler gönderebilirsiniz. Bu özelleştirmeler, CI/CD sürecini daha sağlam ve güvenilir hale getirir.

Gerçek Dünya Senaryoları: Vaka Analizleri

Örneğin, bir e-ticaret uygulaması geliştiriyorsunuz ve her yeni özellik ekledikten sonra uygulamayı test etmek ve dağıtmak için uzun ve yorucu bir süreçten geçiyorsunuz. GitHub Actions ve Azure Web Apps ile bu süreci otomatikleştirebilirsiniz. Her kod değişikliğinde, GitHub Actions otomatik olarak testleri çalıştırır ve başarılı olursa, uygulamayı Azure Web App'e dağıtır. Bu, daha hızlı geri bildirim döngüsü sağlar ve hata düzeltme sürecini hızlandırır. Benzer şekilde, bir mobil uygulama geliştiriyorsanız, uygulamanın farklı Android ve iOS sürümlerini otomatik olarak derleyebilir ve dağıtabilirsiniz. Bu, farklı platformlarda uyumluluk testlerini kolaylaştırır.

Başka bir örnek olarak, bir API geliştirme projesini ele alalım. Bu projede, API'nin performansını sürekli izlemek ve gerektiğinde ölçeklendirmek önemlidir. GitHub Actions ile otomatik testler çalıştırarak API'nin işlevselliğini ve performansını doğrulayabilirsiniz. Azure App Insights gibi araçları kullanarak, API'nin gerçek zamanlı performansını izleyebilir ve olası sorunları erken tespit edebilirsiniz. Bu veriler doğrultusunda, Azure Web App'in ölçeklenebilirliğini ayarlayabilir ve API'nin her zaman yüksek performans göstermesini sağlayabilirsiniz. Bu örnekler, GitHub Actions ve Azure Web Apps'in farklı uygulama türleri için nasıl kullanılabileceğini göstermektedir.

Öğrenme Yol Haritası

* Yeni Başlayan: Temel GitHub ve Azure kavramlarını öğrenin. Basit bir "Hello World" uygulamasını oluşturun ve Azure'a dağıtın. GitHub Actions'ın temel yapısını anlayın.

* Orta: Daha karmaşık bir uygulamayı oluşturun ve CI/CD boru hattını yapılandırın. Ortam değişkenlerini ve GitHub Secrets'i kullanmayı öğrenin. Farklı test türlerini (birim testi, entegrasyon testi) uygulayın.

* İleri Düzey: Karmaşık CI/CD süreçlerini tasarlayın ve uygulayın. Canlı güncellemeler, A/B testi gibi gelişmiş özelliklere odaklanın. Güvenlik önlemlerini güçlendirin ve izleme araçlarını entegre edin. Daha fazla bilgi için (https://fatihsoysal.com) inceleyebilirsiniz.

Sonuç

GitHub Actions ve Azure Web Apps, hızlı ve güvenilir bir CI/CD boru hattı oluşturmak için güçlü bir kombinasyondur. Bu makalede, bu iki platformu nasıl kullanacağınızı ve uygulamanızın güvenliğini nasıl artıracağınızı öğrendiniz. Unutmayın ki, güvenlik her zaman önceliklidir ve hassas bilgilerinizi doğru şekilde yönetmeniz çok önemlidir. Bu makaledeki adımları izleyerek, geliştirme sürecinizi otomatikleştirebilir ve daha hızlı ve daha güvenilir yazılımlar geliştirebilirsiniz.

Sıkça Sorulan Sorular

  • GitHub Actions ücretsiz mi? Belirli bir ücretsiz katman mevcuttur, ancak ileri düzey kullanım için ücretli planlar gerekebilir.
  • Azure Web Apps'in maliyeti nedir? Kullanımınıza bağlı olarak değişen bir fiyatlandırma modeli vardır.
  • Hangi programlama dillerini destekliyor? Hem GitHub Actions hem de Azure Web Apps birçok programlama dilini destekler.
  • Hataları nasıl düzeltebilirim? GitHub Actions loglarını inceleyerek ve Azure portalındaki hata mesajlarını kontrol ederek hataları bulabilirsiniz.
  • Daha fazla bilgi nerede bulabilirim? GitHub ve Azure belgelerini inceleyebilirsiniz. Ayrıca, çeşitli online kaynaklar ve topluluk forumları da yardımcı olabilir.

Yazar: Fatih Soysal

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

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

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.