Application Design Center ile uygulamaları hızlıca dağıtma

1. Giriş

Bu codelab'de, Google Cloud Application Design Center (ADC)'ı kullanarak tam yığınlı bir uygulamayı nasıl dağıtacağınızı öğreneceksiniz. Vue 3 ön ucu, FastAPI arka ucu ve uygulama verilerini barındıran bir MCP sunucusu içeren "The Cymbal London Concierge" uygulamasını dağıtacaksınız.

ADC, uygulama mimarinizi görsel olarak tanımlamanıza ve tek bir birim olarak dağıtmanıza olanak tanır. Bağımlılıkları ve bağlantıları otomatik olarak yönetir.

Yapacaklarınız

  • Application Design Center'ı ayarlayın.
  • Uygulama bileşenlerini görsel olarak birleştirin.
  • Uygulama mimarisini dağıtın.
  • Çalışan uygulamayı doğrulayın.
  • Uygulamanın Uygulama Merkezi'ne kaydedildiğini doğrulayın.
  • Uygulama İzleme'de uygulama metriklerini, izlerini ve günlüklerini doğrulayın.

İhtiyacınız olanlar

  • Chrome gibi bir web tarayıcısı
  • Faturalandırmanın etkin olduğu bir Google Cloud projesi.

Bu codelab, yeni başlayanlar da dahil olmak üzere her seviyeden geliştiriciye yöneliktir.

Tahmini Süre: 45 dakika Tahmini Maliyet: 2 ABD dolarından az

2. Kurulum

Proje ayarlama

Google Cloud projesi oluşturma

  1. Google Cloud Console'daki proje seçici sayfasında bir Google Cloud projesi seçin veya oluşturun.
  2. Cloud projeniz için faturalandırmanın etkinleştirildiğinden emin olun. Bir projede faturalandırmanın etkin olup olmadığını kontrol etmeyi öğrenin.

Cloud Shell'i Başlatma

