Pull to refresh
341
-1
Олег Бунин @olegbunin

User

Send message

101 способ приготовления RabbitMQ и немного о pipeline архитектуре

Reading time18 min
Views45K

Павел Филонов (во время выступления работал в Positive Technologies)


Павел Филонов

В данном докладе я хочу поговорить о пересечении RabbitMQ и Pipeline архитектуры, и о том, как оно связанно с работой нашей компании.

Сначала немного в качестве пролога. Это приятная часть.



Сценка, разворачивающаяся в будний день в офисе, наводит нас на очень приятное размышление. Перед нами встает шикарная задача, новая система. Мало что так сильно будоражит ум инженера, как просьба разработать новую систему. Не починить что-то старое, не адаптировать что-то старое, а именно что-то создать, в каком-то смысле практически с нуля.

Вместе с такой задачей приходит и целая серия проблем.
Total votes 50: ↑46 and ↓4+42
Comments30

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

Reading time10 min
Views19K

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


Юрий Насретдинов

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

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

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



Кратко — о чем я буду рассказывать. Во-первых, я расскажу, как «с высоты птичьего полета» устроен роутинг запросов на нашем сайте. Потом расскажу, какие, вообще, существуют алгоритмы балансировки; про то, как мы делали балансировку до того, как мы сделали автоматическую систему. Расскажу про эту автоматическую систему, ну и будут кое-какие выводы. Также хотел сказать, что эта система будет выложена в open-source после этого доклада.
Total votes 35: ↑31 and ↓4+27
Comments15

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

Reading time15 min
Views38K
Вадим Макеев

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


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

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

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

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

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

Reading time28 min
Views34K
Андрей Аксёнов

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


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

Краткое устройство поиска

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

Берешь документы, разваливаешь их на ключевые слова. И просто взять и развалить документ на ключевые слова «мама, мыла, раму» – это ты не далеко ушел от grep’а, потому что потом все равно эти ключевые слова перебирать. Надо строить некую спец. структуру – полнотекстовый индекс. Вариантов для его построения человечество придумало в свое время довольно много, но, слава Богу, от всех отказалось и в нормальных продакшн системах, по большому счету, победил на данный момент вариант ровно один. Про него и буду рассказывать. Все остальные имеют скорее историческое значение, что ли, и практического интереса не представляют.
Total votes 64: ↑53 and ↓11+42
Comments22

Ключевые навыки успешной Agile-команды или как сделать так, чтобы Agile заработал?

Reading time14 min
Views29K

Дмитрий Лобасев (lobasev.ru)


Давайте погрузимся в механику гибких процессов и вместе подумаем, как сделать так, что вот, приходите вы, например, с конференции и как менеджер говорите: «Так, ребята, всем Kanban с понедельника!» или «Всем Scrum!». А ребята смотрят на вас – ну, а какой у них выбор? Сказали Scrum, значит, Scrum… Идут, что-то делают, пытаются сделать Scrum, делают какие-то ритуалы, приплясывают возле доски по утрам, ходят, что-то еще делают. Но что-то не работает.

Мой доклад, как раз, этому и посвящен. Давайте рассмотрим механику Agile-процессов – как сделать так, чтобы все-таки это приносило ценность.

Вот как было задумано:



Ну, и получается на выходе:


Total votes 26: ↑23 and ↓3+20
Comments23

Как понять, что Agile работает

Reading time13 min
Views30K
Асхат Уразбаев

Асхат Уразбаев (ScrumTrek)


Прежде, чем начнем говорить, как это все выглядит изнутри, с какими проблемами мы сталкиваемся, когда тренируем команду, вопрос: те, кто работает по Agile, что для вас значит, что Agile команда является Agile командой? Как вы это определяете?
Total votes 35: ↑27 and ↓8+19
Comments12

Бизнес-девелопмент для SaaS-сервисов: дизайн-проектирование стратегии

Reading time20 min
Views7.2K
Сергей Рыжиков

