2016-04-06 5 views
1

У меня есть проект, состоящий из набора микросервисов. Мы планируем внедрить Vagrant, чтобы любой новый разработчик, который присоединился к команде, легко мог настроить среду на своей машине.Vagrant и Microservices Dev Environment

Я читал через Vagrant какое-то время, и это выглядит интересно. Я начинаю это просто. Я инициализировал один из микросервисов, используя Vagrant, который затем создал VagrantFile. Это хороший подход? Один брандмауэр на микросервис?

Затем я попытался создать коробку для этого микросервиса. Какое имя должно иметь этот ящик? Должен ли я придерживаться любых соглашений об именах? Как и где должен храниться этот ящик? Должно ли это быть частью исходного кода моего компонента Microservice?

ответ

1

Я вижу, что вы задали вопрос об этом, а также вопрос similar and possibly duplicate.

Я также не уверен, почему вы используете Microservice, поскольку я не знаю ни одного программного обеспечения, специально названного этим.

Vagrant и виртуализация/виртуальные машины в целом позволяют выбирать архитектуру системы - обычно люди пытаются выбрать что-то близкое к тому, что такое производство или будет. Если у вас есть небольшой сайт, и все будет запущено с помощью общего окна или VPS, то все, что установлено в одном бродячем поле и предоставлено как таковое (с помощью Docker или просто простых сценариев подготовки оболочки), отлично.

Если у вас несколько серверов на производстве (www, app, db, whatever), у вас есть выбор. Вы все равно можете предоставить все эти роли в один брандмауэр, или вы можете запускать несколько ящиков с каждой попыткой репликации этих ролей (см. multi-machine vagrant) - это ситуация, когда вы можете предпочесть сценарии подготовки Docker поверх оболочки. Предположительно, вы можете использовать ту же самую или очень похожую конфигурацию Docker во всех средах (dev, qa, production и т. Д.).

Вопросы в вашем последнем абзаце

Какое имя должно это поле есть? Должен ли я придерживаться любых соглашений об именах ? Как и где должен храниться этот ящик? Должен ли этот быть частью исходного кода моего компонента Microservice?

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

  • именования поле и именования не требуется, и до вас
  • живучесть коробки, как правило, не является высоким приоритетом - идея вы можете быстро и легко (каждые несколько часов, дней, один раз в неделю и т.д.) воссоздать ваш ящик
  • Я не могу сказать наверняка, если вы должны хранить Vagrantfile с вашим исходным кодом, который будет зависеть от вашей команды композиции, процесса разработки, и т.д.
+0

Я говорю о Microservices архитектуре и как применить Vagrant к набору Microservices, что у меня есть в моем приложении пейзаж – sparkr

+0

@sparkr это все еще не собственное имя и не должно быть капитализировано. –

+0

Взгляните здесь http://martinfowler.com/articles/microservices.html – sparkr

1

Я согласен в большая часть ответа от @Brian

Я читал через Vagrant какое-то время, и это выглядит интересным. Я начинаю это просто. Я инициализировал один из Microservices, используя Vagrant, который затем создал VagrantFile. Является ли это хорошим подходом? Один брандмауэр на микросервис?

Я бы не сделать это, есть некоторые затраты (CPU, RAM) для установки в целом VM (как бродяга делает, даже при использовании docker provider), так что лучше всего было бы иметь один Vagrantfile с развернут свои услуги , поэтому, если вы разворачиваете новую службу, которую вы можете развернуть на этой виртуальной машине.

Вы можете увидеть (что я нашел) хорошие примеры видящего архитектуры microservice с Vagrant https://github.com/ewolff/microservice/tree/master/docker-vagrant

+0

примерный сервер GitHub для докеров в качестве отправной точки. Спасибо за это. Проблема в моем случае заключается в том, что все микросервисы, которые у нас есть, находятся в отдельном репозитории GitHub, который нужно каким-то образом вытащить и организовать вместе. Любые указатели в этих строках? – sparkr

+1

Похоже, что у вас есть те же проблемы, что и http://stackoverflow.com/questions/36364652/shared-vagrant-configuration-across-multiple-projects, вы можете посмотреть мой ответ с папкой синхронизации –

Смежные вопросы