Как автоматизировать настройку среды разработки?

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

Например, чтобы настроить мою среду, сначала мне пришлось установить eclipse, затем SVN, Apache, Tomcat, MySQL, PHP. После этого я заполнил БД, и мне пришлось делать небольшие изменения в различных файлах конфигурации и т.д. Есть ли способ сократить этот труд до одного щелчка?

Ответ 1

Существует несколько вариантов, и иногда их полезно:

  • автоматическая установка
  • образов дисков
  • виртуализация
  • контроль исходного кода

Подробная информация о различных параметрах:

  • Автоматическая установка Инструменты для автоматизации установки и настройки рабочей станции различных сервисов, инструментов и файлов конфигурации:

    • Puppet имеет кривую обучения, но является мощным. Вы определяете классы машин (ящик разработки, веб-сервер и т.д.), А затем выполняет то, что необходимо для установки, настройки и сохранения окна в правильном состоянии. Вы попросили один клик, но Puppet по умолчанию имеет нулевой щелчок, поскольку он периодически проверяет вашу машину, чтобы убедиться, что она по-прежнему настроена по желанию. Он обнаружит, когда файл или режим был изменен, и устраните проблему. В настоящее время я использую это, чтобы поддерживать несколько ящиков RedHat Linux, хотя он способен обрабатывать тысячи. (Не поддерживает Windows с 2009-05-08).
    • Cfengine - еще один. Я видел, как это успешно использовалось в магазине с 70 инженерами, использующими RedHat Linux. Его ограничения были частью причины Кукольного.
    • SmartFrog - еще один инструмент для настройки хостов. Он поддерживает Windows.
    • Сценарии оболочки. RightScale содержит примеры настройки образа Amazon EC2 с использованием сценариев оболочки.
    • Установить пакеты. В блоке Unix это можно сделать полностью с пакетами, а в Windows msi может быть вариант. Например, RubyWorks предоставляет вам полный стек Ruby on Rails, устанавливая один пакет, который, в свою очередь, устанавливает другие пакеты через зависимости.
  • Изображения дисков Затем, конечно, есть также инструменты для создания образов диска для хранения изображения настроенного хоста, чтобы его можно было восстановить на другом хосте. Как и в случае с виртуализацией, это особенно хорошо подходит для тестовых ящиков, так как легко восстанавливать объекты до чистого листа. Сохранение актуальности по-прежнему остается проблемой - стоит ли создавать новые изображения только для распространения изменений в файле конфигурации?

  • Virtualization - это еще один вариант, например создание копий Xen, VirtualPC или Изображение VMWare для создания новых хостов. Это особенно полезно для тестовых ящиков, так как независимо от того, какой беспорядок создает тест, вы можете легко восстановить чистое, известное состояние. Как и в случае с инструментами для создания образов дисков, для поддержания актуальности хостов требуется больше ручных шагов и бдительности, чем при использовании автоматического инструмента установки/настройки.

  • Контроль исходного кода. После того, как вы установили/настроили необходимые инструменты, тогда сборка должна быть проверкой того, что необходимо в репозитории исходного кода и его создании.

В настоящее время я использую комбинацию выше, чтобы автоматизировать процесс следующим образом:

  • Начните с установки barebone OS на гостевой гостевой машине VMWare.
  • Запустите оболочку script, чтобы установить Puppet и получить ее конфиги из исходного кода
  • Кукла для установки инструментов/компонентов/конфигов
  • Проверьте файлы из исходного кода для создания и развертывания нашего веб-приложения.

Ответ 2

Я наткнулся на этот вопрос и был очень удивлен, что никто еще не упомянул Vagrant.

Vagrant

Как уже упоминал Pete TerMaat и другие, виртуализация - отличный способ управлять и автоматизировать среды разработки. Бродяга в основном отвлекает боль от настройки этих виртуальных ящиков.

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

