Pull to refresh
29
0
Богдан @bgarkushin

Пользователь

Send message

Как менять подход к управлению с ростом команды и проекта

Reading time12 min
Views5.7K

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

За 20 лет я успел поработать и в стартапах, и в IT-гигантах, с командами из трёх человек и из сорока. Каждая новая конфигурация требовала менять подход к управлению — то, что работало вчера, переставало работать сегодня. В этой статье поделюсь своим взглядом, как подходить к управлению командой в зависимости от её размера и этапа развития проекта.

Читать далее
Total votes 24: ↑21 and ↓3+18
Comments0

Как организовать поиск в стартапе, который планирует вырасти до масштабов ВКонтакте

Reading time8 min
Views3K

Любому сайту нужен поиск. Например, на Хабре сотни тысяч статей на самые разные темы. Чтобы отыскать ту самую через хабы и блоги, может потребоваться о-о-очень много времени. Без поиска пользователи могут не найти то, что им нужно, решить, что здесь этого нет и уйти в другой сервис. 

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

Читать далее
Total votes 22: ↑22 and ↓0+22
Comments5

Как не отключать картинки и скрипты в письмах, и при этом быть безопасными. История от Яндекс.Почты

Reading time4 min
Views31K
Сегодня я хочу рассказать про то, как мы сделали так, чтобы в Яндекс.Почте не нужно было включать отображение картинок в каждом письме, как это приходится делать много где, и вообще — как мы обеспечиваем защиту при показе текста письма. Что не такое очевидное дело, как может показаться.

В сутки наши пользователи получают около ста миллионов писем и около тридцати миллионов прочитывают через веб-интерфейс. Это огромное поле деятельности для злоумышленников, поэтому мы выстроили многоуровневую защиту.



Письма проверяются на спам, фишинг, вирусы, вредоносное содержимое и ссылки. Под катом мы расскажем вам, о том, через какие защитные механизмы проходят письма, прежде чем отобразиться в пользовательском веб-интерфейсе.
Из чего состоит защита
Total votes 79: ↑66 and ↓13+53
Comments71

Яндекс.Почта позволит отписываться от рассылок

Reading time2 min
Views35K
У вас бывает так, что вы пытаетесь найти в письме из какой-то рассылки ссылку «отписаться» и не можете это сделать? Или нажимаете на такую ссылку только для того, чтобы получить требование авторизоваться на сайте, которого не помните? Я уж не говорю о случаях, когда непонятно, стоит ли вообще верить ссылке «отписаться». Может, это лишь очередной трюк спамеров, прикидывающихся приличной рассылкой.

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



В Яндекс.Почту каждый день приходят сотни миллионов писем, и около 90% — это рассылки и уведомления, от которых даже не всегда можно отписаться. Мы считаем, что наличие инструмента для отписки должно стать обязательным требованием ко всем массовым рассылкам. Это принятая практика во многих странах мира, где такие требования регулируются законом или крупными игроками рынка.
Под катом подробнее о том, как это будет работать и почему включается не прямо сегодня
Total votes 102: ↑97 and ↓5+92
Comments66

Как мы ускорили поиск в Яндекс.Почте и при этом освободили 25 серверов

Reading time5 min
Views51K
Мы уже писали о том, как организована работа поиска писем в Яндекс.Почте. С тех пор много всего изменилось и улучшилось, поэтому мы решили поделиться опытом и рассказать вам об этих изменениях.

В день в Почту приходит порядка 100M писем, 10M из которых — с аттачами. Несмотря на то, что лишь 10% писем содержат вложение, среди писем с вложениями существенная доля тех, в которых файлов больше одного. В среднем получается, что общее количество писем равно суммарному количеству аттачей к ним.

image

Средний размер письма с аттачем составляет 400 кб, а письма без аттача 4 кб. Суммарный размер аттачей в одном письме может достигать 30 мб. ТОП 10 типов аттачей: .jpg, .pdf, .xls, .rar, .doc, .zip, .eml, .mp3, .tif, .docx. Практически все файловые форматы кроме текстового, содержат существенное количество избыточной служебной информации. Так, например: .docx формат, содержит всреднем всего 10 % текстовой информации, а из jpg мы получаем всего 0,25% метаинформации для индексации в поиск.

Это дает суммарный объем входящего трафика порядка 25 Тб в сутки, который увеличивается в разы, чтобы обеспечить функционирование большого и сложного продукта Почта. Для обслуживания такой нагрузки в Яндекс.Почте создана большая сетевая, серверная и сервисная инфраструктура, в которую входит несколько кластеров, распределенных по разным датацентрам.
Читать дальше →
Total votes 120: ↑113 and ↓7+106
Comments48

