Vùng chứa một ứng dụng mùa xuân Kotlin Kotlin và triển khai ứng dụng đó trên Cloud Run
Thông tin về lớp học lập trình này
1. Trước khi bắt đầu
Google cung cấp công cụ tạo hình ảnh mạnh mẽ mà bạn có thể dễ dàng tạo và xuất bản hình ảnh vùng chứa Docker được tối ưu hóa cho các ứng dụng Java nhanh chóng mà không cần Docker hoặc Dockerfile. Google Cloud cũng cung cấp máy chủ không sử dụng vùng chứa với Cloud Run, một nền tảng điện toán được quản lý tự động mở rộng các vùng chứa không có trạng thái của bạn. Trong lớp học lập trình này, bạn sẽ thấy việc chuyển vùng chứa ứng dụng Spring Boot Kotlin của bạn dễ dàng như thế nào, xuất bản lên Sổ đăng ký vùng chứa và chạy hình ảnh trên Google Cloud một cách liền mạch!
Lớp học lập trình này hướng dẫn bạn cách thiết lập một ứng dụng đơn giản trong Kotlin, trình bày cách sử dụng các dịch vụ và công cụ của Google Cloud, bao gồm Jib, Vùng đăng ký vùng chứa và Cloud Run.
Điều kiện tiên quyết
- Làm quen với công cụ và ngôn ngữ lập trình Java
- Kiến thức về các trình chỉnh sửa văn bản Linux tiêu chuẩn, chẳng hạn như Vim, Emacs và nano
Bạn sẽ thực hiện
- Thiết lập ứng dụng Kotlin (phần mềm) khởi động vào mùa xuân.
- Tạo hình ảnh Docker được tối ưu hóa.
- Xuất bản hình ảnh lên sổ đăng ký vùng chứa.
- Chạy ứng dụng đã vùng chứa trên Cloud Run.
Bạn cần có
- Một dự án Google Cloud
- Một trình duyệt, chẳng hạn như Google Chrome
2. Thiết lập
Thiết lập môi trường theo tiến độ riêng
- Đăng nhập vào Cloud Console rồi tạo một dự án mới hoặc sử dụng lại một dự án hiện có. (Nếu chưa có tài khoản Gmail hoặc G Suite, thì bạn phải tạo một tài khoản.)
Hãy ghi nhớ mã dự án, một tên duy nhất trên tất cả các dự án Google Cloud (tên ở trên đã được sử dụng và sẽ không hoạt động cho bạn!). Lớp học này sẽ được gọi sau này trong lớp học lập trình này là PROJECT_ID
.
- Tiếp theo, bạn sẽ cần bật tính năng thanh toán trong Cloud Console để sử dụng tài nguyên của Google Cloud.
Nếu tham gia lớp học lập trình này, bạn sẽ không mất quá vài đô la, nhưng có thể sẽ hiệu quả hơn nếu bạn quyết định sử dụng nhiều tài nguyên hơn hoặc nếu bạn để các tài nguyên đó chạy.
Người dùng mới của Google Cloud đủ điều kiện dùng thử 300 đô la dùng thử miễn phí.
Cloud Shell
Mặc dù Google Cloud có thể hoạt động từ xa máy tính xách tay của bạn, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Cloud Shell, một môi trường dòng lệnh chạy trong Google Cloud.
Kích hoạt Cloud Shell
- Từ Cloud Console, hãy nhấp vào Kích hoạt Cloud Shell
.
Nếu bạn chưa từng khởi động Cloud Shell trước đây, thì bạn sẽ được trình bày với một màn hình trung gian (dưới màn hình đầu tiên) mô tả đó là gì. Nếu trường hợp đó xảy ra, hãy nhấp vào Tiếp tục (và bạn sẽ không bao giờ nhìn thấy lại). Đây là giao diện của màn hình một lần:
Chỉ mất vài phút để cấp phép và kết nối với Cloud Shell.
Máy ảo này được tải bằng tất cả các công cụ phát triển mà bạn cần. cung cấp một thư mục gốc 5GB cố định và chạy trong Google Cloud, qua đó nâng cao đáng kể hiệu suất và khả năng xác thực mạng. Phần lớn, nếu không phải là tất cả công việc của bạn trong lớp học lập trình này, thì bạn chỉ cần thực hiện một trình duyệt hoặc Chromebook của mình.
Sau khi kết nối với Cloud Shell, bạn sẽ thấy rằng bạn đã được xác thực và dự án đã được đặt thành mã dự án của bạn.
- Chạy lệnh sau trong Cloud Shell để xác nhận rằng bạn đã được xác thực:
gcloud auth list
Đầu ra lệnh
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
gcloud config list project
Đầu ra lệnh
[core] project = <PROJECT_ID>
Nếu chưa, bạn có thể đặt lệnh đó bằng lệnh sau:
gcloud config set project <PROJECT_ID>
Đầu ra lệnh
Updated property [core/project].
3. Khởi chạy ứng dụng Spring Boot
- Tạo ứng dụng Spring Boot mới bằng Spring Initializr.
$ curl https://start.spring.io/starter.tgz \ -d language=kotlin \ -d dependencies=web \ -d baseDir=kotlin-jib-cloud-run | tar -xzvf -
Xin lưu ý rằng Initializr sẽ tự động thêm spring-boot-starter-web
vào các phần phụ thuộc của bạn trong pom.xml
của ứng dụng mẫu.
- Thay đổi đối với thư mục của ứng dụng mẫu.
$ cd kotlin-jib-cloud-run
- Tạo và chạy ứng dụng bằng Maven.
$ ./mvnw -DskipTests spring-boot:run
- Sau khi khởi động, ứng dụng sẽ bắt đầu nghe trên cổng 8080. Nhấp vào Xem trước trên web
trong thanh công cụ Cloud Shell rồi chọn Xem trước trên cổng 8080 để truy cập vào ứng dụng.
- Bạn sẽ nhận được phản hồi 404 vì ứng dụng chưa làm gì hữu ích. Dừng ứng dụng bằng
Control+C
.
4. Thêm bộ điều khiển web
- Tạo lớp
Controller
sau trong gói minh họa:
$ 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 (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!"
}
}
- Thiết kế lại và chạy ứng dụng.
$ ./mvnw spring-boot:run
- Kiểm tra lại ứng dụng này bằng tính năng Xem trước trên web
. Lần này, bạn sẽ thấy thông báo &&tt;
Kotlin app on Cloud Run, containerized by Jib!
". Dừng ứng dụng bằngControl+C
.
5. Vùng chứa ứng dụng của bạn và xuất bản lên Đăng ký vùng chứa
Với Jib, bạn có thể vùng chứa ứng dụng của mình theo cách được tối ưu hóa mà không cần Docker và phát hành lên bất kỳ sổ đăng ký vùng chứa nào.
- Trước khi tiếp tục, bạn cần kích hoạt API Đăng ký vùng chứa. Bạn chỉ cần thực hiện việc này một lần cho mỗi dự án để API có thể truy cập được.
$ gcloud services enable containerregistry.googleapis.com
- Chạy Jib để tạo hình ảnh Docker và xuất bản lên Đăng ký vùng chứa.
$ ./mvnw com.google.cloud.tools:jib-maven-plugin:1.8.0:build \ -Dimage=gcr.io/$GOOGLE_CLOUD_PROJECT/kotlin-jib-cloud-run
Cuối cùng, bạn sẽ thấy thông báo sau cho biết ứng dụng này đã được vùng chứa và được đưa vào Sổ đăng ký vùng chứa của bạn.
[INFO] Built and pushed image as gcr.io/PROJECT_ID/kotlin-jib-cloud-run ... [INFO] BUILD SUCCESS
Nếu bạn thấy lỗi, hãy kiểm tra kỹ xem bạn đã đặt $GOOGLE_CLOUD_PROJECT
chính xác thành mã dự án Google Cloud hay chưa (PROJECT_ID
).
- Trước khi tiếp tục, hãy kiểm tra xem hình ảnh đã được xuất bản thành công hay chưa. Quay lại Cloud Console, nhấp vào Trình đơn điều hướng
rồi chọn Vùng đăng ký vùng chứa.
Bạn sẽ thấy hình ảnh của mình được xuất bản thành công.
6. Chạy ứng dụng đã vùng chứa trên Cloud Run
Cloud Run mang những vùng chứa không máy chủ đến các vùng chứa mà bạn tự động mở rộng.
- Nhấp lại vào Trình đơn điều hướng
rồi chọn Cloud Run.
Nếu đây là lần đầu tiên bạn truy cập vào Cloud Run, bạn sẽ thấy hộp thoại sau cho quá trình thiết lập một lần. Nhấp vào Bắt đầu sử dụng Cloud Run nếu thấy.
- Trên trang Cloud Run, hãy nhấp vào Create Service (Tạo dịch vụ).
- Trong màn hình tiếp theo, hãy nhấp vào Chọn trong mục Nguồn. Nguồn là hình ảnh bạn muốn chạy trên Cloud Run.
- Hộp thoại sẽ hiển thị hình ảnh bạn đã tạo trước đây. Chọn hình ảnh rồi nhấp vào Tiếp tục.
- Bạn chỉ cần thực hiện vài lần nhấp nữa là có thể triển khai ứng dụng này ngay bây giờ. Trong mục Nền tảng triển khai, hãy chọn Cloud Run (được quản lý hoàn toàn) để quản lý hoàn toàn dịch vụ này trên Google Cloud. Chọn một khu vực phù hợp với vị trí của bạn, chọn Cho phép lệnh gọi chưa được xác thực rồi nhấp vào Tạo. Vậy là xong!
Khi hình ảnh được triển khai đầy đủ, trang Cloud Run sẽ hiển thị một URL để truy cập vào ứng dụng. Hãy tham khảo nhé!
Cuối cùng, bạn sẽ thấy thông báo mà bạn mong đợi từ ứng dụng.
Kotlin app on Cloud Run, containerized by Jib!
Vậy là xong! Trong tương lai, nếu cần triển khai phiên bản ứng dụng mới, thì bạn có thể thực hiện bằng cách nhấp vào Triển khai bản sửa đổi mới trên trang.
7. Dọn dẹp
- Để dọn dẹp môi trường của bạn, bạn cần xóa ứng dụng đã triển khai trên Cloud Run và hình ảnh đã xuất bản trên Vùng đăng ký vùng chứa. Truy cập vào Cloud Run, chọn ứng dụng rồi nhấp vào Delete (Xóa).
- Tương tự, hãy truy cập trang Đăng ký vùng chứa và xóa hình ảnh.
8. Xin chúc mừng
Xin chúc mừng! Bạn đã tải thành công ứng dụng Spring Boot Kotlin và triển khai ứng dụng này trên Cloud Run!
Bằng cách dùng Jib, bạn đã xây dựng một hình ảnh vùng chứa được tối ưu hóa mà không cần cài đặt hoặc viết Dockerfile và xuất bản hình ảnh đó lên sổ đăng ký vùng chứa. Jib tối ưu hóa cấu trúc hình ảnh, nhờ đó, bất cứ ai không có kiến thức chuyên sâu về Docker đều có thể chứa các ứng dụng Java một cách nhanh chóng và hiệu quả. Sau đó, chỉ bằng vài thao tác nhấp, bạn đã triển khai ứng dụng lên Cloud Run để bắt đầu phân phát nhanh chóng.
Tìm hiểu thêm
- Triển khai ứng dụng Java vào Kubernetes trên Công cụ Kubernetes của Google
- Tài liệu Cloud Run
- Tổng quan về Cloud Run
- Giới thiệu Jib – xây dựng hình ảnh Java Docker tốt hơn
- Tạo vùng chứa nhanh hơn bằng Jib, một công cụ tạo hình ảnh của Google dành cho các ứng dụng Java
- Jib – tạo vùng chứa cho ứng dụng Java
- Kênh của JBL Gitter
- Danh sách gửi thư của người dùng Jat