Практики деплоймента и оптимизации Вашего Plone-сайта

В статье "Best practices in deploying and optimizing your Plone site" автор рассказывает о темах, которые будут рассматриваться на курсах на конференции по Plone в Будапеште. Автор: Nate Aune

Несмотря на то, что имеется вполне достаточное количество информации на plone.org и в других местах о том, как разместить и оптимизировать Plone-сайт, возможности прохождения официального обучения по этой теме, кажутся скромными и далекими. Так что я очень рад буду вести новые обучающие курсы на предстоящей Plone-конференции по Plone 2009 в Будапеште, имеющей название Практики деплоймента и оптимизации Plone-сайтов.

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

Идея состоит в том, что написание ряда статей 1) поможет мне подготовить материалы для обучения, 2) получить отзыв сообщества на эти материалы 3) сообщить о тренинге. Т.е. убить "трех зайцев" одним выстрелом!

Двухдневные курсы будут состоять из трех частей:

  1. Создание сценария деплоймента
  2. Настройка рабочей среды
  3. Тестирование и автоматизация

Что вы узнаете в этой статье

В этой первой из серии статей, мы рассмотрим основной этап создания Plone-сайта: это создание buildout. Он будет включать:

  1. настройку среды разработки
  2. создание virtualenv
  3. создание buildout
  4. запуск buildout
  5. создание Plone-сайта

Настройка вашей среды разработки

Мы предположим, что у вас стоит Unix-подобная операционная система, или MacOSX, Linux или BSD и что на вашем компьютере установлен Python 2.4 . Если нет, то следуйте этим инструкциям на Debian/Ubuntu Linux. Основная идея здесь заключается в том, что вам нужны build tools, subversion, python 2.4.x, и пакеты python dev, для того, чтобы вы смогли запустить buildout и скомпилировать Zope.

$ sudo aptitude install build-essential python-dev python2.4 python2.4-dev subversion

Установка модулей Python с помощью easy_install

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

$ wget http://peak.telecommunity.com/dist/ez_setup.py
$ sudo python ez_setup.py

Это позволит запустить ряд команд для установки setuptools, который запустит easy_install, команду, которую мы будем использовать для установки других утилит. Прежде, чем мы сможем создать наш buildout, мы должны построить virtualenv.

Создание "песочниц" с помощью virtualenv

Virtualenv позволит нам создать виртуальную среду или "песочницу" с помощью Python. Это позволит отделить среду разработки Python для нашего конкретного проекта от окружения Python в операционной системе. Мы избегаем загрязнения системы Python-модулями, характерными только для этого проекта. Это также позволяет разным проектам иметь различные версии Python-модулей.

$ sudo easy_install-2.4 virtualenv

В вашей /usr/local/bin директории под названием virtualenv появится следующий сценарий.

$ cd /opt/local/buildouts  (or wherever you like to keep your buildouts)
$ virtualenv --python=python2.4 budapesttraining  (we use --python=python2.4 to make sure that Python 2.4 is used)

Вы увидите что-то вроде этого:

Running virtualenv with interpreter /opt/local/bin/python2.4
New python executable in budapesttraining/bin/python
Installing setuptools.............done.

Теперь мы можем перейти в этот каталог и активировать virtualenv.

$ cd budapesttraining
$ source bin/activate

Ваша командная строка изменится на (budapesttraining), поэтому вы будите знать, что этот virtualenv теперь активен. Чтобы его дезактивировать, просто наберите "deactivate".

Создание buildout

Теперь создадим каталог buildout. Как правило, мы бы использовали шаблон ZopeSkel, но в настоящее время он по-прежнему использует plone.recipe.plone вместо пакетов Plone (egg), поэтому мы будем создавать buildout вручную, но это приведет к более упрощенному файлу buildout.cfg. Если в Zope достаточное количество пакетов (egg), то этот buildout станет даже более упрощенным, так как мы можем просто сказать eggs = Zope, чтобы установить последнюю версию Zope.

mkdir buildout
cd buildout
wget http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py
[mate|vi|emacs] buildout.cfg  (use your text editor of choice to edit a buildout.cfg file]

Измените файл buildout.cfg следующим образом:

[buildout]
extends = http://dist.plone.org/release/3.3/versions.cfg
versions = versions
find-links = http://dist.plone.org/thirdparty
parts =
    zope2
    instance

[zope2]
recipe = plone.recipe.zope2install
url = ${versions:zope2-url}
fake-zope-eggs = true

[instance]
recipe = plone.recipe.zope2instance
zope2-location = ${zope2:location}
user = admin:admin
http-address = 8080
eggs =
    PIL
    Plone

Запуск buildout

Сохраните изменения в файле buildout.cfg, а затем запустите эти две команды:

$ python bootstrap.py
$ bin/buildout -v

Запуск Zope

Попробуйте запустить его с помощью этой команды, которая откроет Zope на переднем плане (поэтому вы сможете увидеть всю информацию отладки):

$ bin/instance fg

Если все пойдет хорошо, то вы увидите следующее:

2009-08-25 21:04:30 INFO Zope Ready to handle requests

Создание нового Plone-сайта

Затем мы создадим новый Plone-сайт.

  1. Зайдите в Zope из вашего web-браузера: http://localhost:8080/manage и введите свое имя пользователя и пароль (Admin: Admin).
  2. В меню, выберите “Plone Site”. Присвойте ему ID “Plone”.
  3. Теперь вы можете зайти в http://localhost:8080/Plone чтобы посмотреть ваш новый Plone-сайт!

Заключение

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

Для более детального рассмотрения того, как управлять проектом Plone, используя buildout, я рекомендую воспользоваться превосходным учебником Мартина Аспели (Martin Aspeli) на plone.org: Управление проектами с помощью buildout.

В следующей статье мы рассмотрим как:

  1. Check in/out изменения кода в subversion-репозиторий
  2. Настроить egg proxy, чтобы избежать неудачи buildout, если сервер pypi не работает
  3. Готовить релизы модулей eggs для pypi, plone.org и вашего собственного egg-сервера

Практический курс обучения с Plone-экспертами

Если вы собираетесь посетить Конференцию по Plone в Будапеште, и хотели бы пройти наш всесторонний обучающий курс Best Practices для деплоймента и оптимизации Plone-сайтов, то двух дневный курс будет стоить для вас всего лишь 300 $ USD. Полное расписаниесмотри здесь. Если у вас есть желание узнать информацию по другим темам, то присылайте свои предложения!

Chris Calloway недавно опубликовал интересную информацию о других возможностях обучения по Plone, которые будут предложены в Будапеште. Это прекрасная возможность улучшить свои знания и получить ответы на все ваши вопросы по Plone.

Оригинал статьи на http://blog.jazkarta.com

Перевод КОМТЕТ komtet.ru

Вам также может помочь