DevOps в реальном времени

997 vues

Publié le

Презентация с http://xpdays.com.ua/ 2013

Publié dans : Technologie
  • Soyez le premier à commenter

DevOps в реальном времени

  1. 1. DevOps в реальном времени Андрей Самиляк OpsWay CEO
  2. 2. 15 онлайн-проектов С общим оборотом >$150.000/день 7 команд разработчиков Одна команда 24х7 поддержки
  3. 3. Познакомимся – версия “кратко” 7 лет в IT ● с 2008 – технический директор Smile Ukraine ● с 2013 – руководитель OpsWay ● тренер в SmartMe.com.ua ● В прошлом - врач (все равно ведь прочтете в LinkedIn, чего скрывать) ●
  4. 4. Сложность №1 – жизнь 24x7 % новых запросов Часы
  5. 5. Сложность №2 - География
  6. 6. Сложность №3 - Разработчики “When I see ... developers – all I see is risk” Chuck Rossi, Facebook
  7. 7. О чем будем говорить ● Процессы – – ● Цикл поставки Работа с многими командами Инструменты – Автоконфигурация сервера – Continuous integration – Мониторинг и уведомления – Резервное копирование – Командное взаимодействие
  8. 8. Opscode Chef ● Управление конфигурацией ● Continuous delivery ● Управление доступом ● Упрощение тестирования ● Управление мониторингом ● Программа как документация
  9. 9. Почему Chef? ● Facebook, Amazon ● Ruby vs XML ● Простая установка ● Недорогой и надежный hosted server ● “Исторически сложилось” (no holy wars!) vs
  10. 10. Opscode Chef - начало
  11. 11. Автомасштабируемые проекты
  12. 12. Единые правила именования ansam@vostok:~$ knife sshx projectx-live-node проект среда роль Multiple instances found! 1. i-cca165f0 since 2013-08-06 10:11:16 UTC ip 54.253.26.66 2. i-6ca71550 since 2013-08-07 19:06:05 UTC ip 54.253.66.83 3. i-6ea71552 since 2013-08-07 19:06:05 UTC ip 54.253.44.185 4. i-6fa71553 since 2013-08-07 19:06:05 UTC ip 54.252.44.245 Choose <1-4>: [1] 2 Instance i-6ca71550 ip 54.253.66.83 Connecting to 54.253.66.83 as user ubuntu on port 22
  13. 13. Управление доступом по SSH
  14. 14. Шаблоны для конфигурации Код из шаблона Apache virtual host configuration
  15. 15. Continuous integration Можно было выбрать: – TeamCity – Bamboo – Travis CI – инструмент Х Почему Jenkins?
  16. 16. Deployment
  17. 17. Управление доступом
  18. 18. Простой цикл поставки Development Test server Live Vagrant box Основная проблема: множество мелких заданий в разработке
  19. 19. Branch switch
  20. 20. Сложность работы с другими командами master develop fork for DevTeamX - develop
  21. 21. Bakery Около 4 часов Live Amazon AMI Jenkins jobs 5 минут Sandbox
  22. 22. Создаем Sandbox
  23. 23. Sandbox ● DNS via Route53 ● Можно демонстрировать клиенту ● Подключается к github repo/branch ● Новое задание Jenkins для деплоймент ● EC2 instance ● Почти полная копия live за исключением персональных данных пользователей
  24. 24. Workflow 1.1 Live По расписанию, 1 раз/день Test Sandbox1 Sandbox2
  25. 25. Код ушел “в live” - всё работает?
  26. 26. Мониторинг Настройка мониторинга в зависимости от роли сервера ● ● ● ● База данных метрик Индексы и поиск Уведомления Анализ и графики ● ● ● ● ● Роутинг сообщений Запуск plugins по расписанию Циклическая БД Обработка данных Построение графиков
  27. 27. Chef-управляемый мониторинг
  28. 28. ● Проанализировать все access.log со всех серверов ProjectX ● Убрать записи с User-Agent = “Apache*” и специфической версией Firefox ● Включить все запросы к страницам вида /aaaa/bbb-123.html (страницы продукта) ● Посчитать среднее время, среднеквадратическое отклонение времени выполнения таких запросов за последние 7 дней
  29. 29. Любимые dashboards
  30. 30. Знакомьтесь – сурикат!
  31. 31. Splunk alerts email Redmine SMS
  32. 32. Chef + Amazon EBS = Backup profit Конфигурация сервера (Chef) /var/www EBS
  33. 33. Backups
  34. 34. Backups: snapshots
  35. 35. Наши планы ● TDD Chef ● Больше уведомлений: - отправленые письма - количество регистраций ● Prelerter – поиск статистически маловероятных событий
  36. 36. Андрей Самиляк samilyak@gmail.com skype: samilyaka http://opsway.com

×