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