SlideShare a Scribd company logo
1 of 40
Continuous Deployment
by Smartling, Inc
#SmartlingDevLove
Andrey Akselrod
Smartling, Founder & CTO
@chelya
Alexey Shesterov
Smartling, Senior Engineer
@AlexShesterov
Что мы делаем?
● Cloud-based enterprise software platform for
translation management
● Used for websites and dynamic Web
applications, desktop & mobile apps,
business documents, and all kinds of digital
content
Клиенты
Smartling Operational Scale
3active data centers: US
East, US West, Ireland
400+servers
~200production
deployments a month
2B+page views/month
84K+metrics monitored
17K+triggers for alerts
Техническая Команда
Нью-Йорк: 19
Днепропетровск: 32
Киев: <Набираем команду>
Технологии
Java
+
Everything you can imagine
Continuous Deployment == Continuous
Releases
Continuous Deployment != Continuous
Integration
Мухи отдельно, котлеты отдельно
Жизнь До Того Как
● Тонна всего идет в релиз
○ Баги гаранитированны
○ Сложно понять из кучи нового кода где и что не
работает
○ Откатить назад сложно, иногда невозможно
● Баги которые бысто фиксятся ждут неделями,
чтобы быть запущенными в прод
● Давление закончить функциональность любой
ценой до запуска. Качество страдает
● В день релиза никто не работает и все в
ожидании бессонной ночи
● Фидбэк от пользователей приходит поздно
после существенного вложения времени в
девелопмент
● Отсутствие раннего фидбэка увеличивает
нагрузку на планирование и скатывается в
waterfall вместо agile
● Результаты фидбэка ждут следующего релиза -
циклы девелопмента заметно удлиняются
OODA Loop
Переходный период - команда
Сложности переходного периода
● Обязательна поддержка менеджментом
o Переход занимает время и ресурсы
o Полный переход может занять 6-8 месяцев
● Team culture претерпит существенные изменения
o Найти champions и заручится их поддержкой
o Лучше получить поддержку других отделов
компании обьяснив что они получат в конце
Сложности переходного периода
● Хороший повод создать DevOps
● Не нужно ждать идеальной имплементации.
Начните с одного компонента и с одной кнопки.
● Празднуйте каждое небольшое продвижение вперед
Что мы делали
● Команда пассивно-агессивно делать ничего не
хотела
● Перед запуском мы много убеждали, дискутировали
и шантажировали команду.
● Отменили недельные релизы.
● Добавили стикеры на мониторы на каждый деплой.
Смайлики и жопы. Смайлик - успешный деплой,
жопа - деплой проблемный
● Поначалу все боялись деплоить, постепенно
привыкли.
Смайлики и жопы
Правила Continuous Deployment
● Master (git) or Trunk (svn) is always stable
● Every commit to master (trunk) is deployed to prod asap
● Continuous integration
● Automated testing => where is QA Team?
● Single button deployment
● Monitoring
● Zero downtime software update
● Communication. Every deployment is in chat. Every
deployment should be confirmed. Skype => Slack
● Разработчик ответственный за фичу от начала и до
конца
QA
● Максимальная автоматизация
o unit testing
o integration testing
o front end testing - нужен баланс!
● Ручное тестирование делается
разработчиками, не QA
● QA ответственны за автоматизацию
Continuous Integration
● Bamboo or Jenkins
● Every branch is built and tested on every
commit
● Only green builds could be deployed
● Build time is critical (fighting for < 10min)
Bamboo
CDeploy
Slack communication
Monitoring
● Examples:
o RPS
o avg resp time & percentile
o error rates
o CPU Utilization
o transaction rates
● Correlate Deployments with Metrics
● Мы используем: Splunk, Zabbix, Graphite,
New Relic, Loggly
Splunk
Splunk
● Простой и мощный язык запросоввыбор
источника, временного диапазона, группирование, ...
● Визуализация
● Запрос отображается в URLбыстрый обмен
запросами в чате
● Сохранённые запросы
● Автоматические уведомления (Alerts)Не
нужно изобретать колесо для уведомлений, просто throw new
MyException(); или log.warn("My message");
● По коду ошибки — прямо в stack trace! Не
нужно подробного описания как воспроизвести ошибку.
Нет необходимости вручную искать ошибку в журналах.
● “Log duty” — «Дежурство по
журналам»Поиск ошибок, анализ медленных запросов к БД,
анализ кода► Находим проблемы до того,
как их найдут клиенты!
Splunk
New Relic
New Relic
● Метрики для Web-приложений
● Отслеживание всех уровней, вкл. JS
● Метки deployment’ов
● Анализ поведения пользователей
● Рассылка отчётов
Zabbix
Wallboards
DB Updates
● Use DB version control system. DBMaintain
● Every change to DB is reviewed by two leads
● There is a single button deploy of DB changes
● Two phase DB updates
o Phase 1: new structures, backward compatible
 New columns always nullable, etc.
