ݺߣ

ݺߣShare a Scribd company logo
Workflows в
Express 42
Игорь Курочкин
История
• Qik
• Skype
• Microsoft
• Express 42
Надежные решения для сложной инфраструктуры
2
Qik
• 2 DEV команды
• 3 OPS
• 1 продукт
• 1 датацентр, 2 окружения
• 10 сервисов
• 50 серверов
Надежные решения для сложной инфраструктуры
3
Skype
• 2 DEV команды
• 5 OPS
• 2 продукта
• 3 датацентра
• 20 сервисов (Java/Python/C/C++)
• 200 серверов
• 100Tb данных в месяц
Надежные решения для сложной инфраструктуры
4
Skype Ops
• 3 OPS
• Scrum
• 5 OPS
• 3 Infra OPS
• 1 dedicated OPS per team
• CEN, TSG, On-call
• Передача проекта
• devopstopologies.com
Надежные решения для сложной инфраструктуры
5
Skype infra repo
• 1 репозиторий
• 3 репозитория
• base
• team1
• team2
• N репозиториев
• base
• team1
• teamN
• component1
• componentN
Надежные решения для сложной инфраструктуры
6
Skype
• PaaS
• Chef and Zabbix
• DBaS
• InfoSec
• TPS
• Internal and external endpoints
• Deployment
• PreQA, QA, CAB, Live
• DR, incidents and post-mortems
Надежные решения для сложной инфраструктуры
7
Express 42
Chef
• Workflow
• Testo
• Berkshelf
• Community cookbooks
• Test Kitchen and tests
Надежные решения для сложной инфраструктуры
8
Chef
• Chef DK
• Knife
• Berkshelf
• Chef клиент
• всегда запущен и run проходит без ошибок
• настраивает окружение
• не деплоит
• Chef сервер на окружение (knife-block)
Надежные решения для сложной инфраструктуры
9
Chef workflow
• Chef RFC
• https://github.com/chef/chef-rfc
• rfc019-chef-workflows
• Chef Policies
• https://www.chef.io/blog/2015/10/05/
policyfiles-why-what-and-how/
• Roles/Environments/Runlist
Надежные решения для сложной инфраструктуры
10
Chef проблемы
• Монолитные кукбуки
• Изменения не доходят до всех окружений
• Данные на Chef и в Git не совпадают
• Аудит изменений на Chef сервере и на
клиенте
• Версионирование
Надежные решения для сложной инфраструктуры
11
Testo
https://github.com/express42-cookbooks/testo
• cookbooks
• data_bags
• environments
• roles
• Berksfile/Berksfile.lock
• .kitchen.yml
• README.md
Надежные решения для сложной инфраструктуры
12
Berksfile
Надежные решения для сложной инфраструктуры
13
Roles and env
• Roles
• Base
• Chef server
• Graylog server
• Zabbix server
• Environment
• Vagrant
Надежные решения для сложной инфраструктуры
14
.kitchen.yml
Надежные решения для сложной инфраструктуры
15
Infra repo
http://www.heavywater.io/blog/2015/04/29/infra-
repo/
• AWS
• SparkleFormation
• sfn
• Batali
• Chef
Надежные решения для сложной инфраструктуры
16
Community cookbooks
• Platforms (Ubuntu 14.04)
• Init systems and restart
• Chef 11/12
• LWRP and wrapper support
• Dependencies
• Templates
• Tests and Chef Supermarket
• Issues and pull requests
Надежные решения для сложной инфраструктуры
17
Tests
• Любое изменение на GitHub
• Запуск тестов в Travis CI
• Вызов Rubocop и Foodcritic проверок
• Запуск виртуалки в Digital Ocean через Test Kitchen
• Выполнение Serverspec тестов
• Загрузка в Chef Supermarket
• Нотификация в Slack чат и обновление статуса
сборки
Надежные решения для сложной инфраструктуры
18
Мониторинг
Zabbix
• zabbixapi
• zabbix_lwrp (host, template, graph, …)
• zabbix_templates (~25 сервисов)
• zabbix_actions (email, slack, opsgenie)
• zabbix_dashing
• https://github.com/alexanderzobnin/grafana-zabbix
Надежные решения для сложной инфраструктуры
19
Мониторинг
• https://github.com/express42/zabbixapi
• https://github.com/express42-cookbooks/
zabbix_lwrp
Надежные решения для сложной инфраструктуры
20
Мониторинг
Надежные решения для сложной инфраструктуры
21
Zabbix Live
• Number of hosts 134
• Number of items 74754
• Number of triggers 20775
• New values per second 1186
Zabbix PreQA/QA
• 79/28920/4968/454
Мониторинг
Надежные решения для сложной инфраструктуры
22
• Много триггеров для поиска проблемы, но
только две нотификации о наличии
• End-to-end тесты:
• Full flow тест
• Harness тест
ChatOps
• Slack integrations
https://api.slack.com/community
• Atlassian/Zabbix/GitHub/Travis
• Chef/Deploy/Rundeck/Foreman/Graylog
• Hubot
• https://hubot.github.com
Надежные решения для сложной инфраструктуры
23
Документация
• knife-cookbook-doc
• README.md
• CHANGELOG.md
• Git commit message
• Readme Driven Development
• http://docs.writethedocs.org
Надежные решения для сложной инфраструктуры
24
Культура
• Постоянные улучшения
• Внутренние митапы
• Хакатоны
• Вече
Надежные решения для сложной инфраструктуры
25
Вопросы?
Надежные решения для сложной инфраструктуры
26
• Twitter: @igoritl
• GitHub: ikurochkin
• igor@express42.com

