21
DevOps в проекте Upsource Andrey Sizov Senior System Administrator IT Department Новосибирск, 10 ноября 2016

DevOps в проекте Upsource. Андрей Сизов, System Administrator

Embed Size (px)

Citation preview

Page 1: DevOps в проекте Upsource. Андрей Сизов, System Administrator

DevOps в проекте Upsource —

Andrey Sizov Senior System Administrator

IT Department

Новосибирск, 10 ноября 2016

Page 2: DevOps в проекте Upsource. Андрей Сизов, System Administrator

План —• Несколько слов про Upsource

• С чего мы начинали

• Что мы имеем сейчас

• Планы на будущее

• Заключение

2

Page 3: DevOps в проекте Upsource. Андрей Сизов, System Administrator

Upsource в числах —150 проектов (18K reviews)

2 площадки:

• публичная на AWS

• внутренняя DYOC*

Объем базы данных ~500Gb

Доступность 24x7x365

* Drink Your Own Champagne

3

Page 4: DevOps в проекте Upsource. Андрей Сизов, System Administrator

Разработчики: —

«Мы придумали классный продукт.

Давайте быстро его задеплоим!»

4

Page 5: DevOps в проекте Upsource. Андрей Сизов, System Administrator

В самом начале (09/2014) —2 VMs на vSphere:

•1 App

•1 HyperTable

CentOS 6, Docker 0.x

Монолитный контейнер с приложениями

Деплоймент из TeamCity

5

Page 6: DevOps в проекте Upsource. Андрей Сизов, System Administrator

В самом начале (09/2014) —

6

Плюсы:

• Быстрый старт

• Стали понятны требования

• Разработчики могли выкладывать

билды самостоятельно (но боялись)

Page 7: DevOps в проекте Upsource. Андрей Сизов, System Administrator

В самом начале (09/2014) —

7

@JetBrains. Все права защищены

Проблемы:

• Риск потери данных при редеплое:

- “плохой” билд

- проблемы базы

• Downtime ~15 минут в момент деплоймента

• Вся инфраструктура еще в ручном режиме

Page 8: DevOps в проекте Upsource. Андрей Сизов, System Administrator

Разработчики: —

«Круто, но переживаем за данные при

деплойменте :-(

Давайте придумаем что-нибудь безопасное!»

8

Page 9: DevOps в проекте Upsource. Андрей Сизов, System Administrator

Green/Blue схема (01/2015) —2 набора по 2 VM:

• 2 App

• 2 HyperTable

Read only режим

Импорт дельты

9

Page 10: DevOps в проекте Upsource. Андрей Сизов, System Administrator

Green/Blue схема (01/2015) —

10

Плюсы:

• Нет риска потери данных при

деплойменте

• Каждый деплоймент - Disaster

recovery, проверяем бекапы

Page 11: DevOps в проекте Upsource. Андрей Сизов, System Administrator

Green/Blue схема (01/2015) —

11

Проблемы:

• Инфраструктура не в коде, сложно

обновлять

• DNS меняется очень долго на

некоторых клиентах

Page 12: DevOps в проекте Upsource. Андрей Сизов, System Administrator

Разработчики: —

«Круто, теперь стали понятны требования!

Хотим таких же стеков для теста, препрода

и т.д.»

12

Page 13: DevOps в проекте Upsource. Андрей Сизов, System Administrator

Текущая инфраструктура —Green/Blue схема выкладки

HT заменили на Cassandra

9 VM:

• 1 единый manager

• green and blue стеки:

- 1 app

- 3 cassandra nodes

13

Page 14: DevOps в проекте Upsource. Андрей Сизов, System Administrator

Текущая инфраструктура —Контейнер на каждое приложение

• 1x OpsCenter

• 1x Analyzer

• 2x Frontend

• 2x Intelligence

14

Page 15: DevOps в проекте Upsource. Андрей Сизов, System Administrator

Текущая инфраструктура —Под капотом:

• vSphere

• CoreOS

• Docker

Деплоймент

• Ansible

15

Page 16: DevOps в проекте Upsource. Андрей Сизов, System Administrator

Текущая инфраструктура —Мониторинг:

• Nagios -> Zabbix

• StatusCake & New Relic

Логи:

• LogFaces

16

Page 17: DevOps в проекте Upsource. Андрей Сизов, System Administrator

Текущая инфраструктура —Плюсы:

• Инфраструктура и деплоймент полностью автоматизированы

• Все в коде => новые стеки создаем из TeamCity, меняя параметры

• Моментальное переключение Green/Blue стеков

• Ansible - легко управлять инфраструктурой

• Никаких ручных действий

• Все действия записаны: изменения в git, результаты в TeamCity

buildlogs

17

Page 18: DevOps в проекте Upsource. Андрей Сизов, System Administrator

Разработчики: —«Круто, теперь поговорим о планах на будущее.

Хотим включить развертывание

инфраструктуры в продукт!

Чтобы пользователи тоже могли ее

использовать!»

18

Page 19: DevOps в проекте Upsource. Андрей Сизов, System Administrator

Планы на будущее —• Кластеризация приложения

• Автоматическое масштабирование stateless-компонент

• Поддержка K8S/Swarm/etc

• Публичные docker имиджи на hub.docker.com

• Объединение площадок в AWS

19

Page 20: DevOps в проекте Upsource. Андрей Сизов, System Administrator

Итоги —• Разработчики вовлечены в задачи инфраструктуры

• Переиспользуемые код и паттерны в других проектах

• CI/CD => минимальное время деплоймента новых фичей

• Каждая задача - конфигурация в TeamCity

• Разработчики выкладывают новые версии на разные стеки сами

и без страха!

• 99,96% uptime по версии StatusCake

20

Page 21: DevOps в проекте Upsource. Андрей Сизов, System Administrator

Спасибо за внимание —

jetbrains.com

Andrey Sizov

Senior System Administrator

[email protected]

https://github.com/varsy/