Управление тысячами

  серверов в
Знакомство с проектом
Одноклассники
www                    api
       mobile   xmpp
Немного статистики
200 M зарегистрированных пользователей
40 M уникальных пользователей в день
6 M одновременно на сайте
240 Гбит/с трафика
более 1 ПБ данных
Команда
100 разработчиков и тестировщиков
25 системных администраторов и инженеров
8 специалистов по мониторингу
дизайнеры, менеджеры, правление и др.
Инфраструктура
4 центра обработки данных
150 км оптических линий
более 5000 серверов (95% Linux)
Эйфелева башня   5000 серверов
    300 м            350 м
Управление
Этапы
Планирование
 Монтаж

   Развертывание

     Конфигурация

       Ввод в работу
Планирование
выбор центра обработки данных
планирование размещения в стойке
планирование сетевой инфраструктуры
назначение имени и IP-адреса
занесение информации в CMDB
CMDB
База данных управления конфигурацией
(configuration management database, CMDB) —
репозиторий всех компонентов информационной
системы. CMDB помогает понять взаимосвязи
между этими компонентами и отслеживать их
конфигурации. CMDB — основной компонент
процесса управления конфигурацией.
Развитие CMDB


  +      +      +
CMDB в Одноклассниках
автоматическое планирование
автоматическая проверка оборудования
связи между объектами
интеграция со всеми системами
журнализация изменений
отчеты
Интеграция с CMDB
DNS
финансовые системы
система развертывания
системы мониторинга (Zabbix, Cacti)
системы бизнес-анализа и статистики
системы конфигурации и управления порталом
система предоставления доступа
Этапы
Планирование

 Монтаж

   Развертывание

     Конфигурация

       Ввод в работу
Развертывание
Clonezilla
выделенный VLAN
интеграция с CMDB
автоматическое определение MAC адреса
автоматический перевод в рабочий VLAN
Этапы
Планирование

 Монтаж

   Развертывание

     Конфигурация

       Ввод в работу
Управление конфигурацией
локальное управление
удаленное управление
удаленное выполнение команд
централизованное управление
Централизованное
                      управление
Multi SSH
            DSSH
Централизованное управление
Требования
интеграция с CMDB
контроль и журнализация изменений
масштабирование и резервирование
мониторинг и отчеты
разделение доступа
Почему         ?
производительность
масштабируемость
безопасность
гибкость
популярность
Версии
Community edition (Core)
  open source (GPL3)


Enterprise edition (Nova)
  коммерческая поддержка
  веб-интерфейс (отчеты, мониторинг и др.)
Компоненты
cf-agent      выполняет политики
cf-execd      запускает агента по расписанию
cf-monitord   собирает статистическую информацию
cf-serverd    обслуживает сетевые соединения
cf-runagent   вызывает агента на удаленных хостах
Клиент – сервер
свой протокол 5308/tcp
  аутентификация
  авторизация
  шифрование
  передача файлов
только pull
Политики
git репозиторий на HUB
каждые 5 минут:
  git pull
  копирование политик
splaytime = 4
Git mirror
Hub fail
Hub fail
Master fail
Master fail
Мониторинг
MySQL на HUB
каждые 5 минут:
  INSERT             INSERT   SELECT

каждую минуту:
  SELECT
раз в сутки чистка
Итоги
Планирование
 Монтаж

   Развертывание

     Конфигурация

       Ввод в работу
Дополнительная информация
Блог компании Одноклассники
http://habrahabr.ru/company/odnoklassniki/
CFEngine
http://cfengine.com/
Chef
http://www.opscode.com/chef/
Puppet Labs
http://puppetlabs.com/
Спасибо за внимание!
А л е к с е й Ч уд о в
     ведущий системный
администратор, Одноклассники
a l e k s e y. c h u d o v @ o d n o k l a s s n i k i . r u

Управление тысячами серверов в Одноклассниках. Алексей Чудов.