IaaS, CaaS, PaaS, FaaS và SaaS là các dịch vụ điện toán đám mây khác nhau. Các dịch vụ này giúp bạn giảm tải và chuyển việc quản lý mạng, lưu trữ, ảo hóa, runtimes, container, v.v. ra ngoài. Việc này có thể làm giảm đáng kể chi phí đầu tư (CapEx) dù phải đổi lại bằng tăng chi phí vận hành (OpEx). Về lầu dài điều này giúp các doang nghiệp giảm chi phí CNTT đồng thời tăng sự nhanh nhẹn, tốc độ của việc phát triển, giúp đưa sản phẩm vào sử dụng nhanh hơn.

IaaS, CaaS, PaaS, FaaS, và SaaS

Trong các phần sau, chúng ta sẽ tìm hiểu chi tiết hơn về các dịch vụ này như khi nào sử dụng, chi phí…

IaaS – Infrastructure-as-a-Service

Có nhiều cách để xem xét và giải thích về IaaS (Infrastructure-as-a-Service – Cơ sở hạ tầng như dịch vụ). Ở đây chúng ta sẽ xem xét hai vấn đề nổi bật nhất: mô hình kinh doanh và dịch vụ trực tuyến.

Mô hình kinh doanh

IaaS là một mô hình kinh doanh trái ngược với hình thức sử dụng cơ sở hạ tầng cổ điển kiểu “Máy chủ của tôi nằm trong phòng server của tôi”. Bạn có thể thuê dịch vụ IaaS khi có nhu cầu. Nhà cung cấp IaaS chịu trách nhiệm về mạng, lưu trữ, máy chủ và ảo hóa trong khi bạn, là khách hàng, chịu trách nhiệm về ứng dụng thực tế, dữ liệu của ứng dụng, thời gian chạy, công nghệ container và hệ điều hành.

Các đặc tính quan trọng nhất của IaaS:

  • Mức tải tối đa không bị giới hạn .
  • Có thể tăng trưởng đột ngột mà không gặp vấn đề gì (khả năng mở rộng).
  • Dung lượng không sử dụng có thể được giải phóng lại ngay lập tức.
  • Không cần duy trì cơ sở hạ tầng bổ sung cho các ứng dụng hiếm khi được thực thi.
  • Công nghệ ảo hóa cho phép kiểm tra phần mềm trên nhiều nền tảng khác nhau.

Dịch vụ trực tuyến

Bạn cũng có thể xem IaaS là các dịch vụ trực tuyến sử dụng một số công nghệ điều phối đám mây nhất định để quản lý việc tạo máy ảo, chọn phần mềm giám sát máy ảo (hypervisor) , phân bổ dung lượng lưu trữ, cung cấp thông tin sử dụng cho mục đích thanh toán, v.v. Công nghệ điều phối đám mây được hầu hết các đám mây công cộng sử dụng là độc quyền nhưng có nhiều giải pháp mã nguồn mở (OpenStack, Apache CloudStack, v.v.) cũng có sẵn cho native clouds.

Cần lưu ý ở đây rằng Virtual Machine (VM) không chỉ là cơ sở hạ tầng có sẵn . Các tài nguyên khác như raw block storage, file hay object storage, tường lửa, bộ cân bằng tải, địa chỉ IP, mạng cục bộ ảo (VLAN), v.v. cũng có sẵn cho người dùng.

Các ứng dụng chính: Sử dụng cho các kế hoạch phục hồi sau thảm họa (Disaster Recovery), Kiểm thử và phát triển ứng dụng, lưu trữ các website phức tạp, các tính toán phức tạp, phân tích dữ liệu lớn..

Các dịch vụ tiêu biểu: EC2, S3, Google Compute Engine, GCP Global/Regional Load Balancer, Azure Load Balancer, Azure VM, Azure Storage etc.

Cách tính chi phí: Bạn có thể chọn trả tiền theo giây khi sử dụng dịch vụ IaaS. Các nhà cung cấp thường có khoản chiết khấu trong trường hợp bạn đặt trước các phiên bản VM trong khoảng thời gian 1 hoặc 3 năm. Ngoài ra còn có khả năng tiết kiệm chi phí thông qua việc sử dụng phiên bảng dùng ngay (Spot instance) hay Phiên bản mua trước (preemptible instances). Các phiên bản này có sẵn với mức giá chiết khấu cao giúp tiết kiệm chi phí.

Cách thức hoạt động của Spot instances. Ảnh: aws.amazon.com

CaaS — Container-as-a-Service

Container là gì?

Container là một giải pháp thay thế cho hypervisors và sử dụng một số khái niệm từ thế giới Unix (Control groups, Union Filesystem, Namespaces Processes) để chạy các ứng dụng một cách an toàn. Các containers chạy trong các phân vùng biệt lập của một nhân Linux chạy trực tiếp trên phần cứng vật lý. Linux cgroups (Nhóm điều khiển) và namespaces là công nghệ nhân Linux cơ bản được sử dụng để cô lập, bảo mật và quản lý containers. Containerisation mang lại hiệu suất cao hơn so với ảo hóa / hypervisor. Ngoài ra, công suất của container tự động cân bằng với tải điện toán, giúp loại bỏ vấn đề cung cấp quá mức và cho phép thanh toán dựa trên mức sử dụng.

