Các ứng dụng App Engine rất dễ tạo, dễ duy trì và dễ mở rộng khi nhu cầu về lưu lượng truy cập và lưu trữ dữ liệu của bạn thay đổi. Với App Engine, bạn không cần phải bảo trì máy chủ. Bạn chỉ cần tải ứng dụng lên là có thể sử dụng ngay.
Các ứng dụng App Engine tự động mở rộng quy mô dựa trên lưu lượng truy cập đến. Cân bằng tải, vi dịch vụ, uỷ quyền, cơ sở dữ liệu SQL và NoSQL, lưu vào bộ nhớ đệm, phân chia lưu lượng truy cập, ghi nhật ký, tìm kiếm, kiểm soát phiên bản, triển khai và khôi phục, cũng như quét bảo mật đều được hỗ trợ nguyên bản và có khả năng tuỳ chỉnh cao.
Môi trường tiêu chuẩn của App Engine và môi trường linh hoạt của App Engine hỗ trợ nhiều ngôn ngữ lập trình, bao gồm Java, Python, PHP, NodeJS và Go. Hai môi trường này mang đến cho nhà phát triển sự linh hoạt tối đa về cách ứng dụng của họ hoạt động. Mỗi môi trường đều có những điểm mạnh nhất định. Để biết thêm thông tin, hãy xem bài viết Chọn một môi trường App Engine.
Bạn sẽ tìm hiểu cách triển khai một ứng dụng Spring Boot vào môi trường tiêu chuẩn của App Engine. Môi trường tiêu chuẩn sẽ giảm xuống 0 phiên bản khi không có ai sử dụng và tự động tăng lên!
Điều kiện tiên quyết
- Làm quen với ngôn ngữ lập trình và các công cụ Java
- Kiến thức về các trình chỉnh sửa văn bản tiêu chuẩn của Linux, chẳng hạn như Vim, Emacs và nano
Bạn sẽ thực hiện
- Cách tạo ứng dụng Java Spring Boot trên App Engine
Bạn cần có
- Một dự án trên Google Cloud
- Một trình duyệt, chẳng hạn như Google Chrome
Thiết lập môi trường theo tốc độ của riêng bạn
- Đă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, bạn phải tạo một tài khoản.)
Hãy nhớ mã dự án, một tên duy nhất trong tất cả các dự án trên Google Cloud (tên ở trên đã được sử dụng và sẽ không hoạt động đối với bạn, xin lỗi!). Sau này trong lớp học lập trình này, chúng ta sẽ gọi nó là PROJECT_ID
.
- Tiếp theo, bạn cần bật tính năng thanh toán trong Cloud Console để sử dụng các tài nguyên trên Google Cloud.
Việc thực hiện lớp học lập trình này sẽ không tốn của bạn quá vài đô la, nhưng có thể tốn nhiều 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 gói dùng thử miễn phí trị giá 300 USD.
Cloud Shell
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
- Trong Cloud Console, hãy nhấp vào Kích hoạt Cloud Shell
.
Nếu chưa từng khởi động Cloud Shell, bạn sẽ thấy một màn hình trung gian (bên dưới phần hiển thị đầu tiên) mô tả về Cloud Shell. Nếu vậy, hãy nhấp vào Tiếp tục (và bạn sẽ không bao giờ thấy màn hình này nữa). Sau đây là giao diện của màn hình xuất hiện một lần:
Quá trình cấp phép và kết nối với Cloud Shell chỉ mất vài giây.
Máy ảo này được trang bị tất cả các công cụ phát triển mà bạn cần. Nền tảng này cung cấp một thư mục chính có dung lượng 5 GB và chạy trên Google Cloud, giúp tăng cường đáng kể hiệu suất mạng và hoạt động xác thực. Bạn có thể thực hiện hầu hết, nếu không muốn nói là tất cả, công việc trong lớp học lập trình này chỉ bằng một trình duyệt hoặc Chromebook.
Sau khi kết nối với Cloud Shell, bạn sẽ thấy rằng mình đã đượ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 của 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 của lệnh
[core] project = <PROJECT_ID>
Nếu không, bạn có thể đặt nó bằng lệnh sau:
gcloud config set project <PROJECT_ID>
Đầu ra của lệnh
Updated property [core/project].
Sau khi Cloud Shell khởi chạy, bạn có thể dùng dòng lệnh để tạo một ứng dụng Spring Boot mới bằng Spring Initializr.
$ curl https://start.spring.io/starter.tgz \ -d bootVersion=2.1.8.RELEASE \ -d dependencies=web \ -d baseDir=gae-standard-example | tar -xzvf - $ cd gae-standard-example
Có 2 cách để triển khai ứng dụng máy chủ Java: sử dụng Trình bổ trợ App Engine của Maven hoặc Trình bổ trợ App Engine của Gradle, hoặc triển khai thư mục gói war
. Bạn sẽ dùng Maven App Engine Plugin để triển khai ứng dụng.
Thêm Maven App Engine Plugin
Cập nhật pom.xml
để thêm một trình bổ trợ Google Cloud giúp đơn giản hoá quy trình triển khai. Bạn có thể dùng Vim, nano hoặc Emacs để chỉnh sửa tệp này.
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" ...>
...
<build>
<plugins>
...
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.1.0</version>
<configuration>
<version>1</version>
<projectId>GCLOUD_CONFIG</projectId>
</configuration>
</plugin>
...
</plugins>
</build>
</project>
- Để triển khai ứng dụng vào môi trường tiêu chuẩn của App Engine, bạn phải tạo một tệp mô tả
src/main/appengine/app.yaml
mới.
$ mkdir -p src/main/appengine/ $ touch src/main/appengine/app.yaml
- Chỉnh sửa tệp
src/main/appengine/app.yaml
rồi thêm nội dung sau:
src/main/appengine/app.yaml
runtime: java11
instance_class: F4
Thêm một bộ điều khiển mới trả về "hello world!"
trong DemoApplication.java
.
src/main/java/com/example/demo/DemoApplication.java
package com.example.demo;
...
// Add imports
import org.springframework.web.bind.annotation.*;
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/")
public String hello() {
return "hello world!";
}
}
- Bạn có thể khởi động ứng dụng Spring Boot bằng trình bổ trợ Spring Boot:
$ ./mvnw -DskipTests spring-boot:run
- Sau khi ứng dụng khởi động, hãy nhấp vào Web Preview
(Xem trước trên web) trong thanh công cụ Cloud Shell rồi chọn Preview on port 8080 (Xem trước trên cổng 8080).
Một thẻ trong trình duyệt sẽ mở ra và kết nối với máy chủ mà bạn đã khởi động.
- Trước tiên, hãy khởi động dự án để có thể chạy các ứng dụng App Engine. Ngoài ra, hãy khởi động dự án để chạy ở khu vực miền Trung của Hoa Kỳ.
$ gcloud app create --region us-central You are creating an app for project [...]. WARNING: Creating an App Engine application for a project is irreversible and the region cannot be changed. More information about regions is at https://cloud.google.com/appengine/docs/locations
- Sau đó, hãy triển khai ứng dụng của bạn vào môi trường tiêu chuẩn của App Engine bằng cách chạy
mvn appengine:deploy
.
$ ./mvnw -DskipTests package appengine:deploy ... first time deploy may take a couple of minutes
- Sau khi triển khai ứng dụng, bạn có thể truy cập vào ứng dụng bằng cách mở http://<project-id>.appspot.com trong trình duyệt web hoặc dùng lệnh sau trong Cloud Shell:
$ gcloud app browse ... [It may print out the URL for your app]
Bạn đã học được cách viết ứng dụng web đầu tiên bằng App Engine!