Как устроен поиск по письмам в Яндекс.Почте

Reading time3 min
Views7.8K

Задача Яндекса – найти ответ на вопрос пользователя. Но технологии поиска этого самого ответа бывают разными. Скажем, поиск по интернету и по письмам очень сильно различаются. Поиск по почте – это особенный продукт, уникальный и сложный.

В первую очередь, Яндекс.Почта – это огромный объём данных. У нас хранится около 10 миллиардов писем – это почти столько же, сколько страниц в индексе веб-поиска Яндекса. При этом поисковых запросов примерно в 1000 раз меньше, чем запросов к поиску по интернету.

Зато в поиске по Почте очень важна полнота результатов: если поиск по интернету не найдёт один-единственный сайт из трёх миллионов по запросу «пластиковые стулья», этого никто (кроме, разумеется, вебмастера этого сайта) не заметит. Гораздо критичнее, если потеряется письмо с важным адресом или паролем.

По этим причинам в поиске по Почте существует ряд архитектурных и технологических особенностей.

Архитектурные особенности

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

Чтобы обеспечить полноту результатов, весь поисковый индекс для некоторого пользователя хранится на одном сервере и полностью дублируется на другом – если один сервер недоступен, то мы ищем на дублирующем.

Когда система работает в штатном режиме (все серверы функционируют, все дата-центры доступны), половина поисков отправляется на сервер в одном ДЦ, а вторая половина – на сервер в другом ДЦ. Благодаря этому поисковая производительность увеличивается в два раза.

Технологические особенности

На каждом сервере располагается индекс по письмам пяти миллионов пользователей. Можно строить его разными способами: например, по индексу на пользователя, но в таком случае возникает большая нагрузка на файловую систему, а также требуется огромное количество аппаратных ресурсов и ресурсов операционной системы (потоки и файловые дескрипторы) для поиска.

Другой вариант – все пользователи в одном индексе. Однако этот вариант ненадёжен: если произойдёт сбой, то сразу миллионы пользователей останутся без поиска, а восстановление системы займёт значительное время.

1-й вариант решения: Индекс размером до 10 Гб
Мы попробовали промежуточный вариант: выбрали максимальный размер каждого индекса 10 Гб. Следовательно, на каждом сервере получилось по 50-100 индексов, которые создаются в порядке поступления писем, а данные пользователя, таким образом, могут находиться в любом из индексов. Но письма часто содержат большое количество однотипной информации («привет», «пока», «@yandex.ru»), которая подходит под 46% всех запросов к поиску по Почте. Получалось, что ответ на такой запрос требовал поднять около 20% всех писем, хранящихся на сервере — это занимало десятки секунд.

2-й вариант решения: Префиксный индекс
Мы оставили максимальный размер индекса равным 10Гб, но перед каждым словом добавили ID пользователя. В результате каждый поиск сразу ограничивался количеством и размером писем в почтовом ящике текущего пользователя. Это снизило объем находимых данных и на порядок ускорило поиск. Но когда на диске – сотни индексов, то из-за большого числа дисковых операций поиск занимает несколько секунд. Наша же цель – десятые доли секунд.

3-й вариант решения: Шардирование по пользователям
Все индексы на сервере были разделены на 1000 сегментов (шардов). В каждом из них – от пяти до двадцати индексов размером до 1 Гб, и данные конкретного пользователя всегда находятся в определённом сегменте. В результате число дисковых операций было снижено до 20 раз по сравнению со вторым вариантом. Скорость поиска также увеличилась в разы. Так мы получили поиск за доли секунд.

Онлайн-индексация
Для того чтобы все поступающие письма практически сразу появлялись в результатах поиска, мы разработали специальный инкрементальный индекс в памяти. Особенность индекса в том, что в него можно добавлять по одному документу, а после добавления документ сразу появляется в поиске.
Процесс индексации выглядит так:
Поступающие письма попадают в инкрементальный индекс в памяти. Когда в памяти накапливается определенное количество писем или занят определенный объем,  запускается процесс переноса данных из индекса в памяти в дисковый индекс.  В этот же момент прекращается индексация в памяти №1 и создается индекс в памяти №2.

Конечно, это – лишь часть того, что мы делаем для улучшения качества нашего поиска по Яндекс.Почте. Может быть, у вас есть какие-то вопросы? Мы с радостью на них ответим.


.
Total votes 46: ↑41 and ↓5+36
Comments24

Information

Rating
Does not participate
Location
Россия
Works in
Date of birth
Registered
Activity