Giải ngố về các khái niệm IaaS, PaaS, SaaS trong Cloud Computing

Gần đây, có vài bạn đang tự học về Cloud, nhờ mình giải thích một số khái niệm cơ bản trong Cloud Computing.

Do sắp tới mình cũng sẽ viết series Cùng Học Cờ Lao – Tìm Hiểu Cloud Computing cùng Code Dạo, nên mình viết bài này để ôn lại kiến thức căn bản, đồng thời giới thiệu sơ cho những bạn muốn tìm hiểu luôn nha.

Đây là 3 khái niệm khá quan trọng, nắm được chúng ta bạn đã hiểu tới 69.96% những service do các cloud provider cung cấp rồi.

Tuy vậy, do đọc nghe na ná nhau nên chúng khá dễ gây nhầm lẫn. Vì vậy, mình sẽ giải thích những thứ này một cách bình dân, dễ hiểu, dễ nhớ nhé.

3 khái niệm nhắc đến trong bài lần lượt là:

  • IaaS: Infrastructure as a Service
  • PaaS: Platform as a Service
  • SaaS: Software as a Service

As A Service là cái chi chi??

Dễ thấy 3 khái niệm này đều có chữ “As a Service” ở đằng sau. Vậy để tìm hiểu chúng, ta cần hiểu As A Service là gì trước.

Vậy “As A Service” là gì? Dịch nôm na thì nó là … cung cấp dịch vụ. Dịch vụ ở đây có thể hiểu là dịch vụ có sẵn, khi nào cần dùng thì mới phải trả tiền. Ví dụ như:

  • Đi ăn nhà hàng là Food as a Service
  • Đi xe ôm, taxi là Transport as a Service
  • Đi ăn bánh trả tiền với các em gái ngành là Chịch as a Service
Khu phố nổi tiếng cung cấp dịch vụ Chịch as a Service

Giải thích IaaS, PaaS, SaaS một cách bình dân

