Практично или разумно ли использовать Lagom в продакшене без ConductR? Коммерческое лицензирование меня отталкивает. Этот фреймворк выглядит так, как будто его довольно сложно развернуть, а настраиваемый инструментарий для этого может потребовать много усилий, чтобы сделать все правильно.
Лагом без ConductR?
Ответы (4)
(отказ от ответственности: я сотрудник Lightbend, в настоящее время основной член команды Lagom)
Изменить (ноябрь 2018 г.): см. https://www.lagomframework.com/documentation/current/java/ProductionOverview.html#Running-Lagom-in-production для получения актуальной информации по этой теме.
(исходный ответ, август 2017 г.) Многое изменилось в стеке Lightbend с тех пор, как этот вопрос был добавлен более года назад. Например: ConductR теперь можно бесплатно использовать в рабочей среде для до трех узлов. Кроме того, команда ConductR также работает над предоставлением инструментов для развертывания приложения Lagom в Kubernetes. Усилия в этом направлении очень продвинуты, и некоторые из наших примеров приложений можно развернуть в Kubernetes а>уже.
Ваш вопрос довольно открытый, поэтому давайте начнем с «это зависит».
If
- вам удобно управлять масштабированием в конфигурации вашего кластера Akka,
- ваше использование не нарушает условия лицензирования с открытым исходным кодом lagom, play и Akka, И
- у вас недостаточно денежных средств, чтобы оправдать использование производственного пакета Lightbend,
тогда вы, возможно, сможете выполнить развертывание с минимальными усилиями и специальными инструментами.
Если эти условия не выполняются, вы можете выбрать другое место (например, Spring Cloud) или оставить Lightbend. Вы можете обнаружить, что поход в другое место имеет собственную когнитивную нагрузку и/или коммерческие расходы.
Надеюсь, что это поможет даже через 7 месяцев.
Другие ответы более высокого уровня, но по сути я могу сказать «да». В настоящее время я развертываю службу Lagom для размещения в кластере Kubernetes, и я не использую ConductR или какие-либо компоненты с коммерческой лицензией.
Вам нужно будет немного покопаться в некоторых внутренних компонентах Play, чтобы правильно запустить службу, и если вы хотите подключиться к какому-либо другому локатору службы, вам может потребоваться реализовать его самостоятельно, но это, конечно, не невозможно, и я думаю, что это меньше усилие в сети.
Честно говоря, это действительно стоит заплатить, потому что вы получаете гораздо больше, хорошие отчетные панели, автоматическое формирование кластера и, что действительно круто, это расщепитель мозга ....
Но иногда соглашайтесь, когда вы работаете над проектом, у которого не так много денег, вы можете сделать несколько небольших трюков и заставить его работать, а затем, возможно, сделать все, что действительно повезет, или купить корпоративную подписку.
Таким образом, Lagom можно очень легко использовать вообще без обнаружения служб, если вы делегируете все DNS Kubernetes или без Kubernetes, просто ставите балансировщик нагрузки перед каждой службой и используете ее адрес.
Как это может работать
Each lagom service that you have should be external service
- Конфигурация производственного цикла должна быть смешана с
ConfigurationServiceLocatorComponents
- Служба, которая должна взаимодействовать с другой, должна быть запущена с дополнительным параметром, который сообщает лагому, что эта служба является внешней и может быть связана напрямую (все может быть в
JAVA_OPTS
, как для игрового приложения)
-Dlagom.services.your_service_name=http://k8s_service_name.default.svc.cluster.local:9000
ServiceLocator
самостоятельно и самостоятельно управлять автомасштабированием, ведением журналов и т. п., используя другие инструменты с открытым исходным кодом, такие как, например, Consul и Nomad. Lightbend упрощает простое включение в ConductR, предоставляя все эти готовые реализации с отличным соглашением об уровне обслуживания. Недавно они приобрели OpsClarity, которая, как мне кажется, входит в их коммерческий пакет. - person Martijn   schedule 17.02.2017