workflows в express 42

26
Workflows в Express 42 Игорь Курочкин

Upload: igor-kurochkin

Post on 25-Jan-2017

542 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Workflows в Express 42

Workflows в Express 42

Игорь Курочкин

Page 2: Workflows в Express 42

История• Qik• Skype• Microsoft• Express 42

Надежные решения для сложной инфраструктуры2

Page 3: Workflows в Express 42

Qik• 2 DEV команды• 3 OPS• 1 продукт• 1 датацентр, 2 окружения• 10 сервисов• 50 серверов

Надежные решения для сложной инфраструктуры3

Page 4: Workflows в Express 42

Skype• 2 DEV команды• 5 OPS• 2 продукта• 3 датацентра• 20 сервисов (Java/Python/C/C++)• 200 серверов• 100Tb данных в месяц

Надежные решения для сложной инфраструктуры4

Page 5: Workflows в Express 42

Skype Ops• 3 OPS• Scrum• 5 OPS

• 3 Infra OPS• 1 dedicated OPS per team

• CEN, TSG, On-call• Передача проекта• devopstopologies.com

Надежные решения для сложной инфраструктуры5

Page 6: Workflows в Express 42

Skype infra repo• 1 репозиторий• 3 репозитория

• base• team1• team2

• N репозиториев• base• team1• teamN

• component1• componentN

Надежные решения для сложной инфраструктуры6

Page 7: Workflows в Express 42

Skype• PaaS• Chef and Zabbix• DBaS• InfoSec• TPS• Internal and external endpoints• Deployment

• PreQA, QA, CAB, Live• DR, incidents and post-mortems

Надежные решения для сложной инфраструктуры7

Page 8: Workflows в Express 42

Express 42Chef• Workflow• Testo• Berkshelf• Community cookbooks• Test Kitchen and tests

Надежные решения для сложной инфраструктуры8

Page 9: Workflows в Express 42

Chef• Chef DK • Knife• Berkshelf• Chef клиент

• всегда запущен и run проходит без ошибок• настраивает окружение• не деплоит

• Chef сервер на окружение (knife-block)

Надежные решения для сложной инфраструктуры9

Page 10: Workflows в Express 42

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

Page 11: Workflows в Express 42

Chef проблемы• Монолитные кукбуки• Изменения не доходят до всех окружений• Данные на Chef и в Git не совпадают• Аудит изменений на Chef сервере и на клиенте

• Версионирование

Надежные решения для сложной инфраструктуры11

Page 12: Workflows в Express 42

Testohttps://github.com/express42-cookbooks/testo• cookbooks• data_bags• environments• roles• Berksfile/Berksfile.lock• .kitchen.yml• README.md

Надежные решения для сложной инфраструктуры12

Page 13: Workflows в Express 42

Berksfile

Надежные решения для сложной инфраструктуры13

Page 14: Workflows в Express 42

Roles and env• Roles

• Base• Chef server• Graylog server• Zabbix server

• Environment• Vagrant

Надежные решения для сложной инфраструктуры14

Page 15: Workflows в Express 42

.kitchen.yml

Надежные решения для сложной инфраструктуры15

Page 16: Workflows в Express 42

Infra repohttp://www.heavywater.io/blog/2015/04/29/infra-repo/• AWS• SparkleFormation• sfn• Batali• Chef

Надежные решения для сложной инфраструктуры16

Page 17: Workflows в Express 42

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

Page 18: Workflows в Express 42

Tests• Любое изменение на GitHub• Запуск тестов в Travis CI• Вызов Rubocop и Foodcritic проверок• Запуск виртуалки в Digital Ocean через Test Kitchen• Выполнение Serverspec тестов• Загрузка в Chef Supermarket• Нотификация в Slack чат и обновление статуса сборки

Надежные решения для сложной инфраструктуры18

Page 19: Workflows в Express 42

МониторингZabbix • zabbixapi• zabbix_lwrp (host, template, graph, …)• zabbix_templates (~25 сервисов)• zabbix_actions (email, slack, opsgenie)• zabbix_dashing• https://github.com/alexanderzobnin/grafana-zabbix

Надежные решения для сложной инфраструктуры19

Page 20: Workflows в Express 42

Мониторинг• https://github.com/express42/zabbixapi

• https://github.com/express42-cookbooks/zabbix_lwrp

Надежные решения для сложной инфраструктуры20

Page 21: Workflows в Express 42

Мониторинг

Надежные решения для сложной инфраструктуры21

Zabbix Live• Number of hosts 134• Number of items 74754• Number of triggers 20775• New values per second 1186Zabbix PreQA/QA• 79/28920/4968/454

Page 22: Workflows в Express 42

Мониторинг

Надежные решения для сложной инфраструктуры22

• Много триггеров для поиска проблемы, но только две нотификации о наличии

• End-to-end тесты:• Full flow тест• Harness тест

Page 23: Workflows в Express 42

ChatOps• Slack integrations

https://api.slack.com/community• Atlassian/Zabbix/GitHub/Travis• Chef/Deploy/Rundeck/Foreman/Graylog• Hubot

• https://hubot.github.com

Надежные решения для сложной инфраструктуры23

Page 24: Workflows в Express 42

Документация• knife-cookbook-doc• README.md• CHANGELOG.md• Git commit message• Readme Driven Development• http://docs.writethedocs.org

Надежные решения для сложной инфраструктуры24

Page 25: Workflows в Express 42

Культура• Постоянные улучшения• Внутренние митапы• Хакатоны• Вече

Надежные решения для сложной инфраструктуры25

Page 26: Workflows в Express 42

Вопросы?

Надежные решения для сложной инфраструктуры26

• Twitter: @igoritl• GitHub: ikurochkin• [email protected]