Сергей Рыжиков (1С-Битрикс)



Есть такое ругательное слово – бизнес-девелопмент. Мы часто можем его видеть на визитках у наших западных коллег. На самом деле, я толком даже не могу объяснить по-русски, что такое бизнес-девелопмент. Перед этой конференцией я попытался пошарить. В русском варианте вы не найдете нормального объяснения, что это такое. Есть западное определение.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments1

Открытая трибуна для разработчиков opensource-проектов

Reading time1 min
Views3.6K


На одной из встреч Программного комитета конференции разработчиков высоконагруженных систем HighLoad++ возникла следующая идея — открытая трибуна на HighLoad++ для opensource-разработчиков. Мы даём оборудованный зал, формируем специальную программу для активистов, которые готовы рассказать про свой opensource-продукт. Движок, фреймворк, библиотеку, технологию, базу данных. У каждого 30 минут, рекламируй себя, вовлекай, ищи себе последователей!

Как вам идея, кто хотел бы попробовать? С каким продуктом?


Оставляйте заявки в комментариях, будет много заявок — сделаем трибуну. Для того, чтобы рассказать о своём проекте, покупать билет не нужно — вход для докладчиков бесплатный.
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments38

Принципы и приёмы обработки очередей

Reading time16 min
Views38K


Принципы и приёмы обработки очередей


Константин Осипов (Mail.ru)


Как вы считаете, какова стоимость очередей с приоритетами? То есть если кто-то лезет вне очереди, то как посчитать стоимость для всей системы в этой ситуации, чему она пропорциональна? Времени обслуживания клиента — например, 5 минут стоит его обслужить? Она пропорциональна количеству ожидающих, потому что время ожидания для каждого из них увеличится.


Для начала о себе — я занимаюсь разработкой СУБД Tarantool в Mail.ru. Этот доклад будет об обработке очередей. У нас много очередей внутри системы, фактически вся база данных построена как система массового обслуживания.


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




Total votes 48: ↑45 and ↓3+42
Comments2

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

Reading time11 min
Views155K


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


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


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

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

Перейдем к проблемам, которые мы с вами сегодня будем решать. Одна из проблем — это большое количество данных. Когда вы разрабатываете тот или иной проект, у вас в любой момент времени может случиться так, что данных становится очень много. Если бизнес работает, он приносит деньги. Соответственно, данных больше, денег больше, и с этими данными что-то нужно делать, потому что эти запросы очень долго начинают выполняться, и у нас сервер начинает не вывозить. Одно из решений, что с этими данными делать — это масштабирование базы данных.
Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments17

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

Reading time19 min
Views36K


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


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


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


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


  • Архитектура;
  • Основы индексирования;
  • EXPLAIN (примеры).

Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments4

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

Reading time12 min
Views45K
Андрей Аксёнов

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


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


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


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


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


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


  • степень синхронизации изменений (sync, async, semisync);
  • количество серверов записи (M/S, M/M);
  • формат изменений (statement-based (SBR), row-based (RBR), mixed);
  • теоретически, модель передачи изменений (push, pull).

Читать дальше →
Total votes 44: ↑37 and ↓7+30
Comments11

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

Reading time19 min
Views26K
Андрей Смирнов

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


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


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


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


Total votes 22: ↑20 and ↓2+18
Comments8

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

Reading time22 min
Views14K
image

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


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


Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments14

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

Reading time19 min
Views49K

Роман Ивлиев


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


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


  1. Что такое фреймворк, и зачем их пишут.
  2. Почему для некоторых языков их десятки, а для некоторых — единицы.
  3. В чём плюсы и минусы применения.
  4. Наиболее распространённые мифы.
  5. Использовать или нет — примеры из жизни.
  6. Как выбрать из множества доступных вариантов, на что стоит обратить внимание.
Читать дальше →
Total votes 39: ↑23 and ↓16+7
Comments48

