Не смотря на то, что Delphix Dynamic Data Platform широко используется с комплексными бизнес-платформами от таких производителей как SAP, Oracle, Microsoft, IBM и многих других.Попробовать ее и оценить, как она может положительно повлиять нетолько на ИТ но и на весь бизнес вашей компании довольно просто. В презентации кратко описан подход Efficient IT к проведению Proof of Value Delphix Dynamic Data Platform.
Чему мы научились разрабатывая микросервисы?Vadim Madison
Доклад с конференции Backend Conf 2016
Начав разработку нового продукта через микросервисы, мы неожиданно для себя обнаружили, что микросервисы — это не просто "вместо одного большого приложения теперь пишем много маленьких". При разработке большой системы она сама собой через какое-то время становится набором отдельных сервисов, которые должны взаимодействовать между собой, поэтому стабильная работа сервисов и их взаимодействие не стало чем-то новым. Неожиданностью стало то, что система стала значительно более динамической, она стала постоянно изменяться отдельными небольшими частями, сервисы стали часто перезапускаться, а количество запущенных нод сервисов стало расти по экспоненте.
Очень быстро стал актуальным вопрос конфигурирования — если раньше, выкатив новую версию монолита с единым конфигом, мы применяли правки на всю систему сразу, то с микросервисами все сложнее — пара сотен работающих нод и всем нужно применить изменения. Требования к деплою также поменялись — он стал частью процесса разработки, а тестирование стало частью деплоя. Количество необходимого ПО для функционирования системы также стало некоторым сюрпризом.
В докладе я расскажу о том, как в итоге это работает у нас, как мы решили такие вопросы как:
- конфигурирование сервисов;
- интеграция между собой;
- тестирование;
- версионирование;
- масштабирование.
Расскажу, какие тулзы мы в итоге используем, а от каких отказались.
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)Ontico
«Одноклассники» состоят из тысяч серверов, большая часть которых участвует в онлайн-обработке запросов пользователей. Каждый из этих серверов владеет только частью данных или логики. Эти части в социальной сети изолировать друг от друга невозможно, поэтому между серверами происходит много сетевого взаимодействия — разнообразного и большого по объему. Таким образом, Одноклассники — это одна из самых больших, сложных и нагруженных распределенных систем в мире.
В этом докладе Олег расскажет об опыте построения отказоустойчивых распределенных систем на Java, основных ошибках и отказах, приемах их тестирования и диагностики. Также речь пойдет об авариях в распределенных системах и методах их предупреждения.
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...Ontico
HighLoad++ 2017
Зал «Найроби + Касабланка», 8 ноября, 16:00
Тезисы:
http://www.highload.ru/2017/abstracts/2996.html
Наш проект – это облачный CI-сервис, на котором пользователи запускают тесты разрабатываемых проектов.
В этом году система автозакупки нашего проекта приобрела 37218 машин (Amazon Instances). Это позволило обработать 189488 "задач" (прогонов тестов) наших клиентов.
Тесты – это всегда ресурсоемкие задачи с максимальным потреблением процессорных мощностей и памяти. Мы не можем прогнозировать, сколько параллельных вычислений и в какой момент времени будет. Перед нами стояла задача построения архитектуры системы, которая умеет очень быстро увеличивать, а также быстро уменьшать мощности кластера.
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...Ontico
HighLoad++ 2017
Зал «Кейптаун», 7 ноября, 16:00
Тезисы:
http://www.highload.ru/2017/abstracts/2901.html
Все знают, что длинные транзакции - это плохо, но не все могут объяснить - почему. Что в них такого, что заставляет PostgreSQL работать медленнее?
На примере одного из наших процессов я покажу, насколько сильно могут влиять друг на друга, казалось бы, несвязанные активности. А чтобы разобраться в причинах, мы подробно рассмотрим такие темы, как уровни изоляции транзакций, правила определения видимости строк, хинт биты и "минивакуум".
SETCON'18 - Vitali Fokin - Kubernetes 101Nadzeya Pus
Обзор возможностей Kubernetes, зачем он нужен, кому и когда, а также немного хороших практик по развертыванию и разработке Kubernetes-powered приложений.
Как балансировать на «сетевом» канате под куполом тяжелой нагрузки? / Сергей ...Ontico
Цель доклада – рассмотреть и систематизировать информацию о том, как балансировка нагрузки помогает делать миллионы людей счастливыми, сохраняя им нервные клетки, спасает беззащитные ПК и прочие девайсы от приступов ярости их владельцев во время бесконечных загрузок сайтов, а посетителям онлайн магазинов не дает побросать их виртуальные корзинки в бесконечных очередях на кассе.
Вашему вниманию будет представлен небольшой сравнительный анализ методов балансировки трафика, мы рассмотрим плюсы и минусы каждой схемы. Я расскажу, к каким хитростям можно прибегать, минуя большие затраты на покупку готовых решений и получая максимум профита от существующей инфраструктуры.
Доклад будет полезен всем, кто хочет знать, но боится спросить, благодаря чему HighLoad-проекты такие устойчивые и надежные. Тема наверняка заинтересует тех, кто только начинает свои шаги на пути к уверенному и высокопроизводительному сервису.
Тезисы доклада:
1. Что такое балансировка и зачем она вообще нужна? Когда хорошо бы об этом задуматься?
2. Реализация балансировки: виды, способы, практики.
3. Методы локальной балансировки
3.1. Балансировка на канальном уровне (L2-метод)
• Используем отдельным балансировщик
• Сократим расходы, избавимся от выделенного балансировщика
• Плюсы и минусы
3.2. Балансировка на сетевом уровне (L3-метод)
• Преимущества и недостатки
4. Методы глобальной балансировки
4.1. DNS балансировка.
• DNS Round Robin
• Сильные и слабые стороны подхода
4.2. HTTP Redirect
• Механизм балансировки на основе Redirect запросов
• Плюсы и минусы метода
4.3. Балансировка на базе Anycast
• Когда Anycast – это хорошо, а когда - не очень?
5. Некоторые не менее расп
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...Ontico
Технологии NFV идут вперед и никого уже нельзя удивить тем, что сетевые сервисы вместо специализированного оборудования запускают на обычных серверах с хорошей пропускной способностью. Мир уже привык к тому, что на сервере можно обрабатывать 100 Гбит сетевого трафика. Однако эти числа характерны только тогда, когда запускают единственный сервис на сервере, например, только коммутацию пакетов (vSwitch), только NAT, только балансировку нагрузки и т.п. Сейчас же появляется потребность в запуске нескольких сервисов на одной машине, выстраивать сложные pipeline, которые учитывают различные сетевые функции, ACL, L2, L3, QoS, интегрированных с виртуальными машинами и контейнерами.
Для этого в сообществах разрабатываются более сложные фреймворки по обработке сетевых сервисов, которые позволяют разбивать задачи на этапы (stage) — каждый со своей сложностью и временем обработки, автоматически распределять такие этапы по вычислительным мощностям, планировать обработку пакетов так, чтобы увеличить суммарную пропускную способность.
В докладе будет представлен сравнительный обзор таких фреймворков: Intel DPDK Packet Framework, FD.io, Open Dataplane, Open Virtual Network (от проекта Open vSwtich). Будут представлены числовые характеристики и рекомендованные сценарии применения. Также будет освещена интеграция с системами виртуализации.
Чему мы научились разрабатывая микросервисы?Vadim Madison
Доклад с конференции Backend Conf 2016
Начав разработку нового продукта через микросервисы, мы неожиданно для себя обнаружили, что микросервисы — это не просто "вместо одного большого приложения теперь пишем много маленьких". При разработке большой системы она сама собой через какое-то время становится набором отдельных сервисов, которые должны взаимодействовать между собой, поэтому стабильная работа сервисов и их взаимодействие не стало чем-то новым. Неожиданностью стало то, что система стала значительно более динамической, она стала постоянно изменяться отдельными небольшими частями, сервисы стали часто перезапускаться, а количество запущенных нод сервисов стало расти по экспоненте.
Очень быстро стал актуальным вопрос конфигурирования — если раньше, выкатив новую версию монолита с единым конфигом, мы применяли правки на всю систему сразу, то с микросервисами все сложнее — пара сотен работающих нод и всем нужно применить изменения. Требования к деплою также поменялись — он стал частью процесса разработки, а тестирование стало частью деплоя. Количество необходимого ПО для функционирования системы также стало некоторым сюрпризом.
В докладе я расскажу о том, как в итоге это работает у нас, как мы решили такие вопросы как:
- конфигурирование сервисов;
- интеграция между собой;
- тестирование;
- версионирование;
- масштабирование.
Расскажу, какие тулзы мы в итоге используем, а от каких отказались.
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)Ontico
«Одноклассники» состоят из тысяч серверов, большая часть которых участвует в онлайн-обработке запросов пользователей. Каждый из этих серверов владеет только частью данных или логики. Эти части в социальной сети изолировать друг от друга невозможно, поэтому между серверами происходит много сетевого взаимодействия — разнообразного и большого по объему. Таким образом, Одноклассники — это одна из самых больших, сложных и нагруженных распределенных систем в мире.
В этом докладе Олег расскажет об опыте построения отказоустойчивых распределенных систем на Java, основных ошибках и отказах, приемах их тестирования и диагностики. Также речь пойдет об авариях в распределенных системах и методах их предупреждения.
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...Ontico
HighLoad++ 2017
Зал «Найроби + Касабланка», 8 ноября, 16:00
Тезисы:
http://www.highload.ru/2017/abstracts/2996.html
Наш проект – это облачный CI-сервис, на котором пользователи запускают тесты разрабатываемых проектов.
В этом году система автозакупки нашего проекта приобрела 37218 машин (Amazon Instances). Это позволило обработать 189488 "задач" (прогонов тестов) наших клиентов.
Тесты – это всегда ресурсоемкие задачи с максимальным потреблением процессорных мощностей и памяти. Мы не можем прогнозировать, сколько параллельных вычислений и в какой момент времени будет. Перед нами стояла задача построения архитектуры системы, которая умеет очень быстро увеличивать, а также быстро уменьшать мощности кластера.
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...Ontico
HighLoad++ 2017
Зал «Кейптаун», 7 ноября, 16:00
Тезисы:
http://www.highload.ru/2017/abstracts/2901.html
Все знают, что длинные транзакции - это плохо, но не все могут объяснить - почему. Что в них такого, что заставляет PostgreSQL работать медленнее?
На примере одного из наших процессов я покажу, насколько сильно могут влиять друг на друга, казалось бы, несвязанные активности. А чтобы разобраться в причинах, мы подробно рассмотрим такие темы, как уровни изоляции транзакций, правила определения видимости строк, хинт биты и "минивакуум".
SETCON'18 - Vitali Fokin - Kubernetes 101Nadzeya Pus
Обзор возможностей Kubernetes, зачем он нужен, кому и когда, а также немного хороших практик по развертыванию и разработке Kubernetes-powered приложений.
Как балансировать на «сетевом» канате под куполом тяжелой нагрузки? / Сергей ...Ontico
Цель доклада – рассмотреть и систематизировать информацию о том, как балансировка нагрузки помогает делать миллионы людей счастливыми, сохраняя им нервные клетки, спасает беззащитные ПК и прочие девайсы от приступов ярости их владельцев во время бесконечных загрузок сайтов, а посетителям онлайн магазинов не дает побросать их виртуальные корзинки в бесконечных очередях на кассе.
Вашему вниманию будет представлен небольшой сравнительный анализ методов балансировки трафика, мы рассмотрим плюсы и минусы каждой схемы. Я расскажу, к каким хитростям можно прибегать, минуя большие затраты на покупку готовых решений и получая максимум профита от существующей инфраструктуры.
Доклад будет полезен всем, кто хочет знать, но боится спросить, благодаря чему HighLoad-проекты такие устойчивые и надежные. Тема наверняка заинтересует тех, кто только начинает свои шаги на пути к уверенному и высокопроизводительному сервису.
Тезисы доклада:
1. Что такое балансировка и зачем она вообще нужна? Когда хорошо бы об этом задуматься?
2. Реализация балансировки: виды, способы, практики.
3. Методы локальной балансировки
3.1. Балансировка на канальном уровне (L2-метод)
• Используем отдельным балансировщик
• Сократим расходы, избавимся от выделенного балансировщика
• Плюсы и минусы
3.2. Балансировка на сетевом уровне (L3-метод)
• Преимущества и недостатки
4. Методы глобальной балансировки
4.1. DNS балансировка.
• DNS Round Robin
• Сильные и слабые стороны подхода
4.2. HTTP Redirect
• Механизм балансировки на основе Redirect запросов
• Плюсы и минусы метода
4.3. Балансировка на базе Anycast
• Когда Anycast – это хорошо, а когда - не очень?
5. Некоторые не менее расп
Виртуализированные сетевые сервисы на line rate в серверном окружении / Алекс...Ontico
Технологии NFV идут вперед и никого уже нельзя удивить тем, что сетевые сервисы вместо специализированного оборудования запускают на обычных серверах с хорошей пропускной способностью. Мир уже привык к тому, что на сервере можно обрабатывать 100 Гбит сетевого трафика. Однако эти числа характерны только тогда, когда запускают единственный сервис на сервере, например, только коммутацию пакетов (vSwitch), только NAT, только балансировку нагрузки и т.п. Сейчас же появляется потребность в запуске нескольких сервисов на одной машине, выстраивать сложные pipeline, которые учитывают различные сетевые функции, ACL, L2, L3, QoS, интегрированных с виртуальными машинами и контейнерами.
Для этого в сообществах разрабатываются более сложные фреймворки по обработке сетевых сервисов, которые позволяют разбивать задачи на этапы (stage) — каждый со своей сложностью и временем обработки, автоматически распределять такие этапы по вычислительным мощностям, планировать обработку пакетов так, чтобы увеличить суммарную пропускную способность.
В докладе будет представлен сравнительный обзор таких фреймворков: Intel DPDK Packet Framework, FD.io, Open Dataplane, Open Virtual Network (от проекта Open vSwtich). Будут представлены числовые характеристики и рекомендованные сценарии применения. Также будет освещена интеграция с системами виртуализации.
Бесплатная виртуализация Citrix XenServer для компанийareconster
29 апреля компания VMC провела бесплатный вебинар "Бесплатная виртуализация Citrix XenServer для компаний". Благодарим всех вас за участие и заданные вопросы!
DC/OS – больше чем PAAS, Никита Борзых (Express 42)Ontico
Доклад про ближайшее будущее в эксплуатации распределённых систем.
Компания Mesosphere весной 2016 сделала свою платформу DC/OS (data center operation system) бесплатной и открытой. Платформа DC/OS унифицирует и упрощает процесс поставки и эксплуатации систем.
Основными особенностями платформы являются:
– переход от host centric к resource centric подходу для всех компонентов вашего проекта за счёт представления серверов как ресурсов для приложения (с помощью mesos и marathon);
– наличие инструментов автоматического восстановления вашего проекта после аварии;
– marketplace для приложений. Например, можно развернуть MySQL, Elasticsearch, Kafka или mongodb кластер, используя готовые скрипты развертывания. Процесс развертывания кастомизируется, в случае необходимости можно описать кастомные приложения и поправить скрипты существующих;
– наличие API для интеграции в ваши системы CI/CD, мониторинга, и т.д.
Основные компоненты DC/OS:
– Apache Mesos — абстракция над датацентром, которая представляет сервера (физические и виртуальные) как ресурсы и распределяет эти ресурсы на основании данных о потребностях приложения;
– Marathon — система распределённого запуска приложений (в т.ч. docker контейнеров), основной фишкой является возможность декларативного описания вашей системы. Вы можете описать, сколько ресурсов нужно вашему приложению, зависимости между приложениями, и в каком порядке производить деплой.
Доклад разбит на три части:
– Интро про DC/OS, сравнение с kubernetes и coreos стеком;
– Рассказ про компоненты mesos и marathon, как их можно использовать с докером (и без!) уже сейчас;
– Опыт Express 42. Мы построили CI/CD платформу для приложений, с использованием Mesos, Marathon, Docker и Jenkins 2.0.
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)Ontico
DNS — это одна из основополагающих служб и протоколов современного интернета, сервис, который должен всегда работать. Каждый раз, когда конечный пользователь обращается к какому-либо ресурсу глобальной паутины, он использует DNS, и чтобы этот самый первый шаг к проектам у наших клиентов не занимал много времени, мы построили свой DNS-хостинг с использованием Anycast-балансировки. Чуть позже мы применили этот метод для балансировки и повышения доступности рекурсивных серверов внутри наших дата-центров.
В своём докладе я расскажу о способах обеспечения непрерывного обслуживания DNS-запросов, подводных камнях использования anycast’а, постараюсь раскрыть актуальные проблемы обслуживания DNS-серверов и поведаю о современных тенденциях в мире DNS.
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Ontico
Это реальный рассказ об архитектуре Единой Фронтальной Системы (ЕФС) - системы, которая будет обслуживать абсолютно всех клиентов Сбербанка во всех каналах (отделения, интернет-банки, мобильные приложения, АТМ и т.д.). Это означает: десятки миллионов активных клиентов, 24х7, и еще пара NFR'ов, от которых порой вздрагиваешь по ночам :)
С одной стороны мы должны гарантировать 99.99% доступность, с другой стороны мы должны сокращать time-to-market для новых продуктов и быть готовыми обновлять ЕФС очень часто и по кусочкам – и это малая часть вызовов, с которыми нам приходиться сталкиваться.
В моем докладе я расскажу:
· Как мы гарантируем 99.99% доступности для всего ЕФС, включая хранилище (и особенно включая хранилище).
· Как мы масштабируемся на миллионы пользователей, оставаясь внешнее единой системой.
· Как мы реализуем zero downtime deployment, чтобы оставаться в 99.99% в условиях частых обновлений.
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Ontico
Ваш сайт или другой проект приносит деньги только тогда, когда он работает.
Нельзя просто выложить код на серверы, залить схему в базу данных и делегировать домен.
Будем говорить о планировании отказоустойчивости и мониторинге проектов:
- оцениваем риски отказа различных компонентов;
- какие-то из вероятных проблем просто мониторим и планируем действия при сбоях;
- проблемы, которых можно избежать легко и дешево, закрываем сразу.
Расскажу на примерах о том, что всё всегда ломается, но с этим можно жить.
Одноклассники состоят из тысяч серверов, большая часть которых участвует в онлайн обработке запросов пользователей. Каждый из этих серверов владеет только частью данных или логики. Эти части в социальной сети изолировать друг от друга невозможно, поэтому между серверами происходит много сетевого взаимодействия, разнообразного и большого по объему. Таким образом, Одноклассники - это одна из самых больших, сложных и нагруженных распределенных систем в мире.
В этом докладе я расскажу об опыте построения отказоустойчивых распределенных систем на Java, основных ошибках и отказах, приемах их тестирования и диагностики. Также поговорим об авариях в распределенных системах и методах их предупреждения.
В нашей большой компании мы столкнулись с задачей выкладывания релизов наших проектов на несколько групп серверов по нескольким сотням машин.
Мы решили разработать свой софт для удобного деплоя, поскольку задача, на мой взгляд, достаточно сложная, потому что каждая секунда при выкатке решает очень многое.
Почему именно разработать что-то свое, а не использовать что-то готовое, например, Fabric или Capistrano?
Все просто:
1. Система должна быть написана на языке, на котором принято разрабатывать в компании.
2. Все возникающие трудности и проблемы должны быть решены в кратчайшие сроки, нет времени ждать пока чья-то техподдержка прилетит на помощь на голубом вертолете :)
3. Система должна быть безопасна, полностью с открытыми кодами для безопасников.
4. Минимизированы зависимости от внешних модулей.
Вкратце расскажу о том, как мы раскладываем front-end для наших проектов в Mail.ru Group в продакшн и на тестовые сервера.
В частности, расскажу, как мы собираем версточный релиз.
Расскажу о том, как его запаковать и как аккуратно раздать на несколько сотен серверов.
Расскажу об архитектуре мониторинга системы обновлений, а также покажу, как выглядит наш дашборд, по которому мы понимаем, что все хорошо.
Отвечу на все интересующие вас вопросы и дам несколько рекомендаций, которые помогут вам обойти подводные грабли, на которые наступали мы.
До недавнего времени в Одноклассниках около 50 ТБ данных, обрабатываемых в реальном времени, хранилось в Microsoft SQL Server. Многие знают, что для такого объема обеспечить быстрый и надежный, да еще и устойчивый к отказу ЦОД доступ, используя SQL СУБД, практически невозможно. Обычно в таких случаях используют одно из NoSQL хранилищ, но не всё можно перенести в NoSQL: некоторые сущности требуют гарантий ACID-транзакций.
Это ограничение подвело нас к необходимости использования NewSQL хранилища, то есть СУБД, предоставляющей отказоустойчивость, масштабируемость и быстродействие NoSQL-систем, но при этом сохраняющей привычные для классических систем ACID-гарантии. Работающих промышленных систем этого нового класса немного (сразу приходит на ум только Google Spanner), а доступных — и вовсе нет. Поэтому мы реализовали такую систему сами на любимой нами Java и запустили ее в промышленную эксплуатацию несколько месяцев назад.
Доклад про то, как устроено это хранилище будет интересен всем, кто следит за развитием технологий управления базами данных и имеет опыт работы с (No)SQL.
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...odnoklassniki.ru
A talk from jokerconf.com conference.
"Frankenstaining of Voldemort" or "key-value storage evolution at Odnoklassniki"
В докладе освещены Java-технологии хранения данных, обслуживающие десятки миллионов пользователей и работающие на сотнях серверов.
На примере социальной сети "Одноклассники" мы рассмотрим эволюцию хранилищ данных с высоким уровнем конкурентного доступа и с соблюдением требования постоянной доступности.
Мы разберём сильные и слабые стороны каждого из решений, начиная от технологии master-slave репликации на основе Berkeley DB и заканчивая симбиозом распределенных хранилищ Voldemort и Cassandra.
In this talk, I will tell you about Vapor and will share our successful experience of moving from regular AWS EC2 servers to AWS Lambda and how everything changed after the appearance of Lambda on our project.
- When serverless architecture is the best choice.
- Overview Vapor - a platform for deploying and managing Laravel applications in AWS Lambda from Laravel.
- Our experience of migrating to Lambda, difficulties, best practices.
- How we predicted the cost and how much we pay in fact.
- Ways to optimize costs.
Docker Containers orchestrators: Kubernetes vs. SwarmDmitry Lazarenko
Обзор рынка оркестраторов Docker. Детальное технологическое сравнение Docker Swarm и Kubernetes. Обзор архитектуры и возможностей каждогого из них. Кто лучше справляется с построением масштабируемых микросервисных архитектур
Бесплатная виртуализация Citrix XenServer для компанийareconster
29 апреля компания VMC провела бесплатный вебинар "Бесплатная виртуализация Citrix XenServer для компаний". Благодарим всех вас за участие и заданные вопросы!
DC/OS – больше чем PAAS, Никита Борзых (Express 42)Ontico
Доклад про ближайшее будущее в эксплуатации распределённых систем.
Компания Mesosphere весной 2016 сделала свою платформу DC/OS (data center operation system) бесплатной и открытой. Платформа DC/OS унифицирует и упрощает процесс поставки и эксплуатации систем.
Основными особенностями платформы являются:
– переход от host centric к resource centric подходу для всех компонентов вашего проекта за счёт представления серверов как ресурсов для приложения (с помощью mesos и marathon);
– наличие инструментов автоматического восстановления вашего проекта после аварии;
– marketplace для приложений. Например, можно развернуть MySQL, Elasticsearch, Kafka или mongodb кластер, используя готовые скрипты развертывания. Процесс развертывания кастомизируется, в случае необходимости можно описать кастомные приложения и поправить скрипты существующих;
– наличие API для интеграции в ваши системы CI/CD, мониторинга, и т.д.
Основные компоненты DC/OS:
– Apache Mesos — абстракция над датацентром, которая представляет сервера (физические и виртуальные) как ресурсы и распределяет эти ресурсы на основании данных о потребностях приложения;
– Marathon — система распределённого запуска приложений (в т.ч. docker контейнеров), основной фишкой является возможность декларативного описания вашей системы. Вы можете описать, сколько ресурсов нужно вашему приложению, зависимости между приложениями, и в каком порядке производить деплой.
Доклад разбит на три части:
– Интро про DC/OS, сравнение с kubernetes и coreos стеком;
– Рассказ про компоненты mesos и marathon, как их можно использовать с докером (и без!) уже сейчас;
– Опыт Express 42. Мы построили CI/CD платформу для приложений, с использованием Mesos, Marathon, Docker и Jenkins 2.0.
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)Ontico
DNS — это одна из основополагающих служб и протоколов современного интернета, сервис, который должен всегда работать. Каждый раз, когда конечный пользователь обращается к какому-либо ресурсу глобальной паутины, он использует DNS, и чтобы этот самый первый шаг к проектам у наших клиентов не занимал много времени, мы построили свой DNS-хостинг с использованием Anycast-балансировки. Чуть позже мы применили этот метод для балансировки и повышения доступности рекурсивных серверов внутри наших дата-центров.
В своём докладе я расскажу о способах обеспечения непрерывного обслуживания DNS-запросов, подводных камнях использования anycast’а, постараюсь раскрыть актуальные проблемы обслуживания DNS-серверов и поведаю о современных тенденциях в мире DNS.
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Ontico
Это реальный рассказ об архитектуре Единой Фронтальной Системы (ЕФС) - системы, которая будет обслуживать абсолютно всех клиентов Сбербанка во всех каналах (отделения, интернет-банки, мобильные приложения, АТМ и т.д.). Это означает: десятки миллионов активных клиентов, 24х7, и еще пара NFR'ов, от которых порой вздрагиваешь по ночам :)
С одной стороны мы должны гарантировать 99.99% доступность, с другой стороны мы должны сокращать time-to-market для новых продуктов и быть готовыми обновлять ЕФС очень часто и по кусочкам – и это малая часть вызовов, с которыми нам приходиться сталкиваться.
В моем докладе я расскажу:
· Как мы гарантируем 99.99% доступности для всего ЕФС, включая хранилище (и особенно включая хранилище).
· Как мы масштабируемся на миллионы пользователей, оставаясь внешнее единой системой.
· Как мы реализуем zero downtime deployment, чтобы оставаться в 99.99% в условиях частых обновлений.
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Ontico
Ваш сайт или другой проект приносит деньги только тогда, когда он работает.
Нельзя просто выложить код на серверы, залить схему в базу данных и делегировать домен.
Будем говорить о планировании отказоустойчивости и мониторинге проектов:
- оцениваем риски отказа различных компонентов;
- какие-то из вероятных проблем просто мониторим и планируем действия при сбоях;
- проблемы, которых можно избежать легко и дешево, закрываем сразу.
Расскажу на примерах о том, что всё всегда ломается, но с этим можно жить.
Одноклассники состоят из тысяч серверов, большая часть которых участвует в онлайн обработке запросов пользователей. Каждый из этих серверов владеет только частью данных или логики. Эти части в социальной сети изолировать друг от друга невозможно, поэтому между серверами происходит много сетевого взаимодействия, разнообразного и большого по объему. Таким образом, Одноклассники - это одна из самых больших, сложных и нагруженных распределенных систем в мире.
В этом докладе я расскажу об опыте построения отказоустойчивых распределенных систем на Java, основных ошибках и отказах, приемах их тестирования и диагностики. Также поговорим об авариях в распределенных системах и методах их предупреждения.
В нашей большой компании мы столкнулись с задачей выкладывания релизов наших проектов на несколько групп серверов по нескольким сотням машин.
Мы решили разработать свой софт для удобного деплоя, поскольку задача, на мой взгляд, достаточно сложная, потому что каждая секунда при выкатке решает очень многое.
Почему именно разработать что-то свое, а не использовать что-то готовое, например, Fabric или Capistrano?
Все просто:
1. Система должна быть написана на языке, на котором принято разрабатывать в компании.
2. Все возникающие трудности и проблемы должны быть решены в кратчайшие сроки, нет времени ждать пока чья-то техподдержка прилетит на помощь на голубом вертолете :)
3. Система должна быть безопасна, полностью с открытыми кодами для безопасников.
4. Минимизированы зависимости от внешних модулей.
Вкратце расскажу о том, как мы раскладываем front-end для наших проектов в Mail.ru Group в продакшн и на тестовые сервера.
В частности, расскажу, как мы собираем версточный релиз.
Расскажу о том, как его запаковать и как аккуратно раздать на несколько сотен серверов.
Расскажу об архитектуре мониторинга системы обновлений, а также покажу, как выглядит наш дашборд, по которому мы понимаем, что все хорошо.
Отвечу на все интересующие вас вопросы и дам несколько рекомендаций, которые помогут вам обойти подводные грабли, на которые наступали мы.
До недавнего времени в Одноклассниках около 50 ТБ данных, обрабатываемых в реальном времени, хранилось в Microsoft SQL Server. Многие знают, что для такого объема обеспечить быстрый и надежный, да еще и устойчивый к отказу ЦОД доступ, используя SQL СУБД, практически невозможно. Обычно в таких случаях используют одно из NoSQL хранилищ, но не всё можно перенести в NoSQL: некоторые сущности требуют гарантий ACID-транзакций.
Это ограничение подвело нас к необходимости использования NewSQL хранилища, то есть СУБД, предоставляющей отказоустойчивость, масштабируемость и быстродействие NoSQL-систем, но при этом сохраняющей привычные для классических систем ACID-гарантии. Работающих промышленных систем этого нового класса немного (сразу приходит на ум только Google Spanner), а доступных — и вовсе нет. Поэтому мы реализовали такую систему сами на любимой нами Java и запустили ее в промышленную эксплуатацию несколько месяцев назад.
Доклад про то, как устроено это хранилище будет интересен всем, кто следит за развитием технологий управления базами данных и имеет опыт работы с (No)SQL.
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...odnoklassniki.ru
A talk from jokerconf.com conference.
"Frankenstaining of Voldemort" or "key-value storage evolution at Odnoklassniki"
В докладе освещены Java-технологии хранения данных, обслуживающие десятки миллионов пользователей и работающие на сотнях серверов.
На примере социальной сети "Одноклассники" мы рассмотрим эволюцию хранилищ данных с высоким уровнем конкурентного доступа и с соблюдением требования постоянной доступности.
Мы разберём сильные и слабые стороны каждого из решений, начиная от технологии master-slave репликации на основе Berkeley DB и заканчивая симбиозом распределенных хранилищ Voldemort и Cassandra.
In this talk, I will tell you about Vapor and will share our successful experience of moving from regular AWS EC2 servers to AWS Lambda and how everything changed after the appearance of Lambda on our project.
- When serverless architecture is the best choice.
- Overview Vapor - a platform for deploying and managing Laravel applications in AWS Lambda from Laravel.
- Our experience of migrating to Lambda, difficulties, best practices.
- How we predicted the cost and how much we pay in fact.
- Ways to optimize costs.
Docker Containers orchestrators: Kubernetes vs. SwarmDmitry Lazarenko
Обзор рынка оркестраторов Docker. Детальное технологическое сравнение Docker Swarm и Kubernetes. Обзор архитектуры и возможностей каждогого из них. Кто лучше справляется с построением масштабируемых микросервисных архитектур
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Ontico
Начав разработку нового продукта через микросервисы, мы неожиданно для себя обнаружили, что микросервисы — это не просто "вместо одного большого приложения теперь пишем много маленьких". При разработке большой системы она сама собой через какое-то время становится набором отдельных сервисов, которые должны взаимодействовать между собой, поэтому стабильная работа сервисов и их взаимодействие не стало чем-то новым. Неожиданностью стало то, что система стала значительно более динамической, она стала постоянно изменяться отдельными небольшими частями, сервисы стали часто перезапускаться, а количество запущенных нод сервисов стало расти по экспоненте.
Очень быстро стал актуальным вопрос конфигурирования — если раньше, выкатив новую версию монолита с единым конфигом, мы применяли правки на всю систему сразу, то с микросервисами все сложнее — пара сотен работающих нод и всем нужно применить изменения. Требования к деплою также поменялись — он стал частью процесса разработки, а тестирование стало частью деплоя. Количество необходимого ПО для функционирования системы также стало некоторым сюрпризом.
В докладе я расскажу о том, как в итоге это работает у нас, как мы решили такие вопросы как:
- конфигурирование сервисов;
- интеграция между собой;
- тестирование;
- версионирование;
- масштабирование.
Расскажу, какие тулзы мы в итоге используем, а от каких отказались.
Presentation about Windows Azure Internals. The next topics covered:
1) Azure Datacenters
2) Windows Azure Hypervisor
3) Windows Azure Fabric Controller
4) Service deployment steps
5) Windows Azure virtual machine structure
Вадим Мадисон "Опыт разработки через микросервисы"Tanya Denisyuk
Мы начали разработку через микросервисы когда это еще не было трендом, было не ясно - это реально работающий подход или просто очередная модная штука. Не было понимания как это делать правильно, где подводные камни и что за одним словом “микросервисы” по факту стоит куча всего, что придется узнать, изучить и понять.
Сейчас у нас большой парк микросервисов, но оперировать ими становится все проще - сказывается опыт.
В ходе доклада я поделюсь основными моментами в разработке микросервисов, расскажу как это делаем мы и что для этого используем.
Осуществим вводный экскурс в Node.JS. Действительно это что-то новое и гениальное? Что оно может, а что нет? Кому будет полезен? В каких случаях применять, а в каких нет? На все эти вопросы я постараюсь ответить в своём докладе.
Модным ныне словом «виртуализация» сейчас называют различные обёртки аппаратной виртуализации, однако этот термин намного старше и более всеохватывающий. На уровне ознакомления с технологией мы поговорим о виртуализации ресурсов в кластере и на примере pacemaker.
Azure web apps - designing and debuggingAlexey Bokov
Проектирование и отладка веб приложений с использованием облака Microsoft Azure. Технологии для повышения отказоустойчивости и надежности веб приложений, в том числе при использовании своего хостинга.
Аппаратная и программно-аппаратная дедупликация от EMCКРОК
Вебинар «Дедупликация vs Hеконтролируемый рост данных»
Подробнее о мероприятии http://www.croc.ru/action/detail/5668/
Презентация Котцова Антона, технического менеджера компании КРОК
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"Fwdays
- как ошибка выбора идентификатора пользователя, обнаруженная после запуска проекта, чуть не стоила 2 лет разработки
- как мы боролись с перегруженным mysql когда даже включение binlog убивает сервер
- почистил партицию mysql под нагрузкой - получи мертвый сервер
- как верстальщик поменял верстку серча и уложил продукт на 4 часа
- ошибка в ядре php которая привела даунтайм на несколько часов
- как незнание особенностей работы GC у redis обошлось в $50к чистой прибыли
- добавлением или удалением серверов из пула memcached инвалидировали весь кэш (кривые настройки php клиента Memcache/Memcached)
- как поправив тест потерять 2 миллиона пользовательских писем
- как релиз одного проекта крэшил хелсчеки соседнего проекта
- самый большой фейл с системами очередей и статистикой: ивенты терялись годами
В докладе я расскажу, как выглядит World of Tanks Server (кластер кластеров) со всеми веб-сервисами, которые существуют вокруг. Какие узкие места с точки зрения отказоустойчивости есть внутри кластера, между кластерами, во взаимодействии с внешними веб-сервисами. Как мы решаем возникающие проблемы технически, процессно, проектно.
Практический семинар «Новые технологии для непрерывности бизнеса и защиты данных».
Подробнее о мероприятии http://www.croc.ru/action/detail/2487/
Презентация Бориса Черных, ведущего инженера компании КРОК
3. Среды источников
для теста
Последовательность разворачивания стенда
2. Выделяем ресурсы для разворачивания виртуального апплайенса (VMware ESXi 5 или выше, 300 GB HD
(система), VMFS для DS* (TB), 8vCPU, 8+ GB vRAM (128 recommended), 1/10 GbE vNIC.
ESXi host 5+, 300 GB VMDK, 4 VMDK по
VMFS/4 (TB), 8vCPU, 8+ GB vRAM, 1/10
GbE vNIC
* DS - Data Space для данных
данные
DB_A
DB_B
DB_C
DB_D
4. Среды источников
для теста
Последовательность разворачивания стенда
данные
3. Разворачиваем из шаблона виртуальный апплайенс и проводим настройки сетевых параметров
Виртуальная машина
Delphix Engine Server
данные
DB_A
DB_B
DB_C
DB_D
5. Среды источников
для теста
Последовательность разворачивания стенда
данные
4. Подключаем диски для данных и завершить установку
Delphix Engine Server
DS* (TB)
* DS - Data Space для данных (см. п. 2)
данные
DB_A
DB_B
DB_C
DB_D
6. Среды источников
для теста
Последовательность разворачивания стенда
данные
5. Подключаем источники, создать цифровые шлюзы (dSources)
Цифровые шлюзы
(dSources)
размер
каждого
dSource на 50-
90% меньше
размера его
Источника
Link
данные
DB_A
DB_B
DB_C
DB_D
7. Среды источников
для теста
Последовательность разворачивания стенда
данные
6. Подключаем целевые среды – сервера с которыми работают пользователи
Цифровые шлюзы
(dSources)
Link
Целевые среды
NFS/iSCSI
данные
DB_A
DB_B
DB_C
DB_D
8. Среды источников
для теста
Стенд готов для выдачи данных
пользователям
данные
Цифровые шлюзы
(dSources)
Link
Целевые среды
NFS/iSCSI
данные
DB_A
DB_B
DB_C
DB_D
9. Среды источников
для теста
данные
Цифровые шлюзы
(dSources)
Link
Целевые среды
Тестируем платформу и оцениваем ее
7. Выдаем первую виртуальную базу пользователям (10+ минут)
полнофункциональная
база в режиме
read-write (VDB_1)
Все изменения, произведенные
пользователями, хранятся на
платформе, объем VDB
незначительный, прирост
минимальный
данные
DB_A
DB_B
DB_C
DB_D
10. Среды источников
для теста
данные
Цифровые шлюзы
(dSources)
Link
Целевые среды
Тестируем платформу и оцениваем ее
7. Выдаем вторую виртуальную базу пользователям (10+ минут)
VDB_1
Все изменения хранятся
на платформе, объем
VDB незначительный,
прирост минимальный
VDB_2
Базы данных VDB_1 и
VDB_2 абсолютно
полнофункциональны и
автономны. Результаты
работы пользователей
на одной базе не
влияют на работу
пользователей другой.
данные
DB_A
DB_B
DB_C
DB_D
11. Среды источников
для теста
данные
Цифровые шлюзы
(dSources)
sync
Целевые среды
Тестируем платформу и оцениваем ее
8. Синхронизируем шлюз с Источником (только новые уникальные блоки, 10+ минут)
VDB_1
Инкрементальные
изменения Источника,
записываются только
новые уникальные
блоки. Прирост размера
dSource незначительный.
VDB_2
Синхронизация шлюза
с Источником никак не
влияет на работу
пользователей.
только
изменения
данные
DB_A
DB_B
DB_C
DB_D
12. Среды источников
для теста
данные
Цифровые шлюзы
(dSources)
Целевые среды
Тестируем платформу и оцениваем ее
9. Отключаем шлюз от Источника (работа пользователей не прекращается)
VDB_1
Иногда пользователи не
нуждаются в актуальных
состояниях Источника, в
таких случаях его можно
просто отключить.
VDB_2
Отключение шлюза от
Источника никак не
влияет на работу
пользователей.
unlink
данные
DB_A
DB_B
DB_C
DB_D
13. Среды источников
для теста
данные
Цифровые шлюзы
(dSources)
Целевые среды
Тестируем платформу и оцениваем ее
10. Возвращаем подключение к Источника (используем Command Line Interface)
VDB_1
Администратор
платформы всегда может
восстановить
подключение к
Источнику используя CLI.
VDB_2
Операции
отключения/подключения
не влияют на работу
пользователей.
Link
данные
DB_A
DB_B
DB_C
DB_D
14. Среды источников
для теста
данные
Цифровые шлюзы
(dSources)
Целевые среды
Тестируем платформу и оцениваем ее
11. Подключаем другие источники и выдаем виртуальные базы
VDB_1
VDB_2
В ходе проведения PoV ограничением количества
выдаваемых VDB явяется только наличие достаточных
ресурсов целевых сред.
VDB_3
VDB_N
VDB_N+1
данные
DB_A
DB_B
DB_C
DB_D
15. Среды источников
для теста
данные
Цифровые шлюзы
(dSources)
Целевые среды
Тестируем платформу и оцениваем ее
12. Делаем первые оценки (утилизация СХД, пример)
VDB_1
VDB_2
VDB_3
VDB_N
VDB_N+1
4x20 TB
DS , в котором используется:
4x7 TB + (N+1)x100 GB
(N+1)x0 GB vs (N+1)x20 TB
данные
DB_A
DB_B
DB_C
DB_D
16. Среды источников
для теста
данные
Цифровые шлюзы
(dSources)
Целевые среды
Тестируем платформу и оцениваем ее
13. Делаем первые оценки (увиличение количества параллельных проектов, пример)
VDB_1
VDB_2
VDB_3
VDB_N
VDB_N+1
4x20 TB
Количество проектов: N+1 vs 4
Утилизация СХД: (N+1)x0 GB vs 4x20 TB
DS , в котором используется:
4x7 TB + (N+1)x100 GB
данные
DB_A
DB_B
DB_C
DB_D
17. Среды источников
для теста
данные
Цифровые шлюзы
(dSources)
Целевые среды
Высвобождаем DBA от рутины
14. Настраиваем портал самообслуживания (Jet Stream)
VDB_1
VDB_2
VDB_3
VDB_N
VDB_N+1
данные
DB_A
DB_B
DB_C
DB_D
Jet Stream
администрирование самоообслуживание
19. Jet Stream
• Подключение к полнофункциональной среде в течении минут
• Сохранение всех изменений, continuous time flow, перемещение в любую точку time flow в течении минут
Самообслуживание, управление контейнером
20. Jet Stream
• Подключение к полнофункциональной среде в течении минут
• Сохранение всех изменений, continuous time flow, перемещение в любую точку time flow в течении минут
• Возможность создания на одной несущей неограниченного количества линий состояний для различных
непараллельных сценариев (branch).
Самообслуживание, управление контейнером
21. Jet Stream
• Подключение к полнофункциональной среде в течении минут
• Сохранение всех изменений, continuous time flow, перемещение в любую точку time flow в течении минут
• Возможность создания на одной несущей неограниченного количества линий состояний для различных
непараллельных сценариев (branch). Переключение между линиями в течении минут.
Самообслуживание, управление контейнером
22. Jet Stream
• Подключение к полнофункциональной среде в течении минут
• Сохранение всех изменений, continuous time flow, перемещение в любую точку time flow в течении минут
• Возможность создания на одной несущей неограниченного количества линий состояний для различных
непараллельных сценариев (branch). Переключение между линиями в течении минут.
• Восстановление среды в течении минут.
Самообслуживание, управление контейнером
23. Jet Stream
• Подключение к полнофункциональной среде в течении минут
• Сохранение всех изменений, continuous time flow, перемещение в любую точку time flow в течении минут
• Возможность создания на одной несущей неограниченного количества линий состояний для различных
непараллельных сценариев (branch). Переключение между линиями в течении минут.
• Восстановление среды в течении минут.
• Закладки, передача и получение состояний, автономизация новых проектов.
New VDB
provision
from any
state
Самообслуживание, управление контейнером
24. Jet Stream
• Подключение к полнофункциональной среде в течении минут
• Сохранение всех изменений, continuous time flow, перемещение в любую точку time flow в течении минут
• Возможность создания на одной несущей неограниченного количества линий состояний для различных
непараллельных сценариев (branch). Переключение между линиями в течении минут.
• Восстановление среды в течении минут.
• Закладки, передача и получение состояний, автономизация новых проектов.
• Получение актуального состояния продуктивной среды сразу после релизов в течении минут.
Самообслуживание, управление контейнером
25. Передача состояний между участниками Split
Split Environment
• Split получает 2 несущих (VDB) из одного источника*.
* В зависимости от реальных потребностей количество VDB может быть другим, VDB сама может служить источником для других VDB
Project_A_VDB1
Project_A_VDB2
Master_VDB0
26. Передача состояний между участниками Split
• Split получает 2 несущих (VDB) из одного источника.
• Дефицита ресурсов нет, т.к. базы используют один цифровой источник, соответственно только новые
уникальные блоки будут требовать дополнительного места.
Split Environment
Project_A_VDB1
Project_A_VDB2
Master_VDB0
27. Передача состояний между участниками Split
• На одной несущей ведется разработка
Split Environment
Project_A_VDB1
Project_A_VDB2
Master_VDB0
28. Передача состояний между участниками Split
Test
• На одной несущей ведется разработка
• На другую предается состояние результатов работ и производится их тестирование.
• Bookmark, Share на Project_A_VDB1, продолжение работ.
• На Project_A_VDB2 Bookmark, Restore, тестирование.
Сборка 1Split Environment
Project_A_VDB1
Project_A_VDB2
Master_VDB0
29. Передача состояний между участниками Split
• Test Ok! – Сборка 1 утверждена. Продолжаются работы над Сборкой 2.
Test
Сборка 1Split Environment
Project_A_VDB1
Project_A_VDB2
Master_VDB0
30. Передача состояний между участниками Split
• ERRORs! – Project_A_VDB1 исправление ошибок.
Test
Сборка 1Split Environment
Project_A_VDB1
Project_A_VDB2
Master_VDB0
31. Передача состояний между участниками Split
Test
Сборка 1
QA Environment
Project_A_VDB3
• Несущая QA, получена из того же
источника, настроена максимально
близко к условиям, в которых
работает продуктивная среда.
• Сборки применяются на ней и
производятся тесты и проверки в
максимально близких к реальным
условиях.
Split Environment
Project_A_VDB1
Project_A_VDB2
Master_VDB0
32. Передача состояний между участниками Split
Test
Сборка 1
QA Environment
Project_A_VDB3
• СВОБОДА
• НЕЗАВИСИМОСТЬ
• СКОРОСТЬ
• ВЗАИМОДЕЙСТВИЕ
• УВЕРЕННОСТЬ В КАЧЕСТВЕ
• АКТУАЛЬНОСТЬ
• ГИБКОСТЬ
• ЭФФЕКТИВНОСТЬ
Split Environment
Project_A_VDB1
Project_A_VDB2
Master_VDB0