Serverless là gì? Hãy sẵn sàng với serverless!

Chúng tôi rất vui mừng được chia sẻ kiến thức sâu sắc về từ khóa Serverless la gi để tối ưu hóa nội dung trang web và tiếp thị trực tuyến. Bài viết cung cấp phương pháp tìm kiếm, phân tích từ khóa và chiến lược hiệu quả. Cảm ơn sự quan tâm và hãy tiếp tục theo dõi để cập nhật kiến thức mới.

Khái niệm về serverless là gì thì cũng không còn mới mẻ lắm cho nhiều người, tuy nhiên để thực sự sử dụng, trải nghiệm ưu thiếu sót thực tế thì cũng không phải nhiều lắm. Sau một thời kì nghiên cứu về serverless, mình tổng kết một vài kinh nghiệm member, nỗ lực cố gắng giảng giải đơn giản để người mới dễ dàng tiếp cận nghành này.

Bạn Đang Xem: Serverless là gì? Hãy sẵn sàng với serverless!

Serverless là gì?

Serverless là môi trường xung quanh, nền tảng thực thi ứng dụng và dịch vụ mà không phải quan tâm đến sever. Ứng dụng serverless không cần thiết phải quan tâm việc phân bổ, quản lý tài nguyên của hệ điều hành, và bỏ qua các vấn đề về nâng cấp và bảo mật thông tin. Với khái niệm là chỉ có tập trung phát triển sản phẩm, việc còn sót lại về vận hành sẽ để nền tảng này đảm nhiệm.

Điều quan trọng và khác biệt nhất trong serverless là bạn chỉ trả tiền khi và chỉ những phần bạn sử dụng. Giả sử bạn có một sever ảo, thì thường sẽ tiến hành tính tiền trọn gói gồm có thời kì chạy 24/7 trong một tháng, CPU và RAM, băng thông, lưu trữ. Bạn vẫn sẽ phải trả tiền hàng tháng đều đặn cho dù chiếc máy chủ ảo đó không chạy, hoặc chỉ sử dụng 5~10% công suất thì bạn vẫn phải trả trọn gói. Hiểu một cách nôm na, thì serverless như gói cước điện thoại cảm ứng thông minh được tính theo block giây, gọi bao nhiêu tính tiền bấy nhiêu, còn sever ảo thường thì phải trả tiền thuê bao hàng tháng dù có phải sử dụng hay là không.

Ưu và nhược điểm của serverless

Ưu điểm

Xây dụng ứng dụng serverless đồng nghĩa với việc bạn chỉ tập trung vào sản phẩm cốt lõi thay vì phải lo lắng về việc quản lý và vận hành nhiều sever hoặc thời kì chạy, dù trên nền tảng đám mây hay tự xây dựng khối hệ thống sever. Sự cắt giảm sức lực tổng thể này sẽ giúp cho những nhà phát triển dành thời kì và năng lượng để tập trung vào việc xây dựng các sản phẩm tuyệt vời có quy mô linh hoạt và ổn định cao.

Không cần quản lý sever: Các bạn sẽ không cần cung cấp hay duy trì bất kỳ sever nào. Sẽ không còn cần phần mềm hoặc thời kì chạy để tùy chỉnh, nâng cấp hoặc quản trị.

Thay đổi quy mô một cách linh hoạt: Ứng dụng của các bạn sẽ có khả năng thay đổi quy mô tự động hóa hoặc bằng phương pháp kiểm soát và điều chỉnh dung tích thông qua việc chuyển đổi đơn vị sử dụng (ví dụ: thông lượng, bộ nhớ) thay vì với sever độc lập thì sẽ phức tạp hơn.

Độ sẵn sàng cao: Ứng dụng serverless có độ sẵn sàng tích hợp và dung sai cao. Các bạn sẽ không cần tạo kiến trúc cho những khả năng này do các dịch vụ chạy ứng dụng đã cung cấp cho ứng dụng theo mặc định. Ngoài ra, có để chọn trung tâm tài liệu (một hoặc nhiều nơi) để triển khai sản phẩm một cách dễ dàng.

