1. Hedefler
Bu laboratuvarda şunları yapacaksınız:
- Cloud Code eklentilerini keşfetme
- Kubernetes kümesine dağıtma
- Kubernetes günlüklerini yayınlama
- Değişikliklerin anında yeniden yüklenmesinden yararlanma
- Canlı Kubernetes uygulamalarında hata ayıklama
2. Çalışma alanınızı hazırlama
Uygulamayı klonlama
Depoyu klonlamak ve geliştirme ortamınızda açmak için:
- Aşağıdaki URL'yi ziyaret ederek Cloud Shell Düzenleyici'yi açın.
https://ide.cloud.google.com
- Terminal penceresinde, aşağıdaki komutu kullanarak uygulama kaynağını klonlayın:
git clone https://github.com/viglesiasce/sample-app.git -b golden-path
- Dizine geçin ve IDE çalışma alanını depo köküne ayarlayın.
cd sample-app && cloudshell workspace .
Minikube'u başlatma
Bu bölümde, Minikube adlı yerel bir Kubernetes sürümünü kullanarak uygulamanızı oluşturacak, test edecek, dağıtacak ve erişeceksiniz.
- Terminalde şu komutu çalıştırarak minikube'u başlatın:
minikube start
Minikube, Cloud Shell'inizde yerel bir Kubernetes kümesi oluşturur. Bu kurulum birkaç dakika sürer. Başlangıç sırasında, bir sonraki adımda Cloud Code'un sağladığı çeşitli arayüzleri inceleyin.
3. Cloud Code eklentisini keşfetme
Cloud Code, Kubernetes ve Cloud Run uygulamalarının geliştirme döngüsünün tamamı için IDE desteği sağlar. Bu destek, mevcut bir şablondan uygulama oluşturmaktan dağıtılan uygulamanızın kaynaklarını izlemeye kadar tüm süreçleri kapsar. Cloud Code'un sağladığı farklı komutları ve görünümleri kullanacaksınız. Bu adımda temel arayüzleri tanıyacaksınız.
Etkinlik çubuğundan inceleme gezgini görünümlerini inceleme
Etkinlik çubuğundan birden fazla kullanıcı arayüzü paneline erişilebilir. Çeşitli görünümlerle kısa bir süre içinde tanışmak için her görünümün simgesini tıklayın.
API Gezgini:
- Etkinlik çubuğunda Cloud Code - Cloud API'leri simgesini Cloud Code  tıklayın. Bu görünümde çalışmayla ilgili ek ayrıntıları belgelerde bulabilirsiniz.

Secret Manager Gezgini:
- Etkinlik çubuğunda Secret Manager görünümünü  tıklayın. Bu görünümde çalışma hakkında daha fazla bilgi için belgeleri inceleyin.

Cloud Run Explorer:
- Soldaki Etkinlik çubuğunda Cloud Run simgesini kullanarak Cloud Run Gezgini'ne gidin . Bu görünümde çalışma hakkında ek ayrıntılar belgelerde yer almaktadır.

Kubernetes Gezgini:
- Sol taraftaki Etkinlik çubuğunda bulunan simgeyi kullanarak Kubernetes Explorer'a gidin . Bu görünümde çalışmayla ilgili ek ayrıntılar dokümanlarda yer almaktadır.

Durum çubuğu komutlarını inceleme
Sık kullanılan komutlara durum çubuğundaki gösterge aracılığıyla hızlıca erişilebilir.
- Durum çubuğunda Cloud Code uzantısı göstergesini
 bulun ve tıklayın. - Cloud Run ve Kubernetes'te çalıştırmak ve hata ayıklamak için kullanılabilecek çeşitli komutları inceleyin.