Больше не нужно сражаться с OSX или Windows, чтобы установить PHP, MySQL и т.д. Все программное обеспечение живет и работает внутри виртуальной машины. Вы можете даже SSH с помощью vagrant ssh. Если вы допустили ошибку или сломали что-то, просто vagrant destroy и vagrant up, чтобы начать с новой.

Vagrant автоматически создает синхронизированную папку в вашей локальной файловой системе, то есть вам не нужно разрабатывать в виртуальной машине (то есть использовать Vim). Используйте любой ваш редактор.

Теперь я создаю новый "Бродячий ящик" почти для каждого проекта. Все мои настройки сохраняются в репозитории проектов, поэтому легко привлечь другого члена команды. Им просто нужно вытащить репо и запустить vagrant up, и они буквально готовы к работе.

Это также упрощает обработку проектов с различными требованиями к программному обеспечению. Возможно, у вас есть некоторые проекты, которые полагаются на PHP 5.3, но некоторые новые, которые запускают PHP 5.4. Просто установите версию, которую вы хотите для этого проекта.

Проверьте это!

Ответ 3

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

Это означает, что вы также должны проверить вспомогательную инфраструктуру, такую ​​как Makefiles, ant buildfiles и т.д., и параметры для таких инструментов, как файлы проекта IDE.

Это должно заботиться о настройке для отдельных проектов.

Для базовой настройки машины вы можете использовать стандартный образ. Другой вариант - использовать ваши платформы для автоматизации установки. В Linux вы можете создать мета-пакет, который зависит от всех необходимых вам пакетов. В Windows аналогичная вещь должна быть возможна с использованием MSI или тому подобного.

Edit:

В идеале, вместо проверки в вспомогательной инфраструктуре, вы проверяете информацию, которая позволяет сборке создавать вспомогательную инфраструктуру. Это подход, выбранный, например, система сборки GNU (автотюфы и т.д.) или Maven. Это еще более изящно, потому что вы можете (теоретически) генерировать инфраструктуру для любой (поддерживаемой) среды сборки, таким образом, вы не обязаны, например, одна конкретная среда IDE и настройки в вспомогательной инфраструктуре (пути и т.д.) не должны дублировать основные настройки проекта.

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

Ответ 4

Мне нравится использовать Virtual PC или VMware для виртуализации среды разработки. Это обеспечивает стандартную среду "dev", которая может быть передана разработчикам. Вам не нужно беспокоиться о программном обеспечении, которое пользователь может добавить в свою систему, который может конфликтовать с вашей средой разработки. Это также дает мне возможность работать в двух проектах, в которых среды разработки не могут находиться в одной системе (используя две разные версии базовой технологии).

Ответ 5

Используйте puppet, чтобы настроить как среду разработки, так и производственную среду. Использование первоклассной системы автоматизации - единственный способ масштабирования ваших операционных систем.

Ответ 6

Всегда есть возможность использовать виртуальные машины (см., например, VMWare Player). Создайте одну среду и скопируйте ее для каждого нового сотрудника с минимальной необходимой конфигурацией.

Ответ 7

В предыдущем месте у нас было все (и я имею в виду ВСЕ) в SCM (clearcase, затем SVN). Когда новый разработчик может в них установить ClearCase | SVN и втянуть репозиторий. Это также относится к случаю, когда вам нужно обновить конкретный lib/tool, так как вы можете просто обновить свою команду разработчиков.

Мы использовали два репо для этого, поэтому код и инструменты/конфиг жили в разных местах.

Ответ 8

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

https://github.com/devstructure/blueprint (Blueprint @Github)

Ответ 9

