App Hosting, uygulamanızın dağıtımını basitleştirmek için bir dizi karmaşık arka plan görevini yönetir. Bu sayfada, söz konusu görev akışının önemli bölümleri açıklanmakta ve uygulamanızın ihtiyaçlarına göre akışı özelleştirmek isteyebileceğiniz noktalar hakkında bilgi verilmektedir.
Temel terimler ve tanımlar
App Hosting akışının ayrıntılarını anlamak için bazı terimleri çok net bir şekilde tanımlamak faydalı olacaktır. Temel terimler şunlardır:
- Arka uç: Web uygulamanızı oluşturmak ve çalıştırmak için App Hosting tarafından oluşturulan yönetilen kaynaklar koleksiyonu.
- Derleme: Uygulamanızın genellikle bir git commit'e bağlı olan belirli bir düzeltmesi. Derleme oluşturma sürecinde çok sayıda alt süreç vardır. Bunların en önemlileri, uygulamanızın Cloud Build içinde derlenmesi ve bir düzeltmenin (kullanıma sunulana kadar trafiğin %0'ına hizmet verir) Cloud Run içinde dağıtılmasıdır.
- Kullanıma sunma: Bir derlemeyi trafiğe aktif olarak hizmet verecek şekilde ayarlama süreci. Bir git commit tarafından otomatik olarak tetiklendiğinde App Hosting, önce canlı dalınızı kullanarak bir derleme oluşturur, ardından canlı trafiği bu derlemeye yönlendirmek için bir sunum oluşturur.
- Canlı dal: GitHub deponuzun canlı URL'nize dağıtılan dalı. Genellikle özellik dallarının veya geliştirme dallarının birleştirildiği daldır.
Google Cloud ve App Hosting mimarisi
App Hosting, web uygulamanızı dağıtmanıza, sunmanıza ve izlemenize olanak tanımak için bir dizi Google Cloud ürününü yönetir. Uygulamalar Cloud Build ile oluşturulur, Cloud Run üzerinde sunulur ve Cloud CDN'de önbelleğe alınır. Cloud Secret Manager gibi entegre hizmetler, API anahtarlarınızı güvende tutar.
- Canlı dalınıza bir commit gönderildiğinde Google Cloud Developer Connect, Firebase App Hosting hizmetine bir etkinlik gönderir.
- Firebase App Hosting, bu etkinliğe yanıt olarak depoya bağlı arka uç için yeni bir derleme oluşturur.
- İlk olarak Firebase App Hosting, kaydınız için yeni bir Cloud Build derlemesi oluşturur. Bu işte, Google Cloud buildpack'leri uygulamanızda hangi çerçevenin kullanıldığını belirleyerek uygulamanıza uygun bir container ve yapılandırma (ortam değişkenleri, gizli anahtarlar, minimum veya maksimum örnek sayısı, eşzamanlılık, bellek, CPU ve VPC yapılandırması dahil) oluşturur. Daha fazla bilgi için App Hosting derleme sürecine bakın.
- Cloud Build işi tamamlandığında kapsayıcınız, Firebase App Hosting için ayrılmış bir Artifact Registry deposunda saklanır. Firebase App Hosting, görüntünüzü ve yapılandırmanızı kullanarak Cloud Run hizmetine yeni bir Cloud Run düzeltme ekler.
- Cloud Run düzeltmeniz tamamlanıp sağlıklı olduğu doğrulandıktan sonra Firebase App Hosting, trafik yapılandırmasını tüm yeni istekleri yeni Cloud Run düzeltmenize yönlendirecek şekilde değiştirir. Bu noktada, kullanıma sunma süreci tamamlanmıştır.
- Firebase App Hosting üzerinde barındırılan bir web sitesine istek gönderildiğinde istek, Cloud CDN etkinleştirilmiş Google Cloud Yük Dengeleyici tarafından sunulur. Önbelleğe alınmamış istekler Cloud Run hizmetinize gönderilir. Cloud CDN ile performansı optimize etme konusunda rehberlik için Uygulama içeriğini önbelleğe alma başlıklı makaleyi inceleyin.
Çerçeve entegrasyonu
App Hosting, şu çerçevelerde geliştirilen web uygulamaları için önceden yapılandırılmış derleme ve dağıtım desteği sunar:
- Next.js 13.5.x ve sonraki sürümler
- Angular 18.2.x ve üzeri
Belirli sürümler ve destek seviyeleri hakkında ayrıntılı bilgi için destek planlarına bakın.
App Hosting, Next.js ve Angular'ın yanı sıra çıkış paketi spesifikasyonumuza uygun bir derleme çıkışı sağlayabilen tüm web çerçevelerini de destekler. App Hosting tarafından desteklenen çerçeveler, çerçeve bağdaştırıcıları ve ilgili araçlar hakkında daha fazla bilgi için App Hosting için çerçeveler ve araçlar başlıklı makaleyi inceleyin.
App Hosting depo entegrasyonunun işleyiş şekli
GitHub deponuz ile App Hosting arka ucu arasındaki önemli bağlantı, Google Cloud'un harici DevOps araçları için bağlantı platformu olan Developer Connect tarafından yönetilir. Bu bağlantıyı oluşturduğunuzda (genellikle bir App Hosting arka ucu oluşturulurken) Developer Connect'in kullanıcı arayüzü iş akışı, Firebase GitHub uygulamasını yükleme konusunda size yol gösterir. Bu süreçteki önemli adımlar şunlardır:
- Developer Connect'e Secret Manager Yöneticisi rolünü verirsiniz. Bu sayede sistem, kimlik bilgilerini Cloud Secret Manager'da "gizli anahtarlar" olarak güvenli bir şekilde saklayabilir.
- Firebase GitHub uygulamasını GitHub deponuza erişmesi için yetkilendirirsiniz. Doğru depoya erişmek için ek GitHub izinlerine ihtiyacınız olabilir.
- Developer Connect, projenizin Secret Manager deposunda özel bir GitHub yetkilendirme jetonu depolar. Bu jetonu değiştirmeyin veya silmeyin.
Ayrıca App Hosting, kullanıma sunma işlemlerini kontrol etmek için GitHub Checks API ile entegre olur. Bu kontrol, GitHub'da kullanıma sunma durumunuzu görüntülemenize ve herhangi bir hata olması durumunda dağıtım sürecinde hata ayıklamanıza olanak tanır.
Firebase ve diğer Google hizmetleriyle entegrasyon
App Hosting, hem derleme hem de çalışma zamanı ortamlarınızı ayarlar. Böylece Google Uygulama Varsayılan Kimlik Bilgileri ile Firebase Admin SDK'yı başlatabilirsiniz. Böylece arka ucunuz, hem derleme hem de çalışma zamanında diğer Firebase ürünleriyle iletişim kurabilir. Uygulamanızı başlatma ve Firebase SDK'sı ile ilgili diğer konular hakkında daha fazla bilgi için Firebase SDK'larını web uygulamanıza entegre etme başlıklı makaleyi inceleyin.
App Hosting yer
App Hosting, arka uç kaynaklarınızı birincil bölgeniz olarak adlandırılan belirli bir konumda oluşturur. App Hosting, hızlı yayın için global bir CDN ile entegre olsa da önbelleğe alınmamış içerikler uygulamanızın birincil bölgesinden yayınlanır. Web uygulamanızın konumundaki bu esneklik, önemli avantajlar sağlar:
- Verileri coğrafi olarak kullanıcılarınıza yaklaştırarak performansı artırır ve gecikmeyi azaltır.
- App Hosting için bir bölgede yaşanan yıkıcı bir arıza, diğer bölgelerde dağıtılan web uygulamalarını etkilemez.
Firebase konsolundan veya Firebase CLI'dan bir App Hosting arka ucu oluştururken bu bölgelerden herhangi birini seçebilirsiniz:
us-central1(Iowa)us-east4(N. Virginia)us-east5(Columbus)asia-east1(Tayvan)asia-southeast1(Singapur)europe-west4(Hollanda)
App Hosting arka uç hizmet hesabı
Derleme sırasında ve çalışma zamanında App Hosting arka ucunuz, bir hizmet hesabı aracılığıyla diğer Google hizmetlerinde kimlik doğrulaması yapar. Bir Firebase projesinde App Hosting hizmetini ilk kez etkinleştirdiğinizde bu amaçlar için varsayılan bir hizmet hesabı oluşturulur:
firebase-app-hosting-compute@PROJECT ID.iam.gserviceaccount.com
Bu hizmet hesabı varsayılan olarak tüm arka uçlar için geçerlidir ve uygulamanızı derlemenize, çalıştırmanıza ve izlemenize olanak tanıyan minimum izin grubuna sahiptir. Ayrıca Cloud Firestore'ten veri yükleme gibi işlemleri gerçekleştirmek için Admin SDK'nın Uygulama Varsayılan Kimlik Bilgileri ile kimliğini doğrulama iznine de sahiptir. Firebase App Hosting rolleri bölümüne bakın.
Uygulamanızın derleme sırasında veya çalışan bir arka uçtan ek Google hizmetleriyle etkileşim kurması gerekiyorsa rol ekleyerek varsayılan hizmet hesabını özelleştirebilirsiniz. Örneğin, uygulamanız Vertex AI için izin gerektiriyorsa roles/aiplatform.user veya ilgili bir rolü eklemeniz gerekebilir.