o Phase 2: cleanup of unused stuff
Результаты
● Наступает привыкание - жизнь без
continuous deployment вызывает
недоумение.
● Результат твоей работы сразу начинает
использоваться юзерами. Это клево.
● Менеджмент доволен - идет постоянная
череда запусков. Пользователи довольны
- постоянно идут новые фичи.
● Быстрый фидбек и итерации приводят к
продукту который гораздо лучше
адаптирован к рынку
● Конкуренты не понимают как вы их стали
с легкостью обходить
● Приходит уважение других отделов
компании
● Практически нулевая текучка людей в
команде
Обсуждение
#SmartlingDevLove

More Related Content

What's hot

Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?SQALab
 
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumSQALab
 
Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.ScrumTrek
 
Xp days 2019 - Why startups need SRE practices
Xp days 2019 - Why startups need SRE practicesXp days 2019 - Why startups need SRE practices
Xp days 2019 - Why startups need SRE practicesAlexey Andreev
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQubePositive Hack Days
 
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?CEE-SEC(R)
 
Badger — инструмент для мониторинга качества продуктов
Badger — инструмент для мониторинга качества продуктовBadger — инструмент для мониторинга качества продуктов
Badger — инструмент для мониторинга качества продуктовSQALab
 
Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)Alexander Babich
 
Автоматическая сборка и развертывание на платформе 1C
Автоматическая сборка и развертывание на платформе 1CАвтоматическая сборка и развертывание на платформе 1C
Автоматическая сборка и развертывание на платформе 1CAlexey Lustin
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityPositive Hack Days
 
Highway to Сontinuous Integration, Денис Трифонов (2GIS)
Highway to Сontinuous Integration, Денис Трифонов (2GIS)Highway to Сontinuous Integration, Денис Трифонов (2GIS)
Highway to Сontinuous Integration, Денис Трифонов (2GIS)Ontico
 
Free Desktop QA Engineers: implement automation testing
Free Desktop QA Engineers: implement automation testingFree Desktop QA Engineers: implement automation testing
Free Desktop QA Engineers: implement automation testingAlexandr Zinovyev
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
 
Мобильный веб: назад в будущее
Мобильный веб: назад в будущееМобильный веб: назад в будущее
Мобильный веб: назад в будущееBadoo Development
 
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Badoo Development
 
Management of projects
Management of projectsManagement of projects
Management of projectsMageCloud
 
How we built continuous delivery
How we built continuous deliveryHow we built continuous delivery
How we built continuous deliveryAlik Kurdyukov
 
Работа с рисками в Scrum проектах
Работа с рисками в Scrum проектахРабота с рисками в Scrum проектах
Работа с рисками в Scrum проектахDenis Tuchin
 

What's hot (20)

DevOps для 1С
DevOps для 1СDevOps для 1С
DevOps для 1С
 
Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?
 
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью Selenium
 
Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.
 
Xp days 2019 - Why startups need SRE practices
Xp days 2019 - Why startups need SRE practicesXp days 2019 - Why startups need SRE practices
Xp days 2019 - Why startups need SRE practices
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
 
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
 
