HighLoad++ 2016 завершён. До встречи в 2017!

Профессиональная конференция разработчиков высоконагруженных систем

Москва, СКОЛКОВО,
7 и 8 ноября
Архив
2015
года
Конференция прошла в этом году уже в десятый раз и собрала 2500 участников. Мероприятие направлено на обмен знаниями о технологиях, позволяющих одновременно обслуживать многие тысячи и миллионы пользователей.

Микросервисы: удобно, надежно, серебрянопульно
Архитектуры

Доклад принят в Программу конференции
News360

Возглавляет команду backend разработчиков в News360. Разработал приложение для графовых операций на большом объёме данных (сотни миллионов узлов, десятки миллиардов рёбер) в Сбербанк-Технологии.
Разработал и внедрил систему сбора и обработки данных из социальных сетей в компании Инфорион. В проекте использовались Apache Spark, Apache Kafka и ElasticSearch. Ключевыми особенностями системы является высокая нагруженность подсистемы сбора и аналитики. Объём данных: терабайты в месяц.

News360

Ведущий разработчик News360. Имеет разносторонний опыт разработки и оптимизации высоконагруженных систем, от нетривиальных корпоративных приложений и наукоемких систем распознавания документов до фреймворков и облачных платформ. Считает главным принципом разработки Keep it simple.

Тезисы

В процессе рефакторинга архитектуры мы начали переделывать часть системы на микросервисы, и вышло настолько клево, что мы просто обязаны этим поделиться.

Микросервисы.
Зачем они вообще:
- В простых сервисах легче разбираться и локализовывать проблемы.
- В микросервисной архитектуре проще добиваться отказоустойчивости.
- Хотим выбирать лучший инструмент для каждой задачи. Получаем зоопарк технологий, которые в монолитные сервисы интегрировать сложнее.
- Независимое обновление компонентов.
- Тестирование частей системы.
Как:
- Docker-образы как основа.
- Rancher как система деплоя и оркестрации Docker-контейнеров. High availability.
- Простота сервиса - ключевой момент.
== Критерий: Разработчик должен иметь возможность быстро понять и переписать сервис при необходимости.
== Забавное следствие: такие сервисы пишутся не на века, а под текущие требования. Получается быстро и agile-но, ведь изменения легко сможет внести любой разработчик.
== PEP8.
- HTTP API и поддержка Swagger. Резко упрощают тестирование.
- RabbitMQ pipelines как отказоустойчивая система взаимодействий между сервисами:
== DLX помогает разбираться со врЕменными проблемами.
== HTTP RPC.
- Метрики, метрики и ещё раз метрики.
== service status API.
== Graphite, Zabbix. Может, к ноябрю еще OKmeter успеем попробовать.
- Структурированые логи: JSON stdout => Fluentd => ELK => счастье. Локализация багов и пр. Об этом подробнее в отдельной презентации.
- В любой непонятной ситуации...
== Сервис должен падать, а не зависать.
== Healthchecks.
- Стабильность архитектуры.
== Осознанная деградация! Любой сервис должен быть готов к падению другого. При этом в первом должно быть явно описано, как будет при этом ограничиваться его функциональность. Это ведет к отсутствию эффекта домино, когда один малозначащий сервис, упав, утягивает за собой всю систему.
- Документация.
== Степень критичности каждого сервиса.
== Краткий обзор функциональности (вспоминаем: сервисы _простые_).
== Конфиги.
== drawback: описание архитектуры обязано быть актуальным и полным, иначе беда.
Трудности: Допишу через пару дней.

API
,
Python
,
Прочие языки
,
Организация системы кеширования
,
Микросервисы, SOA
,
Отказоустойчивость
,
Стандарты кодирования
,
Рефакторинг
,
Методы и техника разработки ПО
,
Критерии выбора технологий для проекта
,
Логирование и мониторинг
,
Непрерывное развертывание и деплой
,
Автоматизация разработки и тестирования

Другие доклады секции
Архитектуры

Бронирование билетов
Вы можете забронировать себе билеты уже сейчас — чем раньше Вы это сделаете, тем лучше, ведь цена на билеты постоянно растёт. Бронь вас ни к чему не обязывает, после бронирования у Вас будет пара недель на принятие решения об оплате.
ЗАБРОНИРОВАТЬ БИЛЕТЫ
Остались вопросы?
Спроси по телефону у контактного центра: +7 (495) 646-0768
Или напиши письмо в службу поддержки: support@ontico.ru
Rambler's Top100