Объяснение Tenant Load Balancer в SaaS зрелости модели уровня 4
Я уже провел некоторое исследование об уровне зрелости SaaS на основе модели зрелости SaaS Gianpaolo.
Прямо сейчас я запутался в уровне зрелости SaaS 4. В нем говорилось, что у него есть "Балансировщик нагрузки арендатора", который динамически вызывает новый экземпляр приложения для обслуживания балансировки нагрузки для приложения SaaS.
Я хочу знать, что на самом деле означает этот "балансировщик нагрузки арендатора". Как реализовать этот "Балансировщик нагрузки клиента" в реальном мире или на сервере приложений?
Может ли кто-нибудь дать мне хорошее объяснение и пример, например, реализацию в технологии Java EE?
2 ответа
Ключевой концепцией является горизонтальная масштабируемость с балансировкой нагрузки. На высоком уровне это похоже на ESB/ балансировщик нагрузки, который используется в среде SOA.
Ниже приведены некоторые свойства развертывания SAAS Tenant Load Balanced:
1) Работает более одного экземпляра программного обеспечения SAAS.
2) Звонки арендатора к программному обеспечению могут обрабатываться любым экземпляром. Балансировщик нагрузки заботится о маршрутизации запросов арендатора к одному из экземпляров на основе стратегий балансировки нагрузки.
3) Масштабируемость. Должна быть предусмотрена возможность добавления нового экземпляра без особых усилий, когда нагрузка возрастает сверх того, что может обслуживаться текущими экземплярами. Например, в облачной среде можно запустить новый экземпляр EC2 и развернуть на нем приложение SAAS. Балансировщик нагрузки может направлять дополнительные вызовы на этот новый экземпляр. Этот подход также применим к среде, не относящейся к EC2.
Функциональность балансировщика нагрузки может быть предоставлена самим ESB или через интеграционные платформы / аппаратный балансировщик нагрузки / программные балансировщики нагрузки.
Балансировка нагрузки применяется и к внутренним хранилищам, таким как базы данных, хранилища поисковых индексов и т. Д. Вот некоторая информация о настройке базы данных в среде SAAS, в частности, не о балансировке нагрузки.
Один из способов реализации Tenant Load Balancer:
- Создайте несколько экземпляров приложения - скажем, A,B,C. У каждого своя база данных.
- Создайте одну метабазу - эта база данных содержит информацию об аккаунтах, логинах и т. Д.
- Интерфейс входа в систему один т.е. все входят в один и тот же веб-интерфейс.
- Когда пользователь регистрируется, назначьте его одному из экземпляров приложения (A,B или C).
- Когда пользователь входит в систему, выполните аутентификацию в базе метаданных, а затем перенаправьте на конкретный экземпляр.
Так, например:
- Сайт входа настроен на www.example.com
- Экземпляры приложения доступны по адресу a.example.com, b.example.com, c.example.com.
- Чтобы зарегистрироваться, пользователь переходит на www.example.com
- Чтобы войти, пользователь заходит на www.example.com
- После успешного входа в систему пользователь направляется на a.example.com или любой другой его экземпляр.
Вот как это делает Salesforce.com. Они имеют разные экземпляры для разных регионов и выделяют их клиентам.