Badger — инструмент для мониторинга качества продуктов
Badger — инструмент для мониторинга качества продуктовBadger — инструмент для мониторинга качества продуктов
Badger — инструмент для мониторинга качества продуктов
 
Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)
 
Автоматическая сборка и развертывание на платформе 1C
Автоматическая сборка и развертывание на платформе 1CАвтоматическая сборка и развертывание на платформе 1C
Автоматическая сборка и развертывание на платформе 1C
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
 
Highway to Сontinuous Integration, Денис Трифонов (2GIS)
Highway to Сontinuous Integration, Денис Трифонов (2GIS)Highway to Сontinuous Integration, Денис Трифонов (2GIS)
Highway to Сontinuous Integration, Денис Трифонов (2GIS)
 
Free Desktop QA Engineers: implement automation testing
Free Desktop QA Engineers: implement automation testingFree Desktop QA Engineers: implement automation testing
Free Desktop QA Engineers: implement automation testing
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
Мобильный веб: назад в будущее
Мобильный веб: назад в будущееМобильный веб: назад в будущее
Мобильный веб: назад в будущее
 
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
 
Management of projects
Management of projectsManagement of projects
Management of projects
 
Agile
AgileAgile
Agile
 
How we built continuous delivery
How we built continuous deliveryHow we built continuous delivery
How we built continuous delivery
 
Работа с рисками в Scrum проектах
Работа с рисками в Scrum проектахРабота с рисками в Scrum проектах
Работа с рисками в Scrum проектах
 

Viewers also liked

Пётр Зайцев, Percona
Пётр Зайцев, PerconaПётр Зайцев, Percona
Пётр Зайцев, PerconaOntico
 
Zabbix Rootconf2009
Zabbix Rootconf2009Zabbix Rootconf2009
Zabbix Rootconf2009Liudmila Li
 
Jelastic PaaS for DevOps: Hybrid Cloud based on Microsoft Azure
Jelastic PaaS for DevOps: Hybrid Cloud based on Microsoft AzureJelastic PaaS for DevOps: Hybrid Cloud based on Microsoft Azure
Jelastic PaaS for DevOps: Hybrid Cloud based on Microsoft AzureDmitry Lazarenko
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow Vadim Nesterov
 
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Badoo Development
 
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)Zabbix
 
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)Ontico
 

Viewers also liked (9)

Пётр Зайцев, Percona
Пётр Зайцев, PerconaПётр Зайцев, Percona
Пётр Зайцев, Percona
 
Zabbix Rootconf2009
Zabbix Rootconf2009Zabbix Rootconf2009
Zabbix Rootconf2009
 
Jelastic PaaS for DevOps: Hybrid Cloud based on Microsoft Azure
Jelastic PaaS for DevOps: Hybrid Cloud based on Microsoft AzureJelastic PaaS for DevOps: Hybrid Cloud based on Microsoft Azure
Jelastic PaaS for DevOps: Hybrid Cloud based on Microsoft Azure
 
переезд мониторинга
переезд мониторингапереезд мониторинга
переезд мониторинга
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
 
Grafana zabbix
Grafana zabbixGrafana zabbix
Grafana zabbix
 
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
 
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
 
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
 

Similar to Continuous deployment Smartling event

Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Баннерокрутилка на Erlang
Баннерокрутилка на ErlangБаннерокрутилка на Erlang
Баннерокрутилка на ErlangArtyom Gavrichenkov
 
Meet Magento Belarus - Andriy Samilyak
Meet Magento Belarus - Andriy SamilyakMeet Magento Belarus - Andriy Samilyak
Meet Magento Belarus - Andriy SamilyakAmasty
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
 
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...
серёжа пономарёв @ Kuchyn.com.ua junior java developer  программируем по-взро...серёжа пономарёв @ Kuchyn.com.ua junior java developer  программируем по-взро...
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...Sergey Ponomarev
 
