Почему приложение с 12 факторами должно быть само собой разумеющимся?

В статье 12 Фактора о привязке портов http://12factor.net/port-binding есть требование, чтобы каждое приложение быть автономными и не иметь инъекции, например, Кот. Для Какую причину это советует... Каковы преимущества автономных приложений для микросервисов?

6
задан WilliamMartin 21 окт. '14 в 19:16
источник поделиться
2 ответов

Чтобы понять правила, связанные с привязкой портов и автономными приложениями, полезно просматривать вещи с точки зрения платформ, предназначенных для запуска приложений с 12 факторами, таких как Heroku или Deis.

Эти платформы масштабируют приложения на уровне процесса. Когда процессы масштабируются, платформа пытается разместить этих дополнительных работников за сеткой маршрутизации, чтобы они могли начать обслуживать трафик. Если приложение не является самодостаточным и, например, тесно связано с интерфейсом Apache-сервера с использованием mod_jk - невозможно масштабировать, запуская более изолированные рабочие процессы.

Связывание портов существует, чтобы решить проблему "посредничества портов" на уровне платформы. Если бы каждый сотрудник приложения прослушивал порт 80, возникли бы конфликты. Чтобы решить эту проблему, привязка порта - это соглашение, в соответствии с которым приложение прослушивает порт, выделенный платформой, и который передается как переменная среды $PORT. Это гарантирует: а) работник приложения прослушивает правильный порт и б) платформа знает, куда направлять трафик, предназначенный для этого рабочего.

7
ответ дан gabrtv 26 нояб. '14 в 5:27
источник поделиться

Я думаю, это потому, что это дает вам большую гибкость, когда приходит время для увеличения вашего приложения. Если вы используете tomcat, вам придется скопировать ваш .war и бросить его в другой tomcat, а затем загрузить баланс ваших запросов в любой из них.

Вместо этого, если ваше приложение имеет собственный HTTP-сервер, вы просто запускаете другой экземпляр в другом порту и забываете обо всех этих вещах tomcat. Вам все равно придется загружать баланс ваших запросов в один из ваших экземпляров приложения, но он выглядит более прямым.

3
ответ дан danielrvt 22 окт. '14 в 14:52
источник поделиться

Другие вопросы по меткам