SHIFT >_CODE
← Журнал

Основи архітектури SaaS: орендарі, ролі та оплата

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

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

Розділення даних клієнтів

Кожна компанія, що користується продуктом, - «орендар» - має бачити лише свої дані. Досягти цього можна по-різному: спільна база, де кожен запис належить орендарю, окремі схеми або навіть окрема база чи сервер для кожного клієнта. Спільне сховище простіше й дешевше в експлуатації; сильнішу ізоляцію легше пояснити клієнтам із суворими вимогами до безпеки. Що б ви не обрали, розділення має забезпечуватися на рівні даних, а не лише в інтерфейсі.

Ролі та права

Усередині кожного клієнта є різні люди: власники, менеджери, рядові співробітники, іноді зовнішні партнери. Визначте невеликий набір ролей від самого початку й перевіряйте права на сервері для кожної дії. Додати нову роль згодом легко; виправляти систему, де будь-хто міг робити будь-що, - болісно.

Підписки та оплата

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

Підключення й налаштування

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

Підготовка до зростання

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

Коротко

Надійно розділяйте дані клієнтів, визначте ролі й перевіряйте права на сервері, заздалегідь продумайте тарифи й оплату, зробіть підключення самостійним і тримайте систему готовою до зростання. Саме ці основи вирішують, наскільки легко продукт розвиватиметься далі.