Sự khác nhau giữa máy ảo và container. Ảnh: cloud.google.com

CaaS là gì?

Container như dịch vụ (Container-as-a-service – CaaS) là một loại dịch vụ đám mây mà nhà cung cấp dịch vụ cung cấp cho khách hàng khả năng quản lý và triển khai các clusters và ứng dụng được container hóa. CaaS đôi khi được xem như một tập con đặc biệt của mô hình Cơ sở hạ tầng như một dịch vụ (IaaS), nhưng trong đó hàng hóa chính là các containers chứ không phải là phần cứng vật lý và máy ảo.

Các containers về cơ bản hoạt động như một giải pháp thay thế cho phương pháp ảo hóa truyền thống, trong đó thay vì ảo hóa phần cứng bằng máy ảo, các vùng chứa (container) sẽ ảo hóa ở cấp độ của hệ điều hành. Do đó, các container chạy hiệu quả hơn nhiều so với các máy ảo. Chúng sử dụng ít tài nguyên hơn và một phần nhỏ bộ nhớ so với các máy ảo cần khởi động toàn bộ hệ điều hành mỗi khi chúng được khởi tạo.

Ứng dụng chính của CaaS: container hóa các ứng dụng

Các dịch vụ tiêu biểu — Elastic Kubernetes Service, Google Kubernetes Engine, Azure Kubernetes Service, Azure Container Instance, Cloud Run, AWS Fargate, ECS etc.

Cách tính chi phí: Các sản phẩm cung cấp tính năng điều phối vùng chứa (Dịch vụ Elastic Kubernetes, Google Kubernetes Engine, v.v.) thường tính phí các tài nguyên được sử dụng để xây dựng container cluster (ví dụ: VMs, load balancers, block storage v.v… ). Mặc dù một số trong số họ cũng tính phí quản cluster, ví dụ: Google Kubernetes Engine tính phí 0,10 đô la / giờ cho mỗi cluster. Mặt khác, các sản phẩm không cung cấp bất kỳ tính năng điều phối nào (orchestration features) thường tính phí bộ nhớ và CPU được sử dụng.

PaaS — Platform-as-a-Service

PaaS (Platform-as-a-Service – Nền tảng là một dịch vụ) cho phép bạn viết các ứng dụng bằng ngôn ngữ lập trình, thư viện, frameworks, v.v. mà không phải lo đến việc quản lý mạng, máy chủ, hệ điều hành, lưu trữ, thời gian chạy ngôn ngữ, thư viện, frameworks, v.v. Nhà cung cấp PaaS sẽ quản lý những vấn đề này để bạn có thể tập trung vào logic nghiệp vụ của ứng dụng của mình.

Hầu hết các nền tảng đều có các đặc tính sau:

  • Autpscaling – Tự động thay đổi quy mô: bạn có thể chia tỷ lệ các phiên bản ứng dụng của mình đến số lượng phiên bản tối đa do bạn định cấu hình hoặc thậm chí chia tỷ lệ ứng dụng về 0 trong trường hợp không có yêu cầu sử dụng.
  • Kết nối với các PaaS khác, SaaS (Software-as-a-Service) và DBaaS (Database-as-a-Service).
  • Tích hợp sẵn với Dịch vụ DevOps.

Các ứng dụng chính: Các ứng dụng Web, Microservices

Các dịnh vụ tiêu biểu: Azure App Service, Google App Engine, Elastic Beanstalk

Cách tính chi phí: Hầu hết các nhà cung cấp PaaS đều có các loại phiên bản (nstance) cụ thể và mỗi loại phiên bản này được tính phí theo giờ. Hơn nữa, bạn cũng có khả năng sử dụng hạn ngạch miễn phí.

FaaS — Function-as-a-Service

