» » Блог компании Конференции Олега Бунина » Страница 5

 

Как мы сделали ровную балансировку нагрузки на фронтенд-кластере

Автор: admin от 19-09-2016, 18:05, посмотрело: 361

Юрий Насретдинов (@youROCK, Badoo)


Как мы сделали ровную балансировку нагрузки на фронтенд-кластере

Расшифровка доклада Юрия Насретдинова на конференции HighLoad++ 2015. Юрий расскажет про то, как Badoo (крупнейшая социальная сеть для знакомств с новыми людьми) сделали практически идеально ровную балансировку нагрузки на нашем кластере. Передаём ему слово...

Чтобы обслуживать то количество пользователей, то количество реквестов в секунду, которые мы получаем, у нас около трех тысяч серверов, и на PHP-FPM конкретно приходится 70 тысяч в пике.

О том, как мы эти запросы распределяем по нашему кластеру, я расскажу.

Как мы сделали ровную балансировку нагрузки на фронтенд-кластере

Кратко — о чем я буду рассказывать. Во-первых, я расскажу, как «с высоты птичьего полета» устроен роутинг запросов на нашем сайте. Потом расскажу, какие, вообще, существуют алгоритмы балансировки; про то, как мы делали балансировку до того, как мы сделали автоматическую систему. Расскажу про эту автоматическую систему, ну и будут кое-какие выводы. Также хотел сказать, что эта система будет выложена в open-source после этого доклада.

Категория: Программирование, Веб-разработка

 

Как устроен поиск

Автор: admin от 17-09-2016, 02:20, посмотрело: 393

Как устроен поиск

Андрей Аксенов (@shodan, Разработчик поискового движка Sphinx)


Поиск устроен вот так:

Как устроен поиск

Индексация – по большому счету, ничего сложного. Понятное дело, что по малому счету, там в каждой из трех «деталей» спрятан не то, что демон, а целое где-то стадо, где-то легион, не совсем понятно. Но концепция всегда простая. Все начинается с маленького простенького патчика к Многосерчу, а потом 15 лет этой херней занимаешься.

Берешь документы, разваливаешь их на ключевые слова. И просто взять и развалить документ на ключевые слова «мама, мыла, раму» – это ты не далеко ушел от grep’а, потому что потом все равно эти ключевые слова перебирать. Надо строить некую спец. структуру – полнотекстовый индекс. Вариантов для его построения человечество придумало в свое время довольно много, но, слава Богу, от всех отказалось и в нормальных продакшн системах, по большому счету, победил на данный момент вариант ровно один. Про него и буду рассказывать. Все остальные имеют скорее историческое значение, что ли, и практического интереса не представляют.

Категория: Программирование » Веб-разработка

 

Браузеры наши меньшие, или Нам нужно серьёзно поговорить

Автор: admin от 16-09-2016, 23:40, посмотрело: 518

Браузеры наши меньшие, или Нам нужно серьёзно поговорить

Вадим Макеев (Opera Software)


Меня зовут Вадим Макеев. Я работаю в компании «Opera Software». Мы выпускаем браузеры, в частности, десктопные, мобильные и т.д.

Сегодня речь пойдет о браузере, который мы выпускаем, он называется «Opera mini», но я пришел не продавать вам его, я пришел рассказать про браузеры и про вещи, о которых мало кто думает.

Разговор будет не только технологический, но еще и серьезный. Я попытаюсь рассказать про серьезные вещи, чтобы вы думали о своей профессии ни «херак-херак – и в продакш», а в смысле «что и зачем» вы делаете. Это моя основная мысль.

Я, как пользователь Интернет (регулярно, много, года с 2001-го только этим и занимаюсь) испытываю проблемы, когда пользуюсь вебом. Главные проблемы состоят в том, что люди, которые разрабатывают веб (т.е. мы с вами и я лично), в некоторых ситуациях закрывают информацию от пользователя, не дают людям нормально ею пользоваться, блокируют доступ… Каждый день так или иначе это делают. Решают ли они не поддерживать «ie 6», решают ли сделать клиентский рендеринг или еще что-нибудь такое – то, что хорошо для одних, но плохо для других, и решают вместо сайта запустить нативное приложение… Это все приводит к некоторым проблемам.

