insiki
@insiki
broken pipe

Как правильно организовать инфраструктуру продакшена и процессы разработки, тестирования и деплоя?

Предположим, что мы с вами - некая IT компания, которая для создания своих веб-продуктов нанимает разработчиков, пусть это будут Ruby-разработчики (мы не держим их в штате). У нашей компании есть собственные серверные мощности, которые можно задействовать (под хостинг, тестирование и т.д.).
В качестве отправной точки будем использовать поднятый нашими админами локальный git-сервер (например GitLab), так как разрабатываемые нами проекты - закрыты (нанятые разработчики ставят подписку о неразглашении), и bug-трэкер (например Redmine).
С этого момента необходимо продолжить организацию инфраструктуры и процессов (разработка, коммиты, тестирование, приемка, деплой), удобных как для разработчиков, так и для нас.
  • Вопрос задан
  • 1079 просмотров
Решения вопроса 1
Так, система управлениями версиями у вас есть, теперь посмотрите на автотесты, юнит тесты, прочие системы автоматизированного тестирования, затем на системы хранения версий\отдельных библиотек , затем на системы управления серверами и ПО на них, системы мониторинга, а так же та то, как это всё связать, дополнительно можно посмотреть в сторону devOps

Если рассматривать сферического коня в вакууме, то примерно так:
разработчик делает коммит в git -> git c помощью хуков проверяет синтаксис ( если это код), еще что-либо, если все окей, то коммит проходит -> некая система типа jenkins\bamboo\etc видит новый коммит, разворачивает новый поделку, затем прогоняет юнит\смоук\прочие автотесты -> если тесты не прошли, то создаёт тикет в баг трекере , если тесты прошли - проставляет метку\версию , возможно заливает результат в некий репозиторий, либо в какую-нибудь хранилку ( типа artifactory ) -> система управления серверами ( либо в ручном режиме админ ) обновляет сервера -> по окончанию - неплохо бы проверить, что покажет мониторинг и отправить письмо радости менеджеру проекта.

Как-то так, но опять же , это конь в вакууме в идеальном мире. А еще можно книжки разные почитать =)

UPD: а еще вот хороший статья - habrahabr.ru/post/197026
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev Куратор тега Системное администрирование
software engineer
Нельзя брать некую теоретическую компанию и делать теоретическую структуру продакшена.
Надо брать конкретный продукт, конкретные требования заказчика, который платит деньги, и отталкиваться от этого.

Можно настраивать CI, можно разводить agile процессы, но главное - выяснить требования заказчика, и подстраиваться под них.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы