20 điểm bởi xguru 2022-03-28 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

"Multitenancy là nền tảng ẩn giúp khả năng mở rộng của SaaS trở nên xuất sắc"

  • Biên lợi nhuận cao và khả năng mở rộng tưởng như vô hạn của mô hình SaaS là lý do thị trường chứng khoán/nhà đầu tư/nhà sáng lập đổ vào lĩnh vực này
  • Điều làm nên điều đó chính là hạ tầng, đặc biệt là khái niệm "multi-tenancy"
  • Ngày nay gần như mọi công ty đều sử dụng cloud và SaaS, và cốt lõi của việc triển khai giải pháp cloud chính là multi-tenancy
  • Marc Benioff, nhà sáng lập Salesforce, từng nói rằng "multi-tenancy là điều kiện bắt buộc để một nhà cung cấp SaaS thành công"
  • Chính xác thì multi-tenancy là gì và vì sao nó quan trọng?

Multi-tenancy: xây dựng hệ thống tàu điện ngầm

  • Trước hết hãy hiểu về single-tenancy
    • Mỗi khách hàng sử dụng một ứng dụng và cơ sở dữ liệu riêng biệt
    • Tức là nếu có 100 khách hàng, sẽ có 100 máy chủ, 100 ứng dụng và 100 DB
    • Single-tenancy đòi hỏi rất nhiều thời gian, tiền bạc và công sức để vận hành ở quy mô lớn
  • Nếu nhìn từ góc độ giao thông, bạn có thể lái xe đi làm hoặc đi tàu điện ngầm
    • Lái xe thì tiện, nhưng phải trả chi phí xe, xăng dầu, đỗ xe, cộng thêm chi phí do tắc đường và ô nhiễm
    • Đi tàu điện ngầm thì tương đối rẻ, giúp đường sá sạch hơn và ít phá hủy tầng ozone hơn
  • Nếu toàn bộ 50.000 người lao động ở World Trade Center (WTC) đều lái xe đi làm, hệ thống sẽ trở nên cực kỳ phức tạp
  • Vì vậy multi-tenancy giống như tàu điện ngầm đã ra đời để giảm chi phí và chi phí gián tiếp, đồng thời giảm mạnh sự "hỗn loạn" của môi trường

Vì sao là bây giờ?

  • Vì sao phải chuyển sang tàu điện ngầm? Nếu nó thực sự tốt thì tại sao trước giờ nó không được chọn?
  • Câu trả lời nằm ở "cloud". Cloud computing và các doanh nghiệp SaaS đang bùng nổ về mức độ phổ biến
  • Nhìn vào thị trường đại chúng, các công ty trước đây cung cấp sản phẩm self-hosting đang nhanh chóng chuyển hướng sang cloud
  • Các công ty như Atlassian, Autodesk, Elastic và Microsoft đang cung cấp giải pháp cloud-hosted và ghi nhận tăng trưởng doanh thu bùng nổ
  • Chỉ riêng quý trước, Atlassian đã thêm hơn 10.000 khách hàng. Nếu phải duy trì 10.000 khách hàng đó bằng single-tenancy, công ty sẽ gặp khó khăn vì các công việc kỹ thuật riêng lẻ, quản lý tài nguyên, độ phức tạp và sự cạn kiệt nhân lực đáng ra phải tập trung giải quyết các vấn đề kinh doanh cốt lõi
  • Vì vậy, startup giai đoạn đầu có thể chọn bắt đầu với môi trường single-tenancy kiểu 'Quick-and-Dirty' (làm nhanh, đơn giản), nhưng khi đạt quy mô và bắt đầu tăng trưởng, họ sẽ tất yếu đối mặt với technical debt mà chỉ môi trường multi-tenant mới giải quyết được
  • Khi cloud computing và doanh nghiệp SaaS phát triển, overhead của các giải pháp single-tenant cũng tăng lên, và nhu cầu đối với multi-tenancy cũng lớn dần

Lợi ích của multi-tenancy

  • Multi-tenancy mang lại rất nhiều phép màu cho các nhà cung cấp SaaS
  • Khả năng chia sẻ hạ tầng trên toàn bộ tập khách hàng là một game changer
  • Ngoài quy mô, multi-tenancy còn mang lại một vài lợi ích bí mật khác

