5 lợi ích của công nghệ Serverless

Từ những cải tiến về độ trễ và chỉ trả tiền cho những gì sử dụng. Đây là lý do tại sao kiến trúc serverless (kiến trúc không máy chủ) mạnh như ngày nay.

 

Khi Instagram ra mắt năm 2010, nó đã được chuẩn bị một cách khôn ngoan để trở thành công ty truyền thông xã hội giàu có bậc nhất.

Nhưng chỉ trong 6 tiếng sau, lưu lượng truy cập tăng vọt đã khiến cho một máy tính duy nhất ở Los Angeles chạy back-end của Instagram tèo. Co-founders Mike Krieger và Kevin Systrom đã phải chuyển đổi khẩn cấp từ Local Server sang EC2 của Amazon. Sự chuyển đổi nhanh chóng của Instagram đã cứu nó khỏi cái chết 😀

Trong sáu năm tiếp theo,  ý tưởng về sức mạnh tính toán gia công phần mềm này đã mang lại những bước tiến lớn. Thay vì chỉ đơn giản là di chuyển các máy chủ hiện có vào đám mây để giúp mở rộng quy mô và hoạt động – chúng ta sẽ gọi đây là “Cloud 1.0” – một cách mới để phát triển phần mềm đang nổi lên tận dụng sức mạnh tính toán đàn hồi để đơn giản hóa phát triển phần mềm. Xu hướng này tiếp tục giảm thời gian ra thị trường và quy mô phân phối cần thiết cho Uber, Pokémon GO, Airbnb, game “Clash of Clans” và nhiều ứng dụng khác được đặc trưng bởi các cơ sở dữ liệu người dùng lớn và dữ liệu thời gian thực.

Với hơn 4 triệu ứng dụng đang thu hút sự chú ý trên App Store của Apple và Cửa hàng Play của Google, các nhà phát triển đang chuyển sang serverless để có lợi thế cạnh tranh. Chi phí phát triển ứng dụng có thể dễ dàng lên đến sáu con số, nhưng 90% ứng dụng trả tiền kiếm được ít hơn 1.250 đô la mỗi ngày. Bằng cách giảm chi phí và độ phức tạp nội bộ, serverless computing đã giúp người sáng tạo ứng dụng đối phó với thị trường bão hòa và mang lại trải nghiệm hấp dẫn.

Bí mật của Serverless

Đối với các nhà phát triển phần mềm, kiến trúc serverless nghĩa là phá vỡ ứng dụng phía máy chủ của họ thành các chức năng mà mỗi người thực hiện một nhiệm vụ riêng biệt. Viết phần mềm như một tập hợp các chức năng, nhưng kiến trúc serverless đưa điều này đến cùng cực. Toàn bộ ứng dụng được chia thành các thành phần tách biệt, lỏng lẻo có thể hoạt động ở mọi quy mô.

Một nhà cung cấp serverless lấy từng chức năng này và chạy chúng trong “containers” song song có thể được theo dõi và mở rộng riêng biệt. Kiến trúc mới này mang lại một số lợi ích chính và giải quyết một số vấn đề mở rộng đầy thách thức đáng ngạc nhiên vốn có đối với các kiến trúc phần mềm khác.

