в соборке приложений на базе Zope; – очень большое разнообразие окружения - главная сложность в развёртывании приложения; – получение предскажуемого результата требует как то изолироваться от клиентского окружения. Решение: – собственная сборка Python в которую устанавливалось приложение; – автоматизация с помощью make.
возникает желание использовать Python для автоматизации развёртывания; – внутренний прототип системы с конфигом на базе формата ConfigParser – секции описывали вещи, которые надо собирать; – несколько встроенных рецептов для сборки и возможность создавать сторонние рецепты; – всё ещё используется своя сборка Python для изоляции. Результат: решенно сделать zc.buildout.
и установку пакетов и их зависимостей. Результат: новая версия zc.buildout использует setuptools. Но easy_install устанавливал зависимости, но не обновлял их. Результат: следующая версия zc.buildout использует setuptools на более низком уровне, реализуя свою логику работы с пакетами.
– Запуск инструментов для сборки программ – Выполнение программ и шаблонов для создания скриптов и конфигов – Применим на всех стадиях, от разработки до выкатки
Apache Ant Buildout – более высокоуровневый. Он сам может использовать make и ant как часть процесса сборки. – Puppet, chef и др. Buildout – сфокусирован на конкретном приложении. Puppet, chef и др. могут использовать buildout для решения своих задач.
должен быть одинаков в одинаковом окружении (OS и версия Python). – Автоматизация – с помощью одной/двух простых команд должна получаться готовая к работе система. – Приложение должно быть самодостаточным настолько насколько это возможно.
является обычным питонячим классом с методами: • install() • update() – в одном пакете может быть несколько рецептов; – Buildout автоматически скачивает и устнаваливает пакеты с рецептами.