Hỗ trợ đa nhiệm


10

Những thách thức điển hình phát sinh khi chuyển đổi một ứng dụng một người thuê thành một ứng dụng nhiều người là gì? Bảo mật và cách ly dữ liệu tấn công tôi là quan trọng nhất. Một số người khác là gì?

Tôi là một trong những kiến ​​trúc sư cho một nỗ lực tự động hóa khá quan trọng và trong lịch sử, đó chỉ là công ty của chúng tôi sử dụng nó. Chúng tôi muốn làm cho người khác có thể sử dụng nó là tốt. Mỗi lần chúng ta nói về "làm cho nó trở nên đa năng", cuộc trò chuyện xoay quanh việc giữ người dùng với một người thuê khỏi dữ liệu mà người thuê khác sở hữu và đảm bảo rằng người dùng với một người thuê không thể (vô tình hoặc vô tình) tạo ra tác động ở người khác môi trường của người thuê nhà. Điều tôi băn khoăn là liệu bảo mật / cách ly dữ liệu có thực sự là mối quan tâm lớn duy nhất ở đây không, hoặc liệu có một số mối quan tâm lớn khác mà chúng ta không nghĩ tới.


Giải pháp đơn giản nhất? Một phiên bản mới của toàn bộ hệ thống, bao gồm phần cứng, trống, từ đầu, một hệ thống mới cho mỗi người thuê. Nếu hệ thống và dữ liệu khá có giá trị, đây có thể là một lựa chọn khá tốt. Nếu bạn không thích phần cứng mới cho từng trường hợp - hãy sử dụng ảo hóa. Nó có thể không hiệu quả nhất nhưng chắc chắn sẽ tiết kiệm được rất nhiều đau đầu.
SF.

Có lẽ từ góc độ thiết kế, đây là cách dễ nhất, nhưng từ góc độ hành chính thì dường như không phải vậy. Ít nhất các hệ thống của chúng tôi không hào hứng với đề xuất này. (Và vâng, chúng tôi đang sử dụng máy ảo.) Cách quản lý nhiều trường hợp hơn (giám sát, triển khai, v.v.) Thực tế chúng tôi đang tìm cách để làm cho điều này trở nên dễ quản lý hơn để có được sự cô lập vật lý ở đây nhưng trên mặt của nó, điều này Cách tiếp cận dường như đánh đổi sự đơn giản của dev cho sự đơn giản của quản trị viên ...?

Câu trả lời:


11

Bên cạnh việc làm im lặng dữ liệu, bạn có thể gặp vấn đề với

  1. Tính khả dụng - với một người thuê duy nhất, họ chỉ có thể tự làm DoS, nhưng ngay cả khi dữ liệu được xử lý đúng cách, người thuê vẫn có thể cạn kiệt tài nguyên.
  2. Ghi nhật ký - tất cả các thông điệp tường trình giả định một người thuê nhà. Trừ khi bạn đăng nhập silo cho mỗi người thuê, thông điệp tường trình của bạn có thể trở nên ít hữu ích hơn.
  3. Đồng thời - các ứng dụng thuê đơn có thể chạy dưới tải vừa phải hoặc sự tranh chấp cao đối với một vài khóa có thể thực hiện tuần tự hóa một số hoạt động nhất định. Nếu khóa được nhân lên trên mỗi người thuê, bạn có thể bắt đầu thấy xen kẽ các hoạt động không xảy ra trước đây. Các điều kiện chủng tộc mà rất khó có thể xuất hiện, bây giờ có thể có khả năng biểu hiện.
  4. Các nguồn tranh chấp tài nguyên mới - nơi trước đây bạn có thể có n socket và m filehandles, bây giờ nhân số đó cho mỗi người thuê.
  5. Khả năng cấu hình / trao đổi tương thích ngược - trong đó trước khi bạn có thể làm lỗi một thành phần khi bạn đưa ra một sự thay thế, bây giờ bạn có thể có một người thuê yêu cầu một thành phần và một người thuê yêu cầu rằng thành phần cũ mà nó thay thế sẽ tồn tại vô thời hạn.
  6. Mục tiêu trát đòi hầu tòa - hiện tại bạn là mục tiêu trát đòi hầu tòa cho các vấn đề liên quan đến công ty của bạn. Với nhiều người thuê, bạn có thể phải trả lời các yêu cầu trát đòi hầu tòa ngay cả khi bạn không phải là một bên của hành động pháp lý.

Một số trong số này cho rằng bạn đang chạy tất cả người thuê trong cùng một không gian địa chỉ (máy hoặc cụm). Nếu mỗi người thuê đang chạy phần mềm của bạn trên phần cứng của họ, bạn có thể thực hiện một số thao tác trên và thêm:

  1. Khó khăn khi truy cập máy để gỡ lỗi.
  2. Yêu cầu hỗ trợ cho các phiên bản cũ hơn.
  3. Yêu cầu cho phép các nhà thầu bên thứ ba cấu hình.
  4. Ít kiểm soát hơn đối với phần cứng mà nó chạy.
  5. Ít kiểm soát hơn bản vá / chu kỳ cập nhật của HĐH mà nó chạy.

1