FaaS (Function-as-a-Service) khá giống với PaaS cho phép bạn tập trung chủ yếu vào logic nghiệp vụ, tuy nhiên có một trường hợp sử dụng khá khác. FaaS cho phép bạn viết một hàm bằng một trong các ngôn ngữ / khuôn khổ lập trình được hỗ trợ và các hàm này sau đó được gọi khi một sự kiện nhất định được kích hoạt hoặc một cuộc gọi HTTP. Các tính năng quan trọng của ứng dụng FaaS bao gồm:

  • Khách hàng chỉ triển khai logic nghiệp vụ trong các functions.
  • Các ứng dụng được triển khai với FaaS là không trạng thái (stateless).
  • Bạn không cần phải lo lắng về việc lập kế hoạch dung lượng, khả năng song song hóa và khả năng mở rộng (parallelization and scalability) – nhà cung cấp FaaS sẽ lo việc đó.
  • Hướng sự kiện và phản ứng: Với FaaS không có quá trình máy chủ đang chạy. Thay vào đó, có một lệnh gọi hàm ngay sau khi một sự kiện được kích hoạt, ví dụ: một lệnh gọi HTTP.
  • Để tồn tại lâu, phải sử dụng máy chủ cơ sở dữ liệu bên ngoài hoặc hệ thống tệp mạng (do bản chất không trạng thái của ứng dụng!).
  • FaaS cho phép khả năng mở rộng đơn giản – vì các chức năng không trạng thái có thể được mở rộng theo chiều ngang một cách đáng kể.
  • Vì bạn trả tiền cho mỗi lần gọi hàm (bộ nhớ & vCPU được phân bổ cho hàm), nếu hàm không bao giờ được gọi, bạn sẽ không bị tính phí.

Các ứng dụng chính — Event-Driven Architecture, Reactive Programming, Serverless, ETL Jobs, Stateless applications

Các dịch vụ tiêu biểu — Azure Functions, Cloud Functions, AWS Lambda

Cách tính phí: Các sản phẩm của FaaS hầu hết được tính phí dựa trên dung lượng bộ nhớ (chủ yếu được tính bằng GB) và vCPU được sử dụng. Tuy nhiên, mức độ chi tiết mà các nhà cung cấp tính là khác nhau – AWS tính phí trên 1 mili giây, Google Cloud tính phí trên 100 mili giây trong khi Azure tính phí mỗi giây. AWS cũng cung cấp Provisioned Concurrency để kiểm soát tốt hơn hiệu suất. Một số nhà cung cấp cũng tính phí gọi hàm sau khi bạn vượt qua giới hạn lệnh gọi miễn phí. Ví dụ: Google Cloud tính phí 0,40 đô la cho mỗi triệu lệnh gọi sau giới hạn lệnh gọi miễn phí là hai triệu, trong khi Azure tính phí 0,20 đô la cho mỗi triệu lần thực thi sau giới hạn lệnh gọi miễn phí là một triệu.

SaaS — Software-as-a-Service

SaaS (Software-as-a-Service – phần mềm dạng dịch vụ) là một mô hình kinh doanh không còn bán phần mềm cho người dùng mà chỉ đơn giản là cung cấp phần mềm đó như một dịch vụ. Đây là mô hình cấp phép và phân phối phần mềm trong đó phần mềm được cấp phép trên cơ sở đăng ký và được lưu trữ tập trung bởi nhà cung cấp SaaS. Phần lớn các giải pháp SaaS dựa trên kiến trúc nhiều người thuê. Với mô hình này, một phiên bản ứng dụng duy nhất, với một cấu hình duy nhất (phần cứng, mạng, hệ điều hành), được sử dụng cho tất cả khách hàng (tenants).

SaaS mang lại cho doanh nghiệp tiềm năng giảm chi phí vận hành CNTT bằng cách thuê ngoài phần cứng và bảo trì phần mềm và hỗ trợ cho nhà cung cấp SaaS. Các ứng dụng SaaS thường được cập nhật thường xuyên hơn các phần mềm truyền thống, trong nhiều trường hợp là hàng tuần hoặc hàng tháng. Điều này có được bởi một số yếu tố:

  • Ứng dụng được lưu trữ tập trung, vì vậy bản cập nhật do nhà cung cấp quyết định và thực hiện chứ không phải khách hàng.
  • Ứng dụng chỉ có một cấu hình duy nhất, giúp việc kiểm tra phát triển nhanh hơn.
  • Nhà cung cấp ứng dụng không phải tiêu tốn tài nguyên để cập nhật và duy trì các phiên bản đã lỗi thời của phần mềm, vì chỉ có một phiên bản duy nhất.
  • Nhà cung cấp ứng dụng có quyền truy cập vào tất cả dữ liệu khách hàng, tiến hành thiết kế và kiểm tra hồi quy.
  • Nhà cung cấp giải pháp có quyền truy cập vào hành vi của người dùng trong ứng dụng (thường thông qua phân tích trang web), giúp dễ dàng xác định các khu vực cần cải thiện hơn.

Các ví dụ về dịch vụ SaaS — Google Workspaces, Office 365

Cách tính chi phí: dịch vụ SaaS thường là phí cố định hàng tháng hoặc hàng năm / người dùng, vì vậy giá có thể mở rộng và có thể điều chỉnh nếu người dùng được thêm vào hoặc bớt đi bất kỳ lúc nào.

Tham khảo:

https://amulya-bhatia.medium.com/iaas-vs-caas-vs-paas-vs-faas-vs-saas-whats-the-difference-ee84ecc2d519

https://www.sumologic.com/glossary/

và các nguồn khác

Đánh giá bài viết

Average rating 4.9 / 5. Vote count: 9

No votes so far! Be the first to rate this post.

Comments are closed.