Upload
jetbrains-russia
View
44
Download
3
Embed Size (px)
Citation preview
DevOps в проекте Upsource —
Andrey Sizov Senior System Administrator
IT Department
Новосибирск, 10 ноября 2016
План —• Несколько слов про Upsource
• С чего мы начинали
• Что мы имеем сейчас
• Планы на будущее
• Заключение
2
Upsource в числах —150 проектов (18K reviews)
2 площадки:
• публичная на AWS
• внутренняя DYOC*
Объем базы данных ~500Gb
Доступность 24x7x365
* Drink Your Own Champagne
3
Разработчики: —
«Мы придумали классный продукт.
Давайте быстро его задеплоим!»
4
В самом начале (09/2014) —2 VMs на vSphere:
•1 App
•1 HyperTable
CentOS 6, Docker 0.x
Монолитный контейнер с приложениями
Деплоймент из TeamCity
5
В самом начале (09/2014) —
6
Плюсы:
• Быстрый старт
• Стали понятны требования
• Разработчики могли выкладывать
билды самостоятельно (но боялись)
В самом начале (09/2014) —
7
@JetBrains. Все права защищены
Проблемы:
• Риск потери данных при редеплое:
- “плохой” билд
- проблемы базы
• Downtime ~15 минут в момент деплоймента
• Вся инфраструктура еще в ручном режиме
Разработчики: —
«Круто, но переживаем за данные при
деплойменте :-(
Давайте придумаем что-нибудь безопасное!»
8
Green/Blue схема (01/2015) —2 набора по 2 VM:
• 2 App
• 2 HyperTable
Read only режим
Импорт дельты
9
Green/Blue схема (01/2015) —
10
Плюсы:
• Нет риска потери данных при
деплойменте
• Каждый деплоймент - Disaster
recovery, проверяем бекапы
Green/Blue схема (01/2015) —
11
Проблемы:
• Инфраструктура не в коде, сложно
обновлять
• DNS меняется очень долго на
некоторых клиентах
Разработчики: —
«Круто, теперь стали понятны требования!
Хотим таких же стеков для теста, препрода
и т.д.»
12
Текущая инфраструктура —Green/Blue схема выкладки
HT заменили на Cassandra
9 VM:
• 1 единый manager
• green and blue стеки:
- 1 app
- 3 cassandra nodes
13
Текущая инфраструктура —Контейнер на каждое приложение
• 1x OpsCenter
• 1x Analyzer
• 2x Frontend
• 2x Intelligence
14
Текущая инфраструктура —Под капотом:
• vSphere
• CoreOS
• Docker
Деплоймент
• Ansible
15
Текущая инфраструктура —Мониторинг:
• Nagios -> Zabbix
• StatusCake & New Relic
Логи:
• LogFaces
16
Текущая инфраструктура —Плюсы:
• Инфраструктура и деплоймент полностью автоматизированы
• Все в коде => новые стеки создаем из TeamCity, меняя параметры
• Моментальное переключение Green/Blue стеков
• Ansible - легко управлять инфраструктурой
• Никаких ручных действий
• Все действия записаны: изменения в git, результаты в TeamCity
buildlogs
17
Разработчики: —«Круто, теперь поговорим о планах на будущее.
Хотим включить развертывание
инфраструктуры в продукт!
Чтобы пользователи тоже могли ее
использовать!»
18
Планы на будущее —• Кластеризация приложения
• Автоматическое масштабирование stateless-компонент
• Поддержка K8S/Swarm/etc
• Публичные docker имиджи на hub.docker.com
• Объединение площадок в AWS
19
Итоги —• Разработчики вовлечены в задачи инфраструктуры
• Переиспользуемые код и паттерны в других проектах
• CI/CD => минимальное время деплоймента новых фичей
• Каждая задача - конфигурация в TeamCity
• Разработчики выкладывают новые версии на разные стеки сами
и без страха!
• 99,96% uptime по версии StatusCake
20
Спасибо за внимание —
jetbrains.com
Andrey Sizov
Senior System Administrator
https://github.com/varsy/