- Ek ayrıntılar ve örnek etkinlikler için Hoş Geldiniz sayfasını aç'ı tıklayın.
Komut paletindeki komutları inceleme
Komut paletinde ek komutlar bulunur. Erişebileceğiniz komutların listesini inceleyin.
- Komut Paleti'ni açın (Ctrl/Cmd+Üst Karakter+P tuşlarına basın) ve ardından kullanılabilir komutları filtrelemek için Cloud Code yazın.
- Komut listesinde gezinmek için ok tuşlarını kullanın.
4. Kubernetes kümesine dağıtma
Bu bölümde uygulamanızı oluşturacak, test edecek, dağıtacak ve erişeceksiniz.
Aşağıdaki adımlarda, kaynak kodun derlemesi başlatılır ve ardından testler çalıştırılır. Derleme ve testlerin çalıştırılması birkaç dakika sürer. Bu testler, birim testlerini ve dağıtım ortamı için belirlenen kuralları kontrol eden bir doğrulama adımını içerir. Bu doğrulama adımı zaten yapılandırılmıştır ve geliştirme ortamınızda çalışırken bile dağıtım sorunlarıyla ilgili uyarı almanızı sağlar.
- Cloud Shell Düzenleyici'nin alt kısmındaki bölmede Cloud Code'u 
seçin. - En üstte görünen panelde Kubernetes'te çalıştır'ı seçin. İstenirse minikube Kubernetes bağlamını kullanmak için Evet'i seçin.
- İlerleme durumunu ve bildirimleri görüntülemek için alt bölmede Çıkış sekmesini
seçin. - Ek ayrıntıları ve kapsayıcılardan canlı olarak yayınlanan günlükleri görüntülemek için sağdaki kanal açılır listesinde
"Kubernetes: Run/Debug - Detailed" seçeneğini belirleyin.
Derleme ve testler tamamlandığında Çıkış sekmesinde Resource deployment/sample-app-dev status completed successfully mesajı gösterilir ve iki URL listelenir.
- Cloud Code terminalinde, çıkıştaki ilk URL'nin (http://localhost:8080) üzerine gelin ve ardından açılan araç ipucunda Web Önizlemesini Aç'ı seçin.
Uygulamanın yerel sürümü tarayıcınızda açılır. Uygulamanın bu sürümü, minikube'un Kubernetes kümesinde çalışıyor.
- Tarayıcınızda sayfayı yenileyin. Sayacın yanındaki sayı artar ve uygulamanın yenileme isteğinize yanıt verdiğini gösterir.
Tarayıcınızda bu sayfayı açık tutarak yerel ortamınızda değişiklik yaparken uygulamayı görüntüleyebilirsiniz.
5. Değişikliklerin anında yeniden yüklenmesinden yararlanma
Bu bölümde, uygulamada bir değişiklik yapıp uygulamayı yerel Kubernetes kümesinde çalıştırırken bu değişikliği görüntülersiniz. Kubernetes: Run/Debug kanalının çıkış sekmesinde, uygulama URL'lerinin yanı sıra çıkışta Watching for changes. ifadesi de yer alıyor. Bu, izleme modunun etkin olduğu anlamına gelir. Cloud Code, izleme modundayken deponuzdaki kaydedilmiş değişiklikleri algılar ve uygulamayı en son değişikliklerle otomatik olarak yeniden derleyip yeniden dağıtır.
- Cloud Shell Düzenleyici'de main.go dosyasına gidin.
- Bu main.go dosyasının 23. satırında rengi yeşilden maviye değiştirin.
- Dosyayı kaydedin.
Cloud Code, uygulamada yapılan değişikliğin kaydedildiğini algılar ve değişikliği otomatik olarak yeniden dağıtır. Çıkış sekmesinde Güncelleme başlatıldı gösterilir. Bu yeniden dağıtımın çalışması birkaç dakika sürer.
Bu otomatik yeniden oluşturma, bazı uygulama türleri ve çerçevelerinde kullanılabilen bir özellik olan sıcak kod yeniden yüklemeye benzer.
- Derleme tamamlandığında, uygulamayı açtığınız tarayıcıya gidip sayfayı yenileyin.
Yenilediğinizde tablonun üst kısmındaki renk maviden yeşile döner.
Bu kurulum, herhangi bir mimari ve bileşen için otomatik yeniden yükleme olanağı sunar. Cloud Code ve minikube kullanılırken Kubernetes'te çalışan her şeyde bu anında kod yeniden yükleme işlevi bulunur.
6. Canlı Kubernetes uygulamalarında hata ayıklama
Uygulamayı çalıştırdınız, bir değişiklik yaptınız ve çalışan uygulamayı görüntülediniz. Bu bölümde, uygulamanın ana depoya geri göndermeye hazır olduğundan emin olmak için uygulamada hata ayıklama işlemi yaparsınız.
Bu hata ayıklama örneğinde, kodun sayfa sayacıyla ilgili bölümüne odaklanacağız.
- Cloud Shell Düzenleyici'de main.go dosyasını açın.
- 82. satırın solundaki sayıyı tıklayarak uygulamada bir kesme noktası ayarlayın (if err != nil {)
- Cloud Shell Düzenleyici'nin alt kısmındaki mavi bölmede Cloud Code'u
seçin. - En üstte görünen panelde Kubernetes'te hata ayıklama'yı seçin.
Cloud Code, hata ayıklayıcıları çalıştırır ve ekler. Böylece, uygulamanın yalnızca kullanıcıya yönelik davranışına değil, bellekteki durumuna da erişebilirsiniz.
- Dağıtım işleminin sonunda, pencerenizin üst kısmında uygulamanın dağıtıldığı kapsayıcıdaki dizini onaylamanızı isteyen bir istem görünür.

Değerin /go/src/app olarak ayarlandığını doğrulayın ve değeri kabul etmek için Enter tuşuna basın.
- Hata ayıklayıcının dağıtımının tamamlanmasını bekleyin. Durum çubuğu turuncuya döndüğünde ve çıkışta
"Attached debugger to container "sample-app-dev-..." successfullyraporu gösterildiğinde işlemin tamamlandığını anlarsınız." - Cloud Code terminalinde, çıkıştaki ilk URL'nin (http://localhost:8081) üzerine gelin ve görüntülenen araç ipucunda Web Önizlemesini Aç'ı seçin. Sayfa yüklenmeyi tamamlamaz. Bu durum normaldir.
- Hata ayıklayıcının göründüğü IDE'ye geri dönün. Kod sekmede görünür. Burada çağrı yığınını ve kodun o bölümünde hangi değişkenlerin kullanılabildiğini görürsünüz. Mevcut sayaç değişkeni değerini görmek için Değişkenler - Yerel bölümünü genişletebilirsiniz.
- Sayfanın yüklenmeye devam etmesine izin vermek için hata ayıklama penceresinde "Devam" simgesini seçin.

- Hata ayıklama işlemini tamamladığınızda çalışan her bir iş parçacığını sonlandırmak için durdurma düğmesini tıklayın.
