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
Мухи отдельно, котлеты отдельно
Continuous deployment Smartling event
Жизнь До Того Как
Continuous deployment Smartling event
● Тонна всего идет в релиз
○ Баги гаранитированны
○ Сложно понять из кучи нового кода где и что не
работает
○ Откатить назад сложно, иногда невозможно
● Баги которые бысто фиксятся ждут неделями,
чтобы быть запущенными в прод
● Давление закончить функциональность любой
ценой до запуска. Качество страдает
● В день релиза никто не работает и все в
ожидании бессонной ночи
● Фидбэк от пользователей приходит поздно
после существенного вложения времени в
девелопмент
● Отсутствие раннего фидбэка увеличивает
нагрузку на планирование и скатывается в
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

PPTX
Continuous Deployment (in Russian)
PPTX
Адаптация Jira стэка для 1с продуктов
PDF
Выбираем стратегию создания бранчей
PDF
Имплементация инженерных практик для 1C
PDF
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
PDF
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
PDF
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
PPTX
Развитие навыков 1с специалиста до 5 го уровня
Continuous Deployment (in Russian)
Адаптация Jira стэка для 1с продуктов
Выбираем стратегию создания бранчей
Имплементация инженерных практик для 1C
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
Развитие навыков 1с специалиста до 5 го уровня

What's hot (20)

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

Viewers also liked (9)

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

Similar to Continuous deployment Smartling event (20)

PDF
горник процесс Mindbox
PDF
Процесс Mindbox 2015
PDF
Zero Downtime PHP Deployment with Envoyer And Forge
PDF
Михаил Табунов (Coub.com)
PDF
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
PDF
DevOps в Agile среде. Как, почему и когда инструменты помогают.
PDF
Coub 2014: Управление быстрорастущим проектом
PDF
Continuous delivery on IBMi
PDF
IT-инфраструктура. FAQ для разработчика
PDF
Agile days `16 summary
PPTX
Software craftsmanship 8
PDF
Badoo presentation-2012-rit-ageev
PDF
Релиз менеджмент в Badoo (Илья Агеев)
PDF
А так ли нужен DevOps инженер в проекте?
PPT
Эволюция разработки в Badoo
PDF
Релизимся чаще, или тернистый путь к continuous delivery
PDF
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
ODP
DevOps в реальном времени
PDF
"Девопс - это не только для программистов. Практические примеры из жизни одно...
PDF
Agile scrum - гибкое управление проектами
горник процесс Mindbox
Процесс Mindbox 2015
Zero Downtime PHP Deployment with Envoyer And Forge
Михаил Табунов (Coub.com)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
DevOps в Agile среде. Как, почему и когда инструменты помогают.
Coub 2014: Управление быстрорастущим проектом
Continuous delivery on IBMi
IT-инфраструктура. FAQ для разработчика
Agile days `16 summary
Software craftsmanship 8
Badoo presentation-2012-rit-ageev
Релиз менеджмент в Badoo (Илья Агеев)
А так ли нужен DevOps инженер в проекте?
Эволюция разработки в Badoo
Релизимся чаще, или тернистый путь к continuous delivery
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
DevOps в реальном времени
"Девопс - это не только для программистов. Практические примеры из жизни одно...
Agile scrum - гибкое управление проектами

More from Viktoriya Pridatko (16)

PPTX
IT рекрутинг без факапов
PPTX
Собеседование как секс. Удовольствие должны получить обе стороны :)
PPTX
Startup Hiring
PPTX
"HR Bullshit в IT. Доколе?"
PPT
Code fest тех.интервью с человеческим лицом
PPTX
выбор Hr
PPT
Stratoplan it spring_2012
PPTX
Startup hiring
PDF
Saving private pm
PPT
Sell team results_ru
PPTX
Мамонт. "Командная аллергия: как ее избежать когда в команду приходит новый ч...
PPT
Код менеджера
PPT
Как найти работу своей мечты?
PDF
карьера в IT инжиниринге. Как о ней правильно думать
PPT
мотивационное управление
PPT
Вебинар "Матрица компетенци и построение системы ЗП в ИТ компаниях" и еще инт...
IT рекрутинг без факапов
Собеседование как секс. Удовольствие должны получить обе стороны :)
Startup Hiring
"HR Bullshit в IT. Доколе?"
Code fest тех.интервью с человеческим лицом
выбор Hr
Stratoplan it spring_2012
Startup hiring
Saving private pm
Sell team results_ru
Мамонт. "Командная аллергия: как ее избежать когда в команду приходит новый ч...
Код менеджера
Как найти работу своей мечты?
карьера в 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 Мухи отдельно, котлеты отдельно
  • 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

  • #3: Mogu tupit’ - obychno govoryu na anglijskom. Pomogajte.
  • #4: V oanovnom rabotaem s zhivymi pervodchikami - ochen’ malo perevodov delaetsya cherez machine translattion
  • #5: detali - foursquare - website and mobile apps - pereklyuchite na russkij Tesla - Elon Mask - perevodim sites na raznye yazyki
  • #7: Nabiraem komandu djavistov - esli interesno - vse voprosy k Vike, 2 cheloveka uzhe nanyali.
  • #9: А что делаете вы? Eto kak v anekdote pro professora po seksologii (eto budet zavtra, zavtra)
  • #16: 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’.
  • #18: Team culture = Processes, Priorities, Values
  • #19: Team culture = Processes, Priorities, Values devOps = development toolset support
  • #20: Жопа - печальный смайлик Шантаж - кто не хочит делать конт деплой - отвечает за следующий релиз Сейчас бай-ин будет легче - continuous deployment is a trend Pyat’ stadii prinyatiya neizbezhnogo: otricanie, gnev, torg, depressiya, prinyatie
  • #23: Is someone is commited but did not deploy -> skandal - nikto ne xochet otvechat’ za chej-to code feature branches vs switches in the code
  • #24: no sending the ball over the wall testirovanie parserov - sravnenie versij po rezul’tatam parsinga i skorosti
  • #25: U nas Bamboo kazhdyj raz pri sozdanii brancha avtomaticheski podhvatyvaet i build. Pro+Con Bamboo (branches+costs)
  • #26: screenshot bamboo. 18 min average
  • #27: 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.
  • #28: 1. communication, synchronization. 2. history of deploys 3. before: skype, now: slack automatic. 4. 1-deploy, 2-check, 3-confirm.
  • #29: 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)