Организация разработки и эксплуатации крупных проектов

Reading time4 min
Views10K

Новости из мира DevOps на Highload++ представляет Александр Титов из Express 42


— Я до сих пор не понимаю, в чём отличие DevOps от системного администрирования, в чём? Зачем DevOps, прекрасно же справлялись?
Ну фактически бессмысленно искать отличия, это как сравнивать мягкое с соленым. DevOps он про организацию разработки и эксплуатации целиком, про то что эксплуатация должна включаться на ранней стадии разработки. Это требует новых качеств от разработчиков и новых способностей от системных администраторов, разработчики и администраторы должны научиться работать параллельно, а не как раньше разработчики напрограммировали, скинули все в эксплуатацию, а дальше начинается долгий и неприятный путь разбора проблемы “а кто виноват?”. DevOps должен применяться там, где созрела необходимость в новом подходе, многим компаниям он до сих пор не нужен и они справляются по-старому.
Читать дальше →
Total votes 24: ↑18 and ↓6+12
Comments0

Эра NoSQL позади

Reading time5 min
Views55K

Новый тренд на HighLoad++ — множество докладов об использовании оперативной памяти. Слово Константину Осипову, разработчику платформы Tarantool, автору доклада «Что особенного в СУБД для данных в оперативной памяти».

Ты отвечал в MySQL за производительность, как так получилось, что ты решил разрабатывать свою СУБД?
В MySQL я руководил одной из команд разработки сервера, за производительность там отвечали все.

MySQL по многим параметрам был работой мечты, но, к сожалению после того, как мы стали частью Oracle, многое изменилось.

Несколько моих коллег ушли в MariaDB, кто-то основал свою компанию (SeveralNines, FromDual). Я никогда не чувствовал себя «недогруженным», а с уходом многих ключевых разработчиков работа вообще превратилась в марафон по передаче знаний. Сопротивление поглощению, желание начать всё с чистого листа, бунт против медленного принятия решений большой компанией, нежелание по разным причинам уезжать в США, в конце концов, хорошее предложение от Mail.Ru, которому к этому моменту уже было около года — и я ушёл.

Если бы знал, куда ухожу, ещё десять раз подумал бы. Иногда вообще не было веры, что удастся сделать что-то полезное, чем будут пользоваться за пределами Mail.Ru, да и сейчас Tarantool очень далёк пока от «идеальной СУБД».
Читать дальше →
Total votes 48: ↑35 and ↓13+22
Comments30

Секция о клиентском программировании на HighLoad++

Reading time1 min
Views18K

Не знаю, как вы, но я застал время, когда фронтенда еще не было. Большинство макетов программисты могли сверстать самостоятельно, ну что там сложного:
Читать дальше →
Total votes 34: ↑25 and ↓9+16
Comments19

Балансировка 70 тысяч запросов в секунду на HighLoad++

Reading time5 min
Views39K

Библиотека докладов


Это не просто статья — это целая библиотека докладов про внутреннее устройство тех или иных крупных и высоконагруженных проектов. Все эти доклады звучали на конференциях HighLoad++ и РИТ++ за последние несколько лет.


Читать дальше →
Total votes 43: ↑38 and ↓5+33
Comments11

Alibaba vs. Facebook – там, где Запад сходится с Востоком

Reading time6 min
Views19K


Конечно, мы не могли не воспользоваться декларируемым руководством страны поворотом на Восток. В Китае существуют свои социальные сети, свои поисковые системы, свои почтовые службы и, может быть, даже собственные технологии?
 
В мире много стран, продающих труд своих программистов, но очень мало способных самостоятельно разрабатывать крупные серьезные программные продукты. Свои поисковые системы, свои социальные сети и свой антивирус есть только у трех стран в мире — это США, Россия и… Китай!
 
Причем, если информационными продуктами и технологиями, произведенными в США, мы пользуемся каждый день, то что там в Китае — известно слабо.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments17

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity