Стили и компромиссы микросервисов - кластер Акка против Кубернетес против
Итак, вот в чем дело. Мне очень нравится идея микросервисов, и я хочу настроить ее и протестировать, прежде чем решить, хочу ли я использовать ее в производстве. И затем, если я действительно хочу использовать его, я хочу постепенно отколоть кусочки моего старого приложения rails и перенести логику на микросервисы. Я думаю, что это можно сделать с помощью HAProxy и настроить другую маршрутизацию на основе URL-адресов. Так что это должно быть покрыто.
Тогда моя следующая большая проблема - я не хочу слишком много накладных расходов, чтобы гарантировать, что все идет гладко на стороне инфраструктуры. Я хочу предпочтительно низкую конфигурацию и простоту разработки, тестирования и развертывания.
Теперь я хочу знать, каковы преимущества и недостатки каждого стиля. Акка (кластер) против чего-то вроде Kubernetes (возможно, даже fabric8 поверх него).
То, о чем я также волнуюсь, является отказоустойчивостью. Я не знаю, как ты это делаешь с Kubernetes. Нужно ли вам включать очередь сообщений, чтобы ваши сообщения не потерялись? И затем также есть несколько очередей, если одна из очередей выходит из строя? Или просто повторите попытку, пока очередь не появится снова? Актеры Akka уже имеют это право? Повторная попытка и почтовые ящики? Каковы стратегии отказоустойчивости для микросервисов? Отличаются ли они для каждого подхода?
Кто-нибудь, пожалуйста, просветите меня!;)
1 ответ
Я не очень много знаю об Akka, но из быстрого чтения кажется, что это фреймворк приложения. Kubernetes находится на более низком уровне. Kubernetes управляет вашими контейнерами и управляет ими для вас. У нас нет концепции очередей или почтовых ящиков.
У Kubernetes скоро будет балансировка нагрузки L7, чтобы вы могли создавать карты URL.
Что касается отказоустойчивости - kubernetes гарантирует, что ваши заявленные намерения верны - запустите N копий этого контейнера. Этот контейнер может быть приложением Akka или mysql - не имеет значения.
На Docker + Akka есть несколько руководств. Kubernetes облегчает управление докерными контейнерами, но приложение по-прежнему остается вашим:)