Cloud Shell, Google Cloud'da çalışan ve gerekli araçların önceden yüklendiği bir komut satırı ortamıdır.

  1. Google Cloud Console'un üst kısmında Activate Cloud Shell'i (Cloud Shell'i Etkinleştir) tıklayın.
  2. Cloud Shell'e bağlandıktan sonra kimlik doğrulamanızı onaylayın:
    gcloud auth list
    
  3. Projenizin yapılandırıldığını onaylayın:
    gcloud config get project
    
  4. Projeniz beklendiği gibi ayarlanmamışsa ayarlayın:
    export PROJECT_ID=<YOUR_PROJECT_ID>
    gcloud config set project $PROJECT_ID
    

3. Application Design Center'ı ayarlama

Uygulamanızı oluşturmadan önce ADC'de çalışma alanınızı ayarlamanız gerekir.

  1. Google Cloud Console'da Application Design Center'ı arayıp bu sayfaya gidin.
  2. Bu projede ADC'yi ilk kez kullanıyorsanız bir kurulum ekranı görürsünüz.
  3. Kuruluma git'i tıklayın.

Application Design Center'ı ayarlama

  1. Gerekli API'ler etkinleştirilmemişse bunları etkinleştirmeniz istenir. Devam etmek için Etkinleştir'i tıklayın.

API'leri etkinleştir

4. ADC özelliklerini keşfetme

Bu görevde ADC'nin temel bileşenleri olan Alanlar, Kataloglar ve Şablonlar hakkında bilgi edineceksiniz.

ADC Spaces

Alan, şablon oluşturmak ve uygulamaları dağıtmak için kullanılan bir yerdir. Her alan bir Google Cloud projesine aittir. ADC, ilk kurulum sırasında varsayılan bir alan oluşturur ancak daha sonra farklı bölgelerde başka alanlar oluşturabilirsiniz.

Alanlarınızı terminal üzerinden görüntülemek için aşağıdaki adımları uygulayın:

  1. Cloud Shell araç çubuğunda Open Editor'ı (Düzenleyiciyi Aç) tıklayın veya terminali kullanın.
  2. Aşağıdaki komutu çalıştırın:
gcloud alpha design-center spaces list \
--project="your PROJECT ID" \
--location=us-central1

Bölge için varsayılan alanın mevcut olduğunu belirten aşağıdaki gibi bir çıkış görmeniz gerekir.

createTime: '20XXXX-XX-XXT09:19:29.456016967Z'
displayName: default-space
enableGcpSharedTemplates: true
name: projects/your-project-id/locations/us-central1/spaces/default-space

5. Şablonu birleştirme

Bu adımda, Platform Ekibi mühendisi rolünü üstleneceksiniz. Amacınız, kuruluşunuzdaki aracı uygulamalar için yeniden kullanılabilir, güvenli ve uyumlu bir şablon oluşturmaktır. Bu şablondan dağıtılan tüm uygulamaların şirketinizin bulut politikalarına uygun olmasını sağlamak için bileşenler ekleyip kısıtlamalar yapılandıracaksınız.

1. Yeni tasarım oluşturma

  1. ADC konsolunda Templates > Create Template'i (Şablonlar > Şablon Oluştur) tıklayın.
  2. Bu şablon, Cymbal London Concierge uygulamasını ve benzer uygulamaları dağıtmak için kullanılacağından şablonunuza simple-3-tier-agentic-app adını verin.Şablon Oluştur

2. Veri MCP sunucusunu ekleme

Bu bileşen, veritabanı etkileşimlerini ve Vector Search'ü yönetir.

  1. Add Component (Bileşen Ekle) > Cloud Run (Service)'i (Cloud Run (Hizmet)) tıklayın. Bu bileşeni tıkladığınızda sağ üst köşede bileşen kimliği görürsünüz. cloud-run-1 biçiminde olacaktır. Bunu data-mcp-server olarak değiştirebiliriz. Bunun için kod görünümünde düzenleme yapmamız gerekir (bu konu daha sonra ele alınacaktır). Ancak şimdilik olduğu gibi bırakalım.Bileşen Ekle
  2. Hizmet Adı'nı girin: data-mcp-server.
  3. Gelişmiş ayarları göster bölümünde Üyeler'i allUsers olarak ayarlayın. (Not: Üretim ortamında bunu kısıtlamanız olasıdır ancak Codelab'in basitliği için burada kullanıyoruz.)
  4. Gelişmiş ayarları göster bölümünde VPC ACCESS'i ayarlayın, Egress'i PRIVATE_RANGES_ONLY olarak ayarlayın.
  5. İsteğe bağlı olarak, Gelişmiş ayarları göster bölümünde Prometheus Sidecar'ı etkinleştir seçeneğinin işaretini kaldırın.VPC Erişimi
  6. Kaydet'i tıklayın.

3. Temsilci arka ucunu ekleme

Bu, ajan davranışını düzenleyen FastAPI uygulamasıdır.

  1. Add Component (Bileşen Ekle) > Cloud Run (Service)'i (Cloud Run (Hizmet)) tıklayın.
  2. agent-backend olarak adlandırın.
  3. Gelişmiş alanları göster bölümünde Hizmet Hesabı Oluştur'u işaretleyin ve Hizmet Hesabı Projesi Rolleri bölümünde aşağıdaki rolleri tek tek ekleyin:
    • roles/monitoring.metricWriter
    • roles/logging.logWriter
    • roles/cloudtrace.agent
    • roles/telemetry.writer
    • roles/serviceusage.serviceUsageConsumer. Bu roller, aracının Cloud Monitoring, Cloud Logging ve Cloud Trace'i kullanmasına olanak tanır. Uygunluk Yapılandırması: Platform ekibi, gerekli rolleri açıkça listeleyerek en az ayrıcalık ilkesini uygular.
    Roller
  4. Gelişmiş ayarları göster bölümünde Üyeler'i allUsers olarak ayarlayın.
  5. Gelişmiş ayarları göster bölümünde VPC ACCESS'i ayarlayın, Egress'i PRIVATE_RANGES_ONLY olarak ayarlayın.
  6. İsteğe bağlı olarak, Gelişmiş ayarları göster bölümünde Prometheus Sidecar'ı etkinleştir seçeneğinin işaretini kaldırın.
  7. agent-backend öğesinden data-mcp-server öğesine bağlantı sürükleyerek agent-backend öğesini data-mcp-server öğesine bağlayın.
  8. Kaydet'i tıklayın.