More Related Content

What's hot (14)

Платформа для поставки счастья в команду QA
Платформа для поставки счастья в команду QAПлатформа для поставки счастья в команду QA
Платформа для поставки счастья в команду QA
Slava Kuznetsov
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Ontico
Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...
Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...
Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...
Ontico
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Ontico
Rootconf-2015 Тестируем инфраструктуру как код
Rootconf-2015 Тестируем инфраструктуру как кодRootconf-2015 Тестируем инфраструктуру как код
Rootconf-2015 Тестируем инфраструктуру как код
Igor Kurochkin
Облако в Badoo год спустя
Облако в Badoo год спустяОблако в Badoo год спустя
Облако в Badoo год спустя
Yuriy Nasretdinov
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Ontico
Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?
Anton Turetsky
Секреты здорового питания: полезные рецепты с Celery - Александр Швец, Marilyn
Секреты здорового питания: полезные рецепты с Celery - Александр Швец, MarilynСекреты здорового питания: полезные рецепты с Celery - Александр Швец, Marilyn
Секреты здорового питания: полезные рецепты с Celery - Александр Швец, Marilyn
it-people
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
Andrey Rebrov
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
CodeFest
Caché github continuous intergration
Caché github continuous intergrationCaché github continuous intergration
Caché github continuous intergration
InterSystems
Приемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на CachéПриемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на Caché
InterSystems CEE
Monitoring base, golang meetup, kyiv
Monitoring base, golang meetup, kyivMonitoring base, golang meetup, kyiv
Monitoring base, golang meetup, kyiv
Vsevolod Polyakov
Платформа для поставки счастья в команду QA
Платформа для поставки счастья в команду QAПлатформа для поставки счастья в команду QA
Платформа для поставки счастья в команду QA
Slava Kuznetsov
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Ontico
Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...
Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...
Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...
Ontico
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Ontico
Rootconf-2015 Тестируем инфраструктуру как код
Rootconf-2015 Тестируем инфраструктуру как кодRootconf-2015 Тестируем инфраструктуру как код
Rootconf-2015 Тестируем инфраструктуру как код
Igor Kurochkin
Облако в Badoo год спустя
Облако в Badoo год спустяОблако в Badoo год спустя
Облако в Badoo год спустя
Yuriy Nasretdinov
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Ontico
Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?
Anton Turetsky
Секреты здорового питания: полезные рецепты с Celery - Александр Швец, Marilyn
Секреты здорового питания: полезные рецепты с Celery - Александр Швец, MarilynСекреты здорового питания: полезные рецепты с Celery - Александр Швец, Marilyn
Секреты здорового питания: полезные рецепты с Celery - Александр Швец, Marilyn
it-people
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
Andrey Rebrov
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
CodeFest
Caché github continuous intergration
Caché github continuous intergrationCaché github continuous intergration
Caché github continuous intergration
InterSystems
Приемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на CachéПриемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на Caché
InterSystems CEE
Monitoring base, golang meetup, kyiv
Monitoring base, golang meetup, kyivMonitoring base, golang meetup, kyiv
Monitoring base, golang meetup, kyiv
Vsevolod Polyakov

Similar to Workflows в Express 42 (20)

Puppet development kit and best practices
Puppet development kit and best practicesPuppet development kit and best practices
Puppet development kit and best practices
Igor Kurochkin
OTUS Infrastructure as Code
OTUS Infrastructure as CodeOTUS Infrastructure as Code
OTUS Infrastructure as Code
Igor Kurochkin
Тестируем инфраструктуру как код
Тестируем инфраструктуру как кодТестируем инфраструктуру как код
Тестируем инфраструктуру как код
Andrey Tokarchuk
DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015
Ivan Evtukhovich
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON
Docker in Production with AWS ECS
Docker in Production with AWS ECSDocker in Production with AWS ECS
Docker in Production with AWS ECS
Dmitry Kataev
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...
IT-Portfolio
Инженерный дзен. Непрерывные изменения (Александр Титов)
Инженерный дзен. Непрерывные изменения (Александр Титов)Инженерный дзен. Непрерывные изменения (Александр Титов)
Инженерный дзен. Непрерывные изменения (Александр Титов)
Ontico
Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"
Tanya Denisyuk
CodeFest 2012. Титов А. — Инженерный дзен. Непрерывные изменения
CodeFest 2012. Титов А. — Инженерный дзен. Непрерывные измененияCodeFest 2012. Титов А. — Инженерный дзен. Непрерывные изменения
CodeFest 2012. Титов А. — Инженерный дзен. Непрерывные изменения
CodeFest
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
Anatoly Popov
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Ontico
Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...
Ontico
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
Yehor Herasymchuk
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтенд
Viacheslav Slinko
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Ontico
DevOps в проекте Upsource. Андрей Сизов, System Administrator
DevOps в проекте Upsource. Андрей Сизов, System AdministratorDevOps в проекте Upsource. Андрей Сизов, System Administrator
DevOps в проекте Upsource. Андрей Сизов, System Administrator
JetBrains Russia
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
Ontico
Практический опыт использования некоторых современных решений репликации MySQL
Практический опыт использования некоторых современных решений репликации MySQLПрактический опыт использования некоторых современных решений репликации MySQL
Практический опыт использования некоторых современных решений репликации MySQL
Alex Chistyakov
Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на Rust
Michael Pankov
Puppet development kit and best practices
Puppet development kit and best practicesPuppet development kit and best practices
Puppet development kit and best practices
Igor Kurochkin
Тестируем инфраструктуру как код
Тестируем инфраструктуру как кодТестируем инфраструктуру как код
Тестируем инфраструктуру как код
Andrey Tokarchuk
DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015
Ivan Evtukhovich
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON
Docker in Production with AWS ECS
Docker in Production with AWS ECSDocker in Production with AWS ECS
Docker in Production with AWS ECS
Dmitry Kataev
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...
IT-Portfolio
Инженерный дзен. Непрерывные изменения (Александр Титов)
Инженерный дзен. Непрерывные изменения (Александр Титов)Инженерный дзен. Непрерывные изменения (Александр Титов)
Инженерный дзен. Непрерывные изменения (Александр Титов)
Ontico
Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"
Tanya Denisyuk
CodeFest 2012. Титов А. — Инженерный дзен. Непрерывные изменения
CodeFest 2012. Титов А. — Инженерный дзен. Непрерывные измененияCodeFest 2012. Титов А. — Инженерный дзен. Непрерывные изменения
CodeFest 2012. Титов А. — Инженерный дзен. Непрерывные изменения
CodeFest
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
Anatoly Popov
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Ontico
Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...
Ontico
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
Yehor Herasymchuk
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтенд
Viacheslav Slinko
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Ontico
DevOps в проекте Upsource. Андрей Сизов, System Administrator
DevOps в проекте Upsource. Андрей Сизов, System AdministratorDevOps в проекте Upsource. Андрей Сизов, System Administrator
DevOps в проекте Upsource. Андрей Сизов, System Administrator
JetBrains Russia
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
Ontico
Практический опыт использования некоторых современных решений репликации MySQL
Практический опыт использования некоторых современных решений репликации MySQLПрактический опыт использования некоторых современных решений репликации MySQL
Практический опыт использования некоторых современных решений репликации MySQL
Alex Chistyakov
Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на Rust
Michael Pankov

