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

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

Khái niệm về serverless không quá mới đối với nhiều người, nhưng để thực sự sử dụng nó và trải nghiệm những ưu và nhược điểm thực tế thì không nhiều. Sau khi nghiên cứu serverless một thời gian, tôi đã đúc kết một số kinh nghiệm cá nhân và cố gắng giải thích ngắn gọn để người mới có thể dễ dàng tham gia lĩnh vực này.

Serverless là gì?

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

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

Điều quan trọng và khác biệt nhất về serverless là bạn chỉ thanh toán khi và ở đâu bạn sử dụng nó . Giả sử bạn có một máy chủ ảo, nó thường được tính dưới dạng một gói bao gồm 1 tháng thời gian hoạt động 24/7, cpu và ram, băng thông và bộ nhớ. Ngay cả khi máy chủ ảo không chạy hoặc chỉ sử dụng 5 ~ 10% dung lượng, bạn vẫn sẽ bị tính phí hàng tháng và bạn vẫn bị tính toàn bộ chi phí. Tóm lại, serverless giống như một gói điện thoại tính phí theo thứ hai, gọi bao nhiêu tùy thích, trong khi các máy chủ ảo thường mất phí hàng tháng, cho dù bạn có phải sử dụng nó hay không.

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

Ưu điểm

Xây dựng các ứng dụng không máy chủ có nghĩa là bạn có thể tập trung vào sản phẩm cốt lõi mà không cần lo lắng về việc quản lý và chạy nhiều máy chủ hoặc thời gian chạy, cho dù trên đám mây hay xây dựng hệ thống máy chủ xây dựng của riêng bạn. Việc giảm khối lượng công việc tổng thể này sẽ cho phép các nhà phát triển tập trung thời gian và năng lượng của họ vào việc xây dựng các sản phẩm tuyệt vời có khả năng mở rộng và độ ổn định cao.

Không có máy chủ để quản lý: Bạn không cần phải định cấu hình hoặc duy trì bất kỳ máy chủ nào. Không cần phần mềm hoặc thời gian chạy để cài đặt, nâng cấp hoặc quản lý.

Chia tỷ lệ động: Ứng dụng của bạn sẽ có thể tự động mở rộng quy mô hoặc điều chỉnh dung lượng bằng cách chuyển đổi các đơn vị sử dụng (ví dụ: thông lượng, bộ nhớ) thay vì sử dụng một máy chủ độc lập, phức tạp hơn.

Tính khả dụng cao: Các ứng dụng không máy chủ có khả năng chịu lỗi cao và tính sẵn sàng được tích hợp. Bạn không cần phải xây dựng các chức năng này, vì dịch vụ chạy ứng dụng đã cung cấp nó cho ứng dụng theo mặc định. Ngoài ra, các trung tâm dữ liệu (đơn lẻ hoặc nhiều) có thể được lựa chọn để tạo điều kiện thuận lợi cho việc triển khai sản phẩm.

Tiết kiệm chi phí : Nếu bạn không có yêu cầu (hoặc không có lệnh gọi hàm), chi phí sau triển khai gần như bằng không và bạn có thể sử dụng bao nhiêu tùy thích.

Nhược điểm

Xem Thêm : Makeup Remover là gì? Tại sao Makeup Remover lại quan trọng với da?

Serverless là một ý tưởng hay, nhưng không hoàn hảo, serverless có những vấn đề riêng mà bạn phải cân nhắc trước khi quyết định sử dụng:

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

Gỡ lỗi: Việc theo dõi và gỡ lỗi máy tính không máy chủ cũng khá khó khăn. Việc bạn không sử dụng tài nguyên máy chủ đồng nhất khiến hoạt động của cả hai trở nên khó khăn. (Tin tốt là công cụ này sẽ dần cải thiện khả năng giám sát và xử lý gỡ lỗi trong môi trường không có máy chủ.)

Giới hạn Bộ nhớ và Thời gian: Tất cả các nhà cung cấp đều giới hạn tài nguyên ở một mức bộ nhớ và thời gian chờ cố định. Giả sử thời gian chờ tối đa là 5 phút, quá trình thực thi sẽ bị gián đoạn nếu thời gian chờ lâu hơn 5 phút. Về bộ nhớ, tùy theo nhà cung cấp sẽ thiết lập các mức khác nhau, AWS có bộ nhớ là 3008mb (sẽ cho CPU cao tương ứng), không thể đáp ứng được nếu ứng dụng cần bộ nhớ lớn. Về vấn đề bộ nhớ này cũng cần lưu ý khi lập trình nên tối ưu và tiết kiệm chi phí.

Phụ thuộc vào nhà cung cấp : Bạn có thể không muốn chạy phiên bản phần mềm, nền tảng chính xác như bạn muốn. Ví dụ nodejs bạn cần 10.x nhưng nhà cung cấp chỉ hỗ trợ tối đa 8.x thì bạn sẽ không thể sử dụng nền tảng này. Vì vậy, trước khi sử dụng nó, bạn cần xem xét các nền tảng được hỗ trợ.