4. Ön ucu ekleme

Kullanıcı arabirimi

  1. Add Component (Bileşen Ekle) > Cloud Run (Service)'i (Cloud Run (Hizmet)) tıklayın.
  2. Hizmet Adı'nı girin: frontend.
  3. Gelişmiş ayarları göster bölümünde Hizmet Hesabı Oluştur'un işaretini kaldırın.
  4. Gelişmiş ayarları göster bölümünde Giriş'i INGRESS_TRAFFIC_INTERNAL_LOADBALANCER olarak ayarlayın. Uygunluk Yapılandırması: Ön uç kapsayıcısına doğrudan herkese açık erişim engellenir ve trafik, yük dengeleyiciden geçmeye zorlanır.
  5. Gelişmiş ayarları göster bölümünde Üyeler'i şu şekilde ayarlayın: allUsers.Ön uç
  6. İsteğe bağlı olarak, Gelişmiş ayarları göster bölümünde Prometheus Sidecar'ı etkinleştir seçeneğinin işaretini kaldırın.
  7. Kaydet'i tıklayın.
  8. frontend öğesinden agent-backend öğesine bağlantı sürükleyerek frontend öğesini agent-backend öğesine bağlayın.

5. Vertex AI bileşeni ekleme

  1. Add Component (Bileşen Ekle) > Vertex AI'ı tıklayın.
  2. vertex-ai olarak adlandırın.
  3. vertex-ai öğesinden agent-backend ve data-mcp-server öğelerine iki bağlantı sürükleyerek agent-backend ve data-mcp-server öğelerine bağlayın. aiplatform.user rolleri, Vertex AI bileşenine bağlı oldukları için agent-backend ve data-mcp-server hizmet hesaplarına atanmış olur.

6. Global yük dengeleyiciyi ekleme

Yük dengeleyici, ön ucunuzu herkese açık internete sunar. ADC'de bu, arka uç ve ön uç bileşeni olarak ayrılır.

C. Yük dengeleyici arka ucunu ekleme

  1. **Add Component > Global Cloud Load Balancing (Backend)** (Bileşen Ekle > Global Cloud Load Balancing (Arka Uç)) seçeneğini tıklayın.
  2. galb-backend olarak adlandırın.
  3. Bağlantı Ekle'yi tıklayın ve frontend'ye bağlayın.

B. Yük dengeleyici ön ucunu ekleme

  1. **Add Component > Global Cloud Load Balancing (Frontend)'i (Bileşen Ekle > Global Cloud Load Balancing (Ön Uç)) tıklayın.
  2. galb-frontend olarak adlandırın.
  3. Bağlantı Ekle'yi tıklayın ve galb-backend'ye bağlayın.
  4. galb-frontend öğesinden galb-backend öğesine bağlantı sürükleyerek galb-frontend öğesini galb-backend öğesine bağlayın.

Uygulama Şablonu

Katalogda şablon paylaşma

Katalog, uygulama şablonlarını farklı alanlarda paylaşmanıza olanak tanıyarak mimari yönetimi sağlar. Katalog, platform ekibi tarafından oluşturulan ve paylaşım için onaylanan şablonların merkezi deposu olarak işlev görür. Katalogları alanlar arasında paylaşmak, ortak projelerde tekrarlanan çabaları önler ve başlangıç sürelerini kısaltır.

