SlideShare una empresa de Scribd logo
1 de 71
Descargar para leer sin conexión
Как не положить тысячи
серверов с помощью системы
централизованного управления
конфигурацией на примере
CFEngine
Дмитрий Самсонов
Дмитрий Самсонов
Ведущий системный администратор в OK.RU
Компетенция:
● Zabbix
● CFEngine
● Linux tuning
dmitry.samsonov@odnoklassniki.ru
https://www.linkedin.com/in/dmitrysamsonov
Одноклассники
>11000 серверов
>150 приложений
>600 кластеров
Разоблачение
Я предвзят
Разоблачение
Я предвзят
У меня есть опыт использования CFEngine только версии 3.3.x-3.4.x
Разоблачение
Я предвзят
У меня есть опыт использования CFEngine только версии 3.3.x-3.4.x
CFEngine не лидер и не аутсайдер рынка
Разоблачение
Я предвзят
У меня есть опыт использования CFEngine только версии 3.3.x-3.4.x
CFEngine не лидер и не аутсайдер рынка
Я не буду сравнивать configuration management на сегодняшний день
Разоблачение
Я предвзят
У меня есть опыт использования CFEngine только версии 3.3.x-3.4.x
CFEngine не лидер и не аутсайдер рынка
Я не буду сравнивать configuration management на сегодняшний день
У меня есть опыт использования только CFEngine и Ansible
Классические средства конфигурации
● ssh + scp + winexe
Классические средства конфигурации
● ssh + scp + winexe
● dssh-command + dscp + dwinexe-command
Классические средства конфигурации
● ssh + scp + winexe
● dssh-command + dscp + dwinexe-command
● Образ OS (регулярные обновления)
dssh-command
# cqn feeds-portlet-cdb | dssh-command -t 300 "hostname"
dssh-command
# cqn feeds-portlet-cdb | dssh-command -t 300 "hostname"
How much is 5 + 8 =
dssh-command
# cqn feeds-portlet-cdb | dssh-command -t 300 "hostname"
How much is 5 + 8 =
50, 100, 200...
dssh-command
# cqn feeds-portlet-cdb | dssh-command -t 300 "hostname"
How much is 5 + 8 = 13
Correct
srvd1352:O:0:srvd1352
dssh-command
# cqn feeds-portlet-cdb | dssh-command -t 300 "hostname"
How much is 5 + 8 = 13
Correct
srvd1352:O:0:srvd1352
Executing: "hostname"
Do you want to execute the command on servers in DL? [Yes/No]: Yes
srvd1353:O:0:srvd1353
dssh-command
# cqn feeds-portlet-cdb | dssh-command -t 300 "hostname"
How much is 5 + 8 = 13
Correct
srvd1352:O:0:srvd1352
Executing: "hostname"
Do you want to execute the command on servers in DL? [Yes/No]: Yes
srvd1353:O:0:srvd1353
Executing: "hostname"
Do you want to execute the command on servers in M100? [Yes/no]: Yes
srve1993:O:0:srve1993
srve2765:O:0:srve2765
...
Full output saved in /tmp/dsshFullOutput_29606_2016-10-14_13-17.log
file.
Сервера настроены неправильно
Как мы выбирали и что выбрали в 2012
● Интеграция с CMDB
● Установка пакетов
● Работа с файлами (копирование/редактирование/атрибуты)
● Контроль файлов (содержимое/атрибуты)
● Управление процессами и сервисами
● Ручной запуск политик
● Контроль версий, логирование изменений, отчеты
● Масштабирование, резервирование
● Поддержка Linux и Windows
● Проверка на наличие серверов без работающего CM
Как мы выбирали и что выбрали в 2012
● Производительность
Производительность
3000 клиентов
Как мы выбирали и что выбрали в 2012
● Производительность
● Зрелость
Современная история CM
“A theory of configuration maintenance was worked out by Mark Burgess with a practical implementation on present day computer systems in
the software CFEngine able to perform real time repair as well as preventive maintenance.”
https://en.wikipedia.org/wiki/Configuration_management#Operating_System_configuration_management
Как мы выбирали и что выбрали в 2012
● Зрелость
● Производительность
● Популярность
Популярность CM
CFEngine в Одноклассниках
CFEngine может быть простым
Типичная политика настройки приложения
"app_ok_feed" or => {"cmdb_group_feeds_proxy",
“cmdb_group_feeds_cache};
...
bundle agent app_ok_feed
{
vars:
"application" string => "ok-feed";
methods:
"app_ok" usebundle => app_ok("$(application)");
}
Библиотека настройки приложений
bundle agent app_ok(application)
{
vars:
"file[/ok/bin/$(application)][policy]" string => "copy";
"file[/ok/bin/$(application)][mode]" string => "0755";
"file[/ok/conf/$(application).conf][policy]" string => "copy";
"file[/root/ok/ok.properties][policy]" string => "edit";
"file[/root/ok/ok.properties][suffix]" string => "$(application)";
"file[/root/ok/ok.properties][type]" string => "file";
methods:
"files" usebundle => files_manage("$(this.bundle).file");
}
CFEngine может быть простым в
использовании
Добавить пользователя:
"user[git][policy]" string => "add";
Запустить сервис:
"service[mysql][policy]" string => "start";
Добавить крон:
"cron[do_well][cron]" string => "* * * * * do_well";
Установить пакет:
"package[rsyslog][policy]" string => "add";
Количество политик по типам
Библиотека
Служебные
Приложения
Возможно всё!
● IP routes
● HW RAID Write cache
● SELinux
● IPMI SOL
● Kernel modules
● RSS/RPS/RFS
Чем он нам не нравится
● Высокий порог вхождения
Чем он нам не нравится
● Высокий порог вхождения
● Сильно отстаёт от конкурентов
Чем он нам не нравится
● Высокий порог вхождения
● Сильно отстаёт от конкурентов
● Нет возможности расширять функционал
Чем он нам не нравится
● Высокий порог вхождения
● Сильно отстаёт от конкурентов
● Нет возможности расширять функционал
● Плохие шаблоны
Чем примечательна дата
4 апреля?
“В одну тихую весеннюю ночь, а именно с 4-
го на 5-ое апреля 2013-го года, ничто не
предвещало беды — юзеры непринуждённо
общались, грузили и комментили фоточки,
и собирали урожай, как вдруг всё ё***лось, и
что, с**а, характерно, обратно не
поднялось. Ни через час, ни через два, ни
через три. И даже не через 20 часов! … Что
это за централизованная система
управления, которая лёгким движением
руки позволяет отправить несколько
тысяч серверов в /dev/null, знают только её
разработчики…”
https://lurkmore.to/Одноклассники
Можно ли было избежать?
● Проверка синаксиса
● Тестовые окружения
● Ревью
● Мониторинг ошибок
Как не положить тысячи серверов с помощью системы централизованного управления конфигурацией на примере CFEngine /  Дмитрий Самсонов (Одноклассники)
CFEngine по-прежнему работает
постоянно и проверяет политики
каждые 5 минут
Как мы работаем
1. Проверка в git hooks
2. Проверка в тестовом окружении
3. Проверка на части прод серверов с
автоматизированным контролем нагрузки
4. Ревью
5. Плавное распространение по проду
GIT hooks
● Проверка синтаксиса
GIT hooks
● Проверка синтаксиса
● Автокоррекция стиля
GIT hooks
● Проверка синтаксиса
● Автокоррекция стиля
● Автозаполнение и проверка commit message
Как мы работаем
1. Проверка в git hooks
2. Проверка в тестовом окружении
3. Проверка на части прод серверов с
автоматизированным контролем нагрузки
4. Ревью
5. Плавное распространение по проду
Проверка в тестовом окружении
● Unstable - виртуалки
Проверка в тестовом окружении
● Unstable - виртуалки
● Testing - физические сервера
Как мы работаем
1. Проверка в git hooks
2. Проверка в тестовом окружении
3. Проверка на части прод серверов с
автоматизированным контролем нагрузки
4. Ревью
5. Плавное распространение по проду
Stable
● Прод сервера
Stable
● Прод сервера
● От каждого нового кластера
берётся один сервер
Stable
● Прод сервера
● От каждого нового кластера
берётся один сервер
● Все варианты железа и
приложений
Stable
● Прод сервера
● От каждого нового кластера
берётся один сервер
● Все варианты железа и
приложений
● Потеря прозрачна для
пользователей
Stable
● Прод сервера
● От каждого нового кластера
берётся один сервер
● Все варианты железа и
приложений
● Потеря прозрачна для
пользователей
● Обновления плавно в течение
одного часа
Stable
● Прод сервера
● От каждого нового кластера
берётся один сервер
● Все варианты железа и
приложений
● Потеря прозрачна для
пользователей
● Обновления плавно в течение
одного часа
● Для серверов автоматически
контролируется нагрузка
Как мы работаем
1. Проверка в git hooks
2. Проверка в тестовом окружении
3. Проверка на части прод серверов с
автоматизированным контролем нагрузки
4. Ревью
5. Плавное распространение по проду
Ревью
Ревью политики:
1. Соблюдение style guide (большая часть проверяется pre-commit хуком в git)
2. “Адекватность” кода
3. Использование последних версий методов
4. …
Ревью
Соблюдение всех условий для продвижения в прод:
1. Нет ошибок выполнения
2. Нет проблем с нагрузкой
3. “Промариновалось”
Ещё пара слов про ревью
● Исключение - инциденты!
Ещё пара слов про ревью
● Исключение - инциденты!
● Кто ревьювит?
Как мы работаем
1. Проверка в git hooks
2. Проверка в тестовом окружении
3. Проверка на части прод серверов с
автоматизированным контролем нагрузки
4. Ревью
5. Плавное распространение по проду
Production
● Поделен на независимые
части
Production
● Поделен на независимые
части
● Каждая часть применяет
изменения равномерно в
течение часа
Production
● Поделен на независимые
части
● Каждая часть применяет
изменения равномерно в
течение часа
● Обновления работают только
с 8:00 до 20:00
Как мы работаем
1. Проверка в git hooks
2. Проверка в тестовом окружении
3. Проверка на части прод серверов с
автоматизированным контролем нагрузки
4. Ревью
5. Плавное распространение по проду
Как не положить тысячи серверов с помощью системы централизованного управления конфигурацией на примере CFEngine /  Дмитрий Самсонов (Одноклассники)
План “Б”
● Альтернативный
минимальный набор
политик
● Изменяется очень редко
План “В”
cf-stop - остановка CFEngine на всём проде за
несколько минут
cf-update
exit
status=0
update+execute
execute
stop
exit
status=0
batch size x2
continue
Это надо делать обязательно
● Тестировать в разных условиях
● Долго тестировать на части прода
● Делать ревью
● Распространять обновления в продакшене плавно и
поэтапно
● Иметь план на случай аварии
Спасибо за внимание!
● Блог Одноклассников на Хабре
http://habrahabr.ru/company/odnoklassniki/
● Больше о нас и наших докладах
http://v.ok.ru/
Дмитрий Самсонов
dmitry.samsonov@odnoklassniki.ru
https://www.linkedin.com/in/dmitrysamsonov

