Управление облачной инфраструктурой

326 views
301 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

No notes for slide

Управление облачной инфраструктурой

  1. 1. Управление облачной инфраструктурой Системы управления конфигурацией ПО
  2. 2. Задачи1. Выполнение типовых команд на множестве серверов2. Развертывание собственного ПО на множестве серверов3. Управление объектами (ресурсами) множества ОС
  3. 3. 1. Выполнение типовых командПримеры:• обновление системы: – yum update; – aptitude full-upgrade и т.д.• заливка нового конфигурационного файла: – yum.conf, sources.list; – resolv.conf. – ntp.conf и т.д.
  4. 4. 1.1. Использование скриптовНапример:for veid in {101..105}; do vzctl exec $veid командаdone Преимущества НедостаткиПростота Скрипт нужно запускать на каждом хосте отдельно
  5. 5. 1.2. Использование distributed shells yum update Преимущества НедостаткиСервера адресуются по имени или IP, Требуется дополнительнаят.е. нет привязки к их расположению конфигурация на сервере (sudoers) Полностью работает только в гомогенных средах
  6. 6. 1.2.1. Использование distributed shellsНапример: dsh или pdshЗапрос:$ pdsh -R ssh -w mvio.ru,nagios.reic.ru lsОтвет:nagios.reic.ru: Projectsmvio.ru: buildmvio.ru: Projects
  7. 7. 2. Развертывание собственного ПО Машина Сервер разработчикаДействия:1. копирование на сервер (scp, rsync, tar c, git push);2. сборка на сервере (tar x, git merge);3. перезапуск приложения.
  8. 8. 2.1. Развертывание собственного ПО Тестовый сервер Машина разработчика Василия Центральный Рабочий репозиторий сервер 1 Машина разработчика Петра Рабочий сервер 2Для более сложной архитектуры удобнее использовать специальные инструменты
  9. 9. 2.2. Развертывание собственного ПОДля различных ЯП и платформ используются свои инструменты для сборки и развертывания:• Python – Fabric;• Ruby – Capistrano;• Java – Ant, Maven … ПреимуществаМожно гибко конфигурировать в зав-ти от типа/роли (test, prod) сервераРазвертывание на несколько серверов параллельно
  10. 10. 3. Управление объектами (ресурсами) ОСОбъекты управления (ресурсы):• пакеты ПО (apache, nginx, syslog, ntp …);• конфигурация этого ПО;• пользователи и группы;• сетевая конфигурация;• другие параметры.
  11. 11. Web-прокси (nginx)1-й вариант конфигурации:Электронный секретарь Java-приложение (mvio-web) Web-прокси У всех вариантов (nginx) 2-й вариант конфигурации: конфигурации Nginx Биллинг BGBilling есть общие части и Java-приложение (BGBilling) части специфические! Web-прокси3-й вариант конфигурации: (nginx)Сайт maestrotelecom.ru PHP-приложение (сайт)
  12. 12. Отсюда – разные потребности:• изменение общих частей конфигурации (например, нужно добавить защиту от DDOS-атак);• изменение специфических частей конфигурации (увеличить размер буфера для пользовательских данных на портале «Электронный секретарь»).
  13. 13. Решение №1:• для общих частей использовать собственные пакеты (т.е. взять и включить типовую конфигурацию nginx в rpm- пакет nginx).• cпецифические части хранить в отдельном репозитории. НедостаткиПриходится самому поддерживать пакеты (т.е. отслеживать обновленияисходного ПО и уязвимости ПО)Куча ручной работы по изменению конфигурационных файлов (либо нужнописать специальные скрипты с использованием distributed shells)
  14. 14. Решение №2:• использование SCM (Software Configuration Management) или системы управления конфигурацией ПО.Основной подход – описание объектов системы на абстрактном языке. Пользователь Сервис (nginx) Настройки сетиuser paul { service nginx { file interfaces { uid 1000 name test.reic.ru int 01 comment Pavel port 80 name eth1 home /home/paul ssl yes speed 100 shell /bin/bash template nginx- mode full-duplex … std.conf }} }
  15. 15. В системе SCM должны быть описаны ВСЕ специфические объекты конфигурации (те, которые отличаются от стандартных).Другими словами, в SCM-системе хранится точный функциональный образ системы (сервера).Из SCM-системы можно в любой момент получить копию работоспособного сервера, выполняющего нужные нам задачи.
  16. 16. Работа SCM (Chef) Сервер 1 Машина Команды Хранилищеадминистратора Сервер 2 конфигураций Евгения Сервер 3
  17. 17. Две SCM-системыPuppet Chef• Имеет долгую историю, вырос • Более свежий проект, взял из cfengine многое из Puppet• Декларативный, более • Императивный, более подходит подходит для администратора для программиста• В «рецептах» используется DSL • В «рецептах» используется Ruby («птичий язык»), расширяемый • Коммерциализация – SaaS- на Ruby модель• Коммерциализация – • Более удобен для расширенная версия с web- развертывания приложений из интерфейсом VCS-репозиториев
  18. 18. Установка пакета “play-framework” и библиотеки “asterisk-java” в Puppet# Install Play! Frameworkpackage { "play-framework": ensure => present}# Install asterisk-java modulefile { "/opt/asterisk-java": ensure => "directory", owner => "root", group => "root", mode => 0755,}file { "/opt/asterisk-java/target": ensure => "directory", owner => "root", group => "root", mode => 0755,}file { "/opt/asterisk-java/target/asterisk-java.jar": source => "puppet:///modules/git-repo/asterisk-java.jar", owner => "root", group => "root", mode => 0644,}
  19. 19. Установка пакета “play-framework” и библиотеки “asterisk-java” в Chefpackage "play-framework"# Install asterisk-java module%w{/opt/asterisk-java /opt/asterisk-java/target}.each do |dir| directory "#{dir}" do owner "root" group "root" mode 0755 action :create endendcookbook_file "/opt/asterisk-java/target/asterisk-java.jar" do source "asterisk-java.jar" owner "root" group "root" mode 0644end

×