Thế nào là Platform-as-a-Service (PaaS)

Minh-Duc Do
Nexus FrontierTech
Published in
8 min readOct 28, 2019

--

Ảnh Devon Rogers từ Unsplash

Về Platform-as-a-Service (PaaS)

Trong mô hình PaaS, các nhà phát triển sẽ thuê tất cả những gì họ cần để xây dựng sản phẩm, dựa vào công nghệ đám mây để phát triển các công cụ, cơ sở hạ tầng và hệ điều hành. PaaS là 1 trong 3 hình thức của điện toán đám mây. PaaS đơn giản hóa việc phát triển ứng dụng trên nền web; từ góc nhìn của một nhà phát triển phần mềm, tất cả những tác vụ quản lý dữ liệu (back-end) đều diễn ra phía sau bức màn sân khấu. Dù PaaS có đôi chỗ giống với điện toán không máy chủ (serverless computing), thì giữa chúng vẫn còn rất nhiều sự khác biệt.

Ba mô hình dịch vụ của điện toán đám mây

Có 3 mô hình dịch vụ của điện toán đám mây, gồm PaaS, SaaS (Software-as-a-Service) và IaaS (Infrastructure-as-a-Service). IaaS có liên quan đến cơ sở hạ tầng của công nghệ điện toán đám mây — máy chủ, bộ nhớ, … — được quản lý bởi nhà cung cấp dịch vụ đám mây. Trong khi đó SaaS liên quan đến tất cả các ứng dụng chạy trên nền tảng đám mây, dưới sự quản lý của các công ty cung cấp dịch vụ. Nếu người dùng SaaS giống như một người đi thuê nhà, thì người dùng PaaS giống một người đi thuê tất cả các công cụ và thiết bị hạng nặng để nhanh chóng xây một ngôi nhà, và các công cụ đó được bảo trì và sửa chữa liên tục bởi chủ sở hữu.

So sánh PaaS với nền tảng phát triển được lưu trữ nội bộ

PaaS có thể truy cập từ bất cứ nơi nào có internet, tạo điều kiện dễ dàng cho việc xây dựng ứng dụng từ trình duyệt web. Vì môi trường phát triển ứng dụng không lưu trữ cục bộ, nên các nhà phát triển có thể tương tác với ứng dụng từ bất cứ đâu trên thế giới. Điều này cho phép các nhóm phát triển đa quốc gia có thể cùng hợp tác làm việc. Điều này cũng có nghĩa là các nhà phát triển sẽ có ít quyền kiểm soát môi trường thiết kế sản phẩm hơn.

Có gì trong PaaS?

Các tính năng chính của PaaS thường bao gồm:

  • Các công cụ phát triển
  • Các phần mềm trung gian
  • Hệ điều hành
  • Quản lý cơ sở dữ liệu
  • Cơ sở hạ tầng

Các công ty khác nhau có thể cung cấp các dịch vụ khác nhau, nhưng các thành phần trên là những dịch vụ chủ yêu của PaaS.

Các công cụ phát triển

Các công ty phát triển PaaS sẽ cung cấp các công cụ cần thiết để phát triển phần mềm, bao gồm trình biên soạn mã nguồn, trình kiểm duyệt lỗi, trình biên soạn mã và một vài công cụ thiết yếu khác. Các công cụ này có thể đi kèm với nhau như một bộ khung nền tảng. Các công cụ chuyên biệt thì sẽ tùy thuộc vào từng công ty, nhưng thường thì sẽ bao gồm đầy đủ những thứ cần thiết để xây dựng phần mềm.

Các phần mềm trung gian

Các nền tảng được sử dụng như một loại dịch vụ thì thường sẽ đi kèm với nhiều phần mềm trung gian, với mục đích giúp các nhà phát triển không phải thiết kế lại từ đầu. Phần mềm trung gian là loại phần mềm đứng giữa ứng dụng dành cho người dùng cuối và hệ điều hành của máy móc; ví dụ một phần mềm trung gian sẽ cho phép các phần mềm khác truy cập thông tin từ bàn phím và chuột. Phần mềm trung gian rất cần thiết trong việc phát triển ứng dụng, nhưng người dùng cuối lại không hề tương tác với chúng.

Hệ điều hành

Một công ty phát triển PaaS sẽ cung cấp và duy trì một hệ điều hành mà các nhà phát triển có thể làm việc và chạy ứng dụng của mình trên đó.

Cơ sở dữ liệu

Các nhà cung cấp PaaS sẽ đóng vai trò quản trị và duy trì cơ sở dữ liệu. Thường thì họ cũng sẽ cung cấp cho các nhà phát triển một hệ thống quản lý cơ sở dữ liệu.

Cơ sở hạ tầng

PaaS là lớp trên của IaaS trong mô hình các dịch vụ điện toán đám mây, và mọi thứ trong IaaS đều nằm trong PaaS. Một nhà cung cấp PaaS vừa có thể quản lý máy chủ, bộ nhớ, và các trung tâm dữ liệu vật lý, hoặc cũng có thể thuê từ các nhà cung cấp IaaS.

Tại sao các nhà phát triển sử dụng PaaS?

Thời gian tiếp cận thị trường nhanh hơn

PaaS được sử dụng để xây dựng ứng dụng nhanh hơn. Các nhà phát triển không phải lo về việc xây dựng, cấu hình hay tự cung cấp cơ sở hạ tầng cho ứng dụng của mình. Với PaaS, tất cả những gì họ phải làm là viết code và kiểm thử ứng dụng, những việc còn lại để nhà cung cấp PaaS lo.

Một môi trường từ đầu đến cuối

PaaS cho phép các nhà phát triển xây dựng, kiểm thử, sửa lỗi, lưu trữ và cập nhật ứng dụng của mình trên cùng một môi trường. Điều này cho phép các nhà phát triển chắc chắn rằng ứng dụng web của mình sẽ hoạt động trơn tru trước khi ra mắt, và nó cũng đơn giản hóa quá trình nâng cấp của ứng dụng.

Giá cả

Giá cả của PaaS nếu tính ra sẽ rẻ hơn và hiệu quả hơn so với IaaS trong nhiều trường hợp. Tổng chi phí sẽ được giảm thiểu vì khách hàng dùng PaaS không phải quản lý máy chủ ảo. Thêm nữa, một số nhà cung cấp PaaS có chính sách dùng đến đâu trả đến đó (pay-as-you-go), khi đó công ty chỉ tính tiền cho nguồn lực của máy tính mà ứng dụng đó tiêu hao, và thường thì sẽ tiết kiệm khá nhiều tiền cho nhà phát triển. Tuy nhiên, mỗi công ty có cấu trúc giá khác nhau, và một số nhà cung cấp nền tảng cũng vẫn thu phí cứng hàng tháng.

Vấn đề bản quyền

Các nhà cung cấp PaaS sẽ lo toàn bộ phần đăng ký bản quyền cho hệ điều hành, các công cụ phát triển và bất cứ thành phần nào khác trên nền tảng của họ.

Những hạn chế khi sử dụng PaaS

Gắn bó với nhà cung cấp

Sẽ rất khó nếu muốn chuyển đổi nhà cung cấp dịch vụ PaaS, vì cả ứng dụng đã được xây dựng và phát triển bằng công cụ của họ và tích hợp với nền tảng của họ. Mỗi nhà cung cấp có những yêu cầu kiến trúc khác nhau, sử dụng ngôn ngữ lập trình khác nhau, cũng như các thư viện, API và hệ điều hành để phát triển ứng dụng khác nhau. Để chuyển đổi nhà cung cấp, các nhà phát triển cần xây dựng lại hoặc thay đổi hướng vận hành của ứng dụng.

Sự phụ thuộc vào nhà cung cấp

Công sức và nguồn lực cần thiết để chuyển đổi nhà cung cấp PaaS có thể sẽ gây phụ thuộc ngày càng nhiều hơn. Một thay đổi nhỏ trong quy trình nội bộ của nhà cung cấp hoặc sự thay đổi trong cơ sở hạ tầng cũng có thể gây nên những tác động rất lớn đến hiệu năng của ứng dụng vì nó được xây để đáp ứng với cấu hình cũ. Thêm vào đó, nếu nhà cung cấp thay đổi cấu trúc giá, một ứng dụng có thể sẽ trở nên cực kỳ đắt đỏ nếu duy trì.

Các vấn đề về bảo mật

Trong một kiến trúc của PaaS, nhà cung cấp sẽ lưu trữ phần lớn dữ liệu của ứng dụng, đồng thời là cả mã nguồn của ứng dụng đó. Chưa kể đến việc nhà cung cấp đó còn sử dụng dịch vụ lưu trữ cơ sở dữ liệu của một bên khác nữa. Mặc dù các nhà cung cấp PaaS là những công ty lớn với khả năng bảo mật dữ liệu tốt, nhưng cũng rất khó để có thể truy cập và tìm hiểu các thông tin về hệ thống bảo mật của họ. Ngoài ra, đối với các công ty có cơ chế bảo mật khắt khe, việc xác nhận thêm một nhà cung cấp nữa cho ứng dụng cũng sẽ gây khó khăn rất lớn trong quá trình tung ứng dụng ra thị trường.

PaaS khác với điện toán không máy chủ như thế nào?

PaaS và điện toán không máy chủ có khá nhiều điểm tương đồng, ví dụ như tất cả những gì mà các nhà phát triển phải lo là viết và đăng tải mã nguồn, còn lại thì nhà cung cấp dịch vụ sẽ lo phần phía sau. Tuy nhiên, việc mở rộng phát triển có khác nhau một chút giữa hai mô hình. Các ứng dụng được xây dựng bằng mô hình điện toán không máy chủ, hay còn gọi là FaaS, sẽ tự động mở rộng quy mô, trong khi các ứng dụng PaaS sẽ không tự động trừ khi được lập trình để làm thế. Thời gian khởi động cũng chênh lệch khá nhiều; các ứng dụng không máy chủ có thể khởi động và chạy gần như tức thì, nhưng các ứng dụng PaaS thì sẽ giống như các ứng dụng truyền thống, gần như phải chạy liên tục thì mới có thể đáp ứng được nhu cầu của người dùng.

Một điểm khác nhau nữa là các nhà cung cấp dịch vụ không máy chủ sẽ không cung cấp công cụ hay bộ khung nền tảng như bên PaaS. Và cuối cùng, chính sách giá là thứ phân biệt giữa hai mô hình. PaaS thu tiền không chính xác như điện toán không máy chủ, vì điện toán không máy chủ tính phí theo từng giây hoặc từng phần nhỏ của một giây mỗi khi có một chức năng bắt đầu chạy.

Nguồn CloudFlare

--

--

Tech explorer with attitude. Wingman to tech founders & musicians. Seeking for more experience and connections → https://campsite.bio/minhducdoo