Nền tảng như một dịch vụ

Nền tảng như một dịch vụ (tiếng Anh: platform as a service), gọi tắt là PaaS, là một dịch vụ điện toán đám mây trong đó nhà cung cấp sẽ cung cấp các nền tảng (phần cứng, phần mềm, kết nối mạng...) cho phép người dùng tự phát triển và triển khai các ứng dụng riêng của mình trên đó qua mạng Internet. Như vậy, sử dụng PaaS đã giải phóng các nhà phát triển ứng dụng khỏi việc phải xây dựng và duy trì các nền tảng liên quan để phát triển hoặc chạy một ứng dụng mới.

== Khái quát ==
Khác với các mô hình dịch vụ điện toán đám mây phổ biến khác như Phần mềm như một dịch vụ (SaaS) hay Cơ sở hạ tầng như một dịch vụ (IaaS), trong khi IaaS tập trung vào cung cấp cơ sở hạ tầng tính toán, lưu trữ và kết nối mạng cơ bản thì PaaS cung cấp nhiều lớp ứng dụng hơn trên hạ tầng như hệ điều hành, các phần mềm trung gian (như cơ sở dữ liệu, thư viện cơ bản, công cụ phát triển...). 

Ngược lại, nếu so với SaaS, nền tảng của SaaS tập trung cung cấp nhiều lớp ứng dụng sử dụng sẵn, người dùng chỉ cần đăng nhập và sử dụng thì với PaaS, người dùng lại có thể linh hoạt xây dựng và triển khai các ứng dụng riêng của mình qua mạng Internet.

Như vậy, bằng việc triển khai ứng dụng trên PaaS người sử dụng có thể tận dụng được các ưu điểm:

- Triển khai ứng dụng nhanh chóng, giảm thời gian ứng dụng ra thị trường bằng cách tự động hóa hoặc loại bỏ hoàn toàn các nhiệm vụ bảo trì.
- Giảm chi phí quản lý hạ tầng và hệ thống máy chủ, đơn giản hóa công việc cân bằng tải.
- Các tài nguyên có thể mở rộng linh hoạt, dễ dàng theo yêu cầu phát triển ứng dụng.
- Cung cấp môi trường tương tác linh hoạt, mọi lúc mọi nơi qua mạng Internet.

Tuy nhiên việc sử dụng PaaS cũng có nhiều nhược điểm có thể phát sinh như chi phí tăng khi triển khai ở quy mô lớn hơn, thiếu các tính năng hoạt động hoặc tính năng bị khóa, giảm khả năng kiểm soát hệ thống, và những khó khăn về tính tương thích, tích hợp với các hệ thống bên ngoài.

== Phân loại ==
=== Phân loại theo mức độ chia sẻ ===
Nếu phân loại theo mức độ truy cập và chia sẻ có thể chia PaaS thành 3 loại chính bao gồm:

==== PaaS công cộng (Public PaaS) ====
PaaS công cộng là điện toán đám mây được phân phối qua Internet và được chia sẻ giữa các tổ chức. PaaS cho phép người dùng kiểm soát việc triển khai phần mềm trong khi nhà cung cấp dịch vụ sẽ đảm nhận quản lý việc phân phối tất cả các thành phần hạ tầng công nghệ thông tin nền tảng khác cần thiết cho việc lưu trữ các ứng dụng, bao gồm hệ điều hành, cơ sở dữ liệu, máy chủ và mạng hệ thống lưu trữ.

==== PaaS riêng (Private PaaS) ====
PaaS riêng là điện toán đám mây dành riêng cho từng khách hàng. PaaS riêng được tạo ra nhằm mục đích cung cấp sự linh hoạt của PaaS công cộng trong khi vẫn duy trì tính bảo mật, tuân thủ, lợi ích và chi phí thấp hơn của trung tâm dữ liệu cá nhân. Một PaaS riêng có thể được phát triển trên bất kỳ loại cơ sở hạ tầng nào và có thể hoạt động trong đám mây riêng (private cloud) của công ty.