Theo tôi, vấn đề lớn nhất trong đa thuê nhà là sự tùy biến. Điều này xảy ra thường xuyên nếu bạn đang bán một ứng dụng kinh doanh cho các doanh nghiệp. Nó có thể thay đổi từ một thứ đơn giản như mọi khách hàng muốn có giao diện của riêng họ đến khả năng định cấu hình các trường, quy tắc, biểu mẫu và báo cáo bổ sung. Mức độ tùy chỉnh mà bạn cần hỗ trợ đóng một phần quan trọng trong kiến ​​trúc.


1

Câu trả lời của Mike rất hay, và rất nhiều điểm ở đó gần như thể hiện sự phức tạp của chúng do độ ngắn của chúng, vì vậy hãy ghi nhớ những điều đó.

Một điểm tôi muốn nói thêm là bạn nên có các công cụ quản lý tốt để tạo (và sau này, quản lý) người thuê mới. Tùy thuộc vào kiến ​​trúc vật lý mà bạn đi cùng, điều này có thể khác xa với tầm thường, và là điều thường bị bỏ qua. Lợi ích của một phần mềm như một sản phẩm dịch vụ chỉ thực sự phát huy khi có một số lượng lớn người thuê, vì vậy một số lượng lớn nỗ lực nên được dùng để phục vụ cho việc này.

Để mở rộng câu trả lời của Sriram; mỗi người thuê nhàtùy chỉnh của bị cấm khá nhiều, mọi thứ mà người thuê có thể muốn thay đổi đều có thể được cấu hình . Ví dụ: nếu giải pháp của bạn không phục vụ cho việc bổ sung động các trường dữ liệu trong ít nhất một vài lĩnh vực chính, bạn có thể sẽ bị ngập trong các yêu cầu tùy chỉnh. Đó là một trong số ít những trường hợp một chút phức tạp thêm trả trước không thực sự trả hết (giả sử nó đi ngược lại YAGNI, hoặc ít nhất, mức cấu hình này gần như là một yêu cầu quan trọng, vì vậy bạn sẽ cần nó).


Tại sao tùy chỉnh "bị cấm"? Nó chắc chắn là có thể đạt được về mặt kỹ thuật. Có nhiều mẫu khác nhau sẽ cho phép tái sử dụng hệ thống cốt lõi cho nhiều người thuê trong khi vẫn cung cấp các phần tùy chỉnh cho từng người thuê. Nếu một khách hàng sẵn sàng trả tiền cho bạn để tùy chỉnh, có vẻ hợp lý để xem xét nó. Có nhiều sản phẩm đa năng có các tùy chỉnh cho mỗi khách hàng vì lý do này. Theo tinh thần của YAGNI IMO, việc cho phép mở rộng và không mặc định là làm cho mọi thứ có thể cấu hình được.
RationalGeek

1
Chà, tôi đang nói đến phần mềm như là một triển khai dịch vụ, nói chung (từ "đa thuê nhà"). Chắc chắn, về mặt kỹ thuật có thể đạt được, nhưng nó đi ngược lại các nguyên tắc cơ bản của SaaS. Theo nghĩa tài chính, bạn đang đạt được chi phí thấp hơn bằng cách chia sẻ triển khai và có thể là cơ sở hạ tầng cho nhiều người thuê. Điều này cho phép bạn cung cấp sản phẩm của mình với giá thấp hơn, do đó nắm bắt được "cái đuôi dài" của thị trường (số lượng lớn người chỉ sẵn sàng trả một số tiền nhỏ). Bạn có thể duy trì có thể 5 nhánh của một hệ thống, nhưng không phải là 15000 và đó là những gì SaaS nhắm đến.
Daniel B

Ở cấp độ doanh nghiệp, tôi thấy các nhà cung cấp SaaS thường xuyên sẵn sàng thực hiện các tùy chỉnh quan trọng cho mã của họ để có được một khách hàng. Khi một khách hàng trả 6 hoặc 7 con số cho dịch vụ thì đây có lẽ là một mô hình kinh doanh hợp lý.
RationalGeek

Vâng, trong những trường hợp đó, tôi đoán vậy. Hầu hết các thay đổi tôi thấy đã được triển khai dưới dạng các tính năng có thể định cấu hình mới, theo mặc định, đã tắt cho các máy khách hiện tại. Vấn đề, tôi nghĩ, là khi 3 hoặc 4 khách hàng đầu tiên mỗi người được điều trị đặc biệt vì giải pháp vẫn chưa được thực hiện. Giải pháp kết thúc quá cụ thể và tạo ra văn hóa "OK, chúng tôi sẽ hack nó vào". Nhưng vâng, tôi đồng ý với nhận xét của bạn xung quanh các khách hàng lớn.
Daniel B

Đây là một sự khác biệt hữu ích mà các bạn đang thực hiện xung quanh khả năng tùy biến. Tôi nghĩ rằng khái niệm tương tự cũng có thể áp dụng cho khả năng quản lý. Đa năng của chúng tôi có lẽ nhắm vào các khách hàng lớn hơn tương đối ít hơn là các khách hàng dài hạn. Nếu mục đích chính của đa nhiệm là bắt được đuôi dài thì nó thậm chí có thể không phải là phương pháp phù hợp với chúng ta. Cảm ơn những phản ánh này.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.