1. Sebelum memulai
Google menyediakan alat build image yang canggih agar Anda dapat dengan mudah membangun dan memublikasikan image container Docker yang dioptimalkan untuk aplikasi Java dalam waktu singkat tanpa Docker atau Dockerfile. Google Cloud juga menghadirkan model serverless ke container dengan Cloud Run, yakni platform komputasi terkelola yang otomatis menskalakan container stateless Anda. Dalam codelab ini, Anda akan melihat betapa mudahnya memasukkan aplikasi Kotlin Spring Boot ke dalam container, memublikasikan ke Container Registry, dan menjalankan image di Google Cloud secara lancar.
Codelab ini memandu Anda dalam menyiapkan aplikasi sederhana di Kotlin, yang mendemonstrasikan penggunaan layanan dan alat Google Cloud, termasuk Jib, Container Registry, dan Cloud Run.
Prasyarat
- Pemahaman tentang bahasa dan alat pemrograman Java
- Pengetahuan tentang editor teks Linux standar, seperti Vim, Emacs, dan nano
Yang akan Anda lakukan
- Siapkan aplikasi Kotlin Spring Boot.
- Membangun image Docker yang dioptimalkan.
- Publikasikan image ke Container Registry.
- Jalankan aplikasi dalam container di Cloud Run.
Yang Anda butuhkan
- Project Google Cloud
- Browser, seperti Google Chrome
2. Mempersiapkan
Penyiapan lingkungan mandiri
- Login ke Cloud Console lalu buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.
Ingat project ID, nama unik di semua project Google Cloud (maaf, nama di atas telah digunakan dan tidak akan berfungsi untuk Anda!) Project ID tersebut selanjutnya akan dirujuk di codelab ini sebagai PROJECT_ID
.
- Selanjutnya, Anda harus mengaktifkan penagihan di Cloud Console untuk menggunakan resource Google Cloud.
Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Pastikan untuk mengikuti petunjuk yang ada di bagian "Membersihkan" yang memberi tahu Anda cara menonaktifkan resource sehingga tidak menimbulkan penagihan di luar tutorial ini. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai$300 USD.
Cloud Shell
Meskipun Google Cloud dapat dioperasikan secara jarak jauh dari laptop Anda, dalam codelab ini Anda akan menggunakan Cloud Shell, yakni lingkungan command line yang berjalan di Google Cloud.
Mengaktifkan Cloud Shell
- Dari Cloud Console, klik Aktifkan Cloud Shell .
Jika belum pernah memulai Cloud Shell, Anda akan melihat layar perantara (di paruh bawah) yang menjelaskan apa itu Cloud Shell. Jika demikian, klik Lanjutkan (dan Anda tidak akan pernah melihatnya lagi). Berikut tampilan layar sekali-tampil tersebut:
Perlu waktu beberapa saat untuk penyediaan dan terhubung ke Cloud Shell.
Mesin virtual ini dimuat dengan semua alat pengembangan yang Anda butuhkan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Sebagian besar pekerjaan Anda dalam codelab ini dapat dilakukan hanya dengan browser atau Chromebook.
Setelah terhubung ke Cloud Shell, Anda akan melihat bahwa Anda sudah diautentikasi dan project sudah ditetapkan ke project ID Anda.
- Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa Anda telah diautentikasi:
gcloud auth list
Output perintah
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa perintah gcloud mengetahui project Anda:
gcloud config list project
Output perintah
[core] project = <PROJECT_ID>
Jika tidak, Anda dapat menyetelnya dengan perintah ini:
gcloud config set project <PROJECT_ID>
Output perintah
Updated property [core/project].
3. Melakukan inisialisasi aplikasi Spring Boot
- Buat aplikasi Spring Boot baru dengan Spring Initializr.
$ curl https://start.spring.io/starter.tgz \ -d language=kotlin \ -d dependencies=web \ -d baseDir=kotlin-jib-cloud-run | tar -xzvf -
Perhatikan bahwa Initializr akan otomatis menambahkan spring-boot-starter-web
ke dependensi Anda di pom.xml
aplikasi template.
- Ubah ke direktori aplikasi template.
$ cd kotlin-jib-cloud-run
- Bangun dan jalankan aplikasi menggunakan Maven.
$ ./mvnw -DskipTests spring-boot:run
- Setelah dimulai, aplikasi akan mulai memproses di port 8080. Klik Web Preview di toolbar Cloud Shell, lalu pilih Preview on port 8080 untuk mengakses aplikasi.
- Anda akan mendapatkan respons 404 karena aplikasi belum melakukan hal yang berguna. Hentikan aplikasi dengan
Control+C
.
4. Tambahkan pengontrol web
- Buat class
Controller
berikut dalam paket demo:
$ vi src/main/kotlin/com/example/demo/Controller.kt or $ nano src/main/kotlin/com/example/demo/Controller.kt
src/main/kotlin/com/example/demo/Controller.kt
package com.example.demo
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController
@RestController
class Controller {
@GetMapping("/")
fun saySomething(): String {
return "Kotlin app on Cloud Run, containerized by Jib!"
}
}
- Build ulang dan jalankan aplikasi.
$ ./mvnw spring-boot:run
- Periksa aplikasi lagi menggunakan Pratinjau Web . Kali ini, Anda akan melihat pesan, "
Kotlin app on Cloud Run, containerized by Jib!
". Hentikan aplikasi denganControl+C
.
5. Memasukkan aplikasi ke dalam container dan memublikasikannya ke Container Registry
Dengan Jib, Anda dapat memasukkan aplikasi ke dalam container dengan cara yang optimal tanpa Docker dan memublikasikannya ke container registry apa pun.
- Sebelum melanjutkan, Anda perlu mengaktifkan Container Registry API. Tindakan ini hanya perlu dilakukan sekali per project agar API dapat diakses.
$ gcloud services enable containerregistry.googleapis.com
- Jalankan Jib untuk membangun image Docker dan memublikasikan ke Container Registry.
$ ./mvnw com.google.cloud.tools:jib-maven-plugin:3.1.1:build \ -Dimage=gcr.io/$GOOGLE_CLOUD_PROJECT/kotlin-jib-cloud-run
Terakhir, Anda akan melihat pesan berikut yang menyatakan bahwa aplikasi berada dalam container dan dikirim ke Container Registry Anda.
[INFO] Built and pushed image as gcr.io/PROJECT_ID/kotlin-jib-cloud-run ... [INFO] BUILD SUCCESS
Jika Anda melihat error, periksa kembali apakah $GOOGLE_CLOUD_PROJECT
ditetapkan dengan benar ke project ID Google Cloud Anda (PROJECT_ID
).
- Sebelum melanjutkan, periksa apakah gambar berhasil dipublikasikan. Kembali ke Konsol Cloud, klik Navigation menu , lalu pilih Container Registry.
Anda akan melihat bahwa gambar berhasil dipublikasikan.
6. Menjalankan aplikasi dalam container di Cloud Run
Cloud Run menghadirkan model serverless ke container, yang otomatis menskalakan container stateless Anda.
- Klik Navigation menu lagi dan pilih Cloud Run.
Jika ini pertama kalinya Anda mengakses Cloud Run, Anda akan melihat dialog berikut untuk penyiapan satu kali. Klik Start Using Cloud Run jika muncul.
- Di halaman Cloud Run, klik Create Service.
- Di layar berikutnya, klik Select di bagian Source. Sumbernya adalah image yang ingin Anda jalankan di Cloud Run.
- Dialog akan menampilkan gambar yang telah Anda buat sebelumnya. Pilih gambar, lalu klik Lanjutkan.
- Anda hanya perlu beberapa klik lagi untuk men-deploy aplikasi sekarang. Di bagian Platform deployment, pilih Cloud Run (terkelola sepenuhnya) agar layanan terkelola sepenuhnya di Google Cloud. Pilih region yang sesuai untuk lokasi Anda, pilih Allow unauthenticated invocations, lalu klik Create. Selesai.
Setelah image di-deploy sepenuhnya, halaman Cloud Run akan menampilkan URL untuk mengakses aplikasi. Ayo lihat!
Di bagian akhir, Anda akan melihat pesan yang diharapkan dari aplikasi.
Kotlin app on Cloud Run, containerized by Jib!
Selesai. Di masa mendatang, jika perlu men-deploy versi aplikasi baru, Anda dapat melakukannya dengan mengklik Deploy New Revisi di halaman.
7. Pembersihan
- Untuk membersihkan lingkungan, Anda harus menghapus aplikasi yang di-deploy di Cloud Run dan image yang dipublikasikan di Container Registry. Buka Cloud Run, pilih aplikasi, lalu klik Delete.
- Demikian pula, buka halaman Container Registry dan hapus image.
8. Selamat
Selamat! Anda berhasil memasukkan aplikasi Kotlin Spring Boot ke dalam container dan men-deploy-nya ke Cloud Run.
Dengan menggunakan Jib, Anda telah membangun image container yang dioptimalkan tanpa menginstal atau menulis Dockerfile, dan memublikasikannya ke Container Registry. Jib mengoptimalkan konstruksi image, sehingga siapa pun yang tidak memiliki pengetahuan Docker yang mendalam dapat memasukkan aplikasi Java ke dalam container dengan cepat dan efisien. Kemudian, dengan beberapa klik, Anda telah men-deploy aplikasi ke Cloud Run untuk mulai menyajikan aplikasi dalam waktu singkat.
Pelajari lebih lanjut
- Men-deploy aplikasi Java ke Kubernetes pada Google Kubernetes Engine
- Dokumentasi Cloud Run
- Ringkasan Cloud Run
- Memperkenalkan Jib—bangun image Docker Java yang lebih baik
- Bangun container lebih cepat dengan Jib, alat build image Google untuk aplikasi Java
- Jib—menyimpan aplikasi Java Anda dalam container
- Channel Jib Gitter
- Milis pengguna Jib