Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...Ontico
Многие веб-студии не имеют в своем штате системных администраторов. И зачастую узнают о проблемах с запущенными проектами уже после того, как они случились.
В докладе рассмотрим:
- Явные и не очень потери на медленном / недоступном сайте.
- Общие принципы внедрения систем real-time мониторинга.
- Мониторинг нетипичных характеристик (наличие бэкапов, делегирование домена и т.п.).
- Автоматизацию типовых реакций на алерты.
- Зачем нужна аналитика в мониторинге (пробуем предугадать проблемы до того, как они случатся).
- Инструменты и общие подходы быстрого поиска "узких" мест.
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Ontico
В докладе поделимся опытом построения комплексного процесса последовательного улучшения производительности информационных систем мобильного оператора, расскажем об используемых инструментах и компонентах (Oracle, Tarantool, Java, Jmeter и т.д.).
Особенность нашего оператора в том, что основной канал взаимодействия с клиентом - это мобильное приложение или web Личный кабинет, а не USSD команды и СМС, как у основной массы операторов. Данная особенность создает высокие требования к времени отклика и доступности сервисов и ставит перед нами целый ряд вопросов:
- Как достичь приемлемого времени отрисовки страниц (не более 2х секунд) и не "уронить" backend при увеличении кол-ва абонентов в несколько раз за год до 4х миллионов?
- Как обеспечить приемлемую производительность при наличии сложных оркестрирующих процессов на ESB и достаточно медленного, основанного на Oracle биллинга?
- Как контролировать и улучшать производительность и доступность постоянно и на упреждение, а не когда "жареный петух клюнет"?
Мы расскажем о том, как мы отвечаем на выше обозначенные вопросы. В частности, расскажем о внедрении двух БД - inmemory БД на чтение и Oracle на запись с соответствующей синхронизацией, о технике кэширования на нескольких уровнях, оптимизации синхронных и асинхронных процессов, о постоянном выявлении узких мест на тестировании, о кластеризации и других аспектах улучшения общей и частной производительности и доступности при быстро растущей абонентской базе и беспощадной креативности бизнеса.
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...solit
Слисенко Константин, Минск. Компания JazzTeam, Senior Software Engineer (R&D), Java/Agile Coach
«Разработка приложений в облаке на примере Amazon Web Services». Development секция. Для разработчиков.
«JVM изнутри: оптимизация и профилирование». Development секция. Для разработчиков.
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...Ontico
Многие веб-студии не имеют в своем штате системных администраторов. И зачастую узнают о проблемах с запущенными проектами уже после того, как они случились.
В докладе рассмотрим:
- Явные и не очень потери на медленном / недоступном сайте.
- Общие принципы внедрения систем real-time мониторинга.
- Мониторинг нетипичных характеристик (наличие бэкапов, делегирование домена и т.п.).
- Автоматизацию типовых реакций на алерты.
- Зачем нужна аналитика в мониторинге (пробуем предугадать проблемы до того, как они случатся).
- Инструменты и общие подходы быстрого поиска "узких" мест.
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Ontico
В докладе поделимся опытом построения комплексного процесса последовательного улучшения производительности информационных систем мобильного оператора, расскажем об используемых инструментах и компонентах (Oracle, Tarantool, Java, Jmeter и т.д.).
Особенность нашего оператора в том, что основной канал взаимодействия с клиентом - это мобильное приложение или web Личный кабинет, а не USSD команды и СМС, как у основной массы операторов. Данная особенность создает высокие требования к времени отклика и доступности сервисов и ставит перед нами целый ряд вопросов:
- Как достичь приемлемого времени отрисовки страниц (не более 2х секунд) и не "уронить" backend при увеличении кол-ва абонентов в несколько раз за год до 4х миллионов?
- Как обеспечить приемлемую производительность при наличии сложных оркестрирующих процессов на ESB и достаточно медленного, основанного на Oracle биллинга?
- Как контролировать и улучшать производительность и доступность постоянно и на упреждение, а не когда "жареный петух клюнет"?
Мы расскажем о том, как мы отвечаем на выше обозначенные вопросы. В частности, расскажем о внедрении двух БД - inmemory БД на чтение и Oracle на запись с соответствующей синхронизацией, о технике кэширования на нескольких уровнях, оптимизации синхронных и асинхронных процессов, о постоянном выявлении узких мест на тестировании, о кластеризации и других аспектах улучшения общей и частной производительности и доступности при быстро растущей абонентской базе и беспощадной креативности бизнеса.
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...solit
Слисенко Константин, Минск. Компания JazzTeam, Senior Software Engineer (R&D), Java/Agile Coach
«Разработка приложений в облаке на примере Amazon Web Services». Development секция. Для разработчиков.
«JVM изнутри: оптимизация и профилирование». Development секция. Для разработчиков.
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"ActiveCloud
Александр Прусенок, технический пре-сейл консультант ActiveCloud, и Павел Богданов, руководитель отдела технической поддержки ActiveCloud: «10 способов улучшить работу сайта нашего клиента без затрат. Погружение в облако ActiveCloud. Размещение высоконагруженных веб-ресурсов. Платформа Bitrix VM. Практический кейс переноса в облако».
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Ontico
Мы создаем nodejs приложения, используя различные современные технологии, такие как Docker, Consul, pm2. Современный спектр решений настолько обширен, что сложно не заблудиться. Как же выбрать нужные вашему проекту технологии, чтобы успешно его запустить и поддерживать? Будут рассказаны истории и, конечно же, даны вредные советы :)
Как на nodejs пройти путь от Hello world приложения до распределённого решения, состоящего из микросервисов?
Мы пройдём жизненный цикл продукта, начав с простого приложения на nodejs. Научимся его правильно запускать и будем постепенно добавлять элементы, убирая при этом ненужные. Так к нашему приложению присоединится гипервизор, а само оно будет разделено на части, где каждая сущность будет управлять своей частью приложения.
Построив таким образом архитектуру на чистом nodejs, мы займёмся развитием приложения, добавим современные технологии и применим новые подходы к организации инфраструктуры. Запакуем приложение в Docker, попутно обсудим, зачем он нужен и что может дать. И, наконец, решим проблему поиска запущенных сервисов и отслеживания их статусов, используя Consul.
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)Ontico
На примере фреймворка COD.js ( c React as View Layer ) и топовых продуктов фирмы Acronis мы увидим, каких удивительных результатов можно добиться используя:
1) NAS — неблокирующее состояние приложения;
2) Predictions — дизайн-паттерн, позволяющий предсказывать состояния системы и производить так называемую "latency conpensation" — технику, которую очень любят в Game Dev;
3) Preloading — стандартную и всем знакомую технику, у которой есть пара интересных способов применения, заслуживающих внимания;
4) Presudo-Isomorphism — очень хитрую технику, которую так активно использует Facebook.
Все это будет показано на примере реальных продуктов. С простыми и понятными примерами, которые можно будет применить в любом продукте.
Презентация Владимира Храмцова к докладу про оптимизацию двух маленьких PHP проектов. Основыне тезисы: что происходит, когда увеличивается нагрузка, какие возникают проблемы и способы их решения.
Доклад от Parallels:
Методики тестировния производительности database-centric приложений
Описание: При работе над сложными продуктами в database-centric приложениях изменения в коде и тем более в SQL запросах к базе данных могут приводить к неожиданным падениям производительности или же деградации производительности приложения с ростом размера базы данных. Поэтому важно уметь как можно быстрее отлавливать и исправлять причины таких деградаций.
Доклад о том, как устроен процесс мониторинга производительности продукта автоматизации хостинга и облачных сервисов Parallels Automation, для которого определяющим фактором является производительность базы данных.
Компания покажет, как анализирует планы исполнения SQL запросов внутри PostgreSQL, как проверяет насколько быстро и эффективно в целом работают SQL запросы, как определяет стратегию дальнейшей оптимизации.
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...Tanya Denisyuk
Расскажу, какие подходы и инструменты практически применяются в Wargaming при обработке данных в гигантской, без преувеличений, системе. Частичный список затрагиваемых вопросов
NoSQL versus/with RDBMS или каждый инструмент на своем месте
Синхронные и асинхронные подходы к построению систем: почему асинхронные системы не могут быть быстрее синхронных, но асинхронность, тем не менее, очень полезна
API и интерфейсы — важная составляющая хорошо спроектированной системы
Performance vs Scalability
Мониторинг и профилирование
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)Ontico
В сутки Яндекс.Диск отдает более 40 миллионов сгенерированных превью изображений для просмотра в веб-интерфейсе Диска и в мобильных приложениях.
В докладе будет рассказано о поиске узких мест в цепочке от запроса пользователя до показа ему картинки, создания мониторингов скорости показа картинок, мерах по оптимизации: какие варианты рассматривали, какие реализовали, и какие были итоги.
Shadow Fight 2: архитектура системы аналитики для миллиарда событийVyacheslav Nikulin
Аудитория Shadow Fight 2, насчитывающая 50 миллионов игроков, ежедневно генерирует огромное количество событий, анализ которых происходит в реальном времени. Доклад посвящен архитектуре системы аналитики на основе поискового движка Elasticsearch. Будет рассмотрен технологический стек Elasticsearch, Logstash, Kibana, который позволяет в сжатые сроки создать гибкое и надежное решение. Также Вячеслав поможет разобраться со схемой обработки событий, моделью данных и особенностями настройки, расскажет о команде и трудозатратах на разработку и поддержку системы
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Ontico
HighLoad - новый взгляд на инфраструктуру центра обработки данных для современных нужд и приложений. Эволюция инфраструктуры датацентра. Как Facebook совершил “открытие” в железной инфраструктуре.
- Тенденции и принципы развития открытых платформ
Как крупный заказчик может заставить работать производителей железа в своих интересах и полностью уйти от зависимости от производителя;
- “Проблема импортозамещения” – видение и решения
Как уйти от порочной зависимости от производителя оборудования? Переработать, переосмыслить, открыть и заставить мировых производителей IТ-оборудования работать на себя на конкурсной основе.
- Открытые системы сегодня и завтра
Это заставило потребителей, производителей оборудования и разработчиков программного обеспечения совместно переосмыслить все аспекты эксплуатации и производства оборудования.
Примеры открытых систем, преимущества и недостатки:
- Facebook OCP. Проблемы, которые стояли перед Facebook и не решались эффективно известными компаниями лидерами IT-нфраструктуры:
-- Виртуальная программно-определяемая инфраструктура;
-- Максимальная унификация;
-- Сверхпреемственность и защита инвестиций;
-- Энергопотребление и тепловыделение;
-- Компактность и плотность платформ;
-- Обслуживание и ремонтопригодность;
-- Минимизация сервисных затрат.
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Ontico
Оптимизация любого веб-приложения — это нетривиальная задача, для решения которой требуется проводить мониторинг загрузки системных ресурсов, выполнять микро-вэнчмаркинг, экспериментировать с настройками, проводить нагрузочное тестирование и т.д.
В текущем году нашей команде довелось поучаствовать в нескольких проектах, в которых перед нами стояла задача оптимизации J2EE веб-приложений. Один из них — портал для ОАО «Сбербанк России» (www.sberbank.ru).
Основной сайт Сбербанка реализован на основе портального движка BackBase и является J2EE-приложением. При проведении оптимизации его работы нам пришлось изучить и собрать много информации и документов, которые связаны с настройкой и оптимизацией высоконагруженных веб-приложений.
В ходе реализации проектов я заметил, что не существует сводного документа с инструкциями по оптимизации работы приложения, поэтому решил поделиться нашим опытом. Этот доклад может послужить в качестве дорожной карты (Road Map) для настройки и оптимизации J2EE веб-приложений.
В докладе будут рассмотрены следующие аспекты:
1) Общие подходы и методология оптимизации веб-приложения.
2) Оптимизация настроек веб-сервера.
3) Оптимизация кода приложения на стороне клиента.
4) Оптимизация на стороне middleware, в том числе на сервере приложений.
5) Оптимизация на уровне Базы Данных.
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"ActiveCloud
Александр Прусенок, технический пре-сейл консультант ActiveCloud, и Павел Богданов, руководитель отдела технической поддержки ActiveCloud: «10 способов улучшить работу сайта нашего клиента без затрат. Погружение в облако ActiveCloud. Размещение высоконагруженных веб-ресурсов. Платформа Bitrix VM. Практический кейс переноса в облако».
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Ontico
Мы создаем nodejs приложения, используя различные современные технологии, такие как Docker, Consul, pm2. Современный спектр решений настолько обширен, что сложно не заблудиться. Как же выбрать нужные вашему проекту технологии, чтобы успешно его запустить и поддерживать? Будут рассказаны истории и, конечно же, даны вредные советы :)
Как на nodejs пройти путь от Hello world приложения до распределённого решения, состоящего из микросервисов?
Мы пройдём жизненный цикл продукта, начав с простого приложения на nodejs. Научимся его правильно запускать и будем постепенно добавлять элементы, убирая при этом ненужные. Так к нашему приложению присоединится гипервизор, а само оно будет разделено на части, где каждая сущность будет управлять своей частью приложения.
Построив таким образом архитектуру на чистом nodejs, мы займёмся развитием приложения, добавим современные технологии и применим новые подходы к организации инфраструктуры. Запакуем приложение в Docker, попутно обсудим, зачем он нужен и что может дать. И, наконец, решим проблему поиска запущенных сервисов и отслеживания их статусов, используя Consul.
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)Ontico
На примере фреймворка COD.js ( c React as View Layer ) и топовых продуктов фирмы Acronis мы увидим, каких удивительных результатов можно добиться используя:
1) NAS — неблокирующее состояние приложения;
2) Predictions — дизайн-паттерн, позволяющий предсказывать состояния системы и производить так называемую "latency conpensation" — технику, которую очень любят в Game Dev;
3) Preloading — стандартную и всем знакомую технику, у которой есть пара интересных способов применения, заслуживающих внимания;
4) Presudo-Isomorphism — очень хитрую технику, которую так активно использует Facebook.
Все это будет показано на примере реальных продуктов. С простыми и понятными примерами, которые можно будет применить в любом продукте.
Презентация Владимира Храмцова к докладу про оптимизацию двух маленьких PHP проектов. Основыне тезисы: что происходит, когда увеличивается нагрузка, какие возникают проблемы и способы их решения.
Доклад от Parallels:
Методики тестировния производительности database-centric приложений
Описание: При работе над сложными продуктами в database-centric приложениях изменения в коде и тем более в SQL запросах к базе данных могут приводить к неожиданным падениям производительности или же деградации производительности приложения с ростом размера базы данных. Поэтому важно уметь как можно быстрее отлавливать и исправлять причины таких деградаций.
Доклад о том, как устроен процесс мониторинга производительности продукта автоматизации хостинга и облачных сервисов Parallels Automation, для которого определяющим фактором является производительность базы данных.
Компания покажет, как анализирует планы исполнения SQL запросов внутри PostgreSQL, как проверяет насколько быстро и эффективно в целом работают SQL запросы, как определяет стратегию дальнейшей оптимизации.
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...Tanya Denisyuk
Расскажу, какие подходы и инструменты практически применяются в Wargaming при обработке данных в гигантской, без преувеличений, системе. Частичный список затрагиваемых вопросов
NoSQL versus/with RDBMS или каждый инструмент на своем месте
Синхронные и асинхронные подходы к построению систем: почему асинхронные системы не могут быть быстрее синхронных, но асинхронность, тем не менее, очень полезна
API и интерфейсы — важная составляющая хорошо спроектированной системы
Performance vs Scalability
Мониторинг и профилирование
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)Ontico
В сутки Яндекс.Диск отдает более 40 миллионов сгенерированных превью изображений для просмотра в веб-интерфейсе Диска и в мобильных приложениях.
В докладе будет рассказано о поиске узких мест в цепочке от запроса пользователя до показа ему картинки, создания мониторингов скорости показа картинок, мерах по оптимизации: какие варианты рассматривали, какие реализовали, и какие были итоги.
Shadow Fight 2: архитектура системы аналитики для миллиарда событийVyacheslav Nikulin
Аудитория Shadow Fight 2, насчитывающая 50 миллионов игроков, ежедневно генерирует огромное количество событий, анализ которых происходит в реальном времени. Доклад посвящен архитектуре системы аналитики на основе поискового движка Elasticsearch. Будет рассмотрен технологический стек Elasticsearch, Logstash, Kibana, который позволяет в сжатые сроки создать гибкое и надежное решение. Также Вячеслав поможет разобраться со схемой обработки событий, моделью данных и особенностями настройки, расскажет о команде и трудозатратах на разработку и поддержку системы
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Ontico
HighLoad - новый взгляд на инфраструктуру центра обработки данных для современных нужд и приложений. Эволюция инфраструктуры датацентра. Как Facebook совершил “открытие” в железной инфраструктуре.
- Тенденции и принципы развития открытых платформ
Как крупный заказчик может заставить работать производителей железа в своих интересах и полностью уйти от зависимости от производителя;
- “Проблема импортозамещения” – видение и решения
Как уйти от порочной зависимости от производителя оборудования? Переработать, переосмыслить, открыть и заставить мировых производителей IТ-оборудования работать на себя на конкурсной основе.
- Открытые системы сегодня и завтра
Это заставило потребителей, производителей оборудования и разработчиков программного обеспечения совместно переосмыслить все аспекты эксплуатации и производства оборудования.
Примеры открытых систем, преимущества и недостатки:
- Facebook OCP. Проблемы, которые стояли перед Facebook и не решались эффективно известными компаниями лидерами IT-нфраструктуры:
-- Виртуальная программно-определяемая инфраструктура;
-- Максимальная унификация;
-- Сверхпреемственность и защита инвестиций;
-- Энергопотребление и тепловыделение;
-- Компактность и плотность платформ;
-- Обслуживание и ремонтопригодность;
-- Минимизация сервисных затрат.
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Ontico
Оптимизация любого веб-приложения — это нетривиальная задача, для решения которой требуется проводить мониторинг загрузки системных ресурсов, выполнять микро-вэнчмаркинг, экспериментировать с настройками, проводить нагрузочное тестирование и т.д.
В текущем году нашей команде довелось поучаствовать в нескольких проектах, в которых перед нами стояла задача оптимизации J2EE веб-приложений. Один из них — портал для ОАО «Сбербанк России» (www.sberbank.ru).
Основной сайт Сбербанка реализован на основе портального движка BackBase и является J2EE-приложением. При проведении оптимизации его работы нам пришлось изучить и собрать много информации и документов, которые связаны с настройкой и оптимизацией высоконагруженных веб-приложений.
В ходе реализации проектов я заметил, что не существует сводного документа с инструкциями по оптимизации работы приложения, поэтому решил поделиться нашим опытом. Этот доклад может послужить в качестве дорожной карты (Road Map) для настройки и оптимизации J2EE веб-приложений.
В докладе будут рассмотрены следующие аспекты:
1) Общие подходы и методология оптимизации веб-приложения.
2) Оптимизация настроек веб-сервера.
3) Оптимизация кода приложения на стороне клиента.
4) Оптимизация на стороне middleware, в том числе на сервере приложений.
5) Оптимизация на уровне Базы Данных.
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime community
Александр Демидов, директор направления облачных сервисов Битрикс24
1. Почему Битрикс24 и другие сервисы 1С-Битрикс живут в облаке, как мы администрируем всю нашу инфраструктуру и как справляемся с сотнями виртуальных машин и сервисов силами трех человек. Как коммуницируем с разработчиками и QA, как деплоим, да и вообще — как живем и развиваемся.
2. Мониторинг — наше всё! Распределенная система real-time мониторинга (был nagios, стал shinken), аналитика, автоматизация, работа с инцидентами.
3. Бонус — на какие самые серьезные грабли мы наступали за пять лет, прошедших с запуска «Битрикс24», и как научились их обходить.
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...ForkConf
Сергей Рыжиков. Директор "1С-Битрикс". Нагруженный Форк. Производительность проекта. Архитектура проекта «Битрикс24»: как сделать так, чтобы все летало и не падало, master-master, мастер мастер
Презентация технологии веб-кластеров
Основные задачи, которые решает веб-кластер:
Обеспечение высокой доступности сервиса (так называемые HA - High Availability или Failover кластеры)
Масштабирование веб-проекта в условиях возрастающей нагрузки (HP - High Performance кластеры)
Балансирование нагрузки, трафика, данных между несколькими серверами
Создание целостной резервной копии данных для MySQL
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Ontico
Выбор системы мониторинга - это практически holy-war-ная тема среди администраторов и разработчиков. Какая система лучше? Что удобнее? Какая система сможет выдержать большое количество статистики, а какая - лучше собрать и представить данные?
В своем докладе мы попробуем предельно непредвзято рассмотреть существующие решения и понять, что и когда можно использовать.
См. тезисы - http://rootconf.ru/2015/abstracts/1746
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Anton Baranov
Выбор системы мониторинга - это практически holy-war-ная тема среди администраторов и разработчиков. Какая система лучше? Что удобнее? Какая система сможет выдержать большое количество статистики, а какая - лучше собрать и представить данные?
В своем докладе мы попробуем предельно непредвзято рассмотреть существующие решения и понять, что и когда можно использовать.
Прежде всего, мы постараемся сделать доклад не сравнением feature-листов, а рассмотреть особенности практического применения разных систем для конкретной задачи - для сайта, который не должен падать (а точнее - для возможности оперативно отреагировать на аварию, понять что к ней привело, и как можно ее исправить).
5. Битрикс24 – в цифрах
• Зарегистрировано компаний: 54 000 +
• Каждый день используют 4 000 + компаний
• Еще 2 100 + компаний - через день
• 1 600 + сотрудников в максимальной
компании
• 22 Гб - максимальный размер
использованного пространства компаний
• Общий размер файлов в облаке Amazon –
790 Гб
• 10 000 000 программных страниц в день
• Максимальное число подключенных
интернет-магазинов к одной CRM – 12
6. S3
Elastic Load Balancing
Web 1
Elastic Load Balancing
Dynamic
Web N
…
CloudWatch
+
AutoScaling
Web 1 Web 2 Web N
…
CloudWatch
+
AutoScaling
Архитектура – с птичьего полета
S3
management,
monitoring,
backup
Static
CDN
js, css
DynamicStatic
CDN
js, css
images(clients)
images(clients)
local
cache
local
cache
local
cache
local
cache
local
cache
control cache: memcached
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
master-master replication
master-master replication
master-master replication
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
control cache: memcached
control cache: memcached
control cache: memcached
control cache: memcached
control cache: memcached
Web 2
local
cache
7. AWS – это «живые»
паттерны проектирования
Приложения тоже имеют «нормальные формы»
Многие этого не понимают
Риск изобретения неудачного велосипеда
Риск: «Зачем делать просто, если можно сложно?»
Используем опыт взрослых расширяемых архитектур
13. Диски
Elastic Block Store: 1GB – 1TB
Блочное устройство
AFR (annual failure rate) ~0.1-0.5% (при регулярных
снепшотах)
IO: десятки MB/sec – серьезно уступают «железным»
Хорошо помогает софтварный рейд (md)
raid0 или raid0+1?
Диски живут в одном «ДЦ», а их снепшоты между «ДЦ», на
уровне региона
«Provisioned EBS»: до 4000 IOPS/диск
14. Снепшоты данных и серверов
Делать снепшоты рейдов можно и нужно
Нет инструментов очистки устаревших снепшотов и образов
машин, их нужно писать
Unix: ec2-consistent-snapshot
или:
fsfreeze –f mountpoint (Linux Ext3/4, ReiserFS, JFS, XFS)
AWS SDK for PHP:
AmazonEC2::create_snapshot ( $volume_id, $opt )
AmazonEC2::create_image ( $instance_id, $name, $opt )
fsfreeze –u mountpoint
15. Сервер веб-приложений
PHP + APC
Модифицированный «1C-Битрикс:
Корпоративный портал» - кластерная
редакция
nginx
Сервер веб-приложений
Балансировщик ELB (SSL)
Сервер MySQL
MySQL (Percona/XtraDB)
Кэш данных (чтение): APC
Кэш данных (запись): memcached
Изменяемые файлы
Simple Storage Service (s3)
16. Кластер серверов веб-приложений
Region = группа связанных датацентров
ДЦ1 ДЦ2
Балансировщик (ELB)
Группа автомасштабирования (AutoScaling)
Мониторинг (CloudWatch)
Образ машины (AMI)
19. Работа с файлами в s3
API хранилища для «прозрачной» работы с файлами
API для разработчиков (не используем стандартные
функции для работы с файлами)
Избегаем «диких» файлов
«Прозрачность» для всех модулей системы
Таблица с данными обо всех подключенных хранилищах
Таблица со списком файлов, и указанием, где они хранятся
(можно сразу хранить дополнительную информацию)
Не используем file_size, getimagesize и т.п. – сохраняем все
данные при аплоаде
21. Временные токены к s3 и др.
Раньше для каждой учетки - новый IAM пользователь,
получаем AccessKey, SecretKey. Но есть лимит: макс. 15 000
(по умолчанию – 5 000)
Сейчас используем Security Token Service (STS) – временные
учетные записи
Права внутри одной директории:
PutObject
GetObject
DeleteObject
22. Масштабирование БД
ДЦ1 ДЦ2
Балансировщики (ELB)
AutoScaling
Мониторинг
(CloudWatch)
Образ машины (AMI)
Percona XtraDB Master-
Master (Active/Passive)
Масштабирование PHP
Вертикальныйшардинг
DB1
(Passive)
DB1
(Active)
DB2
(Passive)
DB2
(Active)
DB3
(Passive)
DB3
(Active)
Миллионы таблиц,
десятки тысяч баз данных
23. Бэкап БД
Диск (EBS)
Буферы MySQL
(InnoDB) в памяти
Unix: ec2-consistent-snapshot
или:
“FLUSH TABLES WITH READ
LOCK”
fsfreeze –f mountpoint (Linux
Ext3/4, ReiserFS, JFS, XFS)
AWS SDK for PHP:
AmazonEC2::create_snapshot (
$volume_id, $opt )
AmazonEC2::create_image (
$instance_id, $name, $opt )
fsfreeze –u mountpoint
“UNLOCK TABLES”
Данные MySQL
(InnoDB) на диске
Хранилище данных
(на базе S3 = Simple
Storage Service)
Снепшоты.
Автоматически:
консолидация бэкапов,
сохранение только
инкрементов
24. Обновление кластера
Web 1
Web 2
Web N
Сервер
обновлений
Новый
образ AMI
Elastic
Load
Balancing
Как ставить
обновления на
нодах, не
допустив
рассинхрони-
зации данных
(веб и база)?
25. Обновление кластера
Как ставить обновления на серверах, не допустив
рассинхронизации данных (веб и база):
Каждое клиентское приложение работает с собственной базой.
Все обновления ставятся на выделенный instance, куда не приходит
нагрузка.
Из этого инстанса делается новый образ AMI.
Последовательно каждая машина помечается «плохой», при этом
новые веб-ноды стартуют уже из нового образа.
В веб-приложении существует механизм проверки соответствия версии
ПО и базы.
Если клиентский запрос приходит на ноду с новым ПО, а база еще
старая, по первому хиту происходит обновление.
26. Мониторинг
Лучше – стандартные решения (Nagios, Zabbix и т.п.), а не
самописные.
Дежурная смена и/или мгновенные уведомления.
Мониторить – всё.
Но – аккуратно. Тысячи уведомлений будут бесполезны.
Автоматизация типовых реакций.
Мониторить систему мониторинга.
В идеальном мире – распределенная система мониторинга.
«Мониторинг безопасности» – изменения файлов и т.п.
27. Мониторинг - тест
Nagios
AWS SDK for PHP
Тест
Тест
Тест
Тест
Обработчик события
Обработчик события
Обработчик события
CloudWatch -
автомасштабирование
Обработчик события
Ядро
Прослойка
вспомогательного кода
(PHP, bash)
Утилиты AWS
для консоли
API Амазона
Тест nagios
Pinba
Тест
28. Мониторинг - обработчик
Nagios
AWS SDK for PHP
Тест
Тест
Тест
Тест
Обработчик события
Обработчик события
Обработчик события
CloudWatch -
автомасштабирование
Обработчик события
Ядро
Обработчик события
Прослойка вспомогательного кода (PHP, bash)
Утилиты AWS
для консоли
API Амазона
29. Мониторинг и аналитика
В CloudWatch недостаточно возможностей, но используем его
максимально
AWS SDK for PHP и вообще работа с API амазона не всегда
прямолинейна – нужна прослойка
Для основного мониторинга и активной обратной связи
используем Nagios и его обработчики событий
Для аналитики в основном используем Munin, часть данных
берем из CloudWatch
Присматриваемся к gearman, используем SQS (сервис очередей
AWS)
30. S3
Elastic Load Balancing
Web 1
Elastic Load Balancing
Dynamic
Web N
…
CloudWatch
+
AutoScaling
Web 1 Web 2 Web N
…
CloudWatch
+
AutoScaling
Архитектура – с птичьего полета
S3
management,
monitoring,
backup
Static
CDN
js, css
DynamicStatic
CDN
js, css
images(clients)
images(clients)
local
cache
local
cache
local
cache
local
cache
local
cache
control cache: memcached
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
master-master replication
master-master replication
master-master replication
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
control cache: memcached
control cache: memcached
control cache: memcached
control cache: memcached
control cache: memcached
Web 2
local
cache