Một ví dụ tuyệt vời về kiến trúc serverless hoạt động tốt là lọc nhận xét trò chuyện trong thời gian thực. Các yêu cầu nghiệp vụ của nhiều ứng dụng chat thường có nghĩa là mỗi tin nhắn phải được lọc, phân tích cú pháp, hoặc có thể được điều chỉnh trước khi gửi đến người nhận.
Với cách tiếp cận truyền thống, mỗi tin nhắn được gửi đến máy chủ của nhà sản xuất ứng dụng, được phân tích cú pháp và xuất bản lại thành phòng trò chuyện. Điều đó có thể làm việc tốt cho số lượng nhỏ người dùng đồng thời, nhưng khoảng 1 triệu? Một vấn đề lọc trò chuyện đơn giản đột nhiên trở thành cơn ác mộng máy tính phân tán.
Một cách tiếp cận serverless cho cùng một vấn đề là không đau đớn. Nhà phát triển viết một chức năng lọc tin nhắn trò chuyện. Các nhà cung cấp serverless kết thúc hàm vào một container có thể được theo dõi, nhân bản, và phân phối trên bất kỳ số lượng các máy chủ. Nhà phát triển ứng dụng định tuyến tất cả các tin nhắn trò chuyện tới nhà cung cấp, người chỉ cần chạy nhiều containers hơn khi cần thiết để đảm bảo logic sẽ hoạt động ở mọi quy mô.

Lợi ích của Serverless

Cho dù bạn đang xây dựng một ứng dụng Chat  hay Pokémon GO tiếp theo, có rất nhiều lý do để không cần đến máy chủ:

Giảm thời gian đưa ra thị trường

Serverless cho phép nhà phát triển tạo ứng dụng mới theo giờ và ngày thay vì hàng tuần và tháng. Ví dụ rất nhiều các ứng dụng mới dựa trên API của bên thứ ba cho các dịch vụ như: xác thực (OAuth), xã hội (Twitter), bản đồ (Mapbox), trí tuệ nhân tạo (Watson của IBM) và hơn thế nữa.

Khả năng mở rộng cao

Ai cũng muốn ứng dụng của mình thành Facebook tiếp theo. Nhưng liệu có thể chịu tải nổi không? Lựa chọn cơ sở hạ tầng cung cấp trong trường hợp này là một rủi ro lớn. Kiến trúc Serverless nghĩa là bạn không cần phải lựa chọn.

Giảm giá thành

Nếu không cần các máy chủ luôn bật, chi phí hoạt động sẽ giảm mạnh. Những ngày chi tiêu hàng trăm ngàn đô la cho các máy chủ đã biến mất.

Thêm thời gian cho trải nghiệm người dùng

Người dùng không quan tâm đến cơ sở hạ tầng; họ quan tâm đến các tính năng và trải nghiệm của họ. Kiến trúc Serverless cho phép các nhóm tập trung tài nguyên vào các yếu tố giúp người dùng hài lòng.

Cải thiện độ trễ và vị trí địa lý

Khả năng mở rộng của ứng dụng phụ thuộc vào ba yếu tố: số lượng người dùng, vị trí của người dùng đó và thời gian chờ của mạng. Các ứng dụng của ngày hôm nay có khán giả toàn cầu, có thể tạo ra các thời gian trễ làm giảm trải nghiệm. Với serverless, các nhà cung cấp có điểm hiện diện gần mọi người dùng và ứng dụng hoạt động tốt như nhau cho mọi người. Ví dụ, Gett cung cấp các dịch vụ chuyển phát theo yêu cầu trên toàn thế giới, do đó, nó đã chọn Serverless để nhắn tin thời gian thực, thời gian thực thấp để kết nối hành khách và người dùng cũng như các bản cập nhật định vị trực tuyến.

Từ các ứng dụng chia sẻ ảnh đến trang tổng quan dữ liệu trang trại đến các công cụ phản lực được kết nối, máy chủ không thể đáp ứng nhu cầu đa dạng của các nhà phát triển ứng dụng.

Khi tải dữ liệu tiếp tục tăng, hy vọng sẽ thấy serverless trở thành một cách tiếp cận tiêu chuẩn để giảm tải các chức năng để thực thi gần hơn với người dùng cuối và thiết bị. Bằng cách giảm chi phí, độ trễ, thời gian ra thị trường và độ phức tạp, mô hình không có máy chủ đã sẵn sàng trở thành một yếu tố chính của không gian ứng dụng.

 

Copy from http://huynhdn.com

Leave a Reply

Your email address will not be published. Required fields are marked *