Biên lợi nhuận (Margins)

  • Việc tận dụng hạ tầng dùng chung tác động trực tiếp đến lợi nhuận của nhà cung cấp khi hạ tầng được sử dụng nhiều hơn
  • Multi-tenant đòi hỏi ít tài nguyên hơn cả về nhân lực lẫn chi phí phần mềm/phần cứng, theo cả nghĩa trực tiếp (chi phí hàng bán) và gián tiếp (nhân sự chủ chốt có thể dồn năng lượng vào việc khác)
  • Nhờ đó, tổng biên lợi nhuận tăng lên và cuối cùng tạo ra dòng tiền tự do (Free Cash Flow) để có thể nhận mức định giá cao hơn trên thị trường

Khả năng quan sát (Visibility)

  • Việc sử dụng multi-tenancy rất có lợi để hiểu hiệu năng của hạ tầng hoặc biết chi phí có đang phản ánh đúng vào một nhóm khách hàng cụ thể hay không
    • Dữ liệu cần có thể được truy vấn dưới dạng tổng hợp hoặc theo từng khách hàng
  • Trong hạ tầng single-tenant, dữ liệu khách hàng bị phân tán nên việc phân tích các chỉ số cross-customer là rất khó
  • Nhưng trong hạ tầng multi-tenant, có thể nhìn toàn bộ tập khách hàng và xác định các xu hướng vĩ mô
    • Điều này có thể được theo dõi ở mức logging, đơn vị DB hoặc giám sát hiệu năng ứng dụng, mang lại lợi ích lớn cho các cross-functional team

Độ phức tạp của multi-tenancy

  • Mọi "phép màu" đều có cái giá của nó, và multi-tenancy cũng không ngoại lệ

Vấn đề 1: Tính sẵn sàng và noisy neighbors

  • Giả sử một nền tảng e-commerce lưu toàn bộ dữ liệu khách hàng trong một DB, đa số người dùng chỉ mua một hai món mỗi tháng, nhưng có một người dùng mua 5.000 món mỗi ngày
    • Nếu DB không đủ mạnh để xử lý tải tăng đột biến từ khách hàng đó, toàn bộ DB có thể sập và các khách hàng khác sẽ không thể mua hàng
  • Đây là một thách thức lớn và dẫn đến quyết định về data partitioning
    • Silo partitioning (tách DB theo từng tenant) vs. Pooled partitioning (chia sẻ DB giữa các tenant)
    • Silo partitioning có thể giải quyết vấn đề cho một số khách hàng, nhưng khi đó lại quay về bài toán ban đầu là phải quản lý vô số instance
    • Pooled partitioning hoạt động tốt, nhưng nếu một khách hàng gây tải lớn thì có thể dẫn đến chậm hệ thống hoặc thậm chí sập hệ thống

Vấn đề 2: Tài nguyên dùng chung và bảo mật dữ liệu

  • Vì mọi khách hàng đều dùng chung tài nguyên, và không có một triển khai tiêu chuẩn nào cho multi-tenant, nên có thể xuất hiện lỗi kỹ thuật khiến dữ liệu bị giao thoa giữa các tenant khác nhau.
  • Đây có thể là vấn đề cực kỳ nguy hiểm nếu đang phục vụ đồng thời các khách hàng cạnh tranh với nhau
  • Đội ngũ kỹ thuật cần đánh giá các đạo luật về chủ quyền dữ liệu (Data Sovereignty Laws) và các quy định ảnh hưởng đến tenant isolation

Giải quyết độ phức tạp

  • Multi-tenant đã trở thành một trong những trụ cột chính của ứng dụng SaaS, nhưng ở giai đoạn triển khai vẫn còn rất nhiều độ phức tạp cần cân nhắc.
  • CEO của Cloudinary nhấn mạnh rằng "multi-tenancy là chìa khóa để đạt được Operational Excellence, nhưng để làm đúng thì cần rất nhiều kiến thức và đầu tư".
  • Boldstart và F2 (đơn vị viết bài này) đã đầu tư vào một startup đang giải quyết những vấn đề của multi-tenancy (hiện vẫn ở chế độ stealth)
  • Hệ thống multi-tenant có nhiều phần phức tạp, nhưng nếu nghĩ tới technical debt phát sinh khi mở rộng từ hệ thống single-tenant thì không còn gì phải đắn đo nữa
    • Vì để xử lý khoản technical debt này, bạn phải tung vào đó đội ngũ kỹ sư giỏi nhất và tiêu tốn nguồn lực cho những phần không phải core business
    • Các startup thông minh lựa chọn lên kế hoạch, xây dựng và vận hành môi trường multi-tenant ngay từ đầu

Chưa có bình luận nào.

Chưa có bình luận nào.