Más contenido relacionado

La actualidad más candente

Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Ontico
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Ontico
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Ontico
 
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)Ontico
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)Ontico
 
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Ontico
 
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...Ontico
 
Балансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в ОдноклассникахБалансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в ОдноклассникахOntico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
обзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаобзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаКонстантин Никифоров
 
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)Ontico
 
smart balancing with nginx+lua / Андрей Кононов (IPONWEB)
smart balancing with nginx+lua / Андрей Кононов (IPONWEB)smart balancing with nginx+lua / Андрей Кононов (IPONWEB)
smart balancing with nginx+lua / Андрей Кононов (IPONWEB)Ontico
 
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...SECON
 
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)Ontico
 
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)Ontico
 
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)Ontico
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Ontico
 
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Ontico
 

La actualidad más candente (20)

Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
 
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
 
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...
 
Балансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в ОдноклассникахБалансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в Одноклассниках
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
обзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаобзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторинга
 
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
 
smart balancing with nginx+lua / Андрей Кононов (IPONWEB)
smart balancing with nginx+lua / Андрей Кононов (IPONWEB)smart balancing with nginx+lua / Андрей Кононов (IPONWEB)
smart balancing with nginx+lua / Андрей Кононов (IPONWEB)
 
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
 
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
 
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
 
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
 
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
 

Destacado

Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)Ontico
 
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...Ontico
 
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...Ontico
 
Архитектура и алгоритмы для индексации всей музыки ВКонтакте / Алексей Акулов...
Архитектура и алгоритмы для индексации всей музыки ВКонтакте / Алексей Акулов...Архитектура и алгоритмы для индексации всей музыки ВКонтакте / Алексей Акулов...
Архитектура и алгоритмы для индексации всей музыки ВКонтакте / Алексей Акулов...Ontico
 
Поиск совпадений и дедупликация в потоке / Леонид Юрьев (Positive Technologies)
Поиск совпадений и дедупликация в потоке / Леонид Юрьев (Positive Technologies)Поиск совпадений и дедупликация в потоке / Леонид Юрьев (Positive Technologies)
Поиск совпадений и дедупликация в потоке / Леонид Юрьев (Positive Technologies)Ontico
 
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)Ontico
 
Как мы готовим MySQL / Николай Королёв (Badoo)
Как мы готовим MySQL / Николай Королёв (Badoo)Как мы готовим MySQL / Николай Королёв (Badoo)
Как мы готовим MySQL / Николай Королёв (Badoo)Ontico
 
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)Ontico
 
Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)
Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)
Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)Ontico
 
DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015Ivan Evtukhovich
 
Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...
Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...
Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...Ontico
 
Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015odnoklassniki.ru
 
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Ontico
 
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)Ontico
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Ontico
 
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Ontico
 
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»DevDay
 
Путь мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyПуть мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyVsevolod Polyakov
 
Monitoring base, golang meetup, kyiv
Monitoring base, golang meetup, kyivMonitoring base, golang meetup, kyiv
Monitoring base, golang meetup, kyivVsevolod Polyakov
 

Destacado (20)

Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
 
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
 
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
 
Архитектура и алгоритмы для индексации всей музыки ВКонтакте / Алексей Акулов...
Архитектура и алгоритмы для индексации всей музыки ВКонтакте / Алексей Акулов...Архитектура и алгоритмы для индексации всей музыки ВКонтакте / Алексей Акулов...
Архитектура и алгоритмы для индексации всей музыки ВКонтакте / Алексей Акулов...
 
Поиск совпадений и дедупликация в потоке / Леонид Юрьев (Positive Technologies)
Поиск совпадений и дедупликация в потоке / Леонид Юрьев (Positive Technologies)Поиск совпадений и дедупликация в потоке / Леонид Юрьев (Positive Technologies)
Поиск совпадений и дедупликация в потоке / Леонид Юрьев (Positive Technologies)
 
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
Неочевидные детали при запуске HTTPS в OK.Ru / Андрей Домась (Одноклассники)
 
Как мы готовим MySQL / Николай Королёв (Badoo)
Как мы готовим MySQL / Николай Королёв (Badoo)Как мы готовим MySQL / Николай Королёв (Badoo)
Как мы готовим MySQL / Николай Королёв (Badoo)
 
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
 
Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)
Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)
Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)
 
Updates
UpdatesUpdates
Updates
 
DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015
 
Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...
Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...
Опыт построения и эксплуатации большого файлового хранилища / Даниил Подольск...
 
Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015
 
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
 
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
 
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
 
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
 
Путь мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyПуть мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в Grammarly
 
Monitoring base, golang meetup, kyiv
Monitoring base, golang meetup, kyivMonitoring base, golang meetup, kyiv
Monitoring base, golang meetup, kyiv
 

Similar a Как не положить тысячи серверов с помощью системы централизованного управления конфигурацией на примере CFEngine / Дмитрий Самсонов (Одноклассники)

Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
DevOps в реальном времени
DevOps в реальном времениDevOps в реальном времени
DevOps в реальном времениAndriy Samilyak
 
Zherdev icinga 20120423
Zherdev icinga 20120423Zherdev icinga 20120423
Zherdev icinga 20120423kuchinskaya
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenchesGleb Rybalko
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...IT-Portfolio
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeYehor Herasymchuk
 
MockServer-driven development
MockServer-driven developmentMockServer-driven development
MockServer-driven developmentTestableapple
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Coit-people
 
Виктор Стрелков - Jabber как инструмент разработчика
Виктор Стрелков - Jabber как инструмент разработчикаВиктор Стрелков - Jabber как инструмент разработчика
Виктор Стрелков - Jabber как инструмент разработчикаPositive Hack Days
 
Введение в performance management
Введение в performance managementВведение в performance management
Введение в performance managementSQALab
 
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ Provectus
 
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.ScrumTrek
 
Xp days 2019 - Why startups need SRE practices
Xp days 2019 - Why startups need SRE practicesXp days 2019 - Why startups need SRE practices
Xp days 2019 - Why startups need SRE practicesAlexey Andreev
 
How we built continuous delivery
How we built continuous deliveryHow we built continuous delivery
How we built continuous deliveryAlik Kurdyukov
 
Развитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три годаРазвитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три годаSQALab
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...WrikeTechClub
 

Similar a Как не положить тысячи серверов с помощью системы централизованного управления конфигурацией на примере CFEngine / Дмитрий Самсонов (Одноклассники) (20)

Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Chef @DevWeb
Chef @DevWebChef @DevWeb
Chef @DevWeb
 
DevOps в реальном времени
DevOps в реальном времениDevOps в реальном времени
DevOps в реальном времени
 
Zherdev icinga 20120423
Zherdev icinga 20120423Zherdev icinga 20120423
Zherdev icinga 20120423
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 
Dev collaboration
Dev collaborationDev collaboration
Dev collaboration
 
Sivko
SivkoSivko
Sivko
 
MockServer-driven development
MockServer-driven developmentMockServer-driven development
MockServer-driven development
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
 
Виктор Стрелков - Jabber как инструмент разработчика
Виктор Стрелков - Jabber как инструмент разработчикаВиктор Стрелков - Jabber как инструмент разработчика
Виктор Стрелков - Jabber как инструмент разработчика
 
Введение в performance management
Введение в performance managementВведение в performance management
Введение в performance management
 
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
 
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
 
Xp days 2019 - Why startups need SRE practices
Xp days 2019 - Why startups need SRE practicesXp days 2019 - Why startups need SRE practices
Xp days 2019 - Why startups need SRE practices
 
How we built continuous delivery
How we built continuous deliveryHow we built continuous delivery
How we built continuous delivery
 
Развитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три годаРазвитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три года
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
 

Más de Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Ontico
 
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)Ontico
 

Más de Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
 
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
 

