Go Uygulamalarını GitHub Actions ile Google Cloud Run’a Otomatik Dağıtma (Ücretsiz Katman)
Günümüzün hızla değişen yazılım dünyasında, uygulamaların hızlı ve güvenilir bir şekilde dağıtılması kritik öneme sahiptir. Özellikle Go gibi performans odaklı dillerle geliştirilen uygulamalar için bu durum daha da belirginleşir. Bu makalede, Go uygulamalarınızı Google Cloud Run’ın sunucusuz ve ölçeklenebilir yapısına, GitHub Actions’ın güçlü otomasyon yetenekleriyle nasıl entegre edebileceğinizi adım adım inceleyeceğiz. Üstelik tüm bu süreci Google Cloud’un cömert ücretsiz katman limitleri dahilinde kalarak gerçekleştireceğiz, böylece geliştiricilerin maliyet endişesi olmadan modern CI/CD pratiklerini deneyimlemesini sağlayacağız.
Giriş: Neden Otomatik Dağıtım ve Cloud Run?
Modern yazılım geliştirme süreçlerinde, kodun yazılmasından canlıya alınmasına kadar geçen süreyi kısaltmak ve hataları minimize etmek esastır. Sürekli Entegrasyon ve Sürekli Dağıtım (CI/CD) boru hatları, bu hedeflere ulaşmak için vazgeçilmez araçlardır. Go uygulamaları, derlenmiş ve hafif yapısıyla sunucusuz ortamlara mükemmel uyum sağlar. Google Cloud Run ise, bu uygulamaları sıfır altyapı yönetimiyle, isteğe bağlı olarak ölçeklendirebilen ve sadece kullandığınız kadar ödeme yapmanızı sağlayan bir platform sunar.
Go Uygulamaları ve Modern Dağıtım İhtiyaçları
Go, yüksek performans, eşzamanlılık ve düşük bellek kullanımı gibi özellikleriyle özellikle mikroservisler ve API’ler için popüler bir dil haline gelmiştir. Geliştiriciler, Go’nun sağladığı bu avantajları dağıtım sürecinde de sürdürmek isterler. Manuel dağıtım süreçleri zaman alıcı, hataya açık ve ölçeklenemezken, otomatik bir CI/CD boru hattı, her kod değişikliğinde uygulamanın test edilmesini, derlenmesini ve dağıtılmasını sağlayarak geliştirme hızını artırır ve tutarlılığı garanti eder.
Google Cloud Run’ın Avantajları (Sunucusuz, Ölçeklenebilir, Maliyet Etkin)
Google Cloud Run, sunucusuz bir platform olarak, geliştiricilerin altyapı yönetimiyle uğraşmadan kapsayıcılı uygulamalarını çalıştırmasına olanak tanır. Temel avantajları şunlardır:
- Sunucusuz: Sunucu provizyonu, yama veya ölçekleme gibi operasyonel yükleri ortadan kaldırır.
- Otomatik Ölçekleme: Gelen isteklere göre sıfırdan binlerce örneğe kadar otomatik olarak ölçeklenir ve trafik olmadığında sıfıra düşerek maliyet tasarrufu sağlar.
- Kapsayıcı Desteği: Standart Docker kapsayıcılarını destekler, bu da Go uygulamalarınızı kolayca paketleyebileceğiniz anlamına gelir.
- Maliyet Etkinliği: Yalnızca uygulamanız çalışırken veya istekleri işlerken kaynak tükettiği için, özellikle ücretsiz katman limitleri dahilinde çok uygun maliyetlidir.
GitHub Actions ile CI/CD’nin Gücü
GitHub Actions, GitHub depolarınızda doğrudan CI/CD iş akışları oluşturmanıza olanak tanıyan entegre bir otomasyon platformudur. Kod değişiklikleri, çekme istekleri veya zamanlanmış olaylar gibi çeşitli tetikleyicilerle çalışabilir. GitHub Actions kullanarak şunları başarabiliriz:
- Her kod değişikliğinde Go uygulamasını otomatik olarak derleme ve test etme.
- Docker imajını oluşturma ve bir kapsayıcı kayıt defterine (Artifact Registry) gönderme.
- Yeni imajı kullanarak Cloud Run servisini güncelleme.
- Tüm bu adımları, geliştiricilerin müdahalesi olmadan, tutarlı bir şekilde gerçekleştirme.
Ön Gereksinimler ve Google Cloud Kurulumu
Otomatik dağıtım sürecine başlamadan önce, Google Cloud tarafında bazı temel kurulumları yapmamız gerekiyor. Bu adımlar, GitHub Actions’ın Cloud Run’a güvenli bir şekilde erişmesini ve dağıtım yapmasını sağlayacaktır.
Google Cloud Hesabı ve Proje Oluşturma
Eğer henüz bir Google Cloud hesabınız yoksa, Google Cloud web sitesinden ücretsiz bir hesap oluşturmanız gerekmektedir. Yeni kullanıcılar