Continuous Deployment: шаг номер 0

Так как у меня тут назрела необходимость регулярно поставлять (чуть позже расскажу зачем), то я решил что пора и себя порадовать работающим Continuous Delivery. А так как я люблю делиться знаниями, постараюсь на более-менее конкретных примерах рассказать что и как. Сегодня расскажу о том, какие инструменты выбрал, далее будут посты про то, как эти инструменты готовить.

Пару слов про код. Grails проект, с сервисно-ориентированной архитектурой. Из более-менее интересного – плагин database migrate, чтобы не было мучительно больно с базой данных. База данных – облачный postgres. Код улетает в Git.

Итак, основой для нас будут CI (берем Jenkins) + Ansible. Почему они. Jenkins я знаю очень давно, он мне нравится своей простотой, да и проект у меня java-oriented. Будем его использовать для сборки, запуска тестов и анализа кода. С Ansible я познакомился недавно, спасибо за это знакомство Кириллу Мокевнину. Очень простой инструмент, нужен он мне собственно для выкатки на две prod ноды, закрытие апачем, чтобы пользователь не был в курсе, что апдейст собственно идет. У Ansible, кстати, буквально неделю назад вышел новый релиз, советую обновиться.

Про тесты. Тут весьма просто:

  • Spock – для groovy кода
  • QUnit – для javascript кода, а его много
  • Selenium Webdriver – для веб-тесов

Дальше все цепочка следующего вида:

  • commit
  • build + spock tests
  • qunit tests
  • deploy on dev
  • selenium tests
  • performance tests
  • selenium tests
  • deploy on prod

Про нагрузочное тестирование. Нашел сервис под названием LoadImpact – будем тестить.

Логи – уже знакомая связка LogStash + ElasticSearch + Kibana.

Про мониторинг пока думаю. Скорее всего это будет GraphiteD с обвязкой из полезных тулов.

Stay tuned!

Retweet

Categories: Без рубрики

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">