Підтримка багатожиття


10

Які типові проблеми, які виникають при перетворенні додатка для одного орендаря в багатостороннє додаток? Безпека та ізоляція даних вважають мене найбільш важливим. Які ще інші?

Я один з архітекторів, який доклав значних зусиль щодо автоматизації, і історично це було лише за допомогою нашої компанії. Ми хочемо дати можливість і іншим цим користуватися. Щоразу, коли ми говоримо про те, щоб зробити його багатостороннім, розмова обертається тим, щоб утримувати користувачів одного орендаря від даних, якими володіє інший орендар, і переконатися, що користувачі, які мають одного орендаря, не можуть (навмисно чи ненавмисно) створювати впливи на іншого середовища орендаря. Мені цікаво, чи справді є безпека / ізоляція даних єдиною головною проблемою, чи є якісь інші основні проблеми, про які ми просто не думаємо.


Найпростіше рішення? Новий примірник всієї системи, включаючи обладнання, порожнє, з нуля, одна нова система на орендаря. Якщо система та дані є досить цінними, це може бути досить непоганим варіантом. Якщо вам не подобається нове обладнання для кожного примірника - використовуйте віртуалізацію. Це може бути не найефективнішим, але, безумовно, вбереже тонну головних болів.
СФ.

Можливо, з точки зору дизайну це найпростіше, але з адміністративної точки зору, схоже, це не так. Принаймні наші сисадміни не дуже схвильовані цією пропозицією. (І так, ми використовуємо віртуальні машини.) Швидше керувати екземплярами (моніторинг, розгортання тощо). Ми насправді шукаємо способи зробити це більш керованим, щоб отримати тут фізичну ізоляцію, але зважаючи на це, це Здається, підхід торгувати простотою розробників для простоти адміністратора ...?

Відповіді:


11

Крім передачі даних, у вас можуть виникнути проблеми

  1. Доступність - з одним орендарем вони можуть здійснювати лише DoS, але навіть коли дані належним чином оснащені, орендар все ще може вичерпати ресурси.
  2. Ведення журналу - усі повідомлення журналу передбачають одного орендаря. Якщо ви не проводите журнали силосів на одного орендаря, ваші повідомлення журналу можуть стати менш корисними.
  3. Паралельність - окремі програми орендарів можуть працювати при помірному навантаженні, або велика суперечка для кількох замків може ефективно серіалізувати певні операції. Якщо замки множиться на одного орендаря, ви можете почати бачити переплетення операцій, які раніше не відбувалися. Умови перегонів, які навряд чи колись проявляться, зараз, швидше за все, проявляться.
  4. Нові джерела суперечки щодо ресурсів - де раніше ви могли мати n сокетів і m файлових файлів, тепер помножте це на кожного орендатора.
  5. Конфігураційність / зворотність компромісу сумісності - коли раніше ви зможете застаріти компонент під час розгортання заміни, тепер у вас може бути один орендар, який вимагає компонента, і один орендар, який вимагає, щоб старий компонент, який він замінив, залишався без обмежень.
  6. Ціль виклику в суд - на даний момент ви цільова повістка в суд для проблем, пов'язаних з вашою компанією. З кількома орендарями вам, можливо, доведеться відповідати на прохання в суд, навіть якщо ви не є учасником судових позовів.

Деякі з них припускають, що ви працюєте з усіма орендарями в одному адресному просторі (на машині або в кластері). Якщо кожен орендар працює на вашому програмному забезпеченні на своєму апаратному забезпеченні, ви можете передати певне вищезазначене та додати:

  1. Труднощі з доступом до машин для налагодження.
  2. Запити на підтримку старих версій.
  3. Просить дозволити стороннім підрядникам налаштувати.
  4. Менший контроль над апаратним забезпеченням, на якому він працює.
  5. Менший контроль над циклом виправлення / оновлення ОС, на якій він працює.

1

На мою думку, найбільша проблема мультиплікації - це персоналізація. Це відбувається звичайно, якщо ви продаєте бізнес-додаток підприємствам. Це може відрізнятися від чогось простого, як кожен клієнт, який бажає власної шкіри, до можливості налаштування додаткових полів, правил, форм та звітів. Рівень налаштування, який потрібно підтримувати, відіграє важливу роль в архітектурі.


1

Відповідь Майка дуже хороша, і багато пунктів там майже недооцінюють їх складність через те, наскільки вони короткі, тому прийміть їх до серця.

Хочеться додати, що у вас повинні бути хороші інструменти управління для створення (а згодом і управління) нових орендарів. Залежно від фізичної архітектури, з якою ви їдете, це може бути далеко не банальним, і це те, що часто не помічається. Переваги програмного забезпечення як сервісного продукту дійсно вступають у життя лише тоді, коли є велика кількість орендарів, тому для цього слід докласти чимало зусиль.

Продовжити відповідь Шрірама; налаштування на одного орендаря майже заборонено, все, що орендар може змінити, має бути налаштоване . Наприклад, якщо ваше рішення не забезпечує динамічне додавання полів даних принаймні в декілька ключових областей, ви, ймовірно, буде завалене запитами на налаштування. Це один з небагатьох випадків, коли трохи додаткової складності наперед реально окупиться (скажімо, це суперечить YAGNI, або, принаймні, такий рівень конфігурації є майже ключовою вимогою, тому вам це знадобиться).


Чому налаштування "заборонено"? Це, безумовно, технічно досяжне. Існує багато різних моделей, які дозволять повторно використовувати основну систему для декількох орендарів, одночасно забезпечуючи індивідуальні деталі для орендарів. Якщо замовник готовий заплатити вам за налаштування, це вважатиме розумним врахувати. З цієї причини існує багато багатосторонніх продуктів, які мають налаштування для кожного клієнта. Більше в дусі YAGNI IMO допускається розширення, а не за замовчуванням, щоб зробити все налаштованим.
RationalGeek

1
Ну, я маю на увазі програмне забезпечення як реалізацію сервісу, в цілому (від "багатожитлового використання"). Звичайно, це технічно досяжно, але це суперечить основ SaaS. У фінансовому сенсі ви досягаєте менших витрат, поділяючи впровадження та, можливо, інфраструктуру для багатьох орендарів. Це дозволяє запропонувати свій товар за нижчою ціною, тим самим вловлюючи "довгий хвіст" ринку (велика кількість людей готові платити лише невелику суму). Ви можете підтримувати 5 гілок системи, але не 15000, і саме на це спрямований SaaS.
Даніель Б

На рівні підприємства я часто бачу постачальників SaaS, які готові зробити значні налаштування свого коду, щоб висадити клієнта. Коли клієнт платить 6 або 7 цифр за послугу, це, мабуть, розумна бізнес-модель.
RationalGeek

Так, у тих випадках, я думаю, що так. Більшість змін, які я бачив, були реалізовані як нові налаштовані функції, які за замовчуванням були відключені для існуючих клієнтів. Думаю, проблема полягає в тому, що кожен з перших 3-х або 4-х клієнтів отримує спеціальне лікування, оскільки рішення ще не вдається. Рішення закінчується занадто специфічним і створює культуру "ОК, ми просто зламемо його". Але так, я згоден з вашим коментарем великих клієнтів.
Даніель Б

Це корисна відмінність, яку ви робите, навколо налаштування. Я думаю, що та ж концепція може бути застосована і до керованості. Наше багатостороннє життя, ймовірно, спрямоване на порівняно менше великих клієнтів, а не клієнтів з довгими хвостами. Якщо головна мета багатожиття - це захоплення довгих хвостів, то це може бути навіть не правильним підходом для нас. Дякую за ці роздуми.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.