SlideShare a Scribd company logo
1 of 51
Download to read offline
Слон
желтого
цвета и его
друзья
Alex Chistyakov
Будем знакомы
• Меня зовут Саша
• Я работаю в Федеральном Казенном Учреждении
«Налог-Сервис» на должности главного
специалиста
• В мои должностные обязанности входит
эксплуатация Hadoop-кластера ФНС
Вы?
• Готов поспорить, немного программируете?
• Судя по названию конференции —
разрабатываете высоконагруженные(?) системы
• Пишете на PHP?
• Имеете опыт работы с MySQL?
• Используете MongoDB?
• ^ Ничего из этих трех пунктов мы в ФКУ «Налог-
Сервис» не делаем :)
КДПВ
• Ужасного качества фото * (снимал на утюг)
Немного истории
• Попасть в большой проект очень просто — надо
сидеть дома и ждать, вам позвонят
• Когда я переступил порог московского филиала,
постановка задачи звучала как «всё плохо,
необходимо привести всё в порядок»
• Все было не так уж и плохо
Что было (факты)
• Полстойки BigData-решения от компании Cisco
Что было (факты)
• Полстойки BigData-решения от компании Cisco
• RHEL 6
Что было (факты)
• Полстойки BigData-решения от компании Cisco
• RHEL 6
• Установленный «дистрибутив» Hadoop от
компании Cloudera версии 5.2
Что было (факты)
• Полстойки BigData-решения от компании Cisco
• RHEL 6
• Установленный «дистрибутив» Hadoop от
компании Cloudera версии 5.2
• Разработчики в продакшн-системе,
меняющие настройки кластера через веб-
интерфейс
Что было (факты)
• Полстойки BigData-решения от компании Cisco
• RHEL 6
• Установленный «дистрибутив» Hadoop от
компании Cloudera версии 5.2
• Разработчики в продакшн-системе,
меняющие настройки кластера через веб-
интерфейс
• Приложение на Java и приложение на Scala,
решающие разные задачи с использованием
разных сервисов (YARN/HBase и Spark/Parquet,
соответственно)
Бизнес-задачи
• Поиск ошибочных данных в налоговых
декларациях путем сравнения деклараций
контрагентов
Бизнес-задачи
• Поиск ошибочных данных в налоговых
декларациях путем сравнения деклараций
контрагентов
• ^ Делается в отсутствие интерактивных
пользователей
Бизнес-задачи
• Поиск ошибочных данных в налоговых
декларациях путем сравнения деклараций
контрагентов
• ^ Делается в отсутствие интерактивных
пользователей
• Визуализация найденных несоответствий
(помогает налоговым инспекторам формировать
требования по НДС)
Бизнес-задачи
• Поиск ошибочных данных в налоговых
декларациях путем сравнения деклараций
контрагентов
• ^ Делается в отсутствие интерактивных
пользователей
• Визуализация найденных несоответствий
(помогает налоговым инспекторам формировать
требования по НДС)
• Обработка интерактивных запросов от налоговых
инспекторов
Бизнес-задачи
• Поиск ошибочных данных в налоговых
декларациях путем сравнения деклараций
контрагентов
• ^ Делается в отсутствие интерактивных
пользователей
• Визуализация найденных несоответствий
(помогает налоговым инспекторам формировать
требования по НДС)
• Обработка интерактивных запросов от налоговых
инспекторов
• ^ Делается в рабочее время
D — DevOps
• Culture
• Automation
• Measurement
• Sharing
C — Culture
• В петербургском филиале ФКУ «Налог-Сервис»
принято обращаться друг к другу по имени-
отчеству
A — Ansible
• Как будто есть что-то еще!
Б — Безопасность
• Внутренняя сеть не имеет подключения к
интернету
• Ничего нельзя внести и вынести
• Зато можно спать в спальнике на полу в
петербургском филиале, пока кластер считает
Первые шаги
• Не очень старый, но добрый Ansible
• Первый проект, в котором я при помощи Ansible
делал ad hoc команды
• ansible all -a "command" --sudo --user ansible
Первые шаги
• Не очень старый, но добрый Ansible
• Первый проект, в котором я при помощи Ansible
делал ad hoc команды
• ansible all -a "command" --sudo --user ansible
• Описание конфигурации в виде playbooks/roles
• Прямое переиспользование ролей из других
проектов почти невозможно — Cloudera очень
специальная вещь
Cloudera — …
• Управление через web-interface
• Параметры хранятся в базе PostgreSQL
• Где-то есть шаблоны, на основании которых
генерируются конфигурационные файлы
сервисов
Cloudera — …
• Управление через web-interface
• Параметры хранятся в базе PostgreSQL
• Где-то есть шаблоны, на основании которых
генерируются конфигурационные файлы
сервисов
• Сервисами заведует supervisord
• Конфигурационные файлы генерируются заново
для каждого запуска в каталоге с уникальным
монотонно возрастающим номером O_O
Cloudera — …
• Web-интерфейс «знает» далеко не про все
возможные параметры
• Значения вида -Xmx2048m не поддерживаются,
Cloudera manager разбирает ТОЛЬКО значения в
байтах
• Как быть, если нужно задать значение более
4-х гигабайт (в Int не помещается)? :)
Cloudera — …
• Web-интерфейс «знает» далеко не про все
возможные параметры
• Значения вида -Xmx2048m не поддерживаются,
Cloudera manager разбирает ТОЛЬКО значения в
байтах
• Как быть, если нужно задать значение более
4-х гигабайт (в Int не помещается)? :)
• ^ Отдельный вопрос: зачем выделять
контейнеру более 4-х гигабайт? O_o
Cloudera — …
• Зафиксировали конфигурацию при помощи
Ansible
• Оторвали web interface
• Получили набор странных проблем при рестарте
узла (конфигурация удаляется)
• Удивились, перенесли конфигурацию в другой
каталог
M — Measurement
• Church of Metrics
• В первую же неделю работы мы внесли в
закрытый контур LXC-контейнер с Grafana и
Graphite/Whisper
• Church of Metrics получила несколько новых
адептов :)
H — Highload :)
• 100% утилизация системного HDD на машине с
Grafana/Graphite/Whisper
• Жалобы разработчиков (они просто ничего не
понимают в мониторинге)
H — Highload :)
• 100% утилизация системного HDD на машине с
Grafana/Graphite/Whisper
• Жалобы разработчиков (они просто ничего не
понимают в мониторинге)
• Доказательства того, что узел и правда не
справляется (в логах видно, что не успевают
писаться логи)
O — OpenTSDB
• У нас уже есть HDFS и HBase
• Храним метрики в HBase
• Интерфейс рисования графиков в Grafana для
OpenTSDB — это боль
С — CPU (7 days)
• У нас уже есть HDFS и HBase
• Храним метрики в Hbase
• Интерфейс рисования графиков в Grafana для
OpenTSDB — это боль
C — CPU (12 hours)
• У нас уже есть HDFS и HBase
• Храним метрики в Hbase
• Интерфейс рисования графиков в Grafana для
OpenTSDB — это боль
Ж — Жадность
• У нас уже есть HDFS и HBase
• Храним метрики в Hbase
• Интерфейс рисования графиков в Grafana для
OpenTSDB — это боль
Б — Баланс
• У нас уже есть HDFS и HBase
• Храним метрики в Hbase
• Интерфейс рисования графиков в Grafana для
OpenTSDB — это боль
О — Отказ
• У нас уже есть HDFS и HBase
• Храним метрики в Hbase
• Интерфейс рисования графиков в Grafana для
OpenTSDB — это боль
О — Отказ
• supervisord в Cloudera так настроен, что после
трех попыток выключает сервис
• Однажды у нас выключились 11 region servers в
HBase
• Кластер работал БЕЗ ПОТЕРИ
ПРОИЗВОДИТЕЛЬНОСТИ
О — Отказ
• supervisord в Cloudera так настроен, что после
трех попыток выключает сервис
• Однажды у нас выключились 11 region servers в
HBase
• Кластер работал БЕЗ ПОТЕРИ
ПРОИЗВОДИТЕЛЬНОСТИ
• ^ WTF???!!!
Л — Локальность
• Свойство region server читать данные прямо с
data node
Л — Локальность
• Была 0 на всех region servers
• На HDFS data nodes — FQDN
• На HBase region servers — короткие символьные
имена
• Несовпадение имен — RS не считают, что данные
локальны
Л — Локальность
• Была 0 на всех region servers
• На HDFS data nodes — FQDN
• На HBase region servers — короткие символьные
имена
• Несовпадение имен — RS не считают, что данные
локальны
• Рестарт data nodes — теперь используются
короткие имена
• Major compaction всех таблиц
Л — Локальность
• Была 0 на всех region servers
• На HDFS data nodes — FQDN
• На HBase region servers — короткие символьные
имена
• Несовпадение имен — RS не считают, что данные
локальны
• Рестарт data nodes — теперь используются
короткие имена
• Major compaction всех таблиц
• И НУЛЕВОЙ ПРИРОСТ
ПРОИЗВОДИТЕЛЬНОСТИ! :)
S — Sampling
• kill -QUIT pid
• Скрипт на bash :)
• Анализ сэмплов вручную
• Слишком частые обращения к HBase metadata
• ^ быстро исправили
S — Sampling
• kill -QUIT pid
• Скрипт на bash :)
• Анализ сэмплов вручную
• Слишком частые обращения к HBase metadata
• ^ быстро исправили
• Low hanging fruits кончились, далее проблемы
внутри алгоритма — в сэмплах видим счет
Момент истины
• Неважно, сколько у вас в кластере узлов
• Важно, насколько хорошо параллелится ваш
алгоритм
• Не должно быть большого разброса во временах
исполнения однотипных подзадач в контейнерах
D — Docker
• Ничего не понятно!
• ^ Необходимость создания изолированной среды
D — Docker
• Ничего не понятно!
• ^ Необходимость создания изолированной среды
• «Тонкие контейнеры»
• ^ Не работают, YARN теряется в случае, когда
сеть сделана пробросом портов
D — Docker
• Ничего не понятно!
• ^ Необходимость создания изолированной среды
• «Тонкие контейнеры»
• ^ Не работают, YARN теряется в случае, когда
сеть сделана пробросом портов
• OpenVSwitch
• ^ Бывает, зависает в момент добавления новых
сетевых карт в бридж
D — Docker
• 2 тестовых машины
• Примерно по 10 контейнеров на каждой
• «Работает — не трогай»
• OpenVSwitch, процедура проверки
работоспособности сети и рестарта
• Понимание того, что с Docker нам не по пути :)
S — Sharing
• Одна пятидневная и две трехдневные
тренировочные сессии для коллег из московского
и петербургского филиалов
• Процесс развертывания всего стека с
комментариями, запись видео
• Преподавать — это круто! :)
• Ни за три дня, ни за пять дней материал усвоить
невозможно :(
• В планах — дистанционное обучение
В — Выводы
• В федеральных проектах тоже есть жизнь
• Она точно такая же, как и в любой большой
коммерческой компании
• Стек технологий Hadoop неплохо подходит для
анализа больших объемов данных
• Знание, по-прежнему, сила!
С — Спасибо!
• С вами был Александр Чистяков
• http://service-nalog.ru
• alex@gitinsky.com
• http://meetup.com/DevOps-40
• Пожалуйста, ваши вопросы!

More Related Content

What's hot

"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) АксеновAlex Chistyakov
 
Why we did not choose Hadoop
Why we did not choose HadoopWhy we did not choose Hadoop
Why we did not choose HadoopSerguei Gitinsky
 
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017Alex Chistyakov
 
Облако в Badoo год спустя
Облако в Badoo год спустяОблако в Badoo год спустя
Облако в Badoo год спустяYuriy Nasretdinov
 
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...Ontico
 
Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)Ontico
 
My talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ruMy talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ruAlex Chistyakov
 
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Ontico
 
Salt and Ansible - Python-based CM systems
Salt and Ansible - Python-based CM systemsSalt and Ansible - Python-based CM systems
Salt and Ansible - Python-based CM systemsAlex Chistyakov
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Ontico
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Anton Baranov
 
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...Ontico
 
RTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwordsRTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwordsDaniel Podolsky
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Fwdays
 
Performance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon SaranskPerformance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon SaranskAlex Chistyakov
 
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
RTB DSP на языке Go укрощение buzzwords /  Даниил Подольский (Qmobi.Com)RTB DSP на языке Go укрощение buzzwords /  Даниил Подольский (Qmobi.Com)
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)Ontico
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Ontico
 
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)Ontico
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Ontico
 

What's hot (20)

"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
 
Using Ansible
Using AnsibleUsing Ansible
Using Ansible
 
Why we did not choose Hadoop
Why we did not choose HadoopWhy we did not choose Hadoop
Why we did not choose Hadoop
 
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
 
Облако в Badoo год спустя
Облако в Badoo год спустяОблако в Badoo год спустя
Облако в Badoo год спустя
 
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
 
Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)
 
My talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ruMy talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ru
 
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
 
Salt and Ansible - Python-based CM systems
Salt and Ansible - Python-based CM systemsSalt and Ansible - Python-based CM systems
Salt and Ansible - Python-based CM systems
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...
 
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
 
RTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwordsRTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwords
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
 
Performance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon SaranskPerformance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon Saransk
 
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
RTB DSP на языке Go укрощение buzzwords /  Даниил Подольский (Qmobi.Com)RTB DSP на языке Go укрощение buzzwords /  Даниил Подольский (Qmobi.Com)
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)
 
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
 

Viewers also liked

Cоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTargetCоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTargetOleg Tsarev
 
Олег Анастасьев "Ближе к Cassandra". Выступление на Cassandra Conf 2013
Олег Анастасьев "Ближе к Cassandra". Выступление на Cassandra Conf 2013Олег Анастасьев "Ближе к Cassandra". Выступление на Cassandra Conf 2013
Олег Анастасьев "Ближе к Cassandra". Выступление на Cassandra Conf 2013it-people
 
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...odnoklassniki.ru
 
Класс!ная Cassandra
Класс!ная CassandraКласс!ная Cassandra
Класс!ная Cassandraodnoklassniki.ru
 
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...Alex Chistyakov
 
Презентация про DTrace на ADDconf в Минске
Презентация про DTrace на ADDconf в МинскеПрезентация про DTrace на ADDconf в Минске
Презентация про DTrace на ADDconf в МинскеAlex Chistyakov
 
Мой modern Perl (весенняя встреча Piter United)
Мой modern Perl (весенняя встреча Piter United)Мой modern Perl (весенняя встреча Piter United)
Мой modern Perl (весенняя встреча Piter United)Alex Chistyakov
 
Выступление в DataArt на тему "Кто такие DevOps?"
Выступление в DataArt на тему "Кто такие DevOps?"Выступление в DataArt на тему "Кто такие DevOps?"
Выступление в DataArt на тему "Кто такие DevOps?"Alex Chistyakov
 
Optimization of a big PostgreSQL database
Optimization of a big PostgreSQL databaseOptimization of a big PostgreSQL database
Optimization of a big PostgreSQL databaseAlex Chistyakov
 
DevOps-40 meetup #7, Project FiFo
DevOps-40 meetup #7, Project FiFoDevOps-40 meetup #7, Project FiFo
DevOps-40 meetup #7, Project FiFoAlex Chistyakov
 
My talk on LeoFS, HappyDev 2014
My talk on LeoFS, HappyDev 2014My talk on LeoFS, HappyDev 2014
My talk on LeoFS, HappyDev 2014Alex Chistyakov
 
Chef, Puppet, Salt, Ansible on SECON 2014
Chef, Puppet, Salt, Ansible on SECON 2014Chef, Puppet, Salt, Ansible on SECON 2014
Chef, Puppet, Salt, Ansible on SECON 2014Alex Chistyakov
 
My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017Alex Chistyakov
 
"Building data streams" Константин Евтеев (Avito)
"Building data streams" Константин Евтеев (Avito)"Building data streams" Константин Евтеев (Avito)
"Building data streams" Константин Евтеев (Avito)AvitoTech
 
Harry Potter and the Daemons of Berkeley
Harry Potter and the Daemons of BerkeleyHarry Potter and the Daemons of Berkeley
Harry Potter and the Daemons of BerkeleyAlex Chistyakov
 
My talk at CEE-SECR 2016
My talk at CEE-SECR 2016My talk at CEE-SECR 2016
My talk at CEE-SECR 2016Alex Chistyakov
 
My talk at YouCon Saratov 2016
My talk at YouCon Saratov 2016My talk at YouCon Saratov 2016
My talk at YouCon Saratov 2016Alex Chistyakov
 

Viewers also liked (20)

HBase on Dev{Highload}
HBase on Dev{Highload}HBase on Dev{Highload}
HBase on Dev{Highload}
 
Cоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTargetCоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTarget
 
Олег Анастасьев "Ближе к Cassandra". Выступление на Cassandra Conf 2013
Олег Анастасьев "Ближе к Cassandra". Выступление на Cassandra Conf 2013Олег Анастасьев "Ближе к Cassandra". Выступление на Cassandra Conf 2013
Олег Анастасьев "Ближе к Cassandra". Выступление на Cassandra Conf 2013
 
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
 
Класс!ная Cassandra
Класс!ная CassandraКласс!ная Cassandra
Класс!ная Cassandra
 
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...
 
Презентация про DTrace на ADDconf в Минске
Презентация про DTrace на ADDconf в МинскеПрезентация про DTrace на ADDconf в Минске
Презентация про DTrace на ADDconf в Минске
 
Мой modern Perl (весенняя встреча Piter United)
Мой modern Perl (весенняя встреча Piter United)Мой modern Perl (весенняя встреча Piter United)
Мой modern Perl (весенняя встреча Piter United)
 
Выступление в DataArt на тему "Кто такие DevOps?"
Выступление в DataArt на тему "Кто такие DevOps?"Выступление в DataArt на тему "Кто такие DevOps?"
Выступление в DataArt на тему "Кто такие DevOps?"
 
Optimization of a big PostgreSQL database
Optimization of a big PostgreSQL databaseOptimization of a big PostgreSQL database
Optimization of a big PostgreSQL database
 
DevOps-40 meetup #7, Project FiFo
DevOps-40 meetup #7, Project FiFoDevOps-40 meetup #7, Project FiFo
DevOps-40 meetup #7, Project FiFo
 
My talk on LeoFS, HappyDev 2014
My talk on LeoFS, HappyDev 2014My talk on LeoFS, HappyDev 2014
My talk on LeoFS, HappyDev 2014
 
Chef, Puppet, Salt, Ansible on SECON 2014
Chef, Puppet, Salt, Ansible on SECON 2014Chef, Puppet, Salt, Ansible on SECON 2014
Chef, Puppet, Salt, Ansible on SECON 2014
 
My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017
 
"Building data streams" Константин Евтеев (Avito)
"Building data streams" Константин Евтеев (Avito)"Building data streams" Константин Евтеев (Avito)
"Building data streams" Константин Евтеев (Avito)
 
HBase on HappyDev 2013
HBase on HappyDev 2013HBase on HappyDev 2013
HBase on HappyDev 2013
 
My talk at LVEE 2016
My talk at LVEE 2016My talk at LVEE 2016
My talk at LVEE 2016
 
Harry Potter and the Daemons of Berkeley
Harry Potter and the Daemons of BerkeleyHarry Potter and the Daemons of Berkeley
Harry Potter and the Daemons of Berkeley
 
My talk at CEE-SECR 2016
My talk at CEE-SECR 2016My talk at CEE-SECR 2016
My talk at CEE-SECR 2016
 
My talk at YouCon Saratov 2016
My talk at YouCon Saratov 2016My talk at YouCon Saratov 2016
My talk at YouCon Saratov 2016
 

Similar to My talk at Highload++ 2015

Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyAlex Chistyakov
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrusAlex Chistyakov
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...IT-Portfolio
 
Мастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииМастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииNikolay Sivko
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеit-people
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Ontico
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхSergey Xek
 
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)Zabbix
 
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Badoo Development
 
2014.12.06 03 Александр Чистяков — Устройство object storage на примере LeoFS
2014.12.06 03 Александр Чистяков — Устройство object storage на примере LeoFS2014.12.06 03 Александр Чистяков — Устройство object storage на примере LeoFS
2014.12.06 03 Александр Чистяков — Устройство object storage на примере LeoFSHappyDev
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Ontico
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезныSergey Xek
 
Выступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceВыступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceEYevseyeva
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезныSergey Xek
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...it-people
 
Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...Ontico
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхSergey Xek
 

Similar to My talk at Highload++ 2015 (20)

Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на Ruby
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrus
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
 
Мастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииМастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатации
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилище
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
 
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
 
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
 
Little Service in 2h
Little Service in 2hLittle Service in 2h
Little Service in 2h
 
Sivko
SivkoSivko
Sivko
 
2014.12.06 03 Александр Чистяков — Устройство object storage на примере LeoFS
2014.12.06 03 Александр Чистяков — Устройство object storage на примере LeoFS2014.12.06 03 Александр Чистяков — Устройство object storage на примере LeoFS
2014.12.06 03 Александр Чистяков — Устройство object storage на примере LeoFS
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
 
Выступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceВыступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance Conference
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
 

More from Alex Chistyakov

My slides from DevOpsDays 2019
My slides from DevOpsDays 2019My slides from DevOpsDays 2019
My slides from DevOpsDays 2019Alex Chistyakov
 
My slides from BMM №3 May 2019
My slides from BMM №3 May 2019My slides from BMM №3 May 2019
My slides from BMM №3 May 2019Alex Chistyakov
 
My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019 My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019 Alex Chistyakov
 
My slides from SECR'2018
My slides from SECR'2018My slides from SECR'2018
My slides from SECR'2018Alex Chistyakov
 
My slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArtMy slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArtAlex Chistyakov
 
My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019Alex Chistyakov
 
My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019Alex Chistyakov
 
My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019Alex Chistyakov
 
Configuration management and Kubernetes
Configuration management and KubernetesConfiguration management and Kubernetes
Configuration management and KubernetesAlex Chistyakov
 
Python performance engineering in 2017
Python performance engineering in 2017Python performance engineering in 2017
Python performance engineering in 2017Alex Chistyakov
 
My talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGMMy talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGMAlex Chistyakov
 
My talk on GitHub open data at ITGM #10
 My talk on GitHub open data at ITGM #10 My talk on GitHub open data at ITGM #10
My talk on GitHub open data at ITGM #10Alex Chistyakov
 
My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017Alex Chistyakov
 
My talk at DevParty 2017
My talk at DevParty 2017My talk at DevParty 2017
My talk at DevParty 2017Alex Chistyakov
 

More from Alex Chistyakov (20)

My slides from DevOpsDays 2019
My slides from DevOpsDays 2019My slides from DevOpsDays 2019
My slides from DevOpsDays 2019
 
My slides from BMM №3 May 2019
My slides from BMM №3 May 2019My slides from BMM №3 May 2019
My slides from BMM №3 May 2019
 
My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019 My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019
 
My slides from SECR'2018
My slides from SECR'2018My slides from SECR'2018
My slides from SECR'2018
 
My slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArtMy slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArt
 
My slides from CC'2019
My slides from CC'2019My slides from CC'2019
My slides from CC'2019
 
My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019
 
My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019
 
My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019
 
Configuration management and Kubernetes
Configuration management and KubernetesConfiguration management and Kubernetes
Configuration management and Kubernetes
 
Ansible and other stuff
Ansible and other stuffAnsible and other stuff
Ansible and other stuff
 
Python performance engineering in 2017
Python performance engineering in 2017Python performance engineering in 2017
Python performance engineering in 2017
 
My talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGMMy talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGM
 
My talk at SECR 2017
My talk at SECR 2017My talk at SECR 2017
My talk at SECR 2017
 
On scaling teams
On scaling teamsOn scaling teams
On scaling teams
 
MariaDB workshop
MariaDB workshopMariaDB workshop
MariaDB workshop
 
Docker for JS people
Docker for JS peopleDocker for JS people
Docker for JS people
 
My talk on GitHub open data at ITGM #10
 My talk on GitHub open data at ITGM #10 My talk on GitHub open data at ITGM #10
My talk on GitHub open data at ITGM #10
 
My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017
 
My talk at DevParty 2017
My talk at DevParty 2017My talk at DevParty 2017
My talk at DevParty 2017
 

My talk at Highload++ 2015

  • 2. Будем знакомы • Меня зовут Саша • Я работаю в Федеральном Казенном Учреждении «Налог-Сервис» на должности главного специалиста • В мои должностные обязанности входит эксплуатация Hadoop-кластера ФНС
  • 3. Вы? • Готов поспорить, немного программируете? • Судя по названию конференции — разрабатываете высоконагруженные(?) системы • Пишете на PHP? • Имеете опыт работы с MySQL? • Используете MongoDB? • ^ Ничего из этих трех пунктов мы в ФКУ «Налог- Сервис» не делаем :)
  • 4. КДПВ • Ужасного качества фото * (снимал на утюг)
  • 5. Немного истории • Попасть в большой проект очень просто — надо сидеть дома и ждать, вам позвонят • Когда я переступил порог московского филиала, постановка задачи звучала как «всё плохо, необходимо привести всё в порядок» • Все было не так уж и плохо
  • 6. Что было (факты) • Полстойки BigData-решения от компании Cisco
  • 7. Что было (факты) • Полстойки BigData-решения от компании Cisco • RHEL 6
  • 8. Что было (факты) • Полстойки BigData-решения от компании Cisco • RHEL 6 • Установленный «дистрибутив» Hadoop от компании Cloudera версии 5.2
  • 9. Что было (факты) • Полстойки BigData-решения от компании Cisco • RHEL 6 • Установленный «дистрибутив» Hadoop от компании Cloudera версии 5.2 • Разработчики в продакшн-системе, меняющие настройки кластера через веб- интерфейс
  • 10. Что было (факты) • Полстойки BigData-решения от компании Cisco • RHEL 6 • Установленный «дистрибутив» Hadoop от компании Cloudera версии 5.2 • Разработчики в продакшн-системе, меняющие настройки кластера через веб- интерфейс • Приложение на Java и приложение на Scala, решающие разные задачи с использованием разных сервисов (YARN/HBase и Spark/Parquet, соответственно)
  • 11. Бизнес-задачи • Поиск ошибочных данных в налоговых декларациях путем сравнения деклараций контрагентов
  • 12. Бизнес-задачи • Поиск ошибочных данных в налоговых декларациях путем сравнения деклараций контрагентов • ^ Делается в отсутствие интерактивных пользователей
  • 13. Бизнес-задачи • Поиск ошибочных данных в налоговых декларациях путем сравнения деклараций контрагентов • ^ Делается в отсутствие интерактивных пользователей • Визуализация найденных несоответствий (помогает налоговым инспекторам формировать требования по НДС)
  • 14. Бизнес-задачи • Поиск ошибочных данных в налоговых декларациях путем сравнения деклараций контрагентов • ^ Делается в отсутствие интерактивных пользователей • Визуализация найденных несоответствий (помогает налоговым инспекторам формировать требования по НДС) • Обработка интерактивных запросов от налоговых инспекторов
  • 15. Бизнес-задачи • Поиск ошибочных данных в налоговых декларациях путем сравнения деклараций контрагентов • ^ Делается в отсутствие интерактивных пользователей • Визуализация найденных несоответствий (помогает налоговым инспекторам формировать требования по НДС) • Обработка интерактивных запросов от налоговых инспекторов • ^ Делается в рабочее время
  • 16. D — DevOps • Culture • Automation • Measurement • Sharing
  • 17. C — Culture • В петербургском филиале ФКУ «Налог-Сервис» принято обращаться друг к другу по имени- отчеству
  • 18. A — Ansible • Как будто есть что-то еще!
  • 19. Б — Безопасность • Внутренняя сеть не имеет подключения к интернету • Ничего нельзя внести и вынести • Зато можно спать в спальнике на полу в петербургском филиале, пока кластер считает
  • 20. Первые шаги • Не очень старый, но добрый Ansible • Первый проект, в котором я при помощи Ansible делал ad hoc команды • ansible all -a "command" --sudo --user ansible
  • 21. Первые шаги • Не очень старый, но добрый Ansible • Первый проект, в котором я при помощи Ansible делал ad hoc команды • ansible all -a "command" --sudo --user ansible • Описание конфигурации в виде playbooks/roles • Прямое переиспользование ролей из других проектов почти невозможно — Cloudera очень специальная вещь
  • 22. Cloudera — … • Управление через web-interface • Параметры хранятся в базе PostgreSQL • Где-то есть шаблоны, на основании которых генерируются конфигурационные файлы сервисов
  • 23. Cloudera — … • Управление через web-interface • Параметры хранятся в базе PostgreSQL • Где-то есть шаблоны, на основании которых генерируются конфигурационные файлы сервисов • Сервисами заведует supervisord • Конфигурационные файлы генерируются заново для каждого запуска в каталоге с уникальным монотонно возрастающим номером O_O
  • 24. Cloudera — … • Web-интерфейс «знает» далеко не про все возможные параметры • Значения вида -Xmx2048m не поддерживаются, Cloudera manager разбирает ТОЛЬКО значения в байтах • Как быть, если нужно задать значение более 4-х гигабайт (в Int не помещается)? :)
  • 25. Cloudera — … • Web-интерфейс «знает» далеко не про все возможные параметры • Значения вида -Xmx2048m не поддерживаются, Cloudera manager разбирает ТОЛЬКО значения в байтах • Как быть, если нужно задать значение более 4-х гигабайт (в Int не помещается)? :) • ^ Отдельный вопрос: зачем выделять контейнеру более 4-х гигабайт? O_o
  • 26. Cloudera — … • Зафиксировали конфигурацию при помощи Ansible • Оторвали web interface • Получили набор странных проблем при рестарте узла (конфигурация удаляется) • Удивились, перенесли конфигурацию в другой каталог
  • 27. M — Measurement • Church of Metrics • В первую же неделю работы мы внесли в закрытый контур LXC-контейнер с Grafana и Graphite/Whisper • Church of Metrics получила несколько новых адептов :)
  • 28. H — Highload :) • 100% утилизация системного HDD на машине с Grafana/Graphite/Whisper • Жалобы разработчиков (они просто ничего не понимают в мониторинге)
  • 29. H — Highload :) • 100% утилизация системного HDD на машине с Grafana/Graphite/Whisper • Жалобы разработчиков (они просто ничего не понимают в мониторинге) • Доказательства того, что узел и правда не справляется (в логах видно, что не успевают писаться логи)
  • 30. O — OpenTSDB • У нас уже есть HDFS и HBase • Храним метрики в HBase • Интерфейс рисования графиков в Grafana для OpenTSDB — это боль
  • 31. С — CPU (7 days) • У нас уже есть HDFS и HBase • Храним метрики в Hbase • Интерфейс рисования графиков в Grafana для OpenTSDB — это боль
  • 32. C — CPU (12 hours) • У нас уже есть HDFS и HBase • Храним метрики в Hbase • Интерфейс рисования графиков в Grafana для OpenTSDB — это боль
  • 33. Ж — Жадность • У нас уже есть HDFS и HBase • Храним метрики в Hbase • Интерфейс рисования графиков в Grafana для OpenTSDB — это боль
  • 34. Б — Баланс • У нас уже есть HDFS и HBase • Храним метрики в Hbase • Интерфейс рисования графиков в Grafana для OpenTSDB — это боль
  • 35. О — Отказ • У нас уже есть HDFS и HBase • Храним метрики в Hbase • Интерфейс рисования графиков в Grafana для OpenTSDB — это боль
  • 36. О — Отказ • supervisord в Cloudera так настроен, что после трех попыток выключает сервис • Однажды у нас выключились 11 region servers в HBase • Кластер работал БЕЗ ПОТЕРИ ПРОИЗВОДИТЕЛЬНОСТИ
  • 37. О — Отказ • supervisord в Cloudera так настроен, что после трех попыток выключает сервис • Однажды у нас выключились 11 region servers в HBase • Кластер работал БЕЗ ПОТЕРИ ПРОИЗВОДИТЕЛЬНОСТИ • ^ WTF???!!!
  • 38. Л — Локальность • Свойство region server читать данные прямо с data node
  • 39. Л — Локальность • Была 0 на всех region servers • На HDFS data nodes — FQDN • На HBase region servers — короткие символьные имена • Несовпадение имен — RS не считают, что данные локальны
  • 40. Л — Локальность • Была 0 на всех region servers • На HDFS data nodes — FQDN • На HBase region servers — короткие символьные имена • Несовпадение имен — RS не считают, что данные локальны • Рестарт data nodes — теперь используются короткие имена • Major compaction всех таблиц
  • 41. Л — Локальность • Была 0 на всех region servers • На HDFS data nodes — FQDN • На HBase region servers — короткие символьные имена • Несовпадение имен — RS не считают, что данные локальны • Рестарт data nodes — теперь используются короткие имена • Major compaction всех таблиц • И НУЛЕВОЙ ПРИРОСТ ПРОИЗВОДИТЕЛЬНОСТИ! :)
  • 42. S — Sampling • kill -QUIT pid • Скрипт на bash :) • Анализ сэмплов вручную • Слишком частые обращения к HBase metadata • ^ быстро исправили
  • 43. S — Sampling • kill -QUIT pid • Скрипт на bash :) • Анализ сэмплов вручную • Слишком частые обращения к HBase metadata • ^ быстро исправили • Low hanging fruits кончились, далее проблемы внутри алгоритма — в сэмплах видим счет
  • 44. Момент истины • Неважно, сколько у вас в кластере узлов • Важно, насколько хорошо параллелится ваш алгоритм • Не должно быть большого разброса во временах исполнения однотипных подзадач в контейнерах
  • 45. D — Docker • Ничего не понятно! • ^ Необходимость создания изолированной среды
  • 46. D — Docker • Ничего не понятно! • ^ Необходимость создания изолированной среды • «Тонкие контейнеры» • ^ Не работают, YARN теряется в случае, когда сеть сделана пробросом портов
  • 47. D — Docker • Ничего не понятно! • ^ Необходимость создания изолированной среды • «Тонкие контейнеры» • ^ Не работают, YARN теряется в случае, когда сеть сделана пробросом портов • OpenVSwitch • ^ Бывает, зависает в момент добавления новых сетевых карт в бридж
  • 48. D — Docker • 2 тестовых машины • Примерно по 10 контейнеров на каждой • «Работает — не трогай» • OpenVSwitch, процедура проверки работоспособности сети и рестарта • Понимание того, что с Docker нам не по пути :)
  • 49. S — Sharing • Одна пятидневная и две трехдневные тренировочные сессии для коллег из московского и петербургского филиалов • Процесс развертывания всего стека с комментариями, запись видео • Преподавать — это круто! :) • Ни за три дня, ни за пять дней материал усвоить невозможно :( • В планах — дистанционное обучение
  • 50. В — Выводы • В федеральных проектах тоже есть жизнь • Она точно такая же, как и в любой большой коммерческой компании • Стек технологий Hadoop неплохо подходит для анализа больших объемов данных • Знание, по-прежнему, сила!
  • 51. С — Спасибо! • С вами был Александр Чистяков • http://service-nalog.ru • alex@gitinsky.com • http://meetup.com/DevOps-40 • Пожалуйста, ваши вопросы!