Как не положить тысячи серверов с помощью системы централизованного управления конфигурацией на примере CFEngine / Дмитрий Самсонов (Одноклассники)

  • 1. Как не положить тысячи серверов с помощью системы централизованного управления конфигурацией на примере CFEngine Дмитрий Самсонов
  • 2. Дмитрий Самсонов Ведущий системный администратор в OK.RU Компетенция: ● Zabbix ● CFEngine ● Linux tuning dmitry.samsonov@odnoklassniki.ru https://www.linkedin.com/in/dmitrysamsonov
  • 5. Разоблачение Я предвзят У меня есть опыт использования CFEngine только версии 3.3.x-3.4.x
  • 6. Разоблачение Я предвзят У меня есть опыт использования CFEngine только версии 3.3.x-3.4.x CFEngine не лидер и не аутсайдер рынка
  • 7. Разоблачение Я предвзят У меня есть опыт использования CFEngine только версии 3.3.x-3.4.x CFEngine не лидер и не аутсайдер рынка Я не буду сравнивать configuration management на сегодняшний день
  • 8. Разоблачение Я предвзят У меня есть опыт использования CFEngine только версии 3.3.x-3.4.x CFEngine не лидер и не аутсайдер рынка Я не буду сравнивать configuration management на сегодняшний день У меня есть опыт использования только CFEngine и Ansible
  • 10. Классические средства конфигурации ● ssh + scp + winexe ● dssh-command + dscp + dwinexe-command
  • 11. Классические средства конфигурации ● ssh + scp + winexe ● dssh-command + dscp + dwinexe-command ● Образ OS (регулярные обновления)
  • 12. dssh-command # cqn feeds-portlet-cdb | dssh-command -t 300 "hostname"
  • 13. dssh-command # cqn feeds-portlet-cdb | dssh-command -t 300 "hostname" How much is 5 + 8 =
  • 14. dssh-command # cqn feeds-portlet-cdb | dssh-command -t 300 "hostname" How much is 5 + 8 = 50, 100, 200...
  • 15. dssh-command # cqn feeds-portlet-cdb | dssh-command -t 300 "hostname" How much is 5 + 8 = 13 Correct srvd1352:O:0:srvd1352
  • 16. dssh-command # cqn feeds-portlet-cdb | dssh-command -t 300 "hostname" How much is 5 + 8 = 13 Correct srvd1352:O:0:srvd1352 Executing: "hostname" Do you want to execute the command on servers in DL? [Yes/No]: Yes srvd1353:O:0:srvd1353
  • 17. dssh-command # cqn feeds-portlet-cdb | dssh-command -t 300 "hostname" How much is 5 + 8 = 13 Correct srvd1352:O:0:srvd1352 Executing: "hostname" Do you want to execute the command on servers in DL? [Yes/No]: Yes srvd1353:O:0:srvd1353 Executing: "hostname" Do you want to execute the command on servers in M100? [Yes/no]: Yes srve1993:O:0:srve1993 srve2765:O:0:srve2765 ... Full output saved in /tmp/dsshFullOutput_29606_2016-10-14_13-17.log file.
  • 19. Как мы выбирали и что выбрали в 2012 ● Интеграция с CMDB ● Установка пакетов ● Работа с файлами (копирование/редактирование/атрибуты) ● Контроль файлов (содержимое/атрибуты) ● Управление процессами и сервисами ● Ручной запуск политик ● Контроль версий, логирование изменений, отчеты ● Масштабирование, резервирование ● Поддержка Linux и Windows ● Проверка на наличие серверов без работающего CM
  • 20. Как мы выбирали и что выбрали в 2012 ● Производительность
  • 22. Как мы выбирали и что выбрали в 2012 ● Производительность ● Зрелость
  • 23. Современная история CM “A theory of configuration maintenance was worked out by Mark Burgess with a practical implementation on present day computer systems in the software CFEngine able to perform real time repair as well as preventive maintenance.” https://en.wikipedia.org/wiki/Configuration_management#Operating_System_configuration_management
  • 24. Как мы выбирали и что выбрали в 2012 ● Зрелость ● Производительность ● Популярность
  • 28. Типичная политика настройки приложения "app_ok_feed" or => {"cmdb_group_feeds_proxy", “cmdb_group_feeds_cache}; ... bundle agent app_ok_feed { vars: "application" string => "ok-feed"; methods: "app_ok" usebundle => app_ok("$(application)"); }
  • 29. Библиотека настройки приложений bundle agent app_ok(application) { vars: "file[/ok/bin/$(application)][policy]" string => "copy"; "file[/ok/bin/$(application)][mode]" string => "0755"; "file[/ok/conf/$(application).conf][policy]" string => "copy"; "file[/root/ok/ok.properties][policy]" string => "edit"; "file[/root/ok/ok.properties][suffix]" string => "$(application)"; "file[/root/ok/ok.properties][type]" string => "file"; methods: "files" usebundle => files_manage("$(this.bundle).file"); }
  • 30. CFEngine может быть простым в использовании Добавить пользователя: "user[git][policy]" string => "add"; Запустить сервис: "service[mysql][policy]" string => "start"; Добавить крон: "cron[do_well][cron]" string => "* * * * * do_well"; Установить пакет: "package[rsyslog][policy]" string => "add";
  • 31. Количество политик по типам Библиотека Служебные Приложения
  • 32. Возможно всё! ● IP routes ● HW RAID Write cache ● SELinux ● IPMI SOL ● Kernel modules ● RSS/RPS/RFS
  • 33. Чем он нам не нравится ● Высокий порог вхождения
  • 34. Чем он нам не нравится ● Высокий порог вхождения ● Сильно отстаёт от конкурентов
  • 35. Чем он нам не нравится ● Высокий порог вхождения ● Сильно отстаёт от конкурентов ● Нет возможности расширять функционал
  • 36. Чем он нам не нравится ● Высокий порог вхождения ● Сильно отстаёт от конкурентов ● Нет возможности расширять функционал ● Плохие шаблоны
  • 38. “В одну тихую весеннюю ночь, а именно с 4- го на 5-ое апреля 2013-го года, ничто не предвещало беды — юзеры непринуждённо общались, грузили и комментили фоточки, и собирали урожай, как вдруг всё ё***лось, и что, с**а, характерно, обратно не поднялось. Ни через час, ни через два, ни через три. И даже не через 20 часов! … Что это за централизованная система управления, которая лёгким движением руки позволяет отправить несколько тысяч серверов в /dev/null, знают только её разработчики…” https://lurkmore.to/Одноклассники
  • 39. Можно ли было избежать? ● Проверка синаксиса ● Тестовые окружения ● Ревью ● Мониторинг ошибок
  • 41. CFEngine по-прежнему работает постоянно и проверяет политики каждые 5 минут
  • 42. Как мы работаем 1. Проверка в git hooks 2. Проверка в тестовом окружении 3. Проверка на части прод серверов с автоматизированным контролем нагрузки 4. Ревью 5. Плавное распространение по проду
  • 43. GIT hooks ● Проверка синтаксиса
  • 44. GIT hooks ● Проверка синтаксиса ● Автокоррекция стиля
  • 45. GIT hooks ● Проверка синтаксиса ● Автокоррекция стиля ● Автозаполнение и проверка commit message
  • 46. Как мы работаем 1. Проверка в git hooks 2. Проверка в тестовом окружении 3. Проверка на части прод серверов с автоматизированным контролем нагрузки 4. Ревью 5. Плавное распространение по проду
  • 47. Проверка в тестовом окружении ● Unstable - виртуалки
  • 48. Проверка в тестовом окружении ● Unstable - виртуалки ● Testing - физические сервера
  • 49. Как мы работаем 1. Проверка в git hooks 2. Проверка в тестовом окружении 3. Проверка на части прод серверов с автоматизированным контролем нагрузки 4. Ревью 5. Плавное распространение по проду
  • 51. Stable ● Прод сервера ● От каждого нового кластера берётся один сервер
  • 52. Stable ● Прод сервера ● От каждого нового кластера берётся один сервер ● Все варианты железа и приложений
  • 53. Stable ● Прод сервера ● От каждого нового кластера берётся один сервер ● Все варианты железа и приложений ● Потеря прозрачна для пользователей
  • 54. Stable ● Прод сервера ● От каждого нового кластера берётся один сервер ● Все варианты железа и приложений ● Потеря прозрачна для пользователей ● Обновления плавно в течение одного часа
  • 55. Stable ● Прод сервера ● От каждого нового кластера берётся один сервер ● Все варианты железа и приложений ● Потеря прозрачна для пользователей ● Обновления плавно в течение одного часа ● Для серверов автоматически контролируется нагрузка
  • 56. Как мы работаем 1. Проверка в git hooks 2. Проверка в тестовом окружении 3. Проверка на части прод серверов с автоматизированным контролем нагрузки 4. Ревью 5. Плавное распространение по проду
  • 57. Ревью Ревью политики: 1. Соблюдение style guide (большая часть проверяется pre-commit хуком в git) 2. “Адекватность” кода 3. Использование последних версий методов 4. …
  • 58. Ревью Соблюдение всех условий для продвижения в прод: 1. Нет ошибок выполнения 2. Нет проблем с нагрузкой 3. “Промариновалось”
  • 59. Ещё пара слов про ревью ● Исключение - инциденты!
  • 60. Ещё пара слов про ревью ● Исключение - инциденты! ● Кто ревьювит?
  • 61. Как мы работаем 1. Проверка в git hooks 2. Проверка в тестовом окружении 3. Проверка на части прод серверов с автоматизированным контролем нагрузки 4. Ревью 5. Плавное распространение по проду
  • 62. Production ● Поделен на независимые части
  • 63. Production ● Поделен на независимые части ● Каждая часть применяет изменения равномерно в течение часа
  • 64. Production ● Поделен на независимые части ● Каждая часть применяет изменения равномерно в течение часа ● Обновления работают только с 8:00 до 20:00
  • 65. Как мы работаем 1. Проверка в git hooks 2. Проверка в тестовом окружении 3. Проверка на части прод серверов с автоматизированным контролем нагрузки 4. Ревью 5. Плавное распространение по проду
  • 67. План “Б” ● Альтернативный минимальный набор политик ● Изменяется очень редко
  • 68. План “В” cf-stop - остановка CFEngine на всём проде за несколько минут
  • 70. Это надо делать обязательно ● Тестировать в разных условиях ● Долго тестировать на части прода ● Делать ревью ● Распространять обновления в продакшене плавно и поэтапно ● Иметь план на случай аварии
  • 71. Спасибо за внимание! ● Блог Одноклассников на Хабре http://habrahabr.ru/company/odnoklassniki/ ● Больше о нас и наших докладах http://v.ok.ru/ Дмитрий Самсонов dmitry.samsonov@odnoklassniki.ru https://www.linkedin.com/in/dmitrysamsonov