Вадим Мадисон "Опыт разработки через микросервисы"Tanya Denisyuk
Мы начали разработку через микросервисы когда это еще не было трендом, было не ясно - это реально работающий подход или просто очередная модная штука. Не было понимания как это делать правильно, где подводные камни и что за одним словом “микросервисы” по факту стоит куча всего, что придется узнать, изучить и понять.
Сейчас у нас большой парк микросервисов, но оперировать ими становится все проще - сказывается опыт.
В ходе доклада я поделюсь основными моментами в разработке микросервисов, расскажу как это делаем мы и что для этого используем.
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...Tanya Denisyuk
Каждый день пользователи совершают миллионы действий в Интернете. Нам в FACETz DMP необходимо структурировать эти данные и проводить сегментацию для выявления предпочтений пользователей.
Хочу рассказать, как мы:
- Сегментируем в реальном времени 600 миллионов пользователей ежедневно;
- Поставляем данные партнерам, DSP, Google с минимальной задержкой;
- Храним статистику по количеству уникальных пользователей в сегменте при потоковой обработке;
- Отслеживаем влияние изменения параметров сегментации;
- Ведем подсчет аффинитивности домена к сегменту для аналитики аудиторий.
Сергей Аверин "Распространенные ошибки применения баз данных"Tanya Denisyuk
Выбор хранилища данных — сложная задача, с которой часто сталкиваются разработчики. Чаще всего результат этого выбора — это компромисс. Я расскажу о собственном опыте, набитых «шишках», рассмотрю важные, на мой взгляд, связанные с этой задачей проблемы.
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Ontico
HighLoad - новый взгляд на инфраструктуру центра обработки данных для современных нужд и приложений. Эволюция инфраструктуры датацентра. Как Facebook совершил “открытие” в железной инфраструктуре.
- Тенденции и принципы развития открытых платформ
Как крупный заказчик может заставить работать производителей железа в своих интересах и полностью уйти от зависимости от производителя;
- “Проблема импортозамещения” – видение и решения
Как уйти от порочной зависимости от производителя оборудования? Переработать, переосмыслить, открыть и заставить мировых производителей IТ-оборудования работать на себя на конкурсной основе.
- Открытые системы сегодня и завтра
Это заставило потребителей, производителей оборудования и разработчиков программного обеспечения совместно переосмыслить все аспекты эксплуатации и производства оборудования.
Примеры открытых систем, преимущества и недостатки:
- Facebook OCP. Проблемы, которые стояли перед Facebook и не решались эффективно известными компаниями лидерами IT-нфраструктуры:
-- Виртуальная программно-определяемая инфраструктура;
-- Максимальная унификация;
-- Сверхпреемственность и защита инвестиций;
-- Энергопотребление и тепловыделение;
-- Компактность и плотность платформ;
-- Обслуживание и ремонтопригодность;
-- Минимизация сервисных затрат.
Вадим Мадисон "Опыт разработки через микросервисы"Tanya Denisyuk
Мы начали разработку через микросервисы когда это еще не было трендом, было не ясно - это реально работающий подход или просто очередная модная штука. Не было понимания как это делать правильно, где подводные камни и что за одним словом “микросервисы” по факту стоит куча всего, что придется узнать, изучить и понять.
Сейчас у нас большой парк микросервисов, но оперировать ими становится все проще - сказывается опыт.
В ходе доклада я поделюсь основными моментами в разработке микросервисов, расскажу как это делаем мы и что для этого используем.
Артем Маринов "Сегментируем 600 млн. пользователей в режиме реального времени...Tanya Denisyuk
Каждый день пользователи совершают миллионы действий в Интернете. Нам в FACETz DMP необходимо структурировать эти данные и проводить сегментацию для выявления предпочтений пользователей.
Хочу рассказать, как мы:
- Сегментируем в реальном времени 600 миллионов пользователей ежедневно;
- Поставляем данные партнерам, DSP, Google с минимальной задержкой;
- Храним статистику по количеству уникальных пользователей в сегменте при потоковой обработке;
- Отслеживаем влияние изменения параметров сегментации;
- Ведем подсчет аффинитивности домена к сегменту для аналитики аудиторий.
Сергей Аверин "Распространенные ошибки применения баз данных"Tanya Denisyuk
Выбор хранилища данных — сложная задача, с которой часто сталкиваются разработчики. Чаще всего результат этого выбора — это компромисс. Я расскажу о собственном опыте, набитых «шишках», рассмотрю важные, на мой взгляд, связанные с этой задачей проблемы.
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Ontico
HighLoad - новый взгляд на инфраструктуру центра обработки данных для современных нужд и приложений. Эволюция инфраструктуры датацентра. Как Facebook совершил “открытие” в железной инфраструктуре.
- Тенденции и принципы развития открытых платформ
Как крупный заказчик может заставить работать производителей железа в своих интересах и полностью уйти от зависимости от производителя;
- “Проблема импортозамещения” – видение и решения
Как уйти от порочной зависимости от производителя оборудования? Переработать, переосмыслить, открыть и заставить мировых производителей IТ-оборудования работать на себя на конкурсной основе.
- Открытые системы сегодня и завтра
Это заставило потребителей, производителей оборудования и разработчиков программного обеспечения совместно переосмыслить все аспекты эксплуатации и производства оборудования.
Примеры открытых систем, преимущества и недостатки:
- Facebook OCP. Проблемы, которые стояли перед Facebook и не решались эффективно известными компаниями лидерами IT-нфраструктуры:
-- Виртуальная программно-определяемая инфраструктура;
-- Максимальная унификация;
-- Сверхпреемственность и защита инвестиций;
-- Энергопотребление и тепловыделение;
-- Компактность и плотность платформ;
-- Обслуживание и ремонтопригодность;
-- Минимизация сервисных затрат.
При создании интерактивного мобильного или веб-приложений нужна серверная часть, которую будет использовать приложение и разработчик этого приложения. Он должен знать маршруты, по которым можно найти методы, их описание, входные параметры и варианты ответов.
В идеале хочется, чтобы из API можно было мгновенно сгенерировать клиентский код. А ещё реализация метода всегда может измениться, и нужно предусмотреть версионность, чтобы старые клиенты могли продолжать работать без ошибок.
Можно подумать, что реализация этого может занять месяцы, но я покажу, как реализовать это на ASP.NET Core за 20 минут.
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Fwdays
On this talk, we will share unusual back streets of ASP.NET MVC for increase performance:
- brief review of usual improvements
- fast and strong typed url generation
- increase Razor performance
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Ontico
Работа в высоконагруженных проектах всегда была такой сферой деятельности, где можно в рамках решения прикладных задач находить и применять сложные и интересные решения.
К сожалению, очень часто во главу угла ставится не надежное решение поставленной задачи, а именно применение сложного и интересного решения, которое даст специалисту новый опыт и удовольствие от сложных архитектур.
В своем докладе я хочу пройтись по тем стандартным "набитым шишкам", которые мы встречаем в своей работе, когда сложное, новое и интересное решение не означает стабильность системы.
1. Когда "интересно" не значит "правильно"?
1.1. Специфика развития высоконагруженного проекта.
1.2. Требования бизнеса и современные технологии.
1.3. Типичные "сомнительные" решения.
2. Проблемы в архитектуре отказоустойчивых систем.
2.1. Ошибки в планировании резервирования.
2.2. Ошибки в планировании системы выкладок.
2.3. Ошибки в архитектурах систем хранения данных.
3. Проблемы в архитектуре систем, рассчитанных на высокую нагрузку.
3.1. Ошибки в планировании мощностей системы.
3.2. Ошибки в планировании возможностей масштабирования системы.
3.3. Ошибки в архитектурах систем хранения данных.
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...Positive Hack Days
1. Описание старого процесса сбора данных о тестах: как было до, что хорошего, что плохого
2. Influxdb, как хранилище time-series данных,
3. Zabbix - мониторинг нагрузочных стендов: windows и linux агенты, активный сбор данных, autodiscovery виртуальных машин в esx
4. Grafana, как способ превратить графики и дашборды в конфетку
5. Автоматизация нагрузки от пользователей через web-UI при помощи Jmeter, отображение статистики в реальном времени, CI в Teamcity
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"Yandex
Каждый день на Яндекс.Диск заливается более десятка терабайт данных. Из доклада вы узнаете про то, как справиться с такой нагрузкой, и про другие интересные архитектурные особенности сервиса.
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)Ontico
Сегодня термин "программно-определяемые сети" используется во множестве случаев — начиная с демонстрационных стендов с OpenVSwitch и заканчивая внедрениями распределенной программно-аппаратной оркестровки от профильных вендоров.
Разработка собственной модели сетевого транспорта и написание SDN обычно целесообразно и посильно лишь крупнейшим компаниям, но в нашем случае это также оказалось возможным, более того, SDN упростила взаимодействие с аппаратной начинкой кластеров и привела к снижению ее общей стоимости.
Мы хотим рассказать о практическом опыте разработки и использования полностью программной сети для клиентов публичного облака — от определения требований к функциональности такого решения до нюансов работы крупного отказоустойчивого SDN-кластера.
Алексей Рагозин "Java и linux борьба за микросекунды"IT Event
Java используется для широкого спектра приложений, некоторые из них могут иметь жёсткие требования по времени отклика.
Но если речь идёт про сотни микросекунд, годится ли Java, в принципе, для таких задач?
Доклад осветит практические аспекты разработки решений с малым временем отклика на платформе Java + Linux
Компания «Моё дело» прошла путь от маленького стартапа до лидера рынка в своем сегменте. Вместе с ростом компании росла и ее it структура. Инфраструктура эволюционировала космическими темпами, кол-во проектов стремительно росло. Естественно, всем этим необходимо уметь грамотно оркестрировать. Как это делаем мы и во что это превращается мы и хотим вам рассказать.
Владимир Никонов "Вызовы при разработке enterprise продукта"Fwdays
В докладе мы рассмотрим этапы развития приложения, начиная от монолитного Web приложения, до распределенной платформы по управлению бизнес-процессами. Покажем этапы развития, задачи и вызовы, которые возникали на каждом их них. Проанализируем различные аспекты, влияющие на развитие архитектуры, такие как бизнес-требования, технологические тренды и возможные ограничения.
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковMaxim Zinal
Какой должна быть NoSQL СУБД эпохи облаков? Что такое IBM Cloudant и Apache CouchDB?
Как они связаны друг с другом, и есть ли польза для Open Source проекта от коммерческого облачного сервиса на его основе?
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)Ontico
Сегодня много дискуссий о том, что лучше - MySQL или PostgreSQL? Однако перед тем, как выбирать именно реляционную базу данных для своего проекта, стоит понять, является ли реляционная база данных наилучшим решением для него.
В рамках этого доклада мы сравним наиболее популярную реляционную базу данных с открытым кодом с наиболее популярным хранилищем документов с открытым кодом. Мы определим, в каких случаях эффективнее всего работает MySQL, а в каких - MongoDB. Мы также рассмотрим ситуации, в которых ни одна из этих баз данных не будет лучшим решением и в которых целесообразно остановить свой выбор на других технологиях.
При создании интерактивного мобильного или веб-приложений нужна серверная часть, которую будет использовать приложение и разработчик этого приложения. Он должен знать маршруты, по которым можно найти методы, их описание, входные параметры и варианты ответов.
В идеале хочется, чтобы из API можно было мгновенно сгенерировать клиентский код. А ещё реализация метода всегда может измениться, и нужно предусмотреть версионность, чтобы старые клиенты могли продолжать работать без ошибок.
Можно подумать, что реализация этого может занять месяцы, но я покажу, как реализовать это на ASP.NET Core за 20 минут.
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Fwdays
On this talk, we will share unusual back streets of ASP.NET MVC for increase performance:
- brief review of usual improvements
- fast and strong typed url generation
- increase Razor performance
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Ontico
Работа в высоконагруженных проектах всегда была такой сферой деятельности, где можно в рамках решения прикладных задач находить и применять сложные и интересные решения.
К сожалению, очень часто во главу угла ставится не надежное решение поставленной задачи, а именно применение сложного и интересного решения, которое даст специалисту новый опыт и удовольствие от сложных архитектур.
В своем докладе я хочу пройтись по тем стандартным "набитым шишкам", которые мы встречаем в своей работе, когда сложное, новое и интересное решение не означает стабильность системы.
1. Когда "интересно" не значит "правильно"?
1.1. Специфика развития высоконагруженного проекта.
1.2. Требования бизнеса и современные технологии.
1.3. Типичные "сомнительные" решения.
2. Проблемы в архитектуре отказоустойчивых систем.
2.1. Ошибки в планировании резервирования.
2.2. Ошибки в планировании системы выкладок.
2.3. Ошибки в архитектурах систем хранения данных.
3. Проблемы в архитектуре систем, рассчитанных на высокую нагрузку.
3.1. Ошибки в планировании мощностей системы.
3.2. Ошибки в планировании возможностей масштабирования системы.
3.3. Ошибки в архитектурах систем хранения данных.
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...Positive Hack Days
1. Описание старого процесса сбора данных о тестах: как было до, что хорошего, что плохого
2. Influxdb, как хранилище time-series данных,
3. Zabbix - мониторинг нагрузочных стендов: windows и linux агенты, активный сбор данных, autodiscovery виртуальных машин в esx
4. Grafana, как способ превратить графики и дашборды в конфетку
5. Автоматизация нагрузки от пользователей через web-UI при помощи Jmeter, отображение статистики в реальном времени, CI в Teamcity
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"Yandex
Каждый день на Яндекс.Диск заливается более десятка терабайт данных. Из доклада вы узнаете про то, как справиться с такой нагрузкой, и про другие интересные архитектурные особенности сервиса.
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)Ontico
Сегодня термин "программно-определяемые сети" используется во множестве случаев — начиная с демонстрационных стендов с OpenVSwitch и заканчивая внедрениями распределенной программно-аппаратной оркестровки от профильных вендоров.
Разработка собственной модели сетевого транспорта и написание SDN обычно целесообразно и посильно лишь крупнейшим компаниям, но в нашем случае это также оказалось возможным, более того, SDN упростила взаимодействие с аппаратной начинкой кластеров и привела к снижению ее общей стоимости.
Мы хотим рассказать о практическом опыте разработки и использования полностью программной сети для клиентов публичного облака — от определения требований к функциональности такого решения до нюансов работы крупного отказоустойчивого SDN-кластера.
Алексей Рагозин "Java и linux борьба за микросекунды"IT Event
Java используется для широкого спектра приложений, некоторые из них могут иметь жёсткие требования по времени отклика.
Но если речь идёт про сотни микросекунд, годится ли Java, в принципе, для таких задач?
Доклад осветит практические аспекты разработки решений с малым временем отклика на платформе Java + Linux
Компания «Моё дело» прошла путь от маленького стартапа до лидера рынка в своем сегменте. Вместе с ростом компании росла и ее it структура. Инфраструктура эволюционировала космическими темпами, кол-во проектов стремительно росло. Естественно, всем этим необходимо уметь грамотно оркестрировать. Как это делаем мы и во что это превращается мы и хотим вам рассказать.
Владимир Никонов "Вызовы при разработке enterprise продукта"Fwdays
В докладе мы рассмотрим этапы развития приложения, начиная от монолитного Web приложения, до распределенной платформы по управлению бизнес-процессами. Покажем этапы развития, задачи и вызовы, которые возникали на каждом их них. Проанализируем различные аспекты, влияющие на развитие архитектуры, такие как бизнес-требования, технологические тренды и возможные ограничения.
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковMaxim Zinal
Какой должна быть NoSQL СУБД эпохи облаков? Что такое IBM Cloudant и Apache CouchDB?
Как они связаны друг с другом, и есть ли польза для Open Source проекта от коммерческого облачного сервиса на его основе?
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)Ontico
Сегодня много дискуссий о том, что лучше - MySQL или PostgreSQL? Однако перед тем, как выбирать именно реляционную базу данных для своего проекта, стоит понять, является ли реляционная база данных наилучшим решением для него.
В рамках этого доклада мы сравним наиболее популярную реляционную базу данных с открытым кодом с наиболее популярным хранилищем документов с открытым кодом. Мы определим, в каких случаях эффективнее всего работает MySQL, а в каких - MongoDB. Мы также рассмотрим ситуации, в которых ни одна из этих баз данных не будет лучшим решением и в которых целесообразно остановить свой выбор на других технологиях.
Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженно...Ontico
Когда стоит дилемма, какое DBMS решение выбрать, то приходится принимать во внимание много факторов — latency, bandwidth, ACID-complience, наличие/отсутствие server-side-scripting, возможности репликации, удобство развертывания и администрирования, наличие известных багов или maintenance window и т.д.
Я хочу рассказать лишь об одном из факторов, который имеет особенное значение на проектах с многомиллионными аудиториями — это Total Cost of Ownership или, по-простому, цена. Чем больше аудитория у проекта, тем больше эта аудитория создает нагрузку на базы данных, тем больше должно быть серверов с базами данных, тем больше финансовых затрат это требует.
Можно экстенсивно наращивать количество серверов, но до определенного предела, когда становится понятным, что далее дешевле будет внедрить новое, более производительное решение, которое позволит радикально снизить цену и количество железа.
Мой рассказ будет посвящен тому, как мы в Почте@Mail.Ru перешли на Tarantool, и как его использование сэкономило нам миллион долларов.
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Ontico
Оперативная память становится всё более дешёвой и производительной, что позволяет использовать её для хранения рабочего набора данных всё большего числа приложений. Хранение всех данных в оперативной памяти позволяет сделать их высоко доступными, а алгоритмы для работы с данными либо существенно упростить, либо ускорить, а иногда — и то, и другое.
Тезисы - http://www.highload.ru/2015/abstracts/1964.html
32 Ways a Digital Marketing Consultant Can Help Grow Your BusinessBarry Feldman
How can a digital marketing consultant help your business? In this resource we'll count the ways. 24 additional marketing resources are bundled for free.
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Sergey Xek
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного server-side API десктопного приложения. Сергей Аверин, Badoo.
Доклад рассказывает о реально примененных способах оптимизации производительности API компании Badoo для собственных десктоп-приложений: как специфика «много постоянных соединений/однотипные запросы/большая нагрузка» повлияла на стратегию оптимизации производительности.
Что было сделано:
• Планирование архитектуры изначально (fault-tolerance, адаптивные апдейты и тайм-ауты, отказ от попыток восстановления после ошибок для единичных команд).
• Переехали с redis на handlersocket.
• Rate-limiting запросов к демонам.
• Синхронизация записей.
• Асинхронность.
• Записи при достижении порога изменения параметров.
• Профилирование кода, анализ потребления CPU, времени ответа.
• Статистика, статистика и еще раз статистика.
• Pconnect.
Доклад будет интересен:
• системным архитекторам,
• server-side разработчикам.
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Ontico
Выбор системы мониторинга - это практически holy-war-ная тема среди администраторов и разработчиков. Какая система лучше? Что удобнее? Какая система сможет выдержать большое количество статистики, а какая - лучше собрать и представить данные?
В своем докладе мы попробуем предельно непредвзято рассмотреть существующие решения и понять, что и когда можно использовать.
См. тезисы - http://rootconf.ru/2015/abstracts/1746
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Anton Baranov
Выбор системы мониторинга - это практически holy-war-ная тема среди администраторов и разработчиков. Какая система лучше? Что удобнее? Какая система сможет выдержать большое количество статистики, а какая - лучше собрать и представить данные?
В своем докладе мы попробуем предельно непредвзято рассмотреть существующие решения и понять, что и когда можно использовать.
Прежде всего, мы постараемся сделать доклад не сравнением feature-листов, а рассмотреть особенности практического применения разных систем для конкретной задачи - для сайта, который не должен падать (а точнее - для возможности оперативно отреагировать на аварию, понять что к ней привело, и как можно ее исправить).
HighLoad++ 2017
Зал Дели + Калькутта, 7 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/2867.html
Последние несколько лет в продуктовой разработке проблемы масштабирования решаются через переход на микросервисную архитектуру. На эту тему было сказано много про подходы, плюсы и минусы, но мало кто рассматривал эту проблематику со стороны фронтенда.
В ЦИАН мы идем по пути перехода от монолита к микросервисам, в том числе и на фронтенде. Задачи и проблемы, с которыми мы сталкиваемся, очень близки к аналогичным на бэкенде, но в то же время совершенно другие.
Последние несколько лет в продуктовой разработке проблемы масштабирования решаются через переход на микросервисную архитектуру. На эту тему было сказано много про подходы, плюсы и минусы, но мало кто рассматривал эту проблематику со стороны фронтенда.
В ЦИАН мы идем по пути перехода от монолита к микросервисам, в том числе и на фронтенде. Задачи и проблемы, с которыми мы сталкиваемся, очень близки к аналогичным на бэкенде, но в то же время совершенно другие.
В своем докладе я расскажу про архитектуру фронтенда (и так называемого миддленда) в ЦИАН: какие задачи перед нами стояли, что мы решили, где мы находимся сейчас и с какими проблемами мы столкнулись.
Презентация Владимира Храмцова к докладу про оптимизацию двух маленьких PHP проектов. Основыне тезисы: что происходит, когда увеличивается нагрузка, какие возникают проблемы и способы их решения.
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)Pavel Tsukanov
Расскажу зачем они вообще нужны. Пройдемся по технологиям и промоем им косточки. Рассмотрим достоинства и недостатки, а также где и когда лучше всего применять ту или иную ORM.
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...Валерий Павлович Сысик
Анонс:
Многие знают как повысить эффективность конкретной команды.
А когда команд 50?
Клинчи, дедлоки и ожидания, управление «срочным» на ручном приводе - частые спутники больших компаний.
Как в компании Петер-Сервис боролись за согласованность работы команд, адекватную орг. структуру и архитектуру, единый ритм выпуска продукции и победили.
Доклад будет интересен представителям компаний, работающих над по настоящему большим продуктом и испытывающим боли от масштаба на себе.
2. Предыстория
• Plesk – проект с большой базой кода и рядом подсистем
• Во время разработки и тестирования возникает множество ошибок
• Ошибки в production и dev/testing окружениях – разные
• Записывать ошибки вручную – долго
• Сбор отчетов без участия человека
• Вариации идеи присутствуют в крупных desktop-системах
2
4. Сервер с Plesk’ом
• Источник ошибок
• Согласие на участие в программе по улучшению качества
• Различные подсистемы – различные отчеты
• Строка, файл, стек-трейс для ошибки в веб-интерфейсе
• Фрагменты лога для ошибки инсталлятора
• Детальный отчет, подготовленный автоматически
• Расширяемый версионный протокол общения
• Возможности постепенного улучшения качества отчетов
4
5. Коллектор
• Назначение
• Собирать отчеты
• Быстрое получение и сохранение
• Никакой обработки
• Балансировка нагрузки
• Разделение потока отчетов по окружениям
• Техническая сторона
• Два отдельных сервера (в Новосибирске и ДЦ в США)
• Серверное ПО: nginx + PHP-FPM + MySQL
• Локальный сервер – до 30 тысяч запросов в минуту.
• Удаленный сервер – порядка 600 запросов в минуту.
5
6. Агрегатор
• Назначение
• Сбор отчетов с коллекторов в централизованное место
• Обработка
• Подготовка данных в удобном для веб-интерфейса виде
• Техническая сторона
• Скрипт выполняемый по расписанию с определенными интервалами
• На данный момент – получение данных по защищенному SSL-
соединению к MySQL.
6
7. Веб-интерфейс
• Адрес – http://errors.pp.plesk.ru/
• Необходим человеку для работы (ручного анализа, просмотра
деталей, поиска)
7
8. Веб-интерфейс
Основные возможности
• Просмотр различных списков отчетов (уникальные, последние,
отфильтрованные) и деталей по ним.
• Поиск с возможностью фильтрации и группировки данных.
• Графики, отражающие тренды появления новых ошибок.
• Аналитика («похожие» ошибки, популярные проблемы).
• Получение информации по RSS с возможностью фильтрации
потока.
• API для поиска ошибок.
• Фильтрация отчетов по окружениям (production/development/all).
8
9. Веб-интерфейс
Техническая сторона
• Серверное ПО: Apache + Passenger (aka mod_rails) + Ruby on Rails
+ MySQL.
• Ruby on Rails – сосредоточенность на фичах, а не на
вспомогательном коде.
• Всего около тысячи строчек кода включая CSS и JavaScript.
• Возможен отказ от MySQL в пользу MongoDB.
• Исходный код на Gitorious - http://git.pp.plesk.ru/errors-tracker
• Принимаются предложения по улучшению, но можно попробовать
улучшить и своими силами.
9
10. Практика использования
• Проект прошел обкатку в том числе и на production-серверах
• Уже было обработано более 4 миллионов отчетов.
• Проще понять – эксклюзивная или массовая проблема.
• Помощь при расстановке приоритетов для фиксов в обновлениях.
• Массовые проблемы быстро «всплывают» в top.
• Минимизация расстояния по времени «клиент-ошибка-
разработчик»
• Клиенту не нужно тратить время на заполнения форм.
• Эффект достигается за счет большого количества инсталляций.
10
11. Резюме
• Не единственный, но дополнительный источник полезной
информации.
• Не тратится время технической поддержки.
• Разработчик получает отчет в неискаженном виде.
• Возможности дальнейшего улучшение аналитики.
• Основная цель – позволить максимально быстро исправлять
проблемы в продукте.
11