Сотни серверов, десятки компонент: автоматизация раскладки и конфигурирования 	<br />Дмитрий Росляков, Евгений Чернов<br />
www.mail.ru<br />2<br />бинарные <br />файлы<br />данные<br />пакет<br />компонента<br />Файлы конфигурации<br />
www.mail.ru<br />3<br />
Indexer<br />Searcher<br />Spider<br />www.mail.ru<br />4<br />
Описание компонента<br />Name<br />SVN<br />Build-server<br />Build<br />Check-build<br />Package<br />Config<br />Path<br...
www.mail.ru<br />6<br />Описание Компонента<br /><ul><li>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</li></ul>Name<br />SVN<br />Build-server<br />Build<br />Check-build<br />Package<br />Co...
Иерархия ролей<br />www.mail.ru<br />7<br />Описание Роли<br />Name<br />Components<br />Servers<br />Dependencies<br />Ch...
www.mail.ru<br />8<br />SADCo  (System for Automatical Deployment and Configuration)<br />Установка компонентов роли “sear...
www.mail.ru<br />9<br />SADCo  (System for Automatical Deployment and Configuration)<br />Установка компонентов роли “sear...
www.mail.ru<br />10<br />SADCo  (System for Automatical Deployment and Configuration)<br />Установка компонентов роли “sea...
www.mail.ru<br />11<br />SADCo  (System for Automatical Deployment and Configuration)<br />Установка компонентов роли “sea...
www.mail.ru<br />12<br />Процесс выкладки компонента<br />SVN<br />checkout<br />checkout<br />Sources<br />Sources<br />С...
www.mail.ru<br />13<br />Шаблонконфигурационного файла<br />..%VISIBLE%...%HEIGHT%..........%TYPE%................%SUMMARY...
www.mail.ru<br />14<br />Откат роли к предыдущим версиям<br />К 1<br />К 2<br />К 3<br /><ul><li> Полнота
 Корректность
 Скорость
 Надежность</li></ul>К1, r1<br />К2, r1<br />К3, r1<br />День 1<br />К1, r2<br />К3, r2<br />День 2<br />?<br />К1, r3<br ...
Upcoming SlideShare
Loading in …5
×

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