Şimdi şablonunuzu kataloga ekleyin:

  1. Kataloglar sekmesini tıklayın.
  2. Şablon Ekle'yi tıklayın ve simple-3-tier-agentic-app şablonunu seçin.
  3. Kataloga ekle'yi tıklayın.Kataloğa ekle

Şablonları üç yerde bulabilirsiniz: Google Şablonları (önceden tanımlanmış desenler), Paylaşılan Şablonlar (kuruluşunuzda paylaşılanlar) ve Şablonlar (alanınızdaki özel planlar).

6. Uygulamayı dağıtma

Şimdi, bu şablonu cymbal-london-concierge uygulamasını dağıtmak için kullanmak isteyen bir uygulama geliştirici rolünü oynama zamanı.

  1. ADC konsolunda, Şablonlar sekmesinde şablonu yeniden açın ve Uygulamayı yapılandır düğmesini tıklayın.Bir uygulamayı yapılandırma
  2. Yeni uygulama oluştur'u tıklayın.
  3. Uygulamayı yapılandırın:
    • Uygulama Adı: cymbal-london-concierge
    • Dağıtım projesi: Proje kimliğiniz
    • Bölge: us-central1
    • Giriş Özellikleri>Ortam: Development
    • Giriş Özellikleri>Önem Derecesi: Low
  4. Uygulama Oluştur'u tıklayın.Üretim dağıtımı için Ortam olarak "Üretim", Kritiklik olarak da "Yüksek"i seçersiniz. Bunlar, SRE'lerinizin ve operasyon ekibinizin ortaya çıkan sorunlar üzerinde çalışmayı sıralamasına ve önceliklendirmesine yardımcı olacak etiketlerdir.
  5. Bu işlem, uygulama şablonuyla birlikte dağıtım ayrıntıları sayfasını açmalıdır. Bu yalnızca bir şablon olduğundan uygulamamıza özgü yapılandırmayı eklememiz gerekir.
  6. Ön ucu yapılandıralım. Ön uç bileşenini tıklayın.
    1. Kapsayıcılar > Kapsayıcıyı Düzenle'yi tıklayın.
    2. Genel kapsayıcı resmini, uygulamamızda kullanmak istediğimiz resimle değiştirmemiz gerekir.
    3. Container Image'i şu şekilde ayarlayın: us-central1-docker.pkg.dev/o11y-movie-guru/london-travel-agency/frontend:codelab-c2c6-v1Container görüntüsünü değiştirme
    4. http1 bağlantı noktasını 80 olarak ayarlayın.
    5. Aşağıdaki ortam değişkenlerini ayarlayın:
      • API_BASE_URL: module.cloud-run-2.service_uri (cloud-run-2 öğesinin aracı arka uç bileşeninin adı olduğundan emin olun, değilse bileşenin gerçek adıyla değiştirin)
    6. Kaydet'i tıklayın.
  7. Aracı arka ucunu yapılandıralım. agent-backend bileşenini tıklayın.
    1. Kapsayıcılar > Kapsayıcıyı Düzenle'yi tıklayın.
    2. Genel kapsayıcı resmini, uygulamamızda kullanmak istediğimiz resimle değiştirmemiz gerekir.
    3. Container Image'i us-central1-docker.pkg.dev/o11y-movie-guru/london-travel-agency/agent:codelab-c2c6-v1 olarak ayarlayın.
    4. Aşağıdaki ortam değişkenlerini ayarlayın:
    5. GOOGLE_CLOUD_PROJECT:
    6. GOOGLE_CLOUD_LOCATION: us-central1
    7. DATA_BACKEND_URL: module.cloud-run-1.service_uri (cloud-run-1 öğesinin veri mcp sunucusu bileşeninin adı olduğundan emin olun, değilse bileşenin gerçek adıyla değiştirin)
    8. http1 bağlantı noktasını 8000 olarak ayarlayın.
    9. Kaydet'i tıklayın.
  8. Veri MCP sunucusunu yapılandıralım. data-mcp-server bileşenini tıklayın.
    1. Kapsayıcılar > Kapsayıcıyı Düzenle'yi tıklayın.
    2. Genel kapsayıcı resmini, uygulamamızda kullanmak istediğimiz resimle değiştirmemiz gerekir.
    3. Container Image'i us-central1-docker.pkg.dev/o11y-movie-guru/london-travel-agency/data_mcp:codelab-c2c6-v1 olarak ayarlayın.
    4. Aşağıdaki ortam değişkenlerini ayarlayın:
    5. GOOGLE_CLOUD_PROJECT:
    6. GOOGLE_CLOUD_LOCATION: us-central1
    7. DB_TYPE: sqlite
    8. EMBEDDING_MODEL: text-embedding-005
    9. http1 bağlantı noktasını 8002 olarak ayarlayın.
    10. Kaydet'i tıklayın.
    Gerçek bir üretim senaryosunda, CloudSQL veya AlloyDB gibi bir veritabanı da yapılandırır ve veri mcp sunucusu için veritabanı bağlantı dizesini sağlarsınız. Ancak bu laboratuvarda bellek içi veritabanı kullanacağız. Ayrıca, mcp sunucusunu ve veritabanını gizli hale getirip yalnızca aracı arka ucundan veya ağ içinden erişilebilir hale getirirsiniz.
  9. Uygulamanın Terraform kodunu görüntülemek için sayfanın üst kısmındaki Code (Kod) düğmesini tıklayın. Ayrıca, uygulamaya ait Terraform kodunu Kodu Al düğmesini tıklayarak indirip kod tabanınızda saklayabilirsiniz.Uygulama Şablonu
  10. Uygulamayı dağıtmak için sayfanın sağ üst köşesindeki Dağıt düğmesini tıklayın.
  11. Dağıtım sayfasında, dağıtım ardışık düzeni için bir hizmet hesabı oluşturmanız veya mevcut bir hesabı seçmeniz istenir. Create Service Account'u (Hizmet Hesabı Oluştur) tıklayın (ad otomatik olarak doldurulur) ve ardından Proceed'i (Devam) tıklayın. Yeni bir hizmet hesabının oluşturulması birkaç saniye sürer.

