Google menyediakan alat build image yang canggih yang dapat Anda gunakan untuk membuat dan memublikasikan image container Docker yang dioptimalkan untuk aplikasi Java dengan mudah dalam waktu singkat tanpa Docker atau Dockerfile. Google Cloud juga menghadirkan serverless ke container dengan Cloud Run, platform komputasi terkelola yang otomatis menskalakan container stateless Anda. Dalam codelab ini, Anda akan melihat betapa mudahnya membuat container aplikasi Spring Boot Kotlin, memublikasikan ke Container Registry, dan menjalankan image di Google Cloud dengan lancar.
Codelab ini memandu Anda menyiapkan aplikasi sederhana di Kotlin, yang menunjukkan penggunaan layanan dan alat Google Cloud, termasuk Jib, Container Registry, dan Cloud Run.
Prasyarat
- Memahami bahasa dan alat pemrograman Java
- Pengetahuan tentang editor teks Linux standar, seperti Vim, Emacs, dan nano
Yang akan Anda lakukan
- Siapkan aplikasi Spring Boot Kotlin.
- Bangun 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
Penyiapan lingkungan mandiri
- Login ke Cloud Console lalu buat project baru atau gunakan kembali project yang sudah ada. (Jika belum memiliki akun Gmail atau G Suite, 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 Konsol Cloud untuk menggunakan resource Google Cloud.
Menjalankan operasi dalam codelab ini tidak akan menghabiskan biaya lebih dari beberapa dolar, tetapi bisa lebih jika Anda memutuskan untuk menggunakan lebih banyak resource atau jika Anda membiarkannya berjalan.
Pengguna baru Google Cloud memenuhi syarat untuk mendapatkan uji coba gratis senilai$300.
Cloud Shell
Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Cloud Shell, lingkungan command line yang berjalan di Google Cloud.
Mengaktifkan Cloud Shell
- Dari Cloud Console, klik Activate 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 berisi semua alat pengembangan yang Anda perlukan. 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`
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].
- 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 dan pilih Preview on port 8080 untuk mengakses aplikasi.
- Anda akan mendapatkan respons 404 karena aplikasi belum melakukan apa pun yang berguna. Hentikan aplikasi dengan
Control+C
.
- 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!"
}
}
- Bangun 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
.
Dengan Jib, Anda dapat memasukkan aplikasi ke dalam container secara optimal tanpa Docker dan memublikasikannya ke registry container mana pun.
- Sebelum melanjutkan, Anda harus 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 memublikasikannya ke Container Registry.
$ ./mvnw com.google.cloud.tools:jib-maven-plugin:1.8.0:build \ -Dimage=gcr.io/$GOOGLE_CLOUD_PROJECT/kotlin-jib-cloud-run
Pada akhirnya, Anda akan melihat pesan berikut yang menyatakan bahwa aplikasi telah dimasukkan ke 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
telah 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 Anda berhasil dipublikasikan.
Cloud Run menghadirkan serverless ke container, dengan menskalakan container stateless Anda secara otomatis.
- Klik Navigation menu
lagi, lalu pilih Cloud Run.
Jika ini adalah 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 Pilih di bagian Sumber. Sumbernya adalah image yang ingin Anda jalankan di Cloud Run.
- Dialog akan menampilkan image yang Anda buat sebelumnya. Pilih gambar, lalu klik Lanjutkan.
- Anda hanya perlu beberapa klik untuk men-deploy aplikasi sekarang. Di bagian Platform deployment, pilih Cloud Run (terkelola sepenuhnya) agar layanan dikelola sepenuhnya di Google Cloud. Pilih region yang sesuai untuk lokasi Anda, pilih Izinkan pemanggilan yang tidak diautentikasi, lalu klik Buat. Selesai.
Setelah image di-deploy sepenuhnya, halaman Cloud Run akan menampilkan URL untuk mengakses aplikasi. Coba lihat!
Pada akhirnya, Anda akan melihat pesan yang Anda harapkan dari aplikasi.
Kotlin app on Cloud Run, containerized by Jib!
Selesai. Pada masa mendatang, jika Anda perlu men-deploy versi aplikasi baru, Anda dapat melakukannya dengan mengklik Deploy Revisi Baru di halaman.
- 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 Hapus.
- Demikian pula, buka halaman Container Registry dan hapus image.
Selamat! Anda berhasil mem-build aplikasi Spring Boot Kotlin dalam container dan men-deploy-nya ke Cloud Run.
Dengan Jib, Anda telah membangun image container yang dioptimalkan tanpa menginstal Docker atau menulis Dockerfile dan memublikasikannya ke Container Registry. Jib mengoptimalkan konstruksi image, sehingga siapa pun tanpa pengetahuan mendalam tentang Docker dapat melakukan containerisasi aplikasi Java dengan cepat dan efisien. Kemudian, dengan beberapa klik, Anda men-deploy aplikasi ke Cloud Run untuk mulai ditayangkan dalam waktu singkat.
Pelajari lebih lanjut
- Men-deploy aplikasi Java ke Kubernetes di 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—memasukkan aplikasi Java Anda ke dalam container
- Channel Gitter Jib
- Milis pengguna Jib