Chi phí ẩn: Phụ thuộc vào nhà cung cấp, nhưng về cơ bản phải chịu chi phí lưu trữ mã nguồn, băng thông và chi phí lưu trữ dữ liệu (tùy thuộc vào chi phí) bất kể ứng dụng có sử dụng nó hay không, ví dụ: dynamicodb, rdms .. . sẽ được tính phí riêng). Mặc dù, không nhiều, nhưng nếu không được tối ưu hóa, chi phí ẩn sẽ cao hơn chi phí của serverless.

Thời gian học: Trước khi bạn phải học cách sử dụng và quản lý máy chủ, bây giờ bạn cũng cần thời gian để học cách quản lý tài nguyên trong serverless, mặc dù không khó bằng như quản lý máy chủ, nhưng không thể bỏ qua. Ví dụ: bạn sẽ cần một chút thời gian để hiểu cách sử dụng thông tin đám mây, chính sách iam, các giai đoạn quản lý, khu vực, cấu hình bộ nhớ chức năng …

Khi nào sử dụng serverless

Có nhiều trường hợp mà các ứng dụng không máy chủ có thể được sử dụng. Điểm chung là tất cả các ứng dụng không liên quan đến điểm yếu của không máy chủ 😀

Trang web và API: Trang web hoặc API có thể được tạo và các trang web có thể động hoặc nửa tĩnh (nửa tĩnh có nghĩa là nguồn gốc tệp là tĩnh, nhưng sử dụng định tuyến động). Thông thường mọi người xây dựng restful api với serverless, nhưng tôi thích áp dụng nó cho graphql hơn vì restful có thể trả lại dữ liệu không sử dụng nhưng tôi phải trả tiền cho băng thông 😀 (xem thêm graphql là gì).

Xem Thêm : Nhị hợp là gì, Lục hợp là gì & Những điều cần biết về nhị hợp, lục hợp

Xử lý đa phương tiện : Các thao tác xử lý hình ảnh và video ít đòi hỏi hơn, chẳng hạn như cắt, nén, thay đổi kích thước hình ảnh, tạo hình thu nhỏ hoặc đặt chuyển mã video để khớp với thiết bị thích hợp.

Bộ xử lý sự kiện: Có thể hoạt động như bộ ngắt mạch, thực hiện nhiều tác vụ khác khi được kích hoạt bởi sự kiện.

Xử lý dữ liệu: Tùy thuộc vào ngữ cảnh, nó có thể được áp dụng như chatbots, IoT, v.v. Lý do serverless phù hợp với mảng này là vì với chatbots hoặc IoT, chúng ta không biết khi nào dữ liệu sẽ đến và khi nào nó cần được xử lý, vì vậy chúng ta không cần phải xây dựng các máy chủ luôn chạy và lãng phí thời gian chờ đợi.

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

Có nhiều nhà cung cấp dịch vụ có thể dễ dàng tạo các chức năng bằng mô hình không máy chủ:

  • aws lambda : Khi nói đến việc cung cấp cơ sở hạ tầng đám mây ngày nay, aws vẫn dẫn đầu thị trường và họ cũng cung cấp các chuyển đổi lambda để người dùng sử dụng và tạo các chức năng trên mô hình không máy chủ. Khi kết hợp với các dịch vụ khác như api gateway, s3, .., có thể tạo ra một máy chủ hoặc hệ thống api tự động xử lý việc tải tệp lên s3. aws lambda hỗ trợ node.js, java, c #, python và các ngôn ngữ khác …
  • Chức năng của Google Cloud : Anh chàng này chỉ hỗ trợ nodejs
  • azure function : Sản phẩm của Microsoft, hỗ trợ c #, javascript, f #, python, batch, php, powershell
  • Có nhiều nhà cung cấp khác như kubeless, fn, v.v. Tuy nhiên, 3 công ty trên có khả năng chiếm thị phần lớn nhất và được quan tâm nhiều hơn. Sau đây là bảng so sánh chi tiết một số thông số của aws lambda, google cloud function và azure function

    Xây dựng hệ thống để trở thành nhà cung cấp không máy chủ

    Do những ưu điểm vượt trội của serverless, hiện nay có một số mã nguồn mở được tích hợp vào nền tảng cung cấp serverless

    openfaas – làm cho các chức năng không có máy chủ trở nên dễ dàng

    firecracker – microvm an toàn và nhanh chóng cho máy tính không máy chủ

    Tôi chỉ muốn sử dụng nó, vì vậy tôi không thể tìm thấy nó ở bất kỳ đâu.

    Mẹo trang web ngăn xếp đầy đủ

    Tham khảo:

    Nhận xét

Nguồn: https://anhvufood.vn
Danh mục: Kinh Nghiệm

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *