Я изучаю проект системы, в которой многие части будут хорошо отображаться в развертывании на основе Kubernetes, превращаясь в одноцелевые сервисы без сохранения состояния.
Однако некоторые части вряд ли будут соответствовать этой модели иМне нужна помощь в понимании того, какие варианты лучше всего изучить для этих частей.
В частности, я ожидаю, что у меня будут некоторые приложения, которые образуют основу высокоинтерактивного пользовательского интерфейса.Бэкэнд представит представления, полученные из больших наборов данных, основанных на постоянном или частом взаимодействии с пользователем.Подумайте о чем-то вроде однопользовательской игры или программы САПР.
Таким образом, эти приложения требуют частого локального доступа к большим данным, загружаемым из удаленного хранилища, а также доступа к постоянно обновляемому состоянию пользователя, которое, вероятно, слишком велико.быть сериализованным и десериализованным между взаимодействиями пользователей.Такое состояние в настоящее время просто сохраняется в памяти процесса как состояние изменчивого приложения.Существуют также проблемы безопасности, связанные с обеспечением того, чтобы детали пользовательского сеанса не были доступны другим пользователям.
Я думаю, что повторяющийся быстрый доступ к удаленным данным можно решить, например, он может быть локально кэширован в модуль с использованием тома с резервной копией тома.с общей памятью и некоторым обслуживанием без сохранения состояния для его заполнения.Затем этот кэш повторно используется в липком сеансе.
Однако повторный быстрый доступ к быстро меняющемуся изменчивому состоянию кажется более сложной проблемой для решения.Один из подходов, который я могу себе представить, заключается в том, что клиент должен всегда подключаться к одному и тому же экземпляру приложения в течение продолжительности пользовательского сеанса, а другие пользователи никогда не должны подключаться к этому экземпляру.
До сих пор я изучалЗадания Kubernetes, а также наборы состояний с липкими сессиями через входной контроллер nginx.Я не думаю, что любой из них отвечает всем этим требованиям.Я также слышал упоминание о пользовательских балансировщиках нагрузки и операторах, но я еще не узнал об этом подробно.
Несмотря на несоответствие с основными вариантами использования Kubernetes, я хотел бы рассмотреть решения, которые могут использоватьэто (возможно, с расширениями) и избавляет от необходимости реализовывать целый отдельный пользовательский уровень управления временем жизни для изменчивого процесса / контейнера, который полностью отделен от Kubernetes.
Может кто-нибудь предложить лучший подход для рассмотрения?