Chuyển đổi số diễn ra khiến Serverless trở nên quen thuộc với các tín đồ công nghệ và nhiều doanh nghiệp. Tuy nhiên nhiều người vẫn chưa thực sự hiểu rõ về khái niệm này, các tiện ích mà nó mang lại cũng như phương pháp mà tổ chức hay cá nhân có thể áp dụng hay tiếp cận công cụ này. Bài viết dưới đây sẽ mang đến cho bạn những thông tin cụ thể về khái niệm Serverless. 

Phương pháp triển khai và vận hành ứng dụng trước đây như thế nào?

Để hiểu về Serverless, chúng ta cùng nhìn lại về lịch sử của phương pháp triển khai và vận hành một ứng dụng.

Trước đây, các ứng dụng được triển khai trực tiếp lên hệ điều hành của máy chủ. Việc này dẫn đến tình trạng tiêu tốn nhiều tài nguyên để vận hành, hay đầu tư các thiết bị đắt tiền để đảm bảo tính sẵn sàng và bảo mật cho ứng dụng đó. 

Sau đó, hệ thống ảo hoá ra đời như VMware, KVM, Xen, HyperV,… đã giải quyết những hạn chế  của mô hình vật lý mang lại. Hệ thống này vận hành bằng cách phân tách một máy vật lý thành nhiều máy ảo, từ đó tận dụng được nhiều tài nguyên, đồng thời chúng còn có tính năng mở rộng linh hoạt, sao lưu, khôi phục,… giúp tối ưu cho quá trình triển khai.

Serverless - Hệ thống ảo hoá VMware, KVM, Xen, HyperV

Hệ thống ảo hoá VMware, KVM, Xen, HyperV

Mặc dù tối ưu là thế nhưng công cụ này khi được triển khai tên VM vẫn được đánh giá là khá cồng kềnh. Vì thế container ra đời giúp cho việc đóng gói nhanh chóng ứng dụng trong một container image trở nên đơn giản hơn. Quá trình triển khai container cũng rất nhanh chóng đi kèm khả năng tương thích với hầu hết hệ điều hành. 

Tuy nhiên, trong quá trình sử dụng container, các nhà phát triển vẫn còn vướng phải một số ạn chế cũng như điểm tiếp cận với người dùng. Cụ thể như: 

  • Việc vận hành để quản trị: cần có các kỹ năng như network, system, develop, logging, monitoring,…
  • Yêu cầu tính bảo mật cao
  • Người mới cảm thấy phức tạp, khó sử dụng
  • Vendor cung cấp dịch vụ khi triển khai cần uy tín hoặc phải thực hiện tự triển khai.
  • Còn vướng một số vấn đề về giải pháp lưu trữ dài hạn cho container.

Serverless – Xu thế tất yếu của điện toán đám mây

Serverless hiểu một cách đơn giản là không cần máy chủ mà server vẫn có thể hoạt động. Trên thực tế, máy chủ đã được nhà cung cấp dịch vụ quản lý (cloud provider). Chúng bao gồm hạ tầng, DC, network, storage, security, platform, auto-scale.

Serverless

Serverless

Người dùng khi sử dụng chỉ cần đưa code lên để chạy, và trả tiền cho những tài nguyên được tiêu thụ trong thời gian xử lý request. Có thể thấy, công cụ này giúp người dùng tiết kiệm rất nhiều so với khi sử dụng mô hình cloud VM hoặc dịch vụ Kubernetes bởi các công cụ này cần trả chi phí hàng tháng mới có thể sử dụng.

Serverless trong mô hình điện toán đám mây được xếp vào lớp Function as a service (FaaS), trong khi ở một số tài liệu thì chúng được xếp vào lớp Platform as a service (PaaS). 

Trên thị trường serverless hiện nay có thể kể đến những cái tên quen thuộc như: AWS Lamda, Azure Functions, Google Cloud Functions,… Với phân khúc mã nguồn mở của serverless, KNative, OpenFaaS, Apache OpenWhisk, Kubeless hay Fission được coi là những nền tảng có cộng đồng lớn. 

