Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрийsolit
Юрий Трухин, Россия. Эксперт по облачным технологиям хостинговой компании InfoboxCloud. В прошлом – обладатель статуса Microsoft Most Valuable Professional. Гик, стратег, разработчик. Подробнее на trukhin.com
«Обзор InfoboxCloud для разработчиков». Development секция. Высокий уровень подготовки. Для разработчиков.
В этом докладе будет рассказано об устройстве InfoboxCloud из первых рук, о деталях внутренней реализации, о том, какую пользу несет облако для разработчиков и о будущем InfoboxCloud. Будут рассмотрены 2 кита облачных технологий: IaaS и PaaS без vendor-lock. Отличная возможность спросить обо всём, что касается PaaS/IaaS непосредственно архитектора и разработчика этих систем.
«EcmaScript 6 in Action». Development секция. Для разработчиков.
Поговорим о том, как жизнь разработчиков изменится с приходом нового стандарта.
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"ActiveCloud
Александр Прусенок, технический пре-сейл консультант ActiveCloud, и Павел Богданов, руководитель отдела технической поддержки ActiveCloud: «10 способов улучшить работу сайта нашего клиента без затрат. Погружение в облако ActiveCloud. Размещение высоконагруженных веб-ресурсов. Платформа Bitrix VM. Практический кейс переноса в облако».
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрийsolit
Юрий Трухин, Россия. Эксперт по облачным технологиям хостинговой компании InfoboxCloud. В прошлом – обладатель статуса Microsoft Most Valuable Professional. Гик, стратег, разработчик. Подробнее на trukhin.com
«Обзор InfoboxCloud для разработчиков». Development секция. Высокий уровень подготовки. Для разработчиков.
В этом докладе будет рассказано об устройстве InfoboxCloud из первых рук, о деталях внутренней реализации, о том, какую пользу несет облако для разработчиков и о будущем InfoboxCloud. Будут рассмотрены 2 кита облачных технологий: IaaS и PaaS без vendor-lock. Отличная возможность спросить обо всём, что касается PaaS/IaaS непосредственно архитектора и разработчика этих систем.
«EcmaScript 6 in Action». Development секция. Для разработчиков.
Поговорим о том, как жизнь разработчиков изменится с приходом нового стандарта.
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"ActiveCloud
Александр Прусенок, технический пре-сейл консультант ActiveCloud, и Павел Богданов, руководитель отдела технической поддержки ActiveCloud: «10 способов улучшить работу сайта нашего клиента без затрат. Погружение в облако ActiveCloud. Размещение высоконагруженных веб-ресурсов. Платформа Bitrix VM. Практический кейс переноса в облако».
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...ForkConf
Сергей Рыжиков. Директор "1С-Битрикс". Нагруженный Форк. Производительность проекта. Архитектура проекта «Битрикс24»: как сделать так, чтобы все летало и не падало, master-master, мастер мастер
Создание облачных приложений по модели PaaS (Platform as Service) позволяет сосредоточиться на решении задач по созданию программного обеспечения, вместо того чтобы беспокоиться о базовой инфраструктуры. Но иногда построение комплексного решения или интеграция с существующими системами требуется больше контроля, чем предоставляет модель PaaS, требуется контроль над инфраструктурой, т.е. IaaS (Infrastructure as Service). В рамках доклада будут рассмотрены основные архитектурные особенности Windows Azure, которые необходимо учитывать при миграции приложения в PaaS модели, а так же новые инфраструктурные возможности Windows Azure, такие как виртуальные машины и виртуальные сети, которые позволяют использовать IaaS модель миграции.
Облачные технологии предлагают масс преимуществ для размещения веб-приложений. Надежность, экономия, возможность отказаться от своей инфраструктуры, автоматическое масштабирование и многое другое - вот плюсы облачного размещения.
В этом докладе мы рассмотрим как облачная платформа Azure позволит вам получить все преимущества для хостинга проектов на базе Drupal на Linux или Windows в виде PaaS-решения или просто в виртуальных машинах.
Ара Исраелян "Как ускорить разработку приложений"IT Event
Зачем существуют сервисы back-end-as-a-service, какие пробелы закрывают? Рассмотрим опыт разработки и выведения на рынок облачного сервиса для разработчиков, расскажем про его боевое крещение. И самое приятное, создадим Android-приложения в реальном времени.
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime community
Александр Демидов, директор направления облачных сервисов Битрикс24
1. Почему Битрикс24 и другие сервисы 1С-Битрикс живут в облаке, как мы администрируем всю нашу инфраструктуру и как справляемся с сотнями виртуальных машин и сервисов силами трех человек. Как коммуницируем с разработчиками и QA, как деплоим, да и вообще — как живем и развиваемся.
2. Мониторинг — наше всё! Распределенная система real-time мониторинга (был nagios, стал shinken), аналитика, автоматизация, работа с инцидентами.
3. Бонус — на какие самые серьезные грабли мы наступали за пять лет, прошедших с запуска «Битрикс24», и как научились их обходить.
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...ForkConf
Сергей Рыжиков. Директор "1С-Битрикс". Нагруженный Форк. Производительность проекта. Архитектура проекта «Битрикс24»: как сделать так, чтобы все летало и не падало, master-master, мастер мастер
Создание облачных приложений по модели PaaS (Platform as Service) позволяет сосредоточиться на решении задач по созданию программного обеспечения, вместо того чтобы беспокоиться о базовой инфраструктуры. Но иногда построение комплексного решения или интеграция с существующими системами требуется больше контроля, чем предоставляет модель PaaS, требуется контроль над инфраструктурой, т.е. IaaS (Infrastructure as Service). В рамках доклада будут рассмотрены основные архитектурные особенности Windows Azure, которые необходимо учитывать при миграции приложения в PaaS модели, а так же новые инфраструктурные возможности Windows Azure, такие как виртуальные машины и виртуальные сети, которые позволяют использовать IaaS модель миграции.
Облачные технологии предлагают масс преимуществ для размещения веб-приложений. Надежность, экономия, возможность отказаться от своей инфраструктуры, автоматическое масштабирование и многое другое - вот плюсы облачного размещения.
В этом докладе мы рассмотрим как облачная платформа Azure позволит вам получить все преимущества для хостинга проектов на базе Drupal на Linux или Windows в виде PaaS-решения или просто в виртуальных машинах.
Ара Исраелян "Как ускорить разработку приложений"IT Event
Зачем существуют сервисы back-end-as-a-service, какие пробелы закрывают? Рассмотрим опыт разработки и выведения на рынок облачного сервиса для разработчиков, расскажем про его боевое крещение. И самое приятное, создадим Android-приложения в реальном времени.
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime community
Александр Демидов, директор направления облачных сервисов Битрикс24
1. Почему Битрикс24 и другие сервисы 1С-Битрикс живут в облаке, как мы администрируем всю нашу инфраструктуру и как справляемся с сотнями виртуальных машин и сервисов силами трех человек. Как коммуницируем с разработчиками и QA, как деплоим, да и вообще — как живем и развиваемся.
2. Мониторинг — наше всё! Распределенная система real-time мониторинга (был nagios, стал shinken), аналитика, автоматизация, работа с инцидентами.
3. Бонус — на какие самые серьезные грабли мы наступали за пять лет, прошедших с запуска «Битрикс24», и как научились их обходить.
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...solit
Слисенко Константин, Минск. Компания JazzTeam, Senior Software Engineer (R&D), Java/Agile Coach
«Разработка приложений в облаке на примере Amazon Web Services». Development секция. Для разработчиков.
«JVM изнутри: оптимизация и профилирование». Development секция. Для разработчиков.
Презентация технологии веб-кластеров
Основные задачи, которые решает веб-кластер:
Обеспечение высокой доступности сервиса (так называемые HA - High Availability или Failover кластеры)
Масштабирование веб-проекта в условиях возрастающей нагрузки (HP - High Performance кластеры)
Балансирование нагрузки, трафика, данных между несколькими серверами
Создание целостной резервной копии данных для MySQL
Ukraine, Kharkiv, Jave Club. (Day 2)
In this presentation you can find the brief overview of Clloud Computing development vs. desktop app. development. This presentation oriented to persons with general level of knowledge in such topics as:
Amazon AWS, cloud computing, CAP theorem, logical time.
Основные аспекты управления веб-проектом в Microsoft Azure WebsitesArtur Baranok
Основные аспекты управления веб-проектом в Microsoft Azure Websites. Cоздание сайта из коллекции веб-приложений, выбор СУБД, средства развертывания, сервис Kudu, привязка собственного домена, использование HTTPS. Артур Баранок, Azure MVP
В рамках доклада я хотел бы рассмотреть сложности, которые мы испытываем с построением инфраструктуры распределенных систем.
Можно ли строить приложения и не думать о серверах и контейнерах? Насколько это будет дорого?
Ответить на эти вопросы помогут принципы «Бессерверной архитектуры». На простых примерах мы рассмотрим из чего состоит приложение, не зависящее от серверов. А также, рассмотрим возможности, которые предоставляют популярные провайдеры облачных сервисов, для построения таких приложений.
"What is available for Ukrainian developers in IaaS?"
What is available for Ukrainian developers in IaaS?
Difference in IaaS vs PaaS
Advantages and Disadvantages of AWS as IaaS provider in Ukrainian market context
Possibilities of Ukrainian IaaS operators for software developers
BigData Dive in Minsk / Altoros conference /
Windows Azure and BigData- autoscale, Linux, HDInsigh.
Options for developers and startups - BizSpark, msdn subscriptions, seed fund
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
HighLoad++ 2017
Зал «Калининград», 8 ноября, 15:00
Тезисы:
http://www.highload.ru/2017/abstracts/2964.html
Одноклассники состоят из более чем восьми тысяч железных серверов, расположенных в нескольких дата-центрах. Каждая из этих машин была специализированной под конкретную задачу - как для обеспечения изоляции отказов, так и для обеспечения автоматизированного управления инфраструктурой.
...
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
HighLoad++ 2017
Зал «Калининград», 8 ноября, 16:00
Тезисы:
http://www.highload.ru/2017/abstracts/3032.html
Протокол DNS на семь лет старше, чем Всемирная паутина. Стандарты RFC 882 и 883, определяющие основную функциональность системы доменных имён, появились в конце 1983 года, а первая реализация последовала уже годом позже. Естественно, что у технологии столь старой и при этом по сей день активнейшим образом используемой просто не могли не накопиться особенности, неочевидные обыкновенным пользователям.
...
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
HighLoad++ 2017
Зал «Калининград», 8 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/3010.html
В этом докладе я расскажу, как BigData-платформа помогает трансформировать Почту России, как мы управляем построением и развитием платформы. Расскажу про найденные удачные решения, например, как разбиение на продукты с понятными SLA и интерфейсами между ними помогло нам сохранять управляемость с ростом масштабов проекта.
...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 10:00
Тезисы:
http://www.highload.ru/2017/abstracts/2914.html
Казалось бы, что нужно для организации тестового окружения? Тестовая железка и копия боевого окружения - и тестовый сервер готов. Но как быть, когда проект сложный? А когда большой? А если нужно тестировать одновременно много версий? А если все это вместе?
Организация тестирования большого развивающегося проекта, где одновременно в разработке и тестировании около полусотни фич - достаточно непростая задача. Ситуация обычно осложняется тем, что иногда есть желание потрогать еще не полностью готовый функционал. В таких ситуациях часто возникает вопрос: "А куда это можно накатить и где покликать?"
...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 18:00
Тезисы:
http://www.highload.ru/2017/abstracts/2854.html
Из этого доклада вы узнаете о возможностях репликации и автофейловера PostgreSQL, в том числе о возможностях, ставших доступных в PostgreSQL 10.
Среди прочих, будет затронуты следующие темы:
* Виды репликации и решаемые с ее помощью проблемы.
* Настройка потоковой репликации.
* Настройка логической репликации.
* Настройка автофейловера / HA средствами Stolon и Consul.
После прослушивания доклада вы сможете самостоятельно настраивать репликацию и автофейловер PostgreSQL.
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 17:00
Тезисы:
http://www.highload.ru/2017/abstracts/3096.html
PostgreSQL is the world’s most advanced open source database. Indeed! With around 270 configuration parameters in postgresql.conf, plus all the knobs in pg_hba.conf, it is definitely ADVANCED!
How many parameters do you tune? 1? 8? 32? Anyone ever tuned more than 64?
No tuning means below par performance. But how to start? Which parameters to tune? What are the appropriate values? Is there a tool --not just an editor like vim or emacs-- to help users manage the 700-line postgresql.conf file?
Join this talk to understand the performance advantages of appropriately tuning your postgresql.conf file, showcase a new free tool to make PostgreSQL configuration possible for HUMANS, and learn the best practices for tuning several relevant postgresql.conf parameters.
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 16:00
Тезисы:
http://www.highload.ru/2017/abstracts/3115.html
During this session we will cover the last development in ProxySQL to support regular expressions (RE2 and PCRE) and how we can use this strong technique in correlation with ProxySQL's query rules to anonymize live data quickly and transparently. We will explain the mechanism and how to generate these rules quickly. We show live demo with all challenges we got from the Community and we finish the session by an interactive brainstorm testing queries from the audience.
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 15:00
Тезисы:
http://www.highload.ru/2017/abstracts/2957.html
Расскажем о нашем опыте разработки модуля межсетевого экрана для MySQL с использованием генератора парсеров ANTLR и языка Kotlin.
Подробно рассмотрим следующие вопросы:
— когда и почему целесообразно использовать ANTLR;
— особенности разработки ANTLR-грамматики для MySQL;
— сравнение производительности рантаймов для ANTLR в рамках задачи синтаксического анализа MySQL (C#, Java, Kotlin, Go, Python, PyPy, C++);
— вспомогательные DSL;
— микросервисная архитектура модуля экранирования SQL;
— полученные результаты.
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 14:00
Тезисы:
http://www.highload.ru/2017/abstracts/3114.html
ProxySQL aims to be the most powerful proxy in the MySQL ecosystem. It is protocol-aware and able to provide high availability (HA) and high performance with no changes in the application, using several built-in features and integration with clustering software. During this session we will quickly introduce its main features, so to better understand how it works. We will then describe multiple use case scenarios in which ProxySQL empowers large MySQL installations to provide HA with zero downtime, read/write split, query rewrite, sharding, query caching, and multiplexing using SSL across data centers.
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/2954.html
MySQL Replication is powerful and has added a lot of advanced features through the years. In this presentation we will look into replication technology in MySQL 5.7 and variants focusing on advanced features, what do they mean, when to use them and when not, Including.
When should you use STATEMENT, ROW or MIXED binary log format?
What is GTID in MySQL and MariaDB and why do you want to use them?
What is semi-sync replication and how is it different from lossless semi-sync?
...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 12:00
Тезисы:
http://www.highload.ru/2017/abstracts/3120.html
Количество разработчиков мобильных приложений Сбербанк Онлайн с начала 2016 года выросло на порядок. Для того чтобы продолжать выпускать качественный продукт, мы кардинально перестраиваем процесс разработки.
Количество внутренних заказчиков тех или иных доработок в какой-то момент выросло настолько, что разработчики стали узким местом. Мы внедрили культуру разработки, которую можно условно назвать "внутренним open-source", сохранив за собой контроль над архитектурой и качеством проекта, но позволив разрабатывать новые фичи всем желающим.
...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
HighLoad++ 2017
Зал «Мумбай», 8 ноября, 18:00
Тезисы:
http://www.highload.ru/2017/abstracts/2836.html
При использовании Eventually Consistent распределенных баз данных нет гарантий, что чтение возвращает результаты последних изменений данных, если чтение и запись производятся на разных узлах. Это ограничивает пропускную способность системы. Поддержка свойства Causal Consistency снимает это ограничение, что позволяет улучшить масштабируемость, не требуя изменений в коде приложения.
...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
HighLoad++ 2017
Зал «Мумбай», 8 ноября, 16:00
Тезисы:
http://www.highload.ru/2017/abstracts/2858.html
Аудитория Одноклассников превышает 73 миллиона человек в России, СНГ и странах дальнего зарубежья. При этом ОК.ru - первая социальная сеть по просмотрам видео в рунете и крупнейшая сервисная платформа.
Качественный и количественный рост DDoS-атак за последние годы превращает их в одну из первоочередных проблем для крупнейших интернет-ресурсов. В зависимости от вектора атаки “узким” местом становится та или иная часть инфраструктуры. В частности, при SYN-flood первый удар приходится на систему балансировки трафика. От ее производительности зависит успех в противостоянии атаке.
...
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
HighLoad++ 2017
Зал «Мумбай», 8 ноября, 15:00
Тезисы:
http://www.highload.ru/2017/abstracts/3008.html
Никогда не было и вот снова случилось! Компания Google в результате перенаправления трафика сделала недостпуными в Японии несколько тысяч различных сервисов, большинство из которых никак не связано с самой компанией Google. Однако, подобные инциденты происходят с завидной регулярностью, вот только не всегда попадают в большие СМИ. У таких инцидентов могут быть разные причины, начиная от ошибок сетевых инженеров и заканчивая государственным регулированием.
...
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
HighLoad++ 2017
Зал «Мумбай», 8 ноября, 14:00
Тезисы:
http://www.highload.ru/2017/abstracts/2925.html
Облака и виртуализация – современные тренды развития IT-технологий. Операторы связи строят свои TelcoClouds на стандартах NFV (Network Functions Virtualization) и SDN (Software-Defined Networking). В докладе начнем с основ виртуализации, далее разберемся, для чего используются NFV и SDN, потом полетим к облакам и вернемся на землю для решения практических задач!
...
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
HighLoad++ 2017
Зал «Мумбай», 8 ноября, 10:00
Тезисы:
http://www.highload.ru/2017/abstracts/3045.html
Как мы заставили Druid работать в Одноклассниках.
«Druid is a high-performance, column-oriented, distributed data store» http://druid.io.
Мы расскажем о том, как, внедрив Druid, мы справились с ситуацией, когда MSSQL-based система статистики на 50 терабайт стала:
- медленной: средняя скорость ответа была в разы меньше требуемой (и увеличилась в 20 раз);
- нестабильной: в час пик статистика отставала до получаса (теперь ничего не отстает);
- дорогой: изменилась политика лицензирования Microsoft, расходы на лицензии могли составить миллионы долларов.
...
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
HighLoad++ 2017
Зал «Рио-де-Жанейро», 8 ноября, 18:00
Тезисы:
http://www.highload.ru/2017/abstracts/2905.html
Прошло более года с того момента, как Microsoft выпустила первую версию своего нового фреймворка для разработки web-приложений ASP.NET Core, и с каждым днем он находит все больше поклонников. ASP.NET Core базируется на платформе .NET Core, кроссплатформенной версии платформы .NET c открытым исходным кодом. Теперь у С#-разработчиков появилась возможность использовать Mac в качестве среды разработки, и запускать приложения на Linux или внутри Docker-контейнеров.
...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
HighLoad++ 2017
Зал «Рио-де-Жанейро», 8 ноября, 14:00
Тезисы:
http://www.highload.ru/2017/abstracts/2913.html
Изначально будут раскрыты базовые причины, которые заставили появиться такой части механизма СУБД, как кэш результатов, и почему в ряде СУБД он есть или отсутствует.
Будут рассмотрены различные варианты кэширования результатов как sql-запросов, так и результатов хранимой в БД бизнес-логики. Произведено сравнение способов кэширования (программируемые вручную кэши, стандартный функционал) и даны рекомендации, когда и в каких случаях данные способы оптимальны, а порой опасны.
...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
HighLoad++ 2017
Зал «Рио-де-Жанейро», 8 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/2947.html
Apache Ignite — Open Source платформа для высокопроизводительной распределенной работы с большими данными с применением SQL или Java/.NET/C++ API. Ignite используют в самых разных отраслях. Сбербанк, ING, RingCentral, Microsoft, e-Therapeutics — все эти компании применяют решения на основе Ignite. Размеры кластеров разнятся от всего одного узла до нескольких сотен, узлы могут быть расположены в одном ЦОД-е или в нескольких геораспределенных.
...
HighLoad++ 2017
Зал «Рио-де-Жанейро», 8 ноября, 12:00
Тезисы:
http://www.highload.ru/2017/abstracts/3005.html
Когда мы говорим о нагруженных системах и базах данных с большим числом параллельных коннектов, особый интерес представляет практика эксплуатации и сопровождения таких проектов. В том числе инструменты и механизмы СУБД, которые могут быть использованы DBA и DevOps-инженерами для решения задач мониторинга жизнедеятельности базы данных и ранней диагностики возможных проблем.
...
2. Запускаем новый SaaSпродуктBitrix24 Есть несколько задач на старте и в процессе работы Новый SaaSсервис – как коммерческие, так и «бесплатные» пользователи Минимизация расходов на эксплуатацию и снижение финансовых рисков на старте проекта Масштабирование при росте нагрузки и обратное масштабирование Надежность – обеспечение SLA Работа с разными рынками: США, Европа, Россия Быстрая отдача статического контента
3. Из «бизнес-требований» появились технические Отказоустойчивость – умение размещаться сразу в нескольких разных территориально распределенных датацентрах (в разных странах) Большой объем базы данных –шардинг – возможность разделить базу данных по территории и группам клиентов MultiTenancyархитектура Полное разделение логики (кода продукта) и данных Пользовательские данные – это большой объем статических файлов и база данных Универсальный API платформы для многолетней разработки Динамическое масштабирование по нагрузке Две итоговые задачи: Выбор технической платформы для инфраструктуры Выбор платформы разработки
4. Традиционное устройство веб-продуктов Веб-приложение Кэширование на диск База данных Обычный продут не поддерживает гео веб-кластер, облачные файлы, распределенное кэширование, multitenancy…
5. Облачная платформа: веб-кластер Вертикальный шардинг (вынесение модулей на отдельные серверы MySQL) Репликация MySQLи балансирование нагрузки между серверами Распределенный кешданных (memcached) Непрерывность сессий между веб-серверами (хранение сессий в базе данных) Кластеризация веб-сервера: Синхронизация файлов (это – проблема для облачного сервиса) Балансирование нагрузки между серверами
6. 1-ый этап реализации Балансировщик (клиентские запросы по HTTP) Веб-сервер 1 Веб-сервер 2 memcached 1 memcached2 MySQL master MySQL slave
7. 2-ой этап – гео веб-кластер Асинхронная master-master репликация для обеспечения работы географически распределенных веб-кластеров. Потеря связи между ДЦ может составлять часы. «Веб-кластер», ДЦ в России «Веб-кластер», ДЦ в США Веб-нода Веб-нода Веб-нода Веб-нода Веб-нода Веб-нода Кэш Кэш Кэш Кэш Кэш Кэш «Веб-кластер», ДЦ в Германии БД БД БД БД БД БД Веб-нода Веб-нода Веб-нода Кэш Кэш Кэш БД БД БД
8. Облачное хранилище файлов ДЦ в США Посетители Веб-сервер Веб-сервера Веб-серверы ДЦ в России Веб-сервер Веб-сервера Веб-серверы Веб-приложение Облачное хранилище файлов (Amazon S3, Azure, Google Storage, OpenStack Swift) + CDN БД (master) Веб-приложение slave БД (master) slave
9. Из «бизнес-требований» появились технические Отказоустойчивость – умение размещаться сразу в нескольких разных территориально распределенных датацентрах (в разных странах) Большой объем базы данных –шардинг – возможность разделить базу данных по территории и группам клиентов MultiTenancyархитектура Полное разделение логики (кода продукта) и данных Пользовательские данные – это большой объем статических файлов и база данных Универсальный API платформы для многолетней разработки Динамическое масштабирование по нагрузке
10. Выбор платформыдля разворачивания инфраструктуры Минусы размещения на собственном оборудовании: Необходимы вложения в инфраструктуру на старте проекта Сложность масштабирования Сложность администрирования (в случае размещения в территориально удаленных датацентрах) Создание всех сопутствующих сервисов с нуля «Когда мы только начинали работу над стартапом (FriendFeed), нам нужно было решить, покупать собственные серверыили же выбрать одного из «облачных» хостинг-провайдеров – таких как Amazon (AWS). Мы выбрали первое – решили приобрести собственные серверы. Оглядываясь назад, я думаю, что это было большой ошибкой» Брет Тейлор технический директор Facebook
11. Используем AWS: Amazon Web Services У нас есть успешный опыт работы с Amazon (сайт www.1c-bitrix.ruи другие сайты компании). В Amazon много дополнительных сервисов, которые помогают решить наши задачи. Всю архитектуру строим из «кирпичиков» – сервисов AWS.
13. Статический контент пользователей сервиса Для хранения и отдачи статического контента пользователей сервиса используем Amazon S3 (Simple Storage Service) Любое количество объектов (до 5 Тб каждый) Возможность размещения в разных датацентрах (регионах) Группировка объектов Механизмы авторизации REST и SOAP интерфейсы для работы с объектами Высокая доступность Низкая цена (по сравнению с EBS)
14. Статический контент пользователей сервиса Какие задачи решаем, используя S3? Снижаем стоимость эксплуатации Можем использовать совместно с CDN для ускорения отдачи контента Снижаем нагрузку на web-узлы Используя централизованное хранилище, решаем задачу синхронизации контента между множественными web-узлами Разделяем пользовательские данные и код
15. Web Используем связку Elastic Load Balancing + CloudWatch+ Auto Scaling Очень высокая посещаемость Elastic Load Balancing CloudWatch + Auto Scaling Web 1 Web 2 … Web N
16. Web Используем связку Elastic Load Balancing + CloudWatch+ Auto Scaling Все клиентские запросы (HTTP и HTTPS) поступают на балансировщикAmazon При росте нагрузки (и обратно) используем горизонтальное (а не вертикальное) масштабирование. Для каждой отдельной веб-ноды можем использовать хоть micro instance, а управлять – их количеством. Рост и снижение нагрузки мониторим через CloudWatchдвумя путями – состояние нод (EC2) и балансировщика. Все ноды – абсолютно идентичны. Каждая новая нода поднимается из заранее созданного образа (AMI). Любая веб-нода может обслуживать любого клиента.
17. Web Используем связку Elastic Load Balancing + CloudWatch+ Auto Scaling Мы задаем в конфигурации минимально необходимое количество машин. В случае сбоев или аварий машина помечается «плохой», гасится, и поднимается новый instance. Балансировщик умеет распределять нагрузку между разными AZ. Можем держать машины в разных зонах на случай аварии уровня AZ.
18. Обновления ПО на web-нодах Как ставить обновления на нодах, не допустив рассинхронизации данных (веб и база) Сервер обновлений Новый образ AMI Web 1 Elastic Load Balancing Web 2 Web N
19. Обновления ПО на web-нодах Как ставить обновления на нодах, не допустив рассинхронизации данных (веб и база) Каждое клиентское приложение работает с собственной базой. Все обновления ставятся на выделенный instance, куда не приходит нагрузка. Из этого инстанса делается новый образ AMI. Последовательно каждая машина помечается «плохой», при этом новые веб-ноды стартуют уже из нового образа. В веб-приложении существует механизм проверки соответствия версии ПО и базы. Если клиентский запрос приходит на ноду с новым ПО, а база еще старая, по первому хиту происходит обновление.
20. Специфика web-нод На веб-нодах нет пользовательского контента, все ноды абсолютно идентичны. При этом необходимо обеспечить изоляцию пользователей У каждого клиента свой домен Был разработан модуль для PHP: проверяет корректность HTTP_HOST, завершает хит с ошибкой, если имя некорректно устанавливает соединение с нужной базой в зависимости от HTTP_HOST авторизация внутри приложения определяется непосредственно логикой самого приложения
21. Конфигурация машин с базами MySQL Виртуальная машина (EC2) - High-Memory Extra Large Instance – 17.1 Gb RAM «Узким» местом может оказаться производительность дисковой системы. Решение – из EBS дисков Amazon можно построить software RAID. Выбираем RAID-10, так как он и быстрый, и надежный.
22. Как определить конфигурацию RAID? Любое решение выбирается, исходя из конкретной поставленной задачи. Для работы MySQL используем InnoDB. Следовательно, необходимо эффективно работать с операциями random read/write на больших файлах (ibdata). Тесты sysbench Работы с одиночным файлом 16 Гб в режиме random read/write. При увеличении количества потоков единичный диск почти сразу достигает «потолка», производительность RAID растет.
23. Как делать бэкапRAID-10? Для Amazon EC2 есть удобный механизм snapshot’ов. Как сделать целостный бэкапRAID-10 из нескольких дисков? А лучше – всей машины в целом Используем файловую систему, поддерживающую freeze (xfs, утилита xfs_freeze; или на новых ядрах Linux и ext3/ext4 и механизм fsfreeze). Делаем freeze файловой системы (в случае MySQL правильно предварительно сделать FLUSH TABLES WITH READ LOCK). Делаем снэпшоты всех дисков. «Размораживаем» файловую систему. Для бэкапа файлов – достаточно, но если хотим быстро и удобно переезжать между AZ (Availability Zones), используем более высокий уровень абстракции и оперируем образами целых машин – AMI (Amazon Machine Image).
24. Масштабирование базы Для масштабирования только чтения используем master-slave репликацию Приложение умеет отправлять запросы на запись на master, а запросы на чтение – на slave. После запросов, изменяющих данные, в случае «отставания» slave – некоторое время чтение идет с мастера Веб-нода Балансировка SQL MySQL master MySQL slave
25. Если требуется масштабирование мастера MySQL Для вертикального масштабирования используем slave, потом переключаем его в master Мониторим состояние master через CloudWatch Есть slave – минимальной конфигурации – работающий в режиме только бэкапа При необходимости масштабирования меняем тип машины у slave (вертикальное масштабирование) Останавливаем master, делаем slave мастером Переключаем IP (Amazon Elastic IP) на машину с новым мастером Веб-ноды не требуют переконфигурирования и продолжают работать без даунтайма Веб-нода Балансировка SQL Elastic IP CloudWatch MySQL slave MySQL master
26. Шардинг базы данных в рамках региона Аккаунтыa-m База данных MySQL 1 База данных MySQL 1 База данных MySQL База данных MySQL База данных MySQL 2 База данных MySQL 2 Аккаунты n-z Вертикальный шардинг Горизонтальный шардинг
27. Почему не RDS? У Amazon есть сервис RDS (Relational Database Service).Можно использовать MySQL или Oracle. Почему не стали использовать его? Недостаточно гибкая система (нет полноценного root в базе) Непрозрачно Риск долгого даунтайма (пример попадания молнии в европейский ДЦ в августе) Двойная стоимость машин при использовании Multi-AZ
28. Общая схема HTTP/HTTPS *.ru HTTP/HTTPS *.com HTTP/HTTPS *.com *.ru Elastic Load Balancing Elastic Load Balancing S3 Web 1 Web 2 Web N CloudWatch + AutoScaling Web 1 Web 2 Web N CloudWatch + AutoScaling … … cache cache cache cache cache cache MySQL master MySQL master CloudWatch CloudWatch MySQL slave MySQL slave master-master репликация management, monitoring
29. Надежность Один из приоритетов – постоянная доступность сервиса Внутри региона все веб-ноды не зависимы друг от друга, поднимаются в любой AZ (резервирование на случай аварии на уровне AZ) Реплика базы (slave) поднята в другой AZ Между регионами настроена master-master репликация В случае аварии на уровне целого региона: вDNS меняется IP – на балансировщик в другой зоне веб-ноды идентичны для каждого региона требуется поменять только адрес подключения к базе
30. Следите за нами! twitter.com/1C_Bitrix facebook.com/1CBitrix www.1c-bitrix.ru