Hizmet hesabı oluşturma

  1. Hizmet hesabı oluşturulduktan sonra sayfa yenilenir ve hizmet hesabı seçeneğinin yanında bir onay işareti görürsünüz.

Oluşturulan Hizmet Hesabı

  1. Ardından, sayfanın alt kısmındaki Dağıt'ı tıklayın.
  2. Bu işlemin tamamlanması birkaç dakika sürer. Dağıtım tamamlandığında her bileşenin yanında yeşil bir onay işareti görürsünüz. Ayrıca, dağıtımın durumunu kontrol etmek için Günlüklere bağlantı düğmesini tıklayarak bulut derleme günlüklerini açabilirsiniz. Düğmenin görünmesi birkaç dakika sürebilir.
![Deployment Logs](./img/10b_logs.png)
  1. Dağıtımın durumunu görmek veya uygulamayı dağıtırken oluşabilecek hataları incelemek için bulut derleme günlüklerini görüntüleyebilirsiniz. Ayrıca, Google Cloud Console'da Cloud Build'i arayıp Geçmiş'i tıklayarak doğrudan Cloud Build günlüklerine gidebilirsiniz. Uygulamanın dağıtılması yaklaşık 5-8 dakika sürer.
![Cloud Build](./img/10c_cloudbuild.png)
  1. Dağıtım tamamlandığında Dağıtım durumu alanının yanında yeşil bir onay işareti görürsünüz.
![Deployment Complete](./img/11_deployed.png)