Tiết kiệm ngân sách và chi phí ngân sách: ngân sách gần như bằng 0 sau khoản thời gian triển khai nếu như bạn không có request nào (hoặc không có hành động gọi hàm), còn sử dụng bao nhiêu thì tính tiền bấy nhiêu.

Thiếu sót

Serverless là một ý tưởng tuyệt vời nhưng không hoàn hảo, serverless có những vấn đề riêng mà bạn cũng phải suy nghĩ trước lúc quyết định sử dụng:

Xem Thêm : Phân tích về game reload là gì

Độ trễ: Hiệu suất có thể là một vấn đề, chính bản thân mình mô hình này còn có thể gây ra độ trễ to nhiều hơn trong quá trình các nguồn tài nguyên điện toán phản ứng lại với lệnh của tương đối nhiều ứng dụng. Nếu khách hàng yêu cầu hiệu suất cao thì việc sử dụng các sever ảo được phân bổ sẽ là một lựa chọn ưu việt hơn.

Gỡ lỗi (Debug): Công việc giám sát và gỡ lỗi của serverless computing cũng rất khó khăn. Việc bạn không sử dụng một nguồn tài nguyên sever thống nhất làm cho tất cả hai hoạt động này gặp nhiều trở ngại. (Tin tốt là phương tiện này sẽ dần dần được để cải thiện xử lý giám sát và gỡ lỗi tốt hơn trong môi trường xung quanh không sever.)

Giới hạn về bộ nhớ, thời kì: các nhà cung cấp đều giới hạn tài nguyên ở các mức nhất thiết về bộ nhớ và thời kì thực thi (timeout). Giả sử timeout tối đa là 5 phút, nếu như bạn chạy quá 5 phút, quá trình thực thi sẽ bị ngắt. Về bộ nhớ, thì sẽ thiết lập mỗi mức khác nhau tuỳ nhà cung cấp, AWS có memory là 3008MB (sẽ tiến hành cấp CPU cao tương ứng), nếu ứng dụng yêu cầu bộ nhớ lớn thì sẽ không còn đáp ứng được. Liên quan đến vấn đề bộ nhớ này, thì cũng cần phải phải lưu tâm lúc lập trình nên tối ưu tốt, để tiết kiệm chi phí ngân sách.

Phụ thuộc nhà cung cấp: bạn không thể muốn chạy phiên bản của phần mềm, nền tảng xác thực như bạn muốn. Ví dụ Nodejs bạn phải 10.x nhưng nhà cung cấp chỉ tương trợ đến 8.x, thì các bạn sẽ không sử dụng được nền tảng này. Như vậy, trước lúc sử dụng, bạn phải cân nhắc các nền tảng được tương trợ.

túi tiền ngầm: tuỳ nhà cung cấp có tính hay là không, nhưng cơ bản là sẽ phát sinh ngân sách lưu trữ mã nguồn, băng thông, và ngân sách về lưu trữ tài liệu (tuỳ ứng dụng có sử dụng hay là không, ví dụ DynamoDB, RDMS … thì sẽ tiến hành tính riêng). Mặc dù, tuy không nhiều nhưng nếu không tối ưu, các phần ngân sách ngầm sẽ còn cao hơn nữa cả ngân sách cho serverless.

Thời kì để nghiên cứu: trước kia bạn phải học cách sử dụng, quản lý sever thì giờ đây bạn cũng cần phải thời kì để học để quản lý các tài nguyên trong serverless, mặc dù ko phải quá khó như quản lý sever, nhưng không thể không tính. Ví dụ các bạn sẽ mất thời kì để hiểu về kiểu cách sử dụng CloudFormation, IAM policies, quản lý cấu hình về stage, region, memory của Functions…