Я сам об этом думал. Есть несколько других технологий, которые вы могли бы добавить в микс. Вот то, что я сейчас настраиваю:

  • Предварительно засеянные установочные образы на основе PXE (Debian Squeeze). Вы можете запустить старую машину (или новое виртуальное устройство) и выбрать изображение из меню загрузки PXE. Это имеет большое преимущество в том, что вы можете установить свою среду на физических машинах (в дополнение к виртуальным устройствам).
  • Кто-то уже упоминал Кукольный. Я использую CFEngine, но это аналогичная сделка. По сути ваша конфигурация документирована и централизована в файлах политики, которые постоянно выполняются агентом на клиенте.
  • Если вам не нужна жесткая среда (например, разработчики могут выбрать комбинацию наборов инструментов), вы можете перевернуть свои собственные пакеты deb, чтобы новые разработчики могли набирать sudo apt-get install acmecorp-eclipse-env или sudo apt-get install acmecorp-intellij-env, например.
  • Немного не по теме, но если вы запустите среду на основе Debian (то есть Ubuntu), рассмотрите возможность установки apt-cacher (прокси-сервера пакета). В дополнение к экономии полосы пропускания, это сделает вашу установку намного быстрее (поскольку пакеты кэшируются в вашей локальной сети).

Ответ 11

Если вы используете компьютеры в стандартной конфигурации, вы можете создать диск с новой прекрасно настроенной установкой - это очень популярный подход во многих корпорациях (а не только для разработчиков). Если вам нужны отдельно настроенные ОС, вы можете tar-bz2 все добавленные и измененные файлы, как только сконфигурированная ОС будет преобразована в вашу желаемую настройку, и просто разблокируйте ее как root, чтобы сделать нужную среду с нуля.

Ответ 12

если вы используете аромат linux, у вас, вероятно, есть система управления пакетами: думает .rpm для fedora/redhat или .deb для ubuntu/debian. многие из описанных вами вещей уже имеют доступные пакеты: svn, eclipse и т.д., вы можете сворачивать свои собственные пакеты для программного обеспечения конкретной компании, создавать репозиторий (возможно, только в локальной сети), а затем ваша настройка может быть сведена к одному bash script, который добавит компанию repo в /etc/apt/sources.list(debian/ubuntu), а затем вызовет команду, например,


/home/newhire$ apt-get update && apt-get install some complete package list

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

Ответ 13

Попробуйте DevScript в http://nsnihalsahu.github.io/devscript. Его одна команда, devscript lamp или devscript laravel или devscript django. Примерно через несколько минут, в зависимости от скорости вашего интернет-сотрудничества.

Ответ 14

Вы можете загрузить последнюю версию Java JDK с сайта Oracle Java - Java SE Downloads. Инструкции по установке JDK вы найдете в загруженных файлах, следуйте приведенным инструкциям по установке и настройке установки. Наконец, установите переменные среды PATH и JAVA_HOME, чтобы обратиться к каталогу, который содержит java и javac, обычно java_install_dir/bin и java_install_dir соответственно.

Если вы используете Windows и устанавливаете JDK в C:\jdk1.8.0_102, вам нужно будет поместить следующую строку в ваш файл C:\autoexec.bat.

set PATH=C:\jdk1.8.0_102\bin;%PATH%
set JAVA_HOME=C:\jdk1.8.0_102

Кроме того, вы также можете щелкнуть правой кнопкой мыши Мой компьютер, выбрать "Свойства", затем "Дополнительно", затем "Переменные среды". Затем вы обновите значение PATH и нажмите кнопку OK.

В Linux, если SDK установлен в /usr/local/jdk 1.8.0_102, и вы используете оболочку C, вы должны поместить следующий код в свой файл .cshrc.

setenv PATH /usr/local/jdk1.8.0_102/bin:$PATH
setenv JAVA_HOME /usr/local/jdk1.8.0_102

В качестве альтернативы, если вы используете студию Android, она автоматически узнает, где вы установили свою Java. Android IDE

Существует так много современных технологий для разработки приложений для Android, знакомых технологий, которые преимущественно используют инструменты следующим образом

Android Studio

Eclipse IDE(Deprecated)

Elysium Academy Обеспечить обучение для Android, MICROSOFT, REDHAT, CEH, и VMware с сертифицированными профессионалами, имеющими очень хороший опыт и навыки.