Upload
igor-kurochkin
View
547
Download
0
Embed Size (px)
Citation preview
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 42Chef• 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
Testohttps://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 repohttp://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 1186Zabbix 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• [email protected]