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

обзор архитектуры и подсистем деплоя и мониторинга

  • Upload
    -

  • View
    59

  • Download
    1

Embed Size (px)

Citation preview

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

Содержание

• Структура нашего 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Роман Ломоносов