Тестирование через мониторинг или холакратия на практике / Максим Чистяков (U...Ontico
Чтобы быстро двигаться, надо быстро двигаться :-)
Скоростная разработка продукта невозможна без непрекращающегося выкатывания свежих изменений в боевое окружение. Именно это позволяет Ultimate-Guitar оставаться #1 world's guitar service.
Когда-то давным-давно мы приняли для себя, что "мы движемся очень быстро и иногда из-за этого что-то ломаем. Недоставленный пользователям продукт/непроверенная гипотеза хуже, чем временная неработоспособность части сервиса. Поэтому мы убираем преграды между новым кодом и продакшном: не тратим время ни на тестирование, ни на строгий релиз-менеджмент".
Многие возникающие проблемы касаются только обслуживания (датацентр, OS, каналы) и мониторинг, естественно, необходим. Ну, а раз уж у нас есть мониторинг, то давайте считать систему единым целым, которая может выходить из строя по различным причинам, одной из которых является ошибка в коде. Это привело нас к идее использовать мониторинг вместо тестирования. К чему это привело, почему мы любим Anturis, Graylog, Grafana, что главное в деплое - это быстрый откат и другие прелести управления звездолётом Ultimate-Guitar с дневным населением больше Москвы на скорости 10 деплоев/час - обо всё этом пойдёт речь в этом докладе:
- Про скорость и цену быстрого развития (Innovation Costs).
- Холакратия в бранчах, "сам себе релиз-инженер", ответственность и честность.
- Скорость отката > скорость деплоя.
- Как умер QA или демоны с tail и Graylog.
- Когда не нужны микросервисы: успеть за 30 секунд, медленный Mercurial и шустрое комбо Git + Capistrano + Ansible.
- Бесполезные фичи, бритва Оккама и пользователи, которые на самом деле любят изменения :-)
Как строить архитектуру для отказоустойчивой службы такси / Минкин Андрей (Na...Ontico
Такси — это популярная тема для обсуждений, после того, как появились стартапы в виде Uber, GetTaxi, GrabTaxi и тому подобные. Ведущий разработчик службы Namba Taxi расскажет про то, как строилась текущая отказоустойчивая архитектура в Namba Taxi, с какими проблемами и неудачами мы сталкивались и как решали.
Тезисы - http://www.highload.ru/2015/abstracts/1661.html
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...Ontico
Архитектурный шаблон проектирования конвейер (pipeline) хорошо зарекомендовал себя при проектировании высоконагруженных (highload) систем. Использование шины сообщений (message bus) при реализации каналов взаимодействия позволяет достигать хороших показателей масштабируемости (scalability), но при этом появляются дополнительные накладные расходы, которые сказываются на показателях производительности (performance).
В докладе обсуждаются варианты использования системы обмена сообщениями RabbitMQ в качестве связующего программного обеспечения (middleware) для построения конвейерной архитектуры. Рассматриваются вопросы производительности и масштабирования как stateless так и statefull фильтров.
В качестве примера рассматривается реализация системы обработки сложных событий (complex event processing) применительно к управлению журналированием (log management).
Тестирование через мониторинг или холакратия на практике / Максим Чистяков (U...Ontico
Чтобы быстро двигаться, надо быстро двигаться :-)
Скоростная разработка продукта невозможна без непрекращающегося выкатывания свежих изменений в боевое окружение. Именно это позволяет Ultimate-Guitar оставаться #1 world's guitar service.
Когда-то давным-давно мы приняли для себя, что "мы движемся очень быстро и иногда из-за этого что-то ломаем. Недоставленный пользователям продукт/непроверенная гипотеза хуже, чем временная неработоспособность части сервиса. Поэтому мы убираем преграды между новым кодом и продакшном: не тратим время ни на тестирование, ни на строгий релиз-менеджмент".
Многие возникающие проблемы касаются только обслуживания (датацентр, OS, каналы) и мониторинг, естественно, необходим. Ну, а раз уж у нас есть мониторинг, то давайте считать систему единым целым, которая может выходить из строя по различным причинам, одной из которых является ошибка в коде. Это привело нас к идее использовать мониторинг вместо тестирования. К чему это привело, почему мы любим Anturis, Graylog, Grafana, что главное в деплое - это быстрый откат и другие прелести управления звездолётом Ultimate-Guitar с дневным населением больше Москвы на скорости 10 деплоев/час - обо всё этом пойдёт речь в этом докладе:
- Про скорость и цену быстрого развития (Innovation Costs).
- Холакратия в бранчах, "сам себе релиз-инженер", ответственность и честность.
- Скорость отката > скорость деплоя.
- Как умер QA или демоны с tail и Graylog.
- Когда не нужны микросервисы: успеть за 30 секунд, медленный Mercurial и шустрое комбо Git + Capistrano + Ansible.
- Бесполезные фичи, бритва Оккама и пользователи, которые на самом деле любят изменения :-)
Как строить архитектуру для отказоустойчивой службы такси / Минкин Андрей (Na...Ontico
Такси — это популярная тема для обсуждений, после того, как появились стартапы в виде Uber, GetTaxi, GrabTaxi и тому подобные. Ведущий разработчик службы Namba Taxi расскажет про то, как строилась текущая отказоустойчивая архитектура в Namba Taxi, с какими проблемами и неудачами мы сталкивались и как решали.
Тезисы - http://www.highload.ru/2015/abstracts/1661.html
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...Ontico
Архитектурный шаблон проектирования конвейер (pipeline) хорошо зарекомендовал себя при проектировании высоконагруженных (highload) систем. Использование шины сообщений (message bus) при реализации каналов взаимодействия позволяет достигать хороших показателей масштабируемости (scalability), но при этом появляются дополнительные накладные расходы, которые сказываются на показателях производительности (performance).
В докладе обсуждаются варианты использования системы обмена сообщениями RabbitMQ в качестве связующего программного обеспечения (middleware) для построения конвейерной архитектуры. Рассматриваются вопросы производительности и масштабирования как stateless так и statefull фильтров.
В качестве примера рассматривается реализация системы обработки сложных событий (complex event processing) применительно к управлению журналированием (log management).
Загрузка больших объемов данных для бизнес-аналитикиBadoo Development
В Badoo мы разрабатываем собственную систему Business intelligence (сокращённо BI). И прежде, чем приступать к анализу данных, их необходимо извлечь (Extract) из источников, преобразовать (Transform) и загрузить (Load) в аналитическую базу.
Я расскажу об этом процессе - ETL (Extract, Transform, Load). Какие бывают источники данных, какие методы сбора мы используем. И самое главное - об инструменте под названием ETLMaster, созданным в нашей компании для автоматизации управления процессом трансформации и загрузки данных.
My talk on Hadoop stack operations engineering at OSPConAlex Chistyakov
My talk on Hadoop stack operations engineering at OSPCon Nov 2015 (http://www.ospcon.ru/event/prakticheskaya-konferentsiya-tekhnologii-bolshikh-dannykh_130.html)
Доклад о том, как мы добились идеально ровной балансировки нагрузки по кластеру из 200+ серверов, реализовали автоматический подбор весов и получили разброс CPU usage в 2,5% в пике трафика. Это позволило сэкономить нам около 40-50 серверов и улучшить время отклика мобильного сайта в пике нагрузки. Реализацию приведенного алгоритма мы выложим в open-sourсe. Доклад Юрия Насретдинова на Highload 2015.
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...Ontico
Рассуждение, опыт, практика и примеры на тему производительности ввода-вывода.
Мы будем сравнивать "дефолтное" поведение SSD и HDD, сравним "недефолтное" поведение после тюнинга HDD. Я расскажу о плюсах и минусах в надежности HDD и SSD, о проблемах восстановления SSD и HDD после сбоев. Многие моменты будут посвящены кэшированию ввода-вывода, что очень помогает в реальных проектах.
Отдельная тема - оптимизация ФС и сервера для снижения количества операций ввода-вывода (IOPS), попробую оценить, что можно сделать с каким-нибудь проектом-примером.
Будут показаны и рассказаны реальные примеры из моего опыта оптимизации IO, я даже нарисую "карту принятия решения" для выбора накопителей для Вашего проекта.
http://techtalks.nsu.ru
24 сентября 2013. Архитектура Skype (Александр Комиссаров, Microsoft (Москва))
Лекция прочитана в рамках проекта Tech Talks @NSU – серии открытых лекций о разработке ПО и карьере в IT, проводимых в Новосибирском государственном университете.
Подробности: http://techtalks.nsu.ru
Загрузка больших объемов данных для бизнес-аналитикиBadoo Development
В Badoo мы разрабатываем собственную систему Business intelligence (сокращённо BI). И прежде, чем приступать к анализу данных, их необходимо извлечь (Extract) из источников, преобразовать (Transform) и загрузить (Load) в аналитическую базу.
Я расскажу об этом процессе - ETL (Extract, Transform, Load). Какие бывают источники данных, какие методы сбора мы используем. И самое главное - об инструменте под названием ETLMaster, созданным в нашей компании для автоматизации управления процессом трансформации и загрузки данных.
My talk on Hadoop stack operations engineering at OSPConAlex Chistyakov
My talk on Hadoop stack operations engineering at OSPCon Nov 2015 (http://www.ospcon.ru/event/prakticheskaya-konferentsiya-tekhnologii-bolshikh-dannykh_130.html)
Доклад о том, как мы добились идеально ровной балансировки нагрузки по кластеру из 200+ серверов, реализовали автоматический подбор весов и получили разброс CPU usage в 2,5% в пике трафика. Это позволило сэкономить нам около 40-50 серверов и улучшить время отклика мобильного сайта в пике нагрузки. Реализацию приведенного алгоритма мы выложим в open-sourсe. Доклад Юрия Насретдинова на Highload 2015.
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...Ontico
Рассуждение, опыт, практика и примеры на тему производительности ввода-вывода.
Мы будем сравнивать "дефолтное" поведение SSD и HDD, сравним "недефолтное" поведение после тюнинга HDD. Я расскажу о плюсах и минусах в надежности HDD и SSD, о проблемах восстановления SSD и HDD после сбоев. Многие моменты будут посвящены кэшированию ввода-вывода, что очень помогает в реальных проектах.
Отдельная тема - оптимизация ФС и сервера для снижения количества операций ввода-вывода (IOPS), попробую оценить, что можно сделать с каким-нибудь проектом-примером.
Будут показаны и рассказаны реальные примеры из моего опыта оптимизации IO, я даже нарисую "карту принятия решения" для выбора накопителей для Вашего проекта.
http://techtalks.nsu.ru
24 сентября 2013. Архитектура Skype (Александр Комиссаров, Microsoft (Москва))
Лекция прочитана в рамках проекта Tech Talks @NSU – серии открытых лекций о разработке ПО и карьере в IT, проводимых в Новосибирском государственном университете.
Подробности: http://techtalks.nsu.ru
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Sergey Xek
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного server-side API десктопного приложения. Сергей Аверин, Badoo.
Доклад рассказывает о реально примененных способах оптимизации производительности API компании Badoo для собственных десктоп-приложений: как специфика «много постоянных соединений/однотипные запросы/большая нагрузка» повлияла на стратегию оптимизации производительности.
Что было сделано:
• Планирование архитектуры изначально (fault-tolerance, адаптивные апдейты и тайм-ауты, отказ от попыток восстановления после ошибок для единичных команд).
• Переехали с redis на handlersocket.
• Rate-limiting запросов к демонам.
• Синхронизация записей.
• Асинхронность.
• Записи при достижении порога изменения параметров.
• Профилирование кода, анализ потребления CPU, времени ответа.
• Статистика, статистика и еще раз статистика.
• Pconnect.
Доклад будет интересен:
• системным архитекторам,
• server-side разработчикам.
Обзор подходов к построению прикладных программных систем на Node.js, анализ и сравнение архитектурных принципов развертывания высоконагруженных прикладных облачных сервисов, масштабирование, тенденции и перспективы в разработке приложений, обзор проблем платформы Node.js и пути их решения.
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)Ontico
В своём проекте мы решали следующие задачи:
+ Скорость разработки задачи;
+ Стоимость поддержки задачи;
+ Возможность распараллеливать вычисления и задачи;
+ Возможность максимально просто масштабировать приложение;
+ CI/CD с минимальными усилиями.
Я расскажу о том, как мы решали эти задачи, на какие грабли мы наступали, что из этого всего получилось, и что делать дальше.
Что получили в итоге:
+ Мощь JVM под капотом Scala;
+ 15 минут от нажатия на кнопку "Merge request" до продакшена в 3 датацентра и 6 серверов с прохождением тестов (юнит + функциональные + интеграционные + нагрузочные);
+ 6 нод с приложениями вместо 18 (по 2 в каждом датацентре для отказоустойчивости) с запасом прочности в 60%;
+ Независимые пофичные релизы без даунтайма всех компонентов приложения;
+ Масштабирование только того функционала и в том количестве, которое необходимо данному сервису.
Работа с геоданными в Go GDGNSK / Work with Geodata in GoMad Devs
Слайды с GDG DevFest Новосибирск про го, геоданные, ненависть к нод.жс и UDP.
Slides from GDG DevFest Novosibirsk about Go, geodata and hatred to Nod.js and UDP.
Автор: Андрей Минкин / Andrew Minkin
The document discusses various tools and services for developers working with maps, including sources for map tiles like Google Maps, Mapbox and OpenStreetMap; methods for rendering maps like vector and raster tiles; geocoding and reverse geocoding services from Google, Mapbox and OpenStreetMap; routing services like Valhalla and OSRM; and map matching using OSRM. It also provides links to relevant open source projects for these mapping functions.
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Andrew Minkin
ы начали делать проект и запустили его в продакшн. Со временем пользователей становится больше и текущих ресурсов вам начинает не хватать. В этом докладе я расскажу о основных путях борьбы с нагрузкой, путях решения и проблемах, связанных с ними.
В докладе мы поговорим о:
0. Что такое нагрузка? Пути борьбы с нагрузкой. Оптимизация кода, кеширование, масштабирование
1. Какие проблемы возникают при внедрении кеширования
2. Как оценивать качество работы кеширования?
3. Путь масштабирования и борьба за ресурсы
4. Проблемы балансировки
5. Проблемы БД. Конкурентный доступ и данным и целостность их
Пути решения проблем будут на примере Python/Django