Категория: Программирование » Веб-разработка

 

Масштабирование базы данных через шардирование и партиционирование

Автор: admin от 9-09-2016, 17:00, посмотрело: 706

Масштабирование базы данных через шардирование и партиционирование

Масштабирование базы данных через шардирование и партиционирование


Денис Иванов (2ГИС)


Всем привет! Меня зовут Денис Иванов, и я расскажу о масштабировании баз данных через шардирование и партиционирование. После этого доклада у всех должно появиться желание что-то попартицировать, пошардировать, вы поймете, что это очень просто, оно никак жрать не просит, работает, и все замечательно.

Немного расскажу о себе — я работаю в компании WebAPI в 2GIS-е, мы предоставляем API для организаций, у нас очень много разных данных, 8 стран, в которых мы работаем, 250 крупных городов, 50 тыс. населенных пунктов. У нас достаточно большая нагрузка — 25 млн. активных пользователей в месяц, и в среднем нагрузка около 2000 RPS идет на API. Все это располагается в трех датацентрах.

Перейдем к проблемам, которые мы с вами сегодня будем решать. Одна из проблем — это большое количество данных. Когда вы разрабатываете тот или иной проект, у вас в любой момент времени может случиться так, что данных становится очень много. Если бизнес работает, он приносит деньги. Соответственно, данных больше, денег больше, и с этими данными что-то нужно делать, потому что эти запросы очень долго начинают выполняться, и у нас сервер начинает не вывозить. Одно из решений, что с этими данными делать — это масштабирование базы данных.

Категория: Программирование » Веб-разработка

 

Основы индексирования и возможности EXPLAIN в MySQL

Автор: admin от 8-09-2016, 20:05, посмотрело: 685

Основы индексирования и возможности EXPLAIN в MySQL

Темой моего доклада является индексирование в MySQL и расширенные возможности EXPLAIN, т.е. нашей задачей будет ответить на вопросы: что мы можем выяснить с помощью EXPLAIN'а, на что следует обращать внимание?


Многие ограничения EXPLAIN'а связаны с оптимизатором, поэтому мы предварительно посмотрим на архитектуру, чтобы понять, откуда следуют ограничения и что, в принципе, с помощью EXPLAIN'а можно сделать.


По индексам мы пройдемся очень кратко, исключительно в плане того, какие нюансы есть в MySQL, в отличие от общей теории.


Доклад, таким образом, состоит из 3х частей:



  • Архитектура;

  • Основы индексирования;

  • EXPLAIN (примеры).

Категория: Программирование, Веб-разработка

 

Как устроена MySQL-репликация

Автор: admin от 7-09-2016, 19:25, посмотрело: 412

Как устроена MySQL-репликация


Андрей Аксенов (Sphinx), shodan


Мой доклад предназначен для тех людей, которые знают слово «репликация», даже знают, что в MySQL она есть, и, возможно, один раз ее настроили, 15 минут потратили и забыли. Больше про нее они не знают ничего.


Мы немного пройдемся по теории, попытаемся объяснить, как это все работает внутри, а после этого вы с утроенными силами сможете сами нырнуть в документацию.


Что такое репликация, в принципе? Это копирование изменений. У нас есть одна копия БД, мы хотим с какой-то целью еще одну копию.


Репликация бывает разных видов. Разные оси сравнения:



  • степень синхронизации изменений (sync, async, semisync);

  • количество серверов записи (M/S, M/M);

  • формат изменений (statement-based (SBR), row-based (RBR), mixed);

  • теоретически, модель передачи изменений (push, pull).

Категория: Программирование, Веб-разработка

 

Анатомия веб-сервиса

Автор: admin от 6-09-2016, 20:15, посмотрело: 314

Анатомия веб-сервиса


Анатомия веб-сервиса