Google Update Crash Test или как быстро вернуть доход сайту
Google Update Crash Test или как быстро вернуть доход сайтуGoogle Update Crash Test или как быстро вернуть доход сайту
Google Update Crash Test или как быстро вернуть доход сайтуNetpeak
 
Теория ограничений в Agile команде
Теория ограничений в Agile командеТеория ограничений в Agile команде
Теория ограничений в Agile командеyiiconf
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Yandex
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Yandex
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileKairat Yussupov
 
Jiramania презентации @augspb
Jiramania презентации   @augspbJiramania презентации   @augspb
Jiramania презентации @augspbGonchik Tsymzhitov
 
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Fwdays
 
DevOps в реальном времени
DevOps в реальном времениDevOps в реальном времени
DevOps в реальном времениAndriy Samilyak
 
Шаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеШаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеSQALab
 
Agile: разработка + тестирование
Agile: разработка + тестированиеAgile: разработка + тестирование
Agile: разработка + тестированиеAlexander Byndyu
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON
 
Анти шаблоны непрерывной интеграции
Анти шаблоны непрерывной интеграцииАнти шаблоны непрерывной интеграции
Анти шаблоны непрерывной интеграцииSQALab
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeYehor Herasymchuk
 
MagicPlot @ UXSPb @ IT Global Meetup #7
MagicPlot @ UXSPb @ IT Global Meetup #7MagicPlot @ UXSPb @ IT Global Meetup #7
MagicPlot @ UXSPb @ IT Global Meetup #7Alexander Levantovsky
 

Similar to Continuous deployment Smartling event (20)

Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Баннерокрутилка на Erlang
Баннерокрутилка на ErlangБаннерокрутилка на Erlang
Баннерокрутилка на Erlang
 
Meet Magento Belarus - Andriy Samilyak
Meet Magento Belarus - Andriy SamilyakMeet Magento Belarus - Andriy Samilyak
Meet Magento Belarus - Andriy Samilyak
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
 
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...
серёжа пономарёв @ Kuchyn.com.ua junior java developer  программируем по-взро...серёжа пономарёв @ Kuchyn.com.ua junior java developer  программируем по-взро...
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...
 
Google Update Crash Test или как быстро вернуть доход сайту
Google Update Crash Test или как быстро вернуть доход сайтуGoogle Update Crash Test или как быстро вернуть доход сайту
Google Update Crash Test или как быстро вернуть доход сайту
 
Теория ограничений в Agile команде
Теория ограничений в Agile командеТеория ограничений в Agile команде
Теория ограничений в Agile команде
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-Agile
 
Jiramania презентации @augspb
Jiramania презентации   @augspbJiramania презентации   @augspb
Jiramania презентации @augspb
 
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
 
Team workflow
Team workflowTeam workflow
Team workflow
 
DevOps в реальном времени
DevOps в реальном времениDevOps в реальном времени
DevOps в реальном времени
 
Шаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеШаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проекте
 
Agile: разработка + тестирование
Agile: разработка + тестированиеAgile: разработка + тестирование
Agile: разработка + тестирование
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
 
Анти шаблоны непрерывной интеграции
Анти шаблоны непрерывной интеграцииАнти шаблоны непрерывной интеграции
Анти шаблоны непрерывной интеграции
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 
MagicPlot @ UXSPb @ IT Global Meetup #7
MagicPlot @ UXSPb @ IT Global Meetup #7MagicPlot @ UXSPb @ IT Global Meetup #7
MagicPlot @ UXSPb @ IT Global Meetup #7
 

More from Viktoriya Pridatko

IT рекрутинг без факапов
IT рекрутинг без факаповIT рекрутинг без факапов
IT рекрутинг без факаповViktoriya Pridatko
 
Собеседование как секс. Удовольствие должны получить обе стороны :)
Собеседование как секс. Удовольствие должны получить обе стороны :)Собеседование как секс. Удовольствие должны получить обе стороны :)
Собеседование как секс. Удовольствие должны получить обе стороны :)Viktoriya Pridatko
 
