Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Обзор архитектуры и
подсистем деплоя и
мониторинга. Как
инженеры делают систему
прозрачной для
разработки.
Константин Ники...
Содержание
• Структура нашего puppet.
Организация выкладки.
• Graphite как способ
визуализации работы проекта.
• Как объед...
Environments и базовые настройки
• GIT как хранилище
манифестов.
• Каждому пользователю по
своему environment.
• Base - ед...
Hiera
общие переменные
ОС
площадка
роль
Host
Соглашения о написании манифестов
• обнови ( версию )
• не спали ( пароли )
• расскажи ( всем )
deploy.sh
• мастер
• мастер на дату
• определенный коммит
• выложить и залочить
Порядок действий
Branch
Редактируем
Тестируем из
environment
Merge в мастер
deploy.sh
3 уровня масштабирования
• DNS
• динамическая
маршрутизация
• nginx upstream
Альтернативный puppet kick
name
status
last_check, last_update, last_connect
kick
lock,lock_user
Graphite прост
• хранит числа
• показывает числа
3 кита
• carbon
• whisper, ceres
• graphite-web
Метрики
• стандартные метрики
серверов
• метрики приложений
• сложно получаемые
метрики
graphite-nginx-module
• собирает и агрегирует статистику
• работает в неблокирущем режиме
• набор отображаемых метрик може...
Проблемы Graphite
• Огромный udp pps
• Кластеризация
• Медленный
carbon
go-carbon
6-8 млн метрик в минуту
E5-2620 v2; 64G RAM; 16*SAS 512GB
Черный мониторинг
Функционал клиентской части
• собирает метрики и шлет в Graphite
• собирает информацию о хосте и шлет в ...
Информация для разработки
• манифесты puppet
• где и какой софт работает
• какие машины свободны
• конфигурация любого сер...
Спасибо за внимание
http://graphite.readthedocs.org
Спасибо разработчикам
за помощь и содействие.
https://github.com/mailr...
Upcoming SlideShare
Loading in …5
×

Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систему прозрачной для разработки / Константин Никифоров

933 views

Published on

1) Схема организации репозитория puppet.
Зачем мы сделали репозиторий публичным внутри компании?
Как мы "делим" puppet, и что делать, если все "пропало"?
Собственная реализация механизма puppet kick.

2) Как рассказать всем обо всем и никого не потерять.
"Черный мониторинг" (rbmon). Как мы собираем информацию о серверах и демонах.
Делимся логами с разработчиками. Почему написали "велосипед"?

3) Graphite - система сбора и визуализации данных.
Почему graphite?
1М метрик в минуту?
Какие метрики мы рисуем (nginx-graphite-module, rbmon plugins).
Визуализация работы проекта (Dashboard пульт).

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систему прозрачной для разработки / Константин Никифоров

  1. 1. Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систему прозрачной для разработки. Константин Никифоров
  2. 2. Содержание • Структура нашего puppet. Организация выкладки. • Graphite как способ визуализации работы проекта. • Как объединяем puppet, graphite и мониторинг.
  3. 3. Environments и базовые настройки • GIT как хранилище манифестов. • Каждому пользователю по своему environment. • Base - един для всех нод.
  4. 4. Hiera общие переменные ОС площадка роль Host
  5. 5. Соглашения о написании манифестов • обнови ( версию ) • не спали ( пароли ) • расскажи ( всем )
  6. 6. deploy.sh • мастер • мастер на дату • определенный коммит • выложить и залочить
  7. 7. Порядок действий Branch Редактируем Тестируем из environment Merge в мастер deploy.sh
  8. 8. 3 уровня масштабирования • DNS • динамическая маршрутизация • nginx upstream
  9. 9. Альтернативный puppet kick name status last_check, last_update, last_connect kick lock,lock_user
  10. 10. Graphite прост • хранит числа • показывает числа 3 кита • carbon • whisper, ceres • graphite-web
  11. 11. Метрики • стандартные метрики серверов • метрики приложений • сложно получаемые метрики
  12. 12. graphite-nginx-module • собирает и агрегирует статистику • работает в неблокирущем режиме • набор отображаемых метрик может быть дополнен Стандартные метрики body_bytes_sent, bytes_sent, content_time, gzip_time, keepalive_rps, request_length, rps, ssl_cache_usage, ssl_handshake_time, upstream_time
  13. 13. Проблемы Graphite • Огромный udp pps • Кластеризация • Медленный carbon
  14. 14. go-carbon 6-8 млн метрик в минуту E5-2620 v2; 64G RAM; 16*SAS 512GB
  15. 15. Черный мониторинг Функционал клиентской части • собирает метрики и шлет в Graphite • собирает информацию о хосте и шлет в свой коллектор • генерирует и пушит сообщения в мониторинг Функционал серверной части • Прием и отображение ошибок и мониторинг своих клиентов • Отображение собранной информации о хостах • Экспорт ошибок в "большой мониторинг"
  16. 16. Информация для разработки • манифесты puppet • где и какой софт работает • какие машины свободны • конфигурация любого сервера и его расположение • история метрик серверов более чем за 3 года • история алертов за все время • история изменений в production окружении
  17. 17. Спасибо за внимание http://graphite.readthedocs.org Спасибо разработчикам за помощь и содействие. https://github.com/mailru/graphite-nginx-module Михаил Кириченко, Александр Быков https://github.com/lomik/go-carbon Роман Ломоносов

×