Андрей Смирнов


Я попытаюсь залезть в «потроха» и «кишки» бэкенда веб-сервиса и расскажу, как это внутреннее устройство влияет на эффективность сервиса, а также на продукт, его характеристики, и как бы мы могли этим воспользоваться, чтобы наше приложение выдерживало большую нагрузку или работало бы быстрее.


Какую часть я называю веб-сервисом, бэкендом, application-сервером? В классической архитектуре это то, что стоит за http rеverse proxy или load-балансировщиком, а с другой стороны у него находятся база данных, memcached и др. Вот только об этом бэкенде и будет идти речь.

Категория: Программирование, Веб-разработка

 

Жизнь проекта на production: советы по эксплуатации

Автор: admin от 29-08-2016, 17:25, посмотрело: 437

Жизнь проекта на production: советы по эксплуатации


Немаловажный пункт, который очень часто упускают из вида разработчики — это эксплуатация проекта. Как выбрать дата-центр? Как прогнозировать угрозы? Что может произойти на уровне фронтенда? Как балансировать фронтенд? Как мониторить? Как настраивать логи? Какие нужны метрики?


И ведь это только фронтенд, а есть ещё бекенд и база данных. Везде разные законы и логика. Подробнее об эксплуатации highload-проектов в докладе Николая Сивко (Head Hunter) с конференции HighLoad++ Junior.

Категория: Админитстрирование » Системное администрирование

 

О фреймворках

Автор: admin от 28-08-2016, 21:10, посмотрело: 298

О фреймворках


В сегодняшней статье поговорим о неотъемлемой составляющей большого числа современных веб-проектов — о фреймворках.


Роман Ивлиев на примере множества проектов портала banki.ru, а также заказной разработки в студии крупных проектов Онтико. Рассмотрим следующие темы и поищем ответы на вопросы:



  • Что такое фреймворк, и зачем их пишут.

  • Почему для некоторых языков их десятки, а для некоторых — единицы.

  • В чём плюсы и минусы применения.

  • Наиболее распространённые мифы.

  • Использовать или нет — примеры из жизни.

  • Как выбрать из множества доступных вариантов, на что стоит обратить внимание.
  • Категория: Программирование, Веб-разработка

     

    Всему своё время

    Автор: admin от 26-08-2016, 22:30, посмотрело: 384

    Всему своё время


    Банки.ру — проект с 10-летней историей. В разные времена banki.ru испытывали разные нагрузки. Портал перестраивался под новые требования как логически, так и технологически, что-то мы меняли в авральном режиме, что-то — эволюционным путём. Сейчас средняя посещаемость примерно 2 миллиона просмотра страниц, т.е. проект уже не маленький, но ещё и не совсем большой.


    Эта статья — расшифровка доклада Романа Ивлиева (CIO Banki.ru) на обучающей конференции HighLoad++ Junior, которая прошла пару месяцев назад в Москве в рамках фестиваля “Российские интернет-технологии”.


    В этой статье мы хотим поговорить об оптимизации, её своевременности, и о субоптимизации, о том, что далеко не всегда лучшие практики разработки нагруженных систем идут на пользу бизнесу.


    Посмотрим примеры и поищем ответы на вопросы:



  • Настолько ли ваш highload — highload?

  • Считать ли хабрэффект поводом для внедрения высоких технологий?

  • «Костыль» или «высокотехнологичное решение» — что выбрать? Плюсы и минусы.

  • Как выбрать момент для начала новой эры? Есть ли критерии, когда имеет смысл начинать оптимизировать ваше приложение и внедрять крутые штуки «по-взрослому».

  • Как можно использовать «список Бунина» для достижения очень неплохих показателей, и все ли пункты реально нужны вам?

  • Как работать с техническим долгом, чтобы он не зарастал мхом?


  • В заключение Роман Ивлиев расскажет про несколько примеров из жизни banki.ru в части замены технологических решений в области высоких нагрузок, и что из этого вышло.

    Категория: Программирование, Веб-разработка