Обзор архитектуры и подсистем деплоя и мониторинга....
TRANSCRIPT
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систему прозрачной для разработки.Константин Никифоров
Содержание• Структура нашего puppet.
Организация выкладки.• Graphite как способ
визуализации работы проекта.
• Как объединяем puppet, graphite и мониторинг.
Environments и базовые настройки
• GIT как хранилище манифестов.
• Каждому пользователю по своему environment.
• Base - един для всех нод.
Hiera общие переменные
ОС
площадка
роль
Host
Соглашения о написании манифестов
• обнови ( версию )• не спали ( пароли )• расскажи ( всем )
deploy.sh • мастер• мастер на дату• определенный
коммит• выложить и
залочить
Порядок действийBranch
Редактируем
Тестируем из environment
Merge в мастер
deploy.sh
3 уровня масштабирования
• DNS• динамическая
маршрутизация • nginx upstream
Альтернативный puppet kickname
status
last_check, last_update, last_connect
kick
lock,lock_user
Graphite прост• хранит числа• показывает числа
3 кита• carbon • whisper, ceres• graphite-web
Метрики• стандартные
метрики серверов• метрики
приложений• сложно получаемые
метрики
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
Проблемы Graphite• Огромный udp
pps• Кластеризация• Медленный
carbon
go-carbon
6-8 млн метрик в минуту
E5-2620 v2; 64G RAM; 16*SAS 512GB
Черный мониторингФункционал клиентской части• собирает метрики и шлет в Graphite• собирает информацию о хосте и шлет в свой
коллектор• генерирует и пушит сообщения в
мониторинг
Функционал серверной части• Прием и отображение ошибок и мониторинг
своих клиентов• Отображение собранной информации о
хостах• Экспорт ошибок в "большой мониторинг"
Информация для разработки
• манифесты puppet • где и какой софт работает• какие машины свободны• конфигурация любого сервера и его
расположение• история метрик серверов более чем за 3 года• история алертов за все время• история изменений в production окружении
Спасибо за вниманиеhttp://graphite.readthedocs.org
Спасибо разработчикам за помощь и содействие.
https://github.com/mailru/graphite-nginx-moduleМихаил Кириченко, Александр Быков
https://github.com/lomik/go-carbonРоман Ломоносов