Необходимость использования средств управления конфигурацией в процессе эксплуатации сложных веб систем быстро становится очевидной, тем не менее, использование различных средств управления конфигурацией имеет свои нюансы и тонкости. Разные системы управления конфигурацией создавались с учетом различающихся требований их создателей, и они по-разному решают возложенные на них задачи. Доклад посвящен обобщению практического опыта применения четырех средств управления конфигурацией — Chef, Puppet, SaltStack и Ansible в гетерогенных окружениях разного размера, построенных на базе различных UNIX-подобных платформ, от FreeBSD и Linux до SmartOS.
Целевая аудитория доклада: веб-разработчики, инженеры отделов эксплуатации.
Ее примерный уровень: средний.
«Масштабируемый DevOps» Александр КолесеньIT Share
Типичные подходы к развертыванию приложений: как правильные, так и неправильные, но повсеместно применяемые.
Как сделать так, чтобы развертывание не стало проблемой с линейным ростом количества поддерживаемых окружений.
Методы обновления проекта с нулевым временем простоя: когда это уместно и принципиально возможно.
Необходимость использования средств управления конфигурацией в процессе эксплуатации сложных веб систем быстро становится очевидной, тем не менее, использование различных средств управления конфигурацией имеет свои нюансы и тонкости. Разные системы управления конфигурацией создавались с учетом различающихся требований их создателей, и они по-разному решают возложенные на них задачи. Доклад посвящен обобщению практического опыта применения четырех средств управления конфигурацией — Chef, Puppet, SaltStack и Ansible в гетерогенных окружениях разного размера, построенных на базе различных UNIX-подобных платформ, от FreeBSD и Linux до SmartOS.
Целевая аудитория доклада: веб-разработчики, инженеры отделов эксплуатации.
Ее примерный уровень: средний.
«Масштабируемый DevOps» Александр КолесеньIT Share
Типичные подходы к развертыванию приложений: как правильные, так и неправильные, но повсеместно применяемые.
Как сделать так, чтобы развертывание не стало проблемой с линейным ростом количества поддерживаемых окружений.
Методы обновления проекта с нулевым временем простоя: когда это уместно и принципиально возможно.
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013Moscow.pm
- Как создать презентацию не вылезая из любимого текстового редактора (notepad++, padre, vim).
- Как perl помогает автоматизировать работу без написания кода.
- Пара скриптов, которые облегчают работу на разных платформах.
- Те же скрипты на perl6.
- Автоматизация и тестирование Firefox.
Алексей Фомкин, Практическое применение Web WorkersAleksey Fomkin
WebWorkers имеют глобальное покрытие в 92% по данным http://caniuse.com. Тем не менее, не всякое современное веб-приложение использует их.
В своем докладе я постараюсь передать двухлетний опыт использования WebWorkers в нашей команде для написания веб-приложений с функциональностью, которая требует выполнения тяжелых вычислений, таких как преобразование бинарых файлов из одного формата в другой и шифрование.
Расскажу про эксперименты по переносу в воркер расчета diff'ов в React-подобной системе рендеринга и покажу наивную реализацию модели акторов на основе воркеров.
Также постараюсь подготовить слушателей к новым проблемам, которые могут возникнуть при использовании веб-воркеров.
WebGL многими воспринимается как API для "быстрого" рисования. Но на практике нередко случается, что решение на WebGL выходит медленным, иногда даже медленнее решений на других API.
В этом докладе мы попробуем взглянуть на проблемы производительности, встречающиеся в работе с WebGL, и их решения на примере движка Панорам Яндекс.Карт.
SERP или просто страница результатов поисковой выдачи — это действительно большой проект с огромной аудиторией. Над ним работают около 40 фронтендеров из разных городов. Эта страница показывается больше 200 000 000 раз в день. При таких размерах даже модульная архитектура уже не слишком спасала нас от странных, неочевидных зависимостей, лишних стилей и нескольких разных реализаций почти одинаковых компонентов.
Процесс разработки новой, даже довольно простой на первый взгляд фичи занимал чудовищное количество времени и представлял из себя хаотичное взаимодействие большого количества людей: фронта, бэкенда, дизайнеров и менеджеров.
Стала закрадываться мысль, что пора что-то менять. И мы поменяли.
В докладе я расскажу о том, как мы с помощью проекта на стыке фронтендеров, менеджеров, и дизайнеров, навели во всем этом идеальный порядок. Каким образом поменяли наш код процессы и инструменты, а также что нам это дало, и как будем жить с этим дальше.
Если вам знакомы похожие проблемы, то наш опыт может оказаться вам чертовски полезным.
"Fault tolerant workflow orchestration on PHP", Anton TsitouFwdays
Workflow orchestration systems.
About Temporal.IO (Cadence, AWS SWF).
Integrating Temporal to RoadRunner and PHP.
Overview of PHP SDK for durable workflow orchestration.
Что такое REPL, как он устроен и какие крутые возможности в нём заложены. Поговорим о выполнении кода в REPL и о том как работает автокомплит в динамических языках. Ответим на вопрос что такое vm.runInContext, перехватим парочку промисов, сделаем вывод результатов действительно приятным и даже узнаем как подгрузить нужные модули и не подать виду. В заключение рассмотрим потрясающие возможности, которые даёт нам инфраструктура npm и как это всё можно использовать в работе.
Доклад ориентирован на тех, кому небезынтересен мир Node.js, но будет доступен также и более широкому кругу JS-разработчиков. Надеюсь, для кого-нибудь этот доклад станет очередной ступенькой в изучении любимого языка.
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013Moscow.pm
- Как создать презентацию не вылезая из любимого текстового редактора (notepad++, padre, vim).
- Как perl помогает автоматизировать работу без написания кода.
- Пара скриптов, которые облегчают работу на разных платформах.
- Те же скрипты на perl6.
- Автоматизация и тестирование Firefox.
Алексей Фомкин, Практическое применение Web WorkersAleksey Fomkin
WebWorkers имеют глобальное покрытие в 92% по данным http://caniuse.com. Тем не менее, не всякое современное веб-приложение использует их.
В своем докладе я постараюсь передать двухлетний опыт использования WebWorkers в нашей команде для написания веб-приложений с функциональностью, которая требует выполнения тяжелых вычислений, таких как преобразование бинарых файлов из одного формата в другой и шифрование.
Расскажу про эксперименты по переносу в воркер расчета diff'ов в React-подобной системе рендеринга и покажу наивную реализацию модели акторов на основе воркеров.
Также постараюсь подготовить слушателей к новым проблемам, которые могут возникнуть при использовании веб-воркеров.
WebGL многими воспринимается как API для "быстрого" рисования. Но на практике нередко случается, что решение на WebGL выходит медленным, иногда даже медленнее решений на других API.
В этом докладе мы попробуем взглянуть на проблемы производительности, встречающиеся в работе с WebGL, и их решения на примере движка Панорам Яндекс.Карт.
SERP или просто страница результатов поисковой выдачи — это действительно большой проект с огромной аудиторией. Над ним работают около 40 фронтендеров из разных городов. Эта страница показывается больше 200 000 000 раз в день. При таких размерах даже модульная архитектура уже не слишком спасала нас от странных, неочевидных зависимостей, лишних стилей и нескольких разных реализаций почти одинаковых компонентов.
Процесс разработки новой, даже довольно простой на первый взгляд фичи занимал чудовищное количество времени и представлял из себя хаотичное взаимодействие большого количества людей: фронта, бэкенда, дизайнеров и менеджеров.
Стала закрадываться мысль, что пора что-то менять. И мы поменяли.
В докладе я расскажу о том, как мы с помощью проекта на стыке фронтендеров, менеджеров, и дизайнеров, навели во всем этом идеальный порядок. Каким образом поменяли наш код процессы и инструменты, а также что нам это дало, и как будем жить с этим дальше.
Если вам знакомы похожие проблемы, то наш опыт может оказаться вам чертовски полезным.
"Fault tolerant workflow orchestration on PHP", Anton TsitouFwdays
Workflow orchestration systems.
About Temporal.IO (Cadence, AWS SWF).
Integrating Temporal to RoadRunner and PHP.
Overview of PHP SDK for durable workflow orchestration.
Что такое REPL, как он устроен и какие крутые возможности в нём заложены. Поговорим о выполнении кода в REPL и о том как работает автокомплит в динамических языках. Ответим на вопрос что такое vm.runInContext, перехватим парочку промисов, сделаем вывод результатов действительно приятным и даже узнаем как подгрузить нужные модули и не подать виду. В заключение рассмотрим потрясающие возможности, которые даёт нам инфраструктура npm и как это всё можно использовать в работе.
Доклад ориентирован на тех, кому небезынтересен мир Node.js, но будет доступен также и более широкому кругу JS-разработчиков. Надеюсь, для кого-нибудь этот доклад станет очередной ступенькой в изучении любимого языка.
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...Serguei Gitinsky
30 мая состоялся большой съезд всех питерских айтишных митапов (регулярно встречающихся групп по той или иной IT теме). Наш ГИ (Главный Инженер) представлял там митап DevOps-40, который родился с участием нашей компании. Презентация была посвящена языку Perl и нашим двум крупным клиентам, которые используют приложения на нем в production…
Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.DrupalSib
Как настроить деплой приложения и потом быстро и безболезненно «одной кнопкой» запускать сайт на сервере.
How to quickly configure an application and then painlessly run a site on the server using "one button".
My talk on Hadoop stack operations engineering at OSPConAlex Chistyakov
My talk on Hadoop stack operations engineering at OSPCon Nov 2015 (http://www.ospcon.ru/event/prakticheskaya-konferentsiya-tekhnologii-bolshikh-dannykh_130.html)
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»FDConf
Доклад о том, зачем нужен CI, как он интегрируется в процесс разработки. В докладе есть небольшое демо о весьма известном cloud-based CI сервисе Travis-CI. В процессе демо будет «поломан» билд и затем сразу же починен. Весьма показательно в том плане, что это доказывает простоту всей технологии.
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...IT-Portfolio
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление окружениями в сложном проекте: Chef и другие", Александр Чистяков (ведущий разработчик Cezurity).
Аннотация
Облачный антивирус, который мы делаем в партнерстве с vk.com, отличается от типичного веб-проекта наличием большого числа специализированных и не очень специализированных подсистем. Это ставит перед отделом эксплуатации принципиально новые вызовы: нужно не только уметь реагировать на случайные сбои и предсказывать неслучайные, но и просто помнить где что лежит и какую задачу выполняет. О том, как мы отвечаем на эти вызовы в компании Cezurity - мой доклад.
Биография
Докладчик - узкий специалист широкого профиля, относит себя к виду, называемому в современной англоязычной литературе термином "DevOps". Любит принимать участие в создании сложных систем и постоянно это делает. Никогда не работал в Яндексе, компенсировав это работой в Mail.Ru и некоторых других местах.
1. Опыт использования Ansible
для управления
конфигурацией
Место для смешного подзаголовка
Александр Чистяков,
главный инженер Git in Sky,
2014
2. Кто я?
§ Меня зовут Саша
§ Я главный инженер в компании Git in Sky
§ Ночью — разработчик ПО
§ Днем — инженер отдела эксплуатации
§ Или наоборот
Опыт использования Ansible для управления конфигурацией. 2014
3. Кто вы?
§ С вами все ясно
Опыт использования Ansible для управления конфигурацией. 2014
4. Доклад о том, как Ansible помогает мне
§ Объективное сравнение невозможно
§ Поэтому сравнения не будет вообще
§ Я расскажу о своих use cases
§ Начну с того, что расскажу о себе
§ Такой вот я эгоист
Опыт использования Ansible для управления конфигурацией. 2014
5. Феерическая расстановка точек над всеми
§ Набор навыков: “Разработчик”
§ Набор навыков: “Системный администратор”
§ Набор навыков: “Автоматизатор”
§ Все три абилки смешать нельзя, будет взрыв
§ “Ой, у меня засорилась труба!”
§ ^ Кого из трех обычно вызывают? (никого)
Опыт использования Ansible для управления конфигурацией. 2014
6. Пара слов обо мне
§ Я не автоматизатор
§ Скучно, нету драйва и челленджа
§ Не пытайтесь повторить дома =>
§ (если что — я на мотоцикле не езжу,
не люблю экстрим)
§ Меня вызывают! (это про прошлый слайд)
Опыт использования Ansible для управления конфигурацией. 2014
7. Как устроен Ansible
§ Это программа на языке Python
§ Она умеет применять playbooks к хостам
§ На хостах не нужны никакие агенты
§ Все, что нужно на хосте — Python
§ Коммуникация между управляющей
машиной и хостом идет по SSH
Опыт использования Ansible для управления конфигурацией. 2014
8. Мой типичный use case
§ Хочу на всех машинах пользователя chistyakov
§ Хочу, чтобы у него shell был zsh
§ Хочу oh-my-zsh с моей темой
§ ^ Промпт синенького цвета ОБЯЗАТЕЛЬНО!
§ Хочу UID 0 у chistyakov
§ atop с интервалом 30 сек, tmux, другие
приятные мелочи
Опыт использования Ansible для управления конфигурацией. 2014
9. Доп. условия
§ Кастомеров много, а я одна
§ ^ отлично, playbook храним у меня
§ На машинах везде Ubuntu 12.04/14.04
§ ^ отлично, сценарий будет один и тот же
§ Цели ясны, задачи определены
Опыт использования Ansible для управления конфигурацией. 2014
10. Инвентаризация
§ Inventory file — файл в формате INI, группы:хосты
§ Штатно - /etc/ansible/hosts, может быть где угодно
Опыт использования Ansible для управления конфигурацией. 2014
11. Необходимые приготовления на хостах
§ Завести везде пользователя (пусть он сразу будет chistyakov)
§ Добавить его в /etc/sudoers, разрешить sudo без пароля
§ Прописать ему в ~/.ssh/authorized_keys мой ключ
§ ^ Приготовления логичны, должен же я туда как-то попасть?
Опыт использования Ansible для управления конфигурацией. 2014
12. Анатомия playbook
§ Это YAML-файл, определяющий что и где запускать, от кого
запускать и в каком порядке
Опыт использования Ansible для управления конфигурацией. 2014
13. Анатомия задачи
§ У задачи есть имя (лучше делать его уникальным), название
модуля, который будет выполняться, параметры этого
модуля (у каждого — свои) и атрибуты самой задачи
§ После исполнения задача может нотифицировать хэндлеры,
если они указаны
Опыт использования Ansible для управления конфигурацией. 2014
14. Анатомия хэндлера
§ У хэндлера есть имя (оно точно должно быть уникальным), а
в остальном хэндлер это просто обычная задача,
объявленная в секции handlers
§ Не нотифицировали — не будет вызван
Опыт использования Ansible для управления конфигурацией. 2014
15. Порядок применения хэндлеров
§ Обычно хэндлеры запускаются в самом конце, после
выполнения всех задач
§ Бывает необходимым запустить уже нотифицированные
хэндлеры до какой-то задачи, иначе она не пройдет
Опыт использования Ansible для управления конфигурацией. 2014
16. Условное выполнение
§ Некоторые задачи нужно сделать только один раз
(Например — перестать писать на PHP)
§ Регистрируем результат выполнения задачи в переменной, и
в следующей задаче проверяем ее значение
Опыт использования Ansible для управления конфигурацией. 2014
17. Что не попало в этот use case?
§ Можно использовать переменные и связывать их с
конкретными хостами
§ Это делается через файлы вида host_vars/hostname, где
hostname — FQDN хоста
§ Выглядит так:
Опыт использования Ansible для управления конфигурацией. 2014
18. Что было хорошо?
§ Нет необходимости разворачивать и поддерживать сервер
§ Нет необходимости разворачивать на хостах клиент
§ И, кстати, клиент потребляет ровно 0 мегабайт RSS
§ Модуль service умеет обращаться с SMF-сервисами (это в
Solaris)
§ Местный DSL очень немногословен
Опыт использования Ansible для управления конфигурацией. 2014
19. Что еще было хорошо?
§ SmartOS — достаточно капризная система
§ Это не просто клон Solaris, а клон Solaris, работающий с USB-
устройства
§ Поэтому некоторые конфиги при рестартах он просто теряет (это
ожидаемое поведение)
§ Другие коллеги используют bash-скрипты, я использую Ansible,
запускаемый при старте хоста
“Взять файлы в git, натравить на них Ansible”
Опыт использования Ansible для управления конфигурацией. 2014
20. Это не все, не расходитесь!
§ Поменять UID у того же пользователя, под которым
открыта сессия - это не совсем просто
§ Особенно, если вы хотите потом залогинится еще раз
§ usermod так не умеет
§ Зато так умеет Augeas, для которого есть модуль для
Ansible! (Всего две CM системы из известных мне
знают про Augeas)
Опыт использования Ansible для управления конфигурацией. 2014
21. Что вызывало вопросы?
§ А достаточно ли быстр SSH для массового удаленного
выполнения команд?
§ Есть еще один файл — ansible.cfg и параметр в нем
(по умолчанию выключен, надо сначала убрать requiretty в
/etc/sudoers, иначе сломаете sudo):
Опыт использования Ansible для управления конфигурацией. 2014
22. Снимем показания счетчика
§ Без pipelining
§ С pipelining
Опыт использования Ansible для управления конфигурацией. 2014
23. Что было ужасно?
§ При выполнении playbook на одной из машин со SmartOS его
исполнение намертво зависло
§ Проблема в core library — модуль service разрешает и
запускает SMF-сервисы рекурсивно, что при определенном
стечении обстоятельств приводит к попыткам запустить на
выполнение в бесконечном цикле конфигурационный
файл
Опыт использования Ansible для управления конфигурацией. 2014
24. Что ужасно до сих пор?
§ Фреймворк юнит-тестирования плейбуков отсутствует
§ В документации вообще нет ни слова про юнит-тесты
§ Привычка присваивать ролям номера версий отсутствует
§ Да, роли — я о них не рассказал, так как не пользуюсь, но они
есть
§ “Роль” это просто переиспользуемый кусок плейбука
(ну почти)
Опыт использования Ansible для управления конфигурацией. 2014
25. Выводы:
§ Некоторые еще и лимонад добавляют
§ ^ Ничего не имею против
§ Больше систем, хороших и разных!
§ Ключевое слово: “хороших”, а не “разных”
§ ^ Не поваляешь — не поешь
Опыт использования Ansible для управления конфигурацией. 2014
26. С вами был Александр Чистяков,
главный инженер Git in Sky
alex@gitinsky.com
http://gitinsky.com
http://meetup.com/DevOps-40
Пожалуйста, ваши вопросы.
Спасибо за внимание!
http://devconf.ru/offers/ - ПРОГОЛОСУЙТЕ, ПОЖАЛУЙСТА,
ЗА МОИ ЗАЯВКИ!