Một số ưu điểm của serverless có thể kể đến như:

  • Được quản trị hoàn toàn: Người dùng của serverless không cần phải bận tâm về hạ tầng bởi chúng được nhà cung cấp quản lý tất cả từ hạ tầng, hệ điều hành, middleware, runtime của ngôn ngữ lập trình cho đến các module liên quan.
  • Không giới hạn việc mở rộng (scale-out): người dùng có thể mở rộng ứng dụng hoặc giảm về không tùy theo lượng tải tăng lên hoặc giảm xuống. 
  • Luôn sẵn sàng: hệ thống serverless được cung cấp trên nền tảng hạ của cả mức IaaS và PaaS, vì thế chúng được tích hợp luôn khả năng này. 
  • Less-Ops: Một số thao tác vận hành như database, debugging, testing,… vẫn có ở serverless. Hơn thế, serverless còn sử dụng một số dịch vụ đi kèm của cloud như Database Engine, Message Queue Engine, Monitor/Alert, Vault Engine,… giúp các thao tác vận hành được giảm thiểu.
  • Chi phí được tối ưu: người dùng chỉ cần trả chi phí khi tài nguyên đó có request hoặc event và không cần phải trả thêm bất kỳ khoản phí nào khi ứng dụng rảnh rỗi. 
  • No vendor lock-in: có thể triển khai được trên nhiều dịch vụ serverless bởi chúng có cùng một mã nguồn của nhà phát triển.

Công nghệ serverless được triển khai trên một số dịch vụ phổ biến như: 

  • Các ứng dụng website như: Static website, webapps, micro frontend…
  • Các ứng dụng backend như: Backend app/service, backend mobile, IoT edge,…
  • Xử lý dữ liệu như: Real-time data processing, stream processing, ML inference,…
  • Các tác vụ tự động hoá IT như: policy engine, infrastructure management,…
Công nghệ serverless

Công nghệ serverless

Tuy nhiên, có một điểm lưu ý rằng, không phải ứng dụng nào cũng có thể triển khai trên serverless. 7 tiêu chí sau sẽ giúp doanh nghiệp của bạn xác định được liệu ứng dụng của doanh nghiệp có thể sử dụng serverless hay không:

  1. Ứng dụng stateless: các ứng dụng cần giữ session trong phiên giao dịch hay cần có thiết kế lưu trữ ở DB, cache trong dịch vụ trước khi kết thúc chu trình sẽ không phù hợp với serverless. 
  2. Tính chất ephemeral: do serverless hoạt động trên nền container, và khi diễn ra quá trình auto scale dữ liệu file được ghi trên container sẽ bị xóa đi.
  3. Hỗ trợ ngôn ngữ: việc lựa chọn nền tảng để đáp ứng toàn bộ ngôn ngữ lập trình của bạn cũng quan trọng, tuy nhiên hệ thống serverless không hỗ trợ tất cả ngôn ngữ lập trình.

    Serverless - Hỗ trợ ngôn ngữ

    Hỗ trợ ngôn ngữ

  4. Chỉ duy trì khi hoạt động: một số nền tảng sẽ giảm container về 0 khi dịch vụ của chúng không hoạt động, điều này có thể làm ảnh hướng tới một số trải nghiệm người dùng. 
  5. Cơ sở dữ liệu: cơ sở dữ liệu quan hệ của serverless mang nhiều hạn chế do cơ chế giới hạn concurrent connection của DB, nên việc lựa chọn NoSQL trong serverless sẽ giúp mang lại nhiều lợi thế cho nhà phát triển. 
  6. Không cho phép truy cập file system: ứng dụng sử dụng config từ file system hay việc ghi dữ liệu ra tệp tin sẽ không được hỗ trợ như sử dụng Cloud VM.
  7. Logging & Monitoring: cơ chế lấy log hay khả năng giám sát giới hạn các thông tin của serverless cũng khác nhau nên không thể tận dụng được phần mềm đã có sẵn từ người dùng. 

Trên đây là một số góc nhìn cơ bản về serverless được tổng hợp lại. Hãy theo dõi Tenten.vn để cập nhật thêm các thông tin về nhiều chủ đề hấp dẫn khác nhau nhé!

DỊCH VỤ CLOUD SERVER TỐC ĐỘ XỬ LÝ VƯỢT TRỘI

Serverless

Bài liên quan

Mạng máy tính là gì? Lợi ích của hệ thống mạng máy tính

Network là gì? Lợi ích và các loại network

Điện toán đám mây là gì? Lý do nên sử dụng

Mạng LAN là gì? Từ A-Z về hệ thống mạng LAN

VPS DigitalOcean là gì? Hướng dẫn tạo miễn phí từ A-Z