Private PaaS cho phép một tổ chức phục vụ tốt hơn cho các nhà phát triển, cải thiện việc sử dụng tài nguyên nội bộ và giảm chi phí đám mây tốn kém mà nhiều công ty phải đối mặt. Hơn nữa, PaaS riêng cho phép các nhà phát triển triển khai và quản lý các ứng dụng của công ty họ đồng thời vẫn tuân thủ các yêu cầu bảo mật và quyền riêng tư nghiêm ngặt.

==== PaaS lai (Hybrid PaaS) ====
PaaS lai là môi trường kết hợp cả PaaS công cộng và PaaS riêng trong cùng một dịch vụ. Kết quả là tạo ra một môi trường điện toán phân tán thống nhất và linh hoạt, nơi một tổ chức có thể vận hành và mở rộng quy mô tùy theo khối lượng công việc trên nền tảng điện toán đám mây ở mô hình phù hợp nhất.

=== Các loại PaaS khác ===
Ngoài ra dựa vào các đặc tính của nền tảng hạ tầng cũng như các đặc điểm khác của PaaS có thể có các loại sau:

==== Nền tảng truyền thông như một dịch vụ (CPaaS) ====
CPaaS là một nền tảng dựa trên đám mây nhưng đã được các nhà cung cấp đưa thêm các dịch vụ cho phép các nhà phát triển thêm giao tiếp thời gian thực (RTC) vào ứng dụng của họ mà không cần cơ sở hạ tầng và giao diện phụ trợ. Thông thường, giao tiếp thời gian thực xảy ra trong các ứng dụng được xây dựng dành riêng cho các chức năng này. Ví dụ bao gồm Skype, FaceTime, WhatsApp và điện thoại truyền thống.

Thông thường các giao tiếp thời gian thực được xây dựng tích hợp vào các ứng dụng chuyên dụng. Các gia tiếp này có thể là điện thoại truyền thống, các ứng dụng Truyền giọng nói trên giao thức IP (VoIP) hay các ứng dụng chat, video call phổ biến như Skype, FaceTime, WhatsApp... Các tính năng này thông thường sẽ phải mất nhiều thời gian và chi phí để có thể đảm bảo hạ tầng ứng dụng, mạng thời gian thực, giao tiếp hỗ trợ cho các ngôn ngữ lập trình.

==== Nền tảng mobile như một dịch vụ (mPaaS) ====
mPaaS là một PaaS giúp đơn giản hóa việc phát triển ứng dụng cho các thiết bị di động. mPaaS thường cung cấp các phương thức cho người phát triển ít phải code (thậm chí là kéo và thả đơn giản) để truy cập các tính năng dành riêng cho thiết bị di động như camera, mic, cảm biến chuyển động và khả năng định vị địa lý (hoặc GPS).

==== PaaS mở (Open PaaS) ====
Đây là PaaS nhưng được xây dựng dựa trên các mã nguồn mở. Loại PaaS này nhằm hướng tới doanh nghiệp mã nguồn mở, miễn phí trên tất cả các thiết bị. Open PaaS được thiết kế để cho phép người dùng triển khai nhanh chóng các ứng dụng trên môi trường mã nguồn mở như Google App Engine.

== Các nhà cung cấp ==
Có nhiều nhà cung cấp dịch vụ PaaS cho các loại PaaS khác nhau. Tất cả đều cung cấp dịch vụ lưu trữ ứng dụng và môi trường triển khai, nhưng khác nhau về các dịch vụ cung cấp và các mức độ, khả năng mở rộng và bảo trì. Các nhà cung cấp dịch vụ PaaS lớn trên thế giới phải kể đến:

- Google
- Microsoft
- Dịch vụ web Amazon (AWS)
- IBM
- Oracle
- Heroku

== Xem thêm ==
- Điện toán đám mây (Cloud computing)
- Cơ sở hạ tầng như một dịch vụ (IaaS)
- Phần mềm như một dịch vụ (SaaS)
- Trí tuệ nhân tạo như một dịch vụ (AIaaS)