Khi nào nên sử dụng serverless

Có rất nhiều trường hợp có thể ứng dụng được serverless, điểm chung là tất cả những ứng dụng không dính dáng tới điểm yếu của serverless 😀

Websites và APIs: hoàn toàn có thể xây dựng 1 website hoặc API, website có thể là động hoặc là bán tĩnh (bán tĩnh tức thị nguồn gốc file là tĩnh, nhưng dùng route động). Thường thì người ta hay xây dựng Restful API với serverless, nhưng mình thích ứng dụng cho Graphql hơn, vì Restful có thể trả về tài liệu không dùng tới nhưng mình phải trả tiền băng thông 😀 (Xem thêm Graphql là gì).

Xử lý đa phương tiện: các thao tác xử lý hình ảnh, video với yêu cầu không thật cao như cắt, nén, định dạng kích thước ảnh, tạo ảnh thumbnail, hoặc chuyển đổi bộ mã của video để phù phù hợp với thiết bị tương ứng.

Xử lý sự kiện: có thể đóng vai trò như một công tắc nguồn cầu giao để thực hiện một loạt các hành động khác khi được kích hoạt tuỳ theo sự kiện.

Xử lý tài liệu: tuỳ theo văn cảnh mà có thể ứng dụng như chatbot, IoT,… lý do mà serverless thích phù hợp với mảng này vì với chatbot hay IoT tất cả chúng ta không biết khi nào tài liệu sẽ tới, khi nào sẽ cần xử lý tài liệu nên tất cả chúng ta không cần thiết phải xây dựng sever xoành xoạch chạy và lãng phí ở thời kì chờ.

So sánh một số nhà cung cấp hàng đầu

Xem Thêm : Đối tượng lao động được phân thành mấy loại?

Hiện nay có rất nhiều nhà cung cấp dịch vụ khiến cho bạn tạo ra các functions sử dụng mô hình serverless một cách khá dễ dàng:

  • AWS Lambda: nói về Thị Trường cung cấp hạ tầng cloud hiện nay thì AWS vấn đang đứng vị trí số 1 và họ cũng đưa ra dịch Lambda để người dùng có thể sử dụng và tạo ra các functions trên mô hình serverless. Khi kết phù hợp với các dịch vụ khác ví như API Gateway, S3,.. thì có thể tạo được một API server hay một khối hệ thống tự động hóa xử lí khi có file upload lên S3. AWS Lambda tương trợ khá nhiều tiếng nói như Node.js, Java, C#, Python,…
  • Google Cloud Function: thằng này chỉ tương trợ Nodejs
  • Azure Functions: hàng của Microsoft, tương trợ C#, JavaScript, F#, Python, Batch, PHP, PowerShell

Còn nhiều nhà cung cấp khác ví như Kubeless, Fn,… tuy nhiên 3 ông ở trên có nhẽ có Thị Trường lớn số 1 và được quan tâm hơn. Ở dưới là cụ thể chi tiết so sánh 1 số thông số giữa AWS Lambda, Google Cloud Function và Azure Function

Xây dựng khối hệ thống để trở thành nhà cung cấp serverless

Vì sự nổi trội về ưu điểm của serverless, nên hiện nay đã và đang có một số mã nguồn mở để xây dựng thành nền tảng cung cấp serverless

OpenFaaS – Serverless Functions Made Simple

https://github.com/openfaas/faas

FireCracker – Secure and fast microVMs for serverless computing

https://github.com/firecracker-microvm/firecracker

Mình thì chỉ quan tâm tới việc xài thôi, nên không tìm hiểu được ở mảng này.

Fullstack Station Tips

Tham khảo:

https://serverless.com/learn/use-cases/

https://www.alibabacloud.com/blog/4-use-cases-of-serverless-architecture_593862

https://epsagon.com/the-best-5-use-cases-for-the-serverless-beginner/

Comments

You May Also Like

About the Author: v1000