7. Uygulamayı doğrulama

Aracının etkin olup olmadığını test edelim. Dağıtım ayrıntıları sayfasının outputs (çıkışlar) bölümünde ön uç bileşeninin URL'sini görürsünüz. Bu URL'yi kopyalayıp tarayıcınıza yapıştırın. https değil http kullandığınızdan emin olun. Ön uç http kullandığından tarayıcıda alabileceğiniz uyarıları da kabul edin.

Uygulamayla sohbet edin ve Londra seyahati için bir seyahat planı oluşturmasını isteyin.

Ön uç

8. Uygulama Merkezi ve uygulama izleme

  1. ADC konsolunda, sayfanın sağ üst köşesindeki Uygulamayı Uygulama Merkezi'nde görüntüle düğmesini tıklayın.

Uygulama Merkezi

  1. Bu işlem, uygulamayı Uygulama Merkezi'nde açar. Uygulama Merkezi, tüm uygulamalarınızı görüntüleyip yönetebileceğiniz merkezi bir yerdir. Bu sayede, kaynak odaklı bir görünümden uygulama odaklı bir görünüme geçiş yapabilirsiniz. ADC kullanarak uygulama oluşturduğunuzda Uygulama Merkezi'nde otomatik olarak bir uygulama oluşturulur. Uygulamayı oluşturan tüm iş yükleri ve hizmetler burada listelenir. Buluttaki kaynakları tek tek kaynaklar olarak görüntülemek yerine, tek bir uygulamanın parçası olarak görüntüleyebilir, böylece yönetimi ve yönetişimi basitleştirebilirsiniz.

Uygulama Merkezi

  1. View in Observability (Gözlemlenebilirlik'te Görüntüle) düğmesini tıklayın. Bu işlem, uygulamayı Observability Console'da açar.
  2. Kontrol paneli görünümünü açın. Kontrol paneli, 4 değerli sinyal (istek hızı, hata oranı, gecikme ve doygunluk) gibi metrikler sağlayarak uygulamanın performansı ve durumu hakkında genel bir bakış sunar. Bu uygulama merkezli izleme, güvenilirliği korumak için çok önemlidir. Ayrıca, sinyalleri ilişkilendirmenize ve darboğazları belirlemenize olanak tanıyan uygulama için Günlükler ve İzlemeler'i de görüntüleyebilirsiniz. Bu durum, özellikle Vertex AI veya Data MCP sunucusundan gelen yavaş yanıtların kullanıcı deneyimini olumsuz etkileyebileceği bu gibi karmaşık bir aracı uygulamada önemlidir.

Kontrol Paneli

  1. Rehberli Keşif: Uygulamada aracıya belirli bir soru sorun (ör. "Londra'da ziyaret edilebilecek en iyi yerler nerelerdir?"). Ardından, Gözlemlenebilirlik Konsolu'na geri dönüp İzlemeler listesini görüntüleyin. İsteğinize karşılık gelen izi bulun. Ayrıntılı şelale görünümünü görmek için bu seçeneği tıklayın. Ön uçta, aracı arka ucunda ve Vertex AI'a yapılan çağrılarda harcanan süreyi nasıl görebileceğinize dikkat edin. Bu sayede, gecikmenin tam olarak nerede başladığını belirleyebilirsiniz.

9. Tebrikler

Tebrikler! ADC kullanarak 3 katmanlı bir uygulama mimarisi dağıttınız.

Öğrendikleriniz

  • ADC kullanarak bulut mimarisini görsel olarak birleştirme
  • ADC'yi ayarlama ve API'leri kullanıcı arayüzü üzerinden etkinleştirme
  • ADC kullanarak uygulamaları dağıtma
  • Kaynaklarınızın uygulama merkezli görünümü için Uygulama Merkezi'ni kullanma
  • Gözlemlenebilirlik kontrol panelini kullanarak uygulama sağlığını izleme

Referans belgeleri