Thuật ngữ “serverless” xuất hiện trong hầu hết các cuộc trò chuyện về “cloud”, “serverless” là cách nói ngắn gọn về sự phát triển của điện toán đám mây, đang ngày càng hoàn chỉnh với nhiều lợi ích về năng suất, hiệu quả và tính đơn giản. Sự ra đời của các nền tảng “Functions as a Service” hiện đại như AWS Lambda và Google Cloud Functions báo trước một cách tiếp cận mới với các ứng dụng dựa trên nền tảng đám mây: dần dần chuyển từ các ứng dụng nguyên khối, di chuyển chậm sang các ứng dụng phân tán, hướng sự kiện và không máy chủ, có các chức năng đơn giản và phục vụ một mục đích duy nhất, đồng thời không cần quản lý cơ sở hạ tầng.
Với các nền tảng Serverles, lập trình viên không cần phải trả tiền cho cơ sở hạ tầng vật lý. Vì vậy ngày càng nhiều lập trình viên lựa chọn serverless để xử lý các workload truyền thống. Từ các tác vụ cơ bản như ETL cho đến các ứng dụng web, Serverless đều hỗ trợ lập trình viên tăng năng suất và time-to-value.
Workload truyền thống không còn phù hợp với các giả định của hầu hết nền tảng Serverless và việc viết lại các ứng dụng thành một loạt các chức năng hướng sự kiện không còn quá hấp dẫn. Những gì các lập trình viên cần là một nền tảng có thể cung cấp tất cả các lợi ích cốt lõi của serverless mà không phải viết lại ứng dụng.
Với việc giới thiệu Cloud Run vào năm 2019, Google Cloud muốn thay đổi suy nghĩ của thị trường và khách hàng về Serverless. Google đã tạo ra một nền tảng không có máy chủ, nhưng có khả năng chạy một nhóm ứng dụng rộng hơn nhiều so với các nền tảng không máy chủ trước đó. Cloud Run thực hiện điều này bằng cách sử dụng vùng chứa làm primitive cơ bản. Và trong hai năm kể từ khi ra mắt, nhóm đã phát hành 80 bản cập nhật riêng biệt cho nền tảng này, trung bình cứ 10 ngày cập nhật một lần. Tương tự, khách hàng ngày càng sử dụng nền tảng Serverless nhiều hơn: Số lần triển khai Cloud Run tăng gấp bốn lần từ tháng 9 năm 2020 đến tháng 9 năm 2021.
Thế hệ tiếp theo của nền tảng Serverless sẽ cần duy trì các đặc điểm cốt lõi, có giá trị cao của thế hệ đầu tiên như:
-
Tự động điều chỉnh nhanh chóng auto – scaling and to zero
-
Tùy chọn mô hình thanh toán cho mỗi lần sử dụng
-
Ít gặp rào cản khi gia nhập nhờ tính đơn giản
Sắp tới, các nền tảng Serverless sẽ cần nhiều tính năng mạnh mẽ hơn để phục vụ một loạt workload mới, khách hàng mới. Dưới đây là năm xu hướng hàng đầu trong nền tảng không máy chủ cho năm 2022 và tương lai theo đánh giá của Google.
Có thêm Legacy Workload
Giá trị của Serverless không giới hạn ở các ứng dụng mới và việc không phải viết lại toàn bộ các ứng dụng. Lập trình viên có thể tận dụng các lợi ích của Serverless cho nhiều workload hơn. Cloud Run có khả năng mở rộng nhiều workload cùng nhiều tính năng khác như:
-
Per-instance concurrency: Nhiều ứng dụng truyền thống chạy kém khi bị giới hạn trong một yêu cầu, điều này phổ biến trong các nền tảng FaaS. Cloud Run cho phép tối đa đồng thời 1.000 yêu cầu trên một phiên bản ứng dụng, giúp mang lại mức hiệu quả cao hơn nhiều.
-
Quy trình xử lý background: Các nền tảng serverless thế hệ hiện tại thường “đóng băng” một chức năng không được sử dụng. Điều này tạo ra một mô hình thanh toán đơn giản hóa (chỉ thanh toán khi sử dụng), nhưng có thể gây khó khăn khi chạy khối lượng công việc mong đợi để thực hiện công việc trong nền. Cloud Run hỗ trợ các CPU mới để điều khiển phân bổ, cho phép các quy trình nền này chạy như mong đợi.
-
Bất kỳ thời gian: Các ngôn ngữ hoặc runtime hiện đại thường thích hợp cho các ứng dụng mới, nhưng nhiều ứng dụng sẵn có không thể viết lại hoặc phụ thuộc vào ngôn ngữ mà nền tảng Serverless không hỗ trợ. Cloud Run hỗ trợ hình ảnh Docker tiêu chuẩn và có thể chạy bất kỳ thời gian chạy nào hoặc phiên bản thời gian chạy nào có thể chạy trong container.
Bảo mật và tính toàn vẹn của chuỗi cung ứng
Các vụ hacker tấn công hệ thống của SolarWinds, Mimecast / Microsoft Exchange và Codecov đã rình rập các lỗ hổng của chuỗi cung ứng phần mềm. Các tác nhân độc hại đang làm ảnh hưởng đến chuỗi cung ứng phần mềm – từ việc gửi mã xấu đến bỏ qua đường ống CI/CD.
Cloud Run tích hợp với Cloud Build, cung cấp khả năng tuân thủ SLSA Cấp 1 theo mặc định và xuất xứ của bản dựng có thể xác minh. Với nguồn gốc mã, người dùng có thể theo dõi một mã nhị phân cho mã nguồn để ngăn chặn việc giả mạo và chứng minh rằng đó đúng là mã đang chạy. Ngoài ra, tính năng Build Integrity tự động tạo chữ ký điện tử, sau đó có thể được xác thực trước khi triển khai bằng Binary Authorization.
Kiểm soát chi phí và thanh toán linh hoạt
Các workload có các mẫu lưu lượng thay đổi nhiều hoặc những workload có lưu lượng truy cập thấp, rất phù hợp với các đặc tính tự động mở rộng nhanh chóng và mở rộng quy mô về không của nền tảng serverless. Nhưng workload với mô hình ổn định hơn có thể bị tính phí đắt hơn khi chạy với các mô hình thanh toán chi tiết cho mỗi lần sử dụng. Ngoài ra, khả năng tự động mở rộng quy mô không bị giới hạn có thể gây khó khăn cho việc dự đoán chi phí chạy ứng dụng trong tương lai.
Cloud Run bao gồm nhiều tính năng giúp quản lý và giảm chi phí cho workload không có máy chủ. Các tổ chức có mức sử dụng ổn định, trạng thái ổn định và có thể dự đoán được mức sử dụng, có thể mua các hợp đồng cam kết sử dụng với mức giá chiết khấu sâu. Không cần thanh toán trả trước, và chiết khấu này có thể giúp giảm chi phí tới 17%.
Tính năng CPU always-on loại bỏ tất cả các khoản phí theo yêu cầu và tính phí thấp hơn 25% so với mô hình trả phí theo yêu cầu. Mô hình này thường được ưu tiên cho các ứng dụng có các mẫu lưu lượng dễ dự đoán hơn hoặc những ứng dụng yêu cầu xử lý background.
Đối với các ứng dụng yêu cầu tính sẵn sàng cao với việc triển khai toàn cầu, các nền tảng “cố định” truyền thống có thể cực kỳ tốn kém, với mỗi khu vực dự phòng cần phải mang dung lượng cho tất cả lưu lượng toàn cầu. Hoạt động theo quy mô scale-to-zero của Cloud Run, cùng với tính khả dụng ở tất cả các khu vực GCP, giúp ứng dụng này có thể được phân phối toàn cầu mà không cần phân bổ dung lượng cố định ở bất kỳ khu vực nào.
Trải nghiệm DevOps tích hợp
Một trong những việc cần làm để đơn giản hóa công việc và tăng năng suất cho các lập trình viên là giảm bớt rào cản khi gia nhập để họ có thể chỉ tập trung vào công việc của mình. Sự đơn giản này cần phát triển các hoạt động “day one” và cung cấp trải nghiệm DevOps tích hợp.
Cloud Run hỗ trợ và trải nghiệm DevOps end-to-end, từ mã nguồn đến công cụ hoạt động “day-two”:
Bắt đầu với container và sử dụng buildpacks để tạo hình ảnh container trực tiếp từ mã nguồn. Trên thực tế, người dùng không cần học Docker hoặc các container. Với một lệnh “gcloud run deploy” duy nhất, người dùng có thể xây dựng và triển khai mã của mình cho Cloud Run.
Các hướng dẫn tích hợp trong Cloud Shell Editor và Cloud Code giúp lập trình viên dễ dàng tăng tốc độ trên máy chủ. Không còn phải chuyển đổi giữa các tab, tài liệu, thiết bị đầu cuối và mã, người dùng có thể tạo ra các hướng dẫn của riêng mình, cho phép tổ chức chia sẻ các phương pháp hay nhất và tuyển dụng nhanh hơn.
Thử nghiệm và kiểm tra ý tưởng một cách nhanh chóng. Chỉ trong vài cú nhấp chuột, bạn có thể thực hiện triển khai và khôi phục dần dần, đồng thời thực hiện quản lý lưu lượng nâng cao trong Cloud Run.
Nhận quyền truy cập theo dõi phân tán mà không cần thiết lập hoặc cấu hình, cho phép tìm ra các điểm nghẽn về hiệu suất trong quá trình sản xuất trong vài phút.
Tính di động
Đoạn mã được viết ra và các ứng dụng đang chạy không nên được ràng buộc với một nhà cung cấp. Các lợi ích của nền tảng sẽ được áp dụng cho ứng dụng, mà không cần phải thay đổi ứng dụng của mình theo những cách không cần thiết.
Cloud Run chạy các hình ảnh Docker container tiêu chuẩn. Khi triển khai mã nguồn trực tiếp lên Cloud Run, Google sử dụng các gói xây dựng mã nguồn mở để biến mã nguồn của người dùng thành một container. Mã nguồn, buildpack và container của người dùng luôn có thể được chạy cục bộ, tại chỗ hoặc trên bất kỳ đám mây nào khác.
Tạm kết
Năm xu hướng này là những điểm các lập trình viên cần xem xét khi so sánh các giải pháp không máy chủ khác nhau trên thị trường trong tương lai. Giải pháp không máy chủ tốt sẽ cho phép chạy nhiều ứng dụng mà không có giới hạn về ngôn ngữ, mạng hoặc khu vực. Nó cũng sẽ cung cấp nhiều hợp đồng thuê an toàn, với một chuỗi cung ứng phần mềm an toàn được tích hợp. Và người lập trình sẽ muốn xem xét cách mà nền tảng giúp kiểm soát chi phí, cung cấp trải nghiệm DevOps tích hợp và đảm bảo tính linh hoạt.