"HR Bullshit в IT. Доколе?"
 "HR Bullshit в IT. Доколе?" "HR Bullshit в IT. Доколе?"
"HR Bullshit в IT. Доколе?"Viktoriya Pridatko
 
Code fest тех.интервью с человеческим лицом
Code fest тех.интервью с человеческим лицомCode fest тех.интервью с человеческим лицом
Code fest тех.интервью с человеческим лицомViktoriya Pridatko
 
Мамонт. "Командная аллергия: как ее избежать когда в команду приходит новый ч...
Мамонт. "Командная аллергия: как ее избежать когда в команду приходит новый ч...Мамонт. "Командная аллергия: как ее избежать когда в команду приходит новый ч...
Мамонт. "Командная аллергия: как ее избежать когда в команду приходит новый ч...Viktoriya Pridatko
 
Как найти работу своей мечты?
Как найти работу своей мечты?Как найти работу своей мечты?
Как найти работу своей мечты?Viktoriya Pridatko
 
карьера в IT инжиниринге. Как о ней правильно думать
карьера в IT инжиниринге. Как о ней правильно думатькарьера в IT инжиниринге. Как о ней правильно думать
карьера в IT инжиниринге. Как о ней правильно думатьViktoriya Pridatko
 
мотивационное управление
мотивационное управлениемотивационное управление
мотивационное управлениеViktoriya Pridatko
 
Вебинар "Матрица компетенци и построение системы ЗП в ИТ компаниях" и еще инт...
Вебинар "Матрица компетенци и построение системы ЗП в ИТ компаниях" и еще инт...Вебинар "Матрица компетенци и построение системы ЗП в ИТ компаниях" и еще инт...
Вебинар "Матрица компетенци и построение системы ЗП в ИТ компаниях" и еще инт...Viktoriya Pridatko
 

More from Viktoriya Pridatko (16)

IT рекрутинг без факапов
IT рекрутинг без факаповIT рекрутинг без факапов
IT рекрутинг без факапов
 
Собеседование как секс. Удовольствие должны получить обе стороны :)
Собеседование как секс. Удовольствие должны получить обе стороны :)Собеседование как секс. Удовольствие должны получить обе стороны :)
Собеседование как секс. Удовольствие должны получить обе стороны :)
 
Startup Hiring
Startup Hiring Startup Hiring
Startup Hiring
 
"HR Bullshit в IT. Доколе?"
 "HR Bullshit в IT. Доколе?" "HR Bullshit в IT. Доколе?"
"HR Bullshit в IT. Доколе?"
 
Code fest тех.интервью с человеческим лицом
Code fest тех.интервью с человеческим лицомCode fest тех.интервью с человеческим лицом
Code fest тех.интервью с человеческим лицом
 
выбор Hr
выбор Hrвыбор Hr
выбор Hr
 
Stratoplan it spring_2012
Stratoplan it spring_2012Stratoplan it spring_2012
Stratoplan it spring_2012
 
Startup hiring
Startup hiringStartup hiring
Startup hiring
 
Saving private pm
Saving private pmSaving private pm
Saving private pm
 
Sell team results_ru
Sell team results_ruSell team results_ru
Sell team results_ru
 
Мамонт. "Командная аллергия: как ее избежать когда в команду приходит новый ч...
Мамонт. "Командная аллергия: как ее избежать когда в команду приходит новый ч...Мамонт. "Командная аллергия: как ее избежать когда в команду приходит новый ч...
Мамонт. "Командная аллергия: как ее избежать когда в команду приходит новый ч...
 
Код менеджера
Код менеджераКод менеджера
Код менеджера
 
Как найти работу своей мечты?
Как найти работу своей мечты?Как найти работу своей мечты?
Как найти работу своей мечты?
 
карьера в IT инжиниринге. Как о ней правильно думать
карьера в IT инжиниринге. Как о ней правильно думатькарьера в IT инжиниринге. Как о ней правильно думать
карьера в IT инжиниринге. Как о ней правильно думать
 
мотивационное управление
мотивационное управлениемотивационное управление
мотивационное управление
 
Вебинар "Матрица компетенци и построение системы ЗП в ИТ компаниях" и еще инт...
Вебинар "Матрица компетенци и построение системы ЗП в ИТ компаниях" и еще инт...Вебинар "Матрица компетенци и построение системы ЗП в ИТ компаниях" и еще инт...
Вебинар "Матрица компетенци и построение системы ЗП в ИТ компаниях" и еще инт...
 

Continuous deployment Smartling event

  • 1. Continuous Deployment by Smartling, Inc #SmartlingDevLove
  • 2. Andrey Akselrod Smartling, Founder & CTO @chelya Alexey Shesterov Smartling, Senior Engineer @AlexShesterov
  • 3. Что мы делаем? ● Cloud-based enterprise software platform for translation management ● Used for websites and dynamic Web applications, desktop & mobile apps, business documents, and all kinds of digital content
  • 5. Smartling Operational Scale 3active data centers: US East, US West, Ireland 400+servers ~200production deployments a month 2B+page views/month 84K+metrics monitored 17K+triggers for alerts
  • 8. Continuous Deployment == Continuous Releases Continuous Deployment != Continuous Integration Мухи отдельно, котлеты отдельно
  • 9.
  • 11.
  • 12. ● Тонна всего идет в релиз ○ Баги гаранитированны ○ Сложно понять из кучи нового кода где и что не работает ○ Откатить назад сложно, иногда невозможно ● Баги которые бысто фиксятся ждут неделями, чтобы быть запущенными в прод ● Давление закончить функциональность любой ценой до запуска. Качество страдает
  • 13. ● В день релиза никто не работает и все в ожидании бессонной ночи
  • 14. ● Фидбэк от пользователей приходит поздно после существенного вложения времени в девелопмент ● Отсутствие раннего фидбэка увеличивает нагрузку на планирование и скатывается в waterfall вместо agile ● Результаты фидбэка ждут следующего релиза - циклы девелопмента заметно удлиняются
  • 17. Сложности переходного периода ● Обязательна поддержка менеджментом o Переход занимает время и ресурсы o Полный переход может занять 6-8 месяцев ● Team culture претерпит существенные изменения o Найти champions и заручится их поддержкой o Лучше получить поддержку других отделов компании обьяснив что они получат в конце
  • 18. Сложности переходного периода ● Хороший повод создать DevOps ● Не нужно ждать идеальной имплементации. Начните с одного компонента и с одной кнопки. ● Празднуйте каждое небольшое продвижение вперед
  • 19. Что мы делали ● Команда пассивно-агессивно делать ничего не хотела ● Перед запуском мы много убеждали, дискутировали и шантажировали команду. ● Отменили недельные релизы. ● Добавили стикеры на мониторы на каждый деплой. Смайлики и жопы. Смайлик - успешный деплой, жопа - деплой проблемный ● Поначалу все боялись деплоить, постепенно привыкли.
  • 22. ● Master (git) or Trunk (svn) is always stable ● Every commit to master (trunk) is deployed to prod asap ● Continuous integration ● Automated testing => where is QA Team? ● Single button deployment ● Monitoring ● Zero downtime software update ● Communication. Every deployment is in chat. Every deployment should be confirmed. Skype => Slack ● Разработчик ответственный за фичу от начала и до конца
  • 23. QA ● Максимальная автоматизация o unit testing o integration testing o front end testing - нужен баланс! ● Ручное тестирование делается разработчиками, не QA ● QA ответственны за автоматизацию
  • 24. Continuous Integration ● Bamboo or Jenkins ● Every branch is built and tested on every commit ● Only green builds could be deployed ● Build time is critical (fighting for < 10min)
  • 28. Monitoring ● Examples: o RPS o avg resp time & percentile o error rates o CPU Utilization o transaction rates ● Correlate Deployments with Metrics ● Мы используем: Splunk, Zabbix, Graphite, New Relic, Loggly
  • 30. Splunk ● Простой и мощный язык запросоввыбор источника, временного диапазона, группирование, ... ● Визуализация ● Запрос отображается в URLбыстрый обмен запросами в чате ● Сохранённые запросы ● Автоматические уведомления (Alerts)Не нужно изобретать колесо для уведомлений, просто throw new MyException(); или log.warn("My message");
  • 31. ● По коду ошибки — прямо в stack trace! Не нужно подробного описания как воспроизвести ошибку. Нет необходимости вручную искать ошибку в журналах. ● “Log duty” — «Дежурство по журналам»Поиск ошибок, анализ медленных запросов к БД, анализ кода► Находим проблемы до того, как их найдут клиенты! Splunk
  • 33. New Relic ● Метрики для Web-приложений ● Отслеживание всех уровней, вкл. JS ● Метки deployment’ов ● Анализ поведения пользователей ● Рассылка отчётов
  • 36. DB Updates ● Use DB version control system. DBMaintain ● Every change to DB is reviewed by two leads ● There is a single button deploy of DB changes ● Two phase DB updates o Phase 1: new structures, backward compatible  New columns always nullable, etc. o Phase 2: cleanup of unused stuff
  • 38. ● Наступает привыкание - жизнь без continuous deployment вызывает недоумение. ● Результат твоей работы сразу начинает использоваться юзерами. Это клево. ● Менеджмент доволен - идет постоянная череда запусков. Пользователи довольны - постоянно идут новые фичи.
  • 39. ● Быстрый фидбек и итерации приводят к продукту который гораздо лучше адаптирован к рынку ● Конкуренты не понимают как вы их стали с легкостью обходить ● Приходит уважение других отделов компании ● Практически нулевая текучка людей в команде

Editor's Notes

  1. Mogu tupit’ - obychno govoryu na anglijskom. Pomogajte.
  2. V oanovnom rabotaem s zhivymi pervodchikami - ochen’ malo perevodov delaetsya cherez machine translattion
  3. detali - foursquare - website and mobile apps - pereklyuchite na russkij Tesla - Elon Mask - perevodim sites na raznye yazyki
  4. Nabiraem komandu djavistov - esli interesno - vse voprosy k Vike, 2 cheloveka uzhe nanyali.
  5. А что делаете вы? Eto kak v anekdote pro professora po seksologii (eto budet zavtra, zavtra)
  6. USAF полковник John Boyd, истребитель F-16. ne letaet tak vysoko i tak daleko kak F15, no v 2 raza legche i manevrennej dazhe na nizkih skorostyax Vazhnee produkt vypustit’ bystree, chem ego dolgo vylivat’.
  7. Team culture = Processes, Priorities, Values
  8. Team culture = Processes, Priorities, Values devOps = development toolset support
  9. Жопа - печальный смайлик Шантаж - кто не хочит делать конт деплой - отвечает за следующий релиз Сейчас бай-ин будет легче - continuous deployment is a trend Pyat’ stadii prinyatiya neizbezhnogo: otricanie, gnev, torg, depressiya, prinyatie
  10. Is someone is commited but did not deploy -> skandal - nikto ne xochet otvechat’ za chej-to code feature branches vs switches in the code
  11. no sending the ball over the wall testirovanie parserov - sravnenie versij po rezul’tatam parsinga i skorosti
  12. U nas Bamboo kazhdyj raz pri sozdanii brancha avtomaticheski podhvatyvaet i build. Pro+Con Bamboo (branches+costs)
  13. screenshot bamboo. 18 min average
  14. 3 steps: component, environment, build -> push a button, DOD. Environment: ENV = kompaktno 4 vitrualnih servera (soa: mysql, mongo, gdn, tms). Po nazhatiju knopki a developer can launch his own env.
  15. 1. communication, synchronization. 2. history of deploys 3. before: skype, now: slack automatic. 4. 1-deploy, 2-check, 3-confirm.
  16. MySQL stops being responsive at 60% CPU utilization New Relic - prikol’nyj (around performance) - zhivaya profiling data. Automatic call stacks, shows query performance (java code vs db time)