498 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
498
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Сотни серверов, десятки компонент: автоматизация раскладки и конфигурирования <br />Дмитрий Росляков, Евгений Чернов<br />
  2. 2. www.mail.ru<br />2<br />бинарные <br />файлы<br />данные<br />пакет<br />компонента<br />Файлы конфигурации<br />
  3. 3. www.mail.ru<br />3<br />
  4. 4. Indexer<br />Searcher<br />Spider<br />www.mail.ru<br />4<br />
  5. 5. Описание компонента<br />Name<br />SVN<br />Build-server<br />Build<br />Check-build<br />Package<br />Config<br />Path<br />Pre/post – install scripts<br />Параметры <br />Сборки<br />Параметры <br />Установки<br />www.mail.ru<br />5<br />www.mail.ru<br />5<br />
  6. 6. www.mail.ru<br />6<br />Описание Компонента<br /><ul><li>Name = spider
  7. 7. SVN =svn://mail.ru/search.mail.ru
  8. 8. Build-server = s1.mail.ru s2.mail.ru
  9. 9. Build = ./configure && make spider
  10. 10. Check-build = make test-spider
  11. 11. Package = pack/spider.tgz
  12. 12. Config =conf/spider.xml
  13. 13. Path = ~/spider/
  14. 14. Pre-install = ./check_lib.sh
  15. 15. Post-install = ./post-install.sh</li></ul>Name<br />SVN<br />Build-server<br />Build<br />Check-build<br />Package<br />Config<br />Path<br />Pre/post – install scripts<br />Параметры <br />Сборки<br />Параметры <br />Установки<br />www.mail.ru<br />6<br />
  16. 16. Иерархия ролей<br />www.mail.ru<br />7<br />Описание Роли<br />Name<br />Components<br />Servers<br />Dependencies<br />Checks<br />Events<br />Use<br /><comp_name>_settings<br /><comp_name>_macros<br />
  17. 17. www.mail.ru<br />8<br />SADCo (System for Automatical Deployment and Configuration)<br />Установка компонентов роли “searcher”:<br />./sadco --role=searcher install<br />www.mail.ru<br />8<br />www.mail.ru<br />8<br />www.mail.ru<br />8<br />
  18. 18. www.mail.ru<br />9<br />SADCo (System for Automatical Deployment and Configuration)<br />Установка компонентов роли “searcher”:<br />./sadco --role=searcher install<br />Конфигурирование компонента “daemon” роли “searcher”:<br />./sadco --role=searcher --component=daemon configure<br />www.mail.ru<br />9<br />www.mail.ru<br />9<br />
  19. 19. www.mail.ru<br />10<br />SADCo (System for Automatical Deployment and Configuration)<br />Установка компонентов роли “searcher”:<br />./sadco --role=searcher install<br />Конфигурирование компонента “daemon” роли “searcher”:<br />./sadco --role=searcher --component=daemon configure<br />Откатить к предыдущей версии все компоненты роли “searcher” на сервере s1.mail.ru:<br />./sadco --role=searcher --server=s1.mail.ru rollback<br />www.mail.ru<br />10<br />
  20. 20. www.mail.ru<br />11<br />SADCo (System for Automatical Deployment and Configuration)<br />Установка компонентов роли “searcher”:<br />./sadco --role=searcher install<br />Конфигурирование компонента “daemon” роли “searcher”:<br />./sadco --role=searcher --component=daemon configure<br />Откатить к предыдущей версии все компоненты роли “searcher” на сервере s1.mail.ru:<br />./sadco --role=searcher --server=s1.mail.ru rollback<br />Удалить компонент “daemon” роли “searcher” на сервере s1.mail.ru:<br />./sadco -r searcher -c daemon -s s1.mail.ru remove<br />
  21. 21. www.mail.ru<br />12<br />Процесс выкладки компонента<br />SVN<br />checkout<br />checkout<br />Sources<br />Sources<br />Сборочные сервера<br />build<br />build<br />package<br />configs<br />package<br />configs<br />Package Backups<br />Config Backups<br />pack. v.1<br />config. v.1<br />package<br />configs<br />pack. v.2<br />config. v.2<br />SADCo<br />config. v.3<br />pack. v.3<br />pack. v.4<br />да<br />Изменился?<br />pack. v.5<br />да<br />да<br />pre-install<br />pre-config<br />pre-install<br />pre-config<br />…<br />Боевой кластер<br />install<br />configure<br />install<br />configure<br />post-install<br />post-config<br />post-install<br />post-config<br />
  22. 22. www.mail.ru<br />13<br />Шаблонконфигурационного файла<br />..%VISIBLE%...%HEIGHT%..........%TYPE%................%SUMMARY%...............<br />Роль 1<br />Роль 2<br />....TRUE......750px...............XML.................SomeTool...............<br />....FALSE.....500px...............HTML................OtherTool...............<br />VISIBLE = TRUE<br />HEIGHT = 750px<br />TYPE = XML<br />SUMMARY = SomeTool<br />VISIBLE = FALSE<br />HEIGHT = 500px<br />TYPE = HTML<br />SUMMARY = OtherTool<br />Часть<br />описания роли<br />
  23. 23. www.mail.ru<br />14<br />Откат роли к предыдущим версиям<br />К 1<br />К 2<br />К 3<br /><ul><li> Полнота
  24. 24. Корректность
  25. 25. Скорость
  26. 26. Надежность</li></ul>К1, r1<br />К2, r1<br />К3, r1<br />День 1<br />К1, r2<br />К3, r2<br />День 2<br />?<br />К1, r3<br />К2, r3<br />День 3<br />К1, r4<br />К2, r4<br />День 4<br />
  27. 27. www.mail.ru<br />15<br />Откат роли к предыдущим версиям<br />К 1<br />К 2<br />К 3<br /><ul><li> Полнота
  28. 28. Корректность
  29. 29. Скорость
  30. 30. Надежность</li></ul>К1, r1<br />К2, r1<br />К3, r1<br />День 1<br />К1, r2<br />К3, r2<br />День 2<br />К2, r1<br />К1, r3<br />К2, r3<br />День 3<br />К3, r2<br />К1, r4<br />К2, r4<br />День 4<br />К3, r2<br />www.mail.ru<br />15<br />
  31. 31. www.mail.ru<br />16<br />Транзакционность выкладки<br />К1<br />К2<br />К3<br />1<br />2<br />3<br />1<br />2<br />3<br />На уровне<br />сервера<br />На уровне<br />кластера<br />На уровне<br />роли<br />
  32. 32. www.mail.ru<br />17<br />Зависимости между ролями. Сигналы и события<br />Примеры зависимостей между ролями:<br />Обновление Роли 2 после установки Роли 1<br />Перед установкой Роли 1 нужно отключить компонент Роли 4<br />Если произошло переконфигурирование компонентов Роли 1, то переконфигурировать Роль 3<br />На время установки Роли 2 необходимо включить компонент Роли 3<br />Роль 1<br />Роль 2<br />finish-install<br />start-install<br />finish-install<br />start-install<br />reconfigured<br />Роль 3<br />Роль 4<br />Стандартные сигналы:<br /><ul><li> start-configure
  33. 33. failed-configure
  34. 34. finish-configure
  35. 35. start-install
  36. 36. failed-install
  37. 37. finish-install
  38. 38. start-rollback
  39. 39. failed-rollback
  40. 40. finish-rollback</li></ul>Роль 1: depends = Роль 2, Роль 3, Роль 4<br />Роль 2: depends = Роль 3<br />
  41. 41. www.mail.ru<br />18<br />Посылка сигналов самому себе<br />Описание обработчика событий:<br />Роль 1<br />events: start-install = /etc/init.d/httpd stop<br />finish-install = /etc/init.d/httpd start<br />restart = /etc/init.d/httpd restart<br />start-install<br />Типичные примеры использования:<br />Необходимо выполнить некоторые pre/post-install действия (остановка / запуск обновляемых служб).<br />Создание собственных сигналов для управления компонентами<br />Перезапуск apache на всех серверах роли Роль 1:<br />./sadco --role=“Роль 1” --signalrestart<br />
  42. 42. www.mail.ru<br />19<br />Синхронизация обработки сигнала<br />restart<br />Роль<br />Одновременный <br />перезапуск<br />restart<br />restart<br />Последовательный <br />Перезапуск<br />(+ возможна <br />задержка)<br />Роль<br />5 мин.<br />restart<br />restart<br />restart<br />5 мин.<br />
  43. 43. www.mail.ru<br />20<br />Управление раскладкой<br />Типичные проблемы управления раскладкой:<br />Авторизация и идентификация пользователя.<br />Запрет / разрешение на одновременную выкладку разных ролей.<br />
  44. 44. www.mail.ru<br />21<br />Клиент - серверная архитектура<br />SADCo<br />Daemon<br />install<br />configure<br />chernov<br />ivanov<br />petrov<br />
  45. 45. www.mail.ru<br />22<br />Управление одновременностью запуска<br />Searchers<br />Р2<br />Р6<br />Группы:<br /><ul><li>Searchers: Р1, Р2, Р5, Р8, Р9
  46. 46. Indexers: Р3, Р6, Р7, Р12, Р13
  47. 47. Test: Р3, Р4, Р5, Р10</li></ul>Р1<br />Р4<br />Р5<br />Р8<br />Р7<br />Р3<br />Р9<br />Р10<br />Р13<br />Р12<br />Р11<br />Test<br />Indexers<br /><ul><li>Из каждой группы можно одновременно раскладывать только одну роль
  48. 48. Роль может входить в несколько групп
  49. 49. Роль без группы, образует собственную группу</li></li></ul><li>www.mail.ru<br />23<br />Проверка требований к серверам<br />Возможные проверки:<br /><ul><li>Проверка свободного места
  50. 50. Открытость портов
  51. 51. Настройки ядра
  52. 52. Присутствие мониторинга</li></ul>Параметры проверки:<br /><ul><li>До установки роли
  53. 53. После установки
  54. 54. Прерывать установку в случае ошибки
  55. 55. Не прерывать (только сообщить о ошибке)</li></li></ul><li>www.mail.ru<br />24<br />Информативность системы<br /><ul><li>Уведомления о установке заинтересованных разработчиков
  56. 56. Подробное логирование (на случай аварии)
  57. 57. История установок
  58. 58. Возможность узнать текущее состояние роли (какие компоненты, каких версий на каких серверах установлены)
  59. 59. Возможность узнать состояние сервера (какие роли установлены)</li></ul>indexer<br /> optimizer<br /> idx1.mail.ru<br /> package: 19/04/2011 18:03 chernov 16507<br />configs: 20/04/2011 13:24 chernov 16548<br /> indexer<br /> idx1.mail.ru<br /> package: 19/04/2011 18:03 chernov 16507<br />configs: 19/04/2011 18:03 chernov 16507<br />
  60. 60. www.mail.ru<br />25<br />Ключевые моменты<br /><ul><li>Понятие “Роль”
  61. 61. Система откатов и транзакционность выкладки
  62. 62. Сигналы / события ролей
  63. 63. Клиент - серверная архитектура и управление очередью
  64. 64. Информативность системы</li></li></ul><li>Евгений Чернов: программист Поиск@Mail.ru, e.chernov@corp.mail.ru<br />Дмитрий Росляков:руководитель Поиск@Mail.ru, roslyakov@corp.mail.ru<br />Спасибо!<br />

×