Workflows в Express 42

  • 2. История • Qik • Skype • Microsoft • Express 42 Надежные решения для сложной инфраструктуры 2
  • 3. Qik • 2 DEV команды • 3 OPS • 1 продукт • 1 датацентр, 2 окружения • 10 сервисов • 50 серверов Надежные решения для сложной инфраструктуры 3
  • 4. Skype • 2 DEV команды • 5 OPS • 2 продукта • 3 датацентра • 20 сервисов (Java/Python/C/C++) • 200 серверов • 100Tb данных в месяц Надежные решения для сложной инфраструктуры 4
  • 5. Skype Ops • 3 OPS • Scrum • 5 OPS • 3 Infra OPS • 1 dedicated OPS per team • CEN, TSG, On-call • Передача проекта • devopstopologies.com Надежные решения для сложной инфраструктуры 5
  • 6. Skype infra repo • 1 репозиторий • 3 репозитория • base • team1 • team2 • N репозиториев • base • team1 • teamN • component1 • componentN Надежные решения для сложной инфраструктуры 6
  • 7. Skype • PaaS • Chef and Zabbix • DBaS • InfoSec • TPS • Internal and external endpoints • Deployment • PreQA, QA, CAB, Live • DR, incidents and post-mortems Надежные решения для сложной инфраструктуры 7
  • 8. Express 42 Chef • Workflow • Testo • Berkshelf • Community cookbooks • Test Kitchen and tests Надежные решения для сложной инфраструктуры 8
  • 9. Chef • Chef DK • Knife • Berkshelf • Chef клиент • всегда запущен и run проходит без ошибок • настраивает окружение • не деплоит • Chef сервер на окружение (knife-block) Надежные решения для сложной инфраструктуры 9
  • 10. Chef workflow • Chef RFC • https://github.com/chef/chef-rfc • rfc019-chef-workflows • Chef Policies • https://www.chef.io/blog/2015/10/05/ policyfiles-why-what-and-how/ • Roles/Environments/Runlist Надежные решения для сложной инфраструктуры 10
  • 11. Chef проблемы • Монолитные кукбуки • Изменения не доходят до всех окружений • Данные на Chef и в Git не совпадают • Аудит изменений на Chef сервере и на клиенте • Версионирование Надежные решения для сложной инфраструктуры 11
  • 12. Testo https://github.com/express42-cookbooks/testo • cookbooks • data_bags • environments • roles • Berksfile/Berksfile.lock • .kitchen.yml • README.md Надежные решения для сложной инфраструктуры 12
  • 13. Berksfile Надежные решения для сложной инфраструктуры 13
  • 14. Roles and env • Roles • Base • Chef server • Graylog server • Zabbix server • Environment • Vagrant Надежные решения для сложной инфраструктуры 14
  • 15. .kitchen.yml Надежные решения для сложной инфраструктуры 15
  • 16. Infra repo http://www.heavywater.io/blog/2015/04/29/infra- repo/ • AWS • SparkleFormation • sfn • Batali • Chef Надежные решения для сложной инфраструктуры 16
  • 17. Community cookbooks • Platforms (Ubuntu 14.04) • Init systems and restart • Chef 11/12 • LWRP and wrapper support • Dependencies • Templates • Tests and Chef Supermarket • Issues and pull requests Надежные решения для сложной инфраструктуры 17
  • 18. Tests • Любое изменение на GitHub • Запуск тестов в Travis CI • Вызов Rubocop и Foodcritic проверок • Запуск виртуалки в Digital Ocean через Test Kitchen • Выполнение Serverspec тестов • Загрузка в Chef Supermarket • Нотификация в Slack чат и обновление статуса сборки Надежные решения для сложной инфраструктуры 18
  • 19. Мониторинг Zabbix • zabbixapi • zabbix_lwrp (host, template, graph, …) • zabbix_templates (~25 сервисов) • zabbix_actions (email, slack, opsgenie) • zabbix_dashing • https://github.com/alexanderzobnin/grafana-zabbix Надежные решения для сложной инфраструктуры 19
  • 21. Мониторинг Надежные решения для сложной инфраструктуры 21 Zabbix Live • Number of hosts 134 • Number of items 74754 • Number of triggers 20775 • New values per second 1186 Zabbix PreQA/QA • 79/28920/4968/454
  • 22. Мониторинг Надежные решения для сложной инфраструктуры 22 • Много триггеров для поиска проблемы, но только две нотификации о наличии • End-to-end тесты: • Full flow тест • Harness тест
  • 23. ChatOps • Slack integrations https://api.slack.com/community • Atlassian/Zabbix/GitHub/Travis • Chef/Deploy/Rundeck/Foreman/Graylog • Hubot • https://hubot.github.com Надежные решения для сложной инфраструктуры 23
  • 24. Документация • knife-cookbook-doc • README.md • CHANGELOG.md • Git commit message • Readme Driven Development • http://docs.writethedocs.org Надежные решения для сложной инфраструктуры 24
  • 25. Культура • Постоянные улучшения • Внутренние митапы • Хакатоны • Вече Надежные решения для сложной инфраструктуры 25
  • 26. Вопросы? Надежные решения для сложной инфраструктуры 26 • Twitter: @igoritl • GitHub: ikurochkin • igor@express42.com