• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
сотни серверов, десятки компонент. автоматизация раскладки и конфигурирования. дмитрий росляков, евгений чернов. зал 2
 

сотни серверов, десятки компонент. автоматизация раскладки и конфигурирования. дмитрий росляков, евгений чернов. зал 2

on

  • 464 views

 

Statistics

Views

Total Views
464
Views on SlideShare
464
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    сотни серверов, десятки компонент. автоматизация раскладки и конфигурирования. дмитрий росляков, евгений чернов. зал 2 сотни серверов, десятки компонент. автоматизация раскладки и конфигурирования. дмитрий росляков, евгений чернов. зал 2 Presentation Transcript

    • Сотни серверов, десятки компонент: автоматизация раскладки и конфигурирования
      Дмитрий Росляков, Евгений Чернов
    • www.mail.ru
      2
      бинарные
      файлы
      данные
      пакет
      компонента
      Файлы конфигурации
    • www.mail.ru
      3
    • Indexer
      Searcher
      Spider
      www.mail.ru
      4
    • Описание компонента
      Name
      SVN
      Build-server
      Build
      Check-build
      Package
      Config
      Path
      Pre/post – install scripts
      Параметры
      Сборки
      Параметры
      Установки
      www.mail.ru
      5
      www.mail.ru
      5
    • www.mail.ru
      6
      Описание Компонента
      • Name = spider
      • SVN =svn://mail.ru/search.mail.ru
      • Build-server = s1.mail.ru s2.mail.ru
      • Build = ./configure && make spider
      • Check-build = make test-spider
      • Package = pack/spider.tgz
      • Config =conf/spider.xml
      • Path = ~/spider/
      • Pre-install = ./check_lib.sh
      • Post-install = ./post-install.sh
      Name
      SVN
      Build-server
      Build
      Check-build
      Package
      Config
      Path
      Pre/post – install scripts
      Параметры
      Сборки
      Параметры
      Установки
      www.mail.ru
      6
    • Иерархия ролей
      www.mail.ru
      7
      Описание Роли
      Name
      Components
      Servers
      Dependencies
      Checks
      Events
      Use
      <comp_name>_settings
      <comp_name>_macros
    • www.mail.ru
      8
      SADCo (System for Automatical Deployment and Configuration)
      Установка компонентов роли “searcher”:
      ./sadco --role=searcher install
      www.mail.ru
      8
      www.mail.ru
      8
      www.mail.ru
      8
    • www.mail.ru
      9
      SADCo (System for Automatical Deployment and Configuration)
      Установка компонентов роли “searcher”:
      ./sadco --role=searcher install
      Конфигурирование компонента “daemon” роли “searcher”:
      ./sadco --role=searcher --component=daemon configure
      www.mail.ru
      9
      www.mail.ru
      9
    • www.mail.ru
      10
      SADCo (System for Automatical Deployment and Configuration)
      Установка компонентов роли “searcher”:
      ./sadco --role=searcher install
      Конфигурирование компонента “daemon” роли “searcher”:
      ./sadco --role=searcher --component=daemon configure
      Откатить к предыдущей версии все компоненты роли “searcher” на сервере s1.mail.ru:
      ./sadco --role=searcher --server=s1.mail.ru rollback
      www.mail.ru
      10
    • www.mail.ru
      11
      SADCo (System for Automatical Deployment and Configuration)
      Установка компонентов роли “searcher”:
      ./sadco --role=searcher install
      Конфигурирование компонента “daemon” роли “searcher”:
      ./sadco --role=searcher --component=daemon configure
      Откатить к предыдущей версии все компоненты роли “searcher” на сервере s1.mail.ru:
      ./sadco --role=searcher --server=s1.mail.ru rollback
      Удалить компонент “daemon” роли “searcher” на сервере s1.mail.ru:
      ./sadco -r searcher -c daemon -s s1.mail.ru remove
    • www.mail.ru
      12
      Процесс выкладки компонента
      SVN
      checkout
      checkout
      Sources
      Sources
      Сборочные сервера
      build
      build
      package
      configs
      package
      configs
      Package Backups
      Config Backups
      pack. v.1
      config. v.1
      package
      configs
      pack. v.2
      config. v.2
      SADCo
      config. v.3
      pack. v.3
      pack. v.4
      да
      Изменился?
      pack. v.5
      да
      да
      pre-install
      pre-config
      pre-install
      pre-config

      Боевой кластер
      install
      configure
      install
      configure
      post-install
      post-config
      post-install
      post-config
    • www.mail.ru
      13
      Шаблонконфигурационного файла
      ..%VISIBLE%...%HEIGHT%..........%TYPE%................%SUMMARY%...............
      Роль 1
      Роль 2
      ....TRUE......750px...............XML.................SomeTool...............
      ....FALSE.....500px...............HTML................OtherTool...............
      VISIBLE = TRUE
      HEIGHT = 750px
      TYPE = XML
      SUMMARY = SomeTool
      VISIBLE = FALSE
      HEIGHT = 500px
      TYPE = HTML
      SUMMARY = OtherTool
      Часть
      описания роли
    • www.mail.ru
      14
      Откат роли к предыдущим версиям
      К 1
      К 2
      К 3
      • Полнота
      • Корректность
      • Скорость
      • Надежность
      К1, r1
      К2, r1
      К3, r1
      День 1
      К1, r2
      К3, r2
      День 2
      ?
      К1, r3
      К2, r3
      День 3
      К1, r4
      К2, r4
      День 4
    • www.mail.ru
      15
      Откат роли к предыдущим версиям
      К 1
      К 2
      К 3
      • Полнота
      • Корректность
      • Скорость
      • Надежность
      К1, r1
      К2, r1
      К3, r1
      День 1
      К1, r2
      К3, r2
      День 2
      К2, r1
      К1, r3
      К2, r3
      День 3
      К3, r2
      К1, r4
      К2, r4
      День 4
      К3, r2
      www.mail.ru
      15
    • www.mail.ru
      16
      Транзакционность выкладки
      К1
      К2
      К3
      1
      2
      3
      1
      2
      3
      На уровне
      сервера
      На уровне
      кластера
      На уровне
      роли
    • www.mail.ru
      17
      Зависимости между ролями. Сигналы и события
      Примеры зависимостей между ролями:
      Обновление Роли 2 после установки Роли 1
      Перед установкой Роли 1 нужно отключить компонент Роли 4
      Если произошло переконфигурирование компонентов Роли 1, то переконфигурировать Роль 3
      На время установки Роли 2 необходимо включить компонент Роли 3
      Роль 1
      Роль 2
      finish-install
      start-install
      finish-install
      start-install
      reconfigured
      Роль 3
      Роль 4
      Стандартные сигналы:
      • start-configure
      • failed-configure
      • finish-configure
      • start-install
      • failed-install
      • finish-install
      • start-rollback
      • failed-rollback
      • finish-rollback
      Роль 1: depends = Роль 2, Роль 3, Роль 4
      Роль 2: depends = Роль 3
    • www.mail.ru
      18
      Посылка сигналов самому себе
      Описание обработчика событий:
      Роль 1
      events: start-install = /etc/init.d/httpd stop
      finish-install = /etc/init.d/httpd start
      restart = /etc/init.d/httpd restart
      start-install
      Типичные примеры использования:
      Необходимо выполнить некоторые pre/post-install действия (остановка / запуск обновляемых служб).
      Создание собственных сигналов для управления компонентами
      Перезапуск apache на всех серверах роли Роль 1:
      ./sadco --role=“Роль 1” --signalrestart
    • www.mail.ru
      19
      Синхронизация обработки сигнала
      restart
      Роль
      Одновременный
      перезапуск
      restart
      restart
      Последовательный
      Перезапуск
      (+ возможна
      задержка)
      Роль
      5 мин.
      restart
      restart
      restart
      5 мин.
    • www.mail.ru
      20
      Управление раскладкой
      Типичные проблемы управления раскладкой:
      Авторизация и идентификация пользователя.
      Запрет / разрешение на одновременную выкладку разных ролей.
    • www.mail.ru
      21
      Клиент - серверная архитектура
      SADCo
      Daemon
      install
      configure
      chernov
      ivanov
      petrov
    • www.mail.ru
      22
      Управление одновременностью запуска
      Searchers
      Р2
      Р6
      Группы:
      • Searchers: Р1, Р2, Р5, Р8, Р9
      • Indexers: Р3, Р6, Р7, Р12, Р13
      • Test: Р3, Р4, Р5, Р10
      Р1
      Р4
      Р5
      Р8
      Р7
      Р3
      Р9
      Р10
      Р13
      Р12
      Р11
      Test
      Indexers
      • Из каждой группы можно одновременно раскладывать только одну роль
      • Роль может входить в несколько групп
      • Роль без группы, образует собственную группу
    • www.mail.ru
      23
      Проверка требований к серверам
      Возможные проверки:
      • Проверка свободного места
      • Открытость портов
      • Настройки ядра
      • Присутствие мониторинга
      Параметры проверки:
      • До установки роли
      • После установки
      • Прерывать установку в случае ошибки
      • Не прерывать (только сообщить о ошибке)
    • www.mail.ru
      24
      Информативность системы
      • Уведомления о установке заинтересованных разработчиков
      • Подробное логирование (на случай аварии)
      • История установок
      • Возможность узнать текущее состояние роли (какие компоненты, каких версий на каких серверах установлены)
      • Возможность узнать состояние сервера (какие роли установлены)
      indexer
      optimizer
      idx1.mail.ru
      package: 19/04/2011 18:03 chernov 16507
      configs: 20/04/2011 13:24 chernov 16548
      indexer
      idx1.mail.ru
      package: 19/04/2011 18:03 chernov 16507
      configs: 19/04/2011 18:03 chernov 16507
    • www.mail.ru
      25
      Ключевые моменты
      • Понятие “Роль”
      • Система откатов и транзакционность выкладки
      • Сигналы / события ролей
      • Клиент - серверная архитектура и управление очередью
      • Информативность системы
    • Евгений Чернов: программист Поиск@Mail.ru, e.chernov@corp.mail.ru
      Дмитрий Росляков:руководитель Поиск@Mail.ru, roslyakov@corp.mail.ru
      Спасибо!