Serverless là một mô hình điện toán đám mây trong đó nhà cung cấp đám mây sẽ tự động quản lý việc phân bổ và cung cấp máy chủ. Ứng dụng serverless không cần phải quan tâm việc phân bổ, quản lý tài nguyên của hệ điều hành, và bỏ qua các vấn đề về nâng cấp và bảo mật.
1. Các loại mô hình server truyền thống:
-Okay, chi tiết về từng loại mô hình thì chúng ta xin hẹn nhau ở 1 bài viết khác. Còn ở bài viết này thì mình sẽ tập trung về giới thiệu tổng quát :

- ‘Bare metal’ là gì? Hiểu một cách đơn giản đó là kiểu kiến trúc thuở tiền sử của chúng ta. Khi deploy một sản phẩm phần mềm, ‘System admin’ sẽ cần phải cấu hình OS, quản lý ổ đĩa/bộ nhớ cho một server vật lý. Phần mềm sẽ được deploy lên server và gắn chặt lên sản phẩm phần cứng đó.
- Virtual Machine(VM) là gì? Chương trình giả lập hệ thống phần cứng(máy tính, điện thoại), được cài đặt trên máy tính chủ của mình. Lợi ích lớn của VM là việc hợp nhất máy chủ( server consolidation). System Admin có thể sử dụng nhiều máy chủ ảo trên cùng 1 máy chủ vật lý. Ưu điểm là không tốn quá nhiều tài nguyên vật lý có sẵn(ổ cứng, ram, điện năng, hiệu suất).
- Docker là gì? Platform để phát triển và chạy ứng dụng. Một ‘phiên bản nâng cấp-nhanh chóng- dễ dàng hơn của VM”.
2. Vì sao lại là serverless?

– Những mô hình server trên đều yêu cầu triển khai ứng dụng trên hệ thống phần cứng. Chúng ta cần có trách nhiệm quản lý server đó. Do đó sẽ phát sinh ra một số những vấn đề:
- Phải config lại server cho tương thích với những thay đổi của phần mềm. Liên tục nâng cấp hệ thống server
- Server cần phải hoạt động liên tục 24/24 dù lưu lượng truy cập đến ứng dụng của chúng ta không đồng đều hoặc không có.
- Cần tốn chi phí nhân lực để duy trì và đảm bảo cho server hoạt động. Dù là lễ tết, cuối tuần hay ngày nghĩ thì cũng sếp cũng sẽ dựng đầu chúng ta dậy thôi.
- Những dự án lớn cần phân chia dự án thành từng task nhỏ hơn. Mỗi task nhỏ lại cần những server để deploy sản phẩm. Dự án cầng lớn thì để maintain, để config và quản lý càng trở nên phức tạp.
3. Serverless computing là gì?

- Là mô hình thực thi do 1 bên thứ 3 – nhà cung cấp dịch vụ cloud(Azure, AWS, google cloud) đảm nhiệm trách nhiệm vai trò ‘server’.
- Serverless cung cấp những phương thức/ cấu hình/api để lập trình viên có thể dễ dàng code và deploy ứng dụng dễ dàng mà không cần lo lắng đến hardware bên dưới.
=> Lập trình viên lần đầu biết đế khái niệm về cloud computing – khởi chạy phần mềm mềm mà không cần quan tâm gì đến server(serverless).