Sau khi hiểu rồi, bạn sẽ lờ mờ đoán được sự khác biệt giữa 3 khái niệm này:

  • Infrastructure as a Service: Công ty khác sẽ cho bạn thuê cơ sở hạ tầng (infrastucture) bao gồm server, ổ cứng, mạng. Bạn muốn cài gì cũng được, bỏ code gì lên cũng được.
  • Platform as a Service: Nhà cung cấp sẽ lo cho bạn từ OS (Windows hoặc  Linux) cho tới Runtime (Docker, NodeJS, C#, Java), chỉ cần bỏ code vào mà chạy là được.
  • Software as a Service: Phần mềm được cung cấp dưới dạng dịch vụ, người sử dụng sẽ trả tiền thuê hàng tháng như Gmail, Dropbox, Salesforce …

Đa phần khi các công ty công nghệ/công ty phần mềm dùng Cloud, họ sẽ dùng IaaS, hoặc PaaS để deploy sản phẩm lên.

Còn SaaS tức là sản phẩm phần mềm (software) mà các công ty phần mềm cung cấp dưới dạng dịch vụ.

Sự khác biệt giữa 3 khái niệm. On-Premises tức là toàn bộ bạn lo hết, SaaS tức là mọi thứ người khác lo hết

 

Dưới đây là một số ví dụ. Các bạn có thể thấy đa phần các Cloud Provider như Google, Amazon, Azure đều cung cấp dịch vụ dưới dạng IaaS hoặc PaaS.

KHÁI NIỆM NHÀ CUNG CẤP
SaaS Google Apps, Dropbox, Salesforce, Cisco WebEx, Concur, GoToMeeting
PaaS AWS Elastic Beanstalk, Windows Azure, Heroku, Force.com, Google App Engine, Apache Stratos, OpenShift
IaaS DigitalOcean, Linode, Rackspace, Amazon Web Services (AWS), Cisco Metapod, Microsoft Azure, Google Compute Engine (GCE)

So sánh dịch vụ Cloud và … trà sữa

Nếu chưa từng sử dụng các dịch vụ Cloud, bạn sẽ thấy hơi mơ hồ. Tuy nhiên, chỉ cần thử sử dụng các dịch vụ của Azure, AWS các bạn sẽ hiểu ngay!

Ta có thể so sánh chuyện sử dụng dịch vụ Cloud với chuyện đi uống trà sữa, nhầm, .. nấu trà sữa.

Khái niệm Làm Trà Sữa Làm phần mềm
On-Premise Tự trồng lúa lấy bột và nhào bột làm trân châu, tự trồng trà, hái trà và đổ nước sôi vào pha, tự nuôi bò và vắt sữa để ra một ly trà sữa Tự mua phần cứng, tự lắp mạng, mua IP tĩnh, gắn domain, cài hệ điều hành, cài runtime (Java, PHP, MySQL), deploy ứng dụng,…  để mọi người có thể dùng ứng dụng của mình
IaaS Mua bột trà, mua sữa, mua trân châu làm sẵn từ Trung Quốc. Chỉ việc đổ bột trà vào nước sôi, luộc trân châu cho nở ra, bỏ vào trà là có một ly trà sữa Azure sẽ tạo cho bạn một con server ảo (VPS), có sẵn Windows/Linux, có sẵn mạng và IP.  Bạn chỉ việc ssh/remote desktop vào server đó, cài PHP/C#/NodeJS, deploy ứng dụng là xong.
PaaS Mua một thùng trà sữa về dùng dần. Khi nào cần bạn chỉ việc lấy ly, múc trà sữa ra uống, xong lau dọn. Bạn phải tự múc trà, tự bảo quản, tự quét dọn Azure/AWS/cty hosting đã tạo sẵn cho bạn một môi trường có sẵn PHP/C#/NodeJS. Bạn chỉ cần upload code lần đó là sản phẩm đã chạy được.
SaaS Bạn vác đít ra hàng uống trà sữa, uống xong phủi đít đi về cho nhân viên dọn Bạn sử dụng Application do một bên cung cấp, không cần cài đặt server gì. Khi có vấn đề cứ hú bên đó sửa!
Ngẫm lại thì giữa lập trình và nấu trà sữa cũng có đôi cái na ná nhau

Làm sao lựa chọn giữa IaaS, PaaS hoặc SaaS

Các bạn thấy đấy, các mô hình này đi từ thấp tới cao

  • Càng ở cấp thấp, các bạn càng phải quản lý nhiều hơn (tự trồng trà, tự thuê và quản lý server, tự cài OS và runtime). Việc này sẽ tốn nhiều công sức và tiền bạc (để thuê nhân viên IT). Tuy nhiên, bạn sẽ control được nhiều hơn, có thể thoải mái chọn sữa bò, chọn phần cứng, chọn hệ điều hành,.
  • Lên cao hơn, các bạn sẽ dùng nhiều dịch vụ do bên khác cung cấp hơn. Bạn sẽ đỡ tốn công làm những thứ lặt vặt như nuôi bò, lắp mạng, quản lý server, mà bên dịch vụ sẽ lo hết cả.
  • Ở những cấp cao hơn, bạn sẽ thoải mái hơn, nhưng sẽ ít control và lựa chọn hơn. Do vậy, lựa chọn như thế nào là tùy vào nhu cầu của công ty, của business.
Các mô hình này đi từ thấp tới cao

 

Ở Việt Nam, đa phần các công ty lớn dùng dạng On-Premise, tự xây dựng hệ thống hạ tầng vì họ có tiền để nuôi team IT. Ở nước ngoài, các công ty startup, công ty vừa và nhỏ thường dùng IaaS hoặc PaaS do Google, Amazon, Azure cung cấp để đỡ tốn chi phí cho IT.

Phần lớn các công ty đều sử dụng SaaS cho các hoạt động thường ngày (thay vì tự phát triển):

  • Slack để giao tiếp giữa các thành viên
  • Jira để quản lý task
  • Confluence hoặc Google Docs để quản lý document
  • Skype hoặc Zoom.us để họp online

Chốt

Bài khá dài nhưng cũng hết rồi. Quảng cáo nhẹ là sắp tới mình sẽ ra mắt series Cùng Học Cờ Lao – Tìm Hiểu Cloud Computing cùng Code Dạo nha.

Nếu các bạn có thắc mắc gì về Cloud, có gì muốn tìm hiểu thì cứ để lại comment trong phần comment nhé. Mình sẽ dựa trên đó để trả lời những thắc mắc của các bạn trong series nha!

 

Link tham khảo:

 

P/S: Để theo dõi bài viết trên Tôi Đi Code Dạo, nhớ Subscribe Chat Bot của tụi mình nha. Bot của Code Dạo sẽ gửi bạn những bài viết cực kì hay ho về kĩ năng mềm và cứng, kinh nghiệm trong ngành vào thứ 4 hàng tuần nhé!

Đăng ký bài viết

Advertisements

9 thoughts on “Giải ngố về các khái niệm IaaS, PaaS, SaaS trong Cloud Computing”

  1. Bài này rất hay và hữu ích đối với những người bắt đầu tìm hiểu về cloud computing, cảm ơn anh. Tuy nhiên em thấy anh không nên để hình của một bạn mà không rõ nguồn từ đâu, có lẽ chưa được sự đồng ý từ người ta, để đăng lên công khai cho ví dụ “chịch as a service”.

    Nội dung của anh đứng một mình thường đã đầy đủ, thú vị; nhưng cứ mỗi lần thấy mấy trò đùa về tình dục thế này em lại thấy không thoải mái hay hài hước lắm. Mong blog sẽ phát triển theo hướng chuyên nghiệp hơn.

    Liked by 2 people

  2. Hiện nay mình thấy còn có CaaS (Container as a Service) nữa. Trong quá trình thực tế mình làm thì cùng kết hợp cả 4 luôn là IaaS, PaaS, CaaS và SaaS. Hy vọng sẽ được đọc tiếp series của bạn

    Like

  3. Anh Hoàng ơi, viết bài về cách tiếp cận dự án mới đi a, em mới pass phỏng vấn, join team mà mãi k hiểu luồng của dự án trong team, hoang mang quá anh ạ @@

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s