2014-12-08 3 views
1

Я начинаю комфортно работать с Berkshelf (что было отличным способом научить шеф-повара кстати), и теперь мне интересно, как я должен заниматься управлением/развертыванием среды разработки для наши разработчики PHP, которые я хочу предоставить локальные/виртуальные среды, которые предоставляются из кулинарных книг повара.Chef Server: Стратегии настройки среды разработки

Я хочу выяснить, какая идеальная среда будет для разработчиков как для шеф-поваров, так и для разработчиков приложений (PHP-разработчики в моем случае). Мне нужны повторяющиеся локальные (или виртуальные) среды для разработчиков PHP, которые используют мои Cookbooks.

Я думал использовать Vagrantfile, чтобы разработчик мог настроить сервер шеф-повара с помощью своих сертификатов, предоставить его и начать использовать среду. О чем я не уверен: должен ли каждый разработчик иметь свой собственный Vagrant node, указанный в Chef Server для каждого приложения? Или есть способ использовать клиент-клиент Chef без регистрации бродячего узла?

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

Во-вторых, все мои репозитории, созданные Berkshelf, используют клиент Chef для обеспечения. Это хорошая практика, или я должен использовать шеф-повара только для разработки/тестирования кулинарных книг как dev ops?

ответ

3

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

Для App разработчиков

Мы используем комбинацию тест-кухни и супермаркет, и он прекрасно работает. У нас есть репо, которое содержит Gemfile, .kitchen.yml и Berksfile. В идеале у него также будет один сценарий настройки команды, который будет настраивать пользователя супермаркета, knife.rb, установить Vagrant и т. Д. Это репо также содержит все примитивы, используемые шеф-поваром (роли, среды и т. Д.).

В конце концов, у него будет Rakefile, который прекрасно обернет все это.

rake setup # installs any non-gem stuff, sets up users, berks install, etc. 
rake standup # stands up our primary app and dependencies (involves multiple VMs playing together) 
rake standup:standalone # stands up the primary app and dependencies all on one box 
rake standup:otherApp # you get the idea 

Каждая задача рейка может затем вызвать столько kitchen converge операций, как это необходимо.

Для Chef разработчиков

Первый, шеф-соло падает в немилость, как шеф-ноль (так называемый локальный режим) становится все более и более популярным. Соло никогда не исчезнет, ​​но я не вижу причины для этого в вашем случае использования.

Во-вторых, большинство шеф-поваров, которые я видел, похоже, отошли от Vagrantfile и к тестовой кухне. По умолчанию используется Vagrant под крышками, и, как и Vagrant, он также может использовать различные другие системы (Docker, AWS, Rackspace, VMware и т. Д.). Это всего лишь немного больше шеф-повара. И будет работать очень хорошо для того, что вы описываете, так как в любом случае ваша «среда разработки» будет нуждаться в инфраструктуре тестирования. Итак, зачем использовать Vagrant с тестовым каркасом сверху, когда вы можете использовать тестовую кухню и взять двух зайцев одним выстрелом.

В-третьих, шеф-повар - ваш друг. Не заставляйте каждого разработчика разворачивать виртуальную машину с помощью chef-сервера. Просто используйте git-репо с вашей средой, ролями и data_bags. Затем пусть они запускают тестовую кухню с помощью помощника шеф-повара или шеф-повара (который работает с шеф-поваром) указывают на git repo. Это намного легче, и позволяет всем разработчикам обмениваться общими объектами.

В-четвертых, выписка ChefDK. В значительной степени все вышеназванное выпекало и, вероятно, станет «нормальным» способом делать вещи.

В-пятых, если вы все равно смотрели с нуля, я бы рекомендовал установить супермаркет и настройку шеф-повара рядом с вашим шеф-поваром. Шеф-повар сделает управление изменениями в ролях, окружениях и мешках данных на 1000% легче справиться. Супермаркет прекрасно сочетается с Berkshelf, чтобы дать вам полный контроль над версиями поваренной книги, используемыми в вашей среде.

+0

Отличный ответ. Я был расплывчатым в том, что я подразумеваю под «разработчиком». Я имел в виду разработчиков приложений, но вы также направили меня в правильном направлении для разработчиков инфраструктуры. Как насчет разработчиков приложений, которые будут использовать инфраструктуру, но не вносят в нее непосредственное участие? Я пытаюсь найти лучший способ сделать локальную/виртуальную среду для PHP-разработчиков тоже. –

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