Будни MT_FREE: несколько историй про влияние сторонних сервисов на работу публичного Wi-Fi

p5iu35hkztdmnqhghvtkz5zos8y.jpeg

Интернет — большая и динамичная среда, где всё друг с другом тем или иным способом связано и может друг на друга влиять. Такая зависимость, когда небольшое изменение в одной части системы может привести к полному изменению другой, в народе называют «эффектом бабочки». Эффект прекрасно иллюстрирует, как один «удачно брошенный на пульт валенок» способен обрушить крупный сервис и заодно еще парочку совсем чужих… Об этом и поговорим.

Пять лет назад, когда Wi-Fi в метро только появился…


… это было явление, которое разделило жизнь москвичей на «до» и «после». На тот момент проект был единственным в мире, и все в нем было таким же уникальным: структура сети, модель монетизации, пользовательские сервисы, подходы к строительству и эксплуатации.

Практически с запуска первого сегмента Wi-Fi в метро у нас появилась авторизация и свой медийный портал. Мы щедро экспериментировали с порталом в плане интеграции со сторонними сервисами, по сути, изучая возможности нашей бизнес-модели («а что если продавать в метро кофе с доставкой к выходу из вестибюля?!»).

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

xzw-iz9s8mekuznsiqzcnq1vxna.jpeg

Когда-то громкий вскрик в офисе «Пятисотая» приводил в движение всю компанию — сейчас подобные ситуации практически не происходят. На скрине от июля 2015 года результат запуска сервиса по продаже цветов с доставкой на нашем суб-домене.

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

Новая iOS уронила трафик на 20%


МаксимаТелеком специализируется на построении сетей на транспорте. Подавляющее большинство абонентских устройств, которые пользуются нашей сетью, — мобильные, смартфоны и планшеты на базе Android и iOS. Оба вендора, — Google и Apple, — имеют дорожные карты по выпуску обновлений своих операционных систем. В новых версиях часто меняются модули, отвечающие за подключение к Wi-Fi. В лучшем случае в день выпуска обновления у нас растет трафик из-за того, что устройства скачивают обновление через Wi-Fi. Но бывают и катастрофические кейсы.

Буквально в прошлом году Apple выпустила новую версию iOS 10.3.1, после чего трафик с сети рухнул почти на 20%. Оказалось, что в новой версии Apple «сломала» процесс подключения к сети: перестала работать механика авторизации в Captive и устройства не могли авторизоваться в MT_FREE. Пришлось в авральном режиме выпускать фикс и исправлять ситуацию. Проблему исправили спустя три минорных обновления, после заведения нами кейса в багтреккере Apple.

1m78p0wtyc0jsjrq4cbsdq4jw5e.png

1yzivkvarkgotniqq3ulbshzsi4.png
Количество обращений к странице авторизации auth.wi-fi.ru в минуту. На графике явно видно существенное отставание от показателей за предыдущий период.

Ситуация усугубляется тем, что Wi-Fi достаточно старая и чрезвычайно распространенная технология, при создании которой не предполагалось использование в таких масштабах, какие мы имеем в Московском метрополитене. А значит, нам приходится иметь дело с целым «винегретом» различных устройств, каждое из которых ведет себя в сети по-своему. Плоские метрики количества абстрактных мегабайтов или «сферических абонентов в сети» для нас не применимы. Любой сервис, будь то базовый доступ в интернет, медийный портал или мобильное приложение, надо рассматривать в разрезе конкретных устройств и/или операционных систем, так как проблема может касаться какой-то конкретной и достаточно узкой группы.

xsfhlvo2p6acl4lyhwhy-g4fk0c.png


… и еще несколько десятков самых экзотических вариантов.

Это не DDOS: авария мобильного оператора привела к скачку трафика почти на треть


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

Уточнение

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


Но на станциях сотовая связь развилась достаточно сильно, не говоря уже о наземных сегментах, где Wi-Fi с ней прямо конкурирует.

Об аварии на сети мобильного оператора мы узнали от нашей службы диспетчеров, которая объявила, что нас атакуют. Рост количества пользователей и трафика был такой, что мы сначала подумали, что нас стали DDOS-ить. О реальных причинах увеличения трафика мы узнали позднее, выяснив, что у трети сотрудников не работают сотовые телефоны.

ibkngtawi8us5ut2nbjehrjauim.png


Вот так это выглядело для пользователей нашего Wi-Fi над землей.

Специфика конкретно нашей ситуации в том, что у нас Wi-Fi сети, а значит нам не важно, SIM-карта какого оператора связи установлена в пользовательском устройстве.

Тут стоит оговориться, что произошедшая авария сказалась на нашем сервисе отчасти и отрицательно. Некоторые сегменты сети MT_FREE, в частности, сеть в городских автобусах и пригородных электричках, используют сотовую связь как опорную сеть, а значит авария на сетях сотовой связи приводит к деградации сервиса на этих сегментах.

Wi-Fi в метро без рекламы? ДА!


Реклама — фундамент бесплатного доступа в сеть MT_FREE, потому что именно благодаря ней сервис существует и окупается. В качестве базового AdServer-а мы уже много лет используем AdFox. Интересно, что никаких существенных изменений сам AdServer не претерпевал за всё время нашей с ним работы. Одна из его специфик — это система сбора статистики по показам, которая формируется часовыми интервалами. Это вызывает ритмичные пики времени отклика от сервиса (каждый час, ровно на границе часа, «крутилка» начинает «шалить» и задумываться перед каждым ответом). Выловили мы этот нюанс очень не сразу!

kxrbf_wkx_0tddvalyqm7xqaxnq.jpeg


График времени отклика от AdFox на запрос рекламы. Отчетливо видны всплески и провалы на границе часа.

Фактически мы наблюдали такие же характерные ежечасные «пики» на количестве показов по другим средствам мониторинга, по той же Метрике. Но я хочу рассказать про более экстремальную ситуацию. Зимой прошлого года на AdFox случилась серьезная авария: сервис не отвечал продолжительное время. На наших метриках это проявилось как отсутствие авторизаций пользователей и резкое падение показателей порталов. Одновременно с этим был не доступен и интерфейс управления AdFox с ошибкой сертификата.

eqkegna6sr78wztahh1jcrrazue.jpeg


Иллюстрация ошибки сертификата adfox.ru.

Проведя пару тестов и позвонив в сам AdFox мы узнали об аварии, и нам ничего не оставалось делать, как пустить всех идентифицированных пользователей в сеть без рекламы.

htadjvxzmar6wtjwixtd0yfk45w.jpeg
А вот так выглядела авария на метриках Яндекса по нашему порталу.

Ускорение загрузки иногда приводит к неожиданным результатам


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

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

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

Соцсети vs Медиа


Поведение пользователей в интернете соответствует типовым паттернам. Люди привыкли общаться через мессенджеры, искать контент на медиа-порталах, читать новости через социальные сети и новостные агрегаторы. Довольно очевидно, но все же акцентирую внимание на том, что социальные сети являются альтернативой новостям, и наоборот. Когда вдруг происходит что-то с одним из источников информации, внимание пользователей перераспределяется на оставшиеся, как правило, наиболее доступные. Так в 2017 году произошел глобальный сбой во «ВКонтакте». С нашей стороны это событие выглядело как резкий рост пользователей и времени на нашем новостном портале wi-fi.ru. По сути, пользователи, понимая, что любимая соцсеть не работает, шли читать новости к нам.

8epmnxp_aabhtaw6yyr3uufkdjq.pngМомент обвала ВК отметился 30% ростом нагрузки на портале wi-fi.ru.

Этот кейс иллюстрирует, как важно массовым сервисам иметь запас прочности для «переваривания» последствий аварии информационного «соседа».

Зеленый цвет — аварий нет


Описанные ситуации постоянно стимулируют нас совершенствовать мониторинг сторонних сервисов в MT_FREE. Вот как выглядит дашборд эксплуатации нашей сети.

nerttzur3msulj1hgz7umxvecig.pngДашборд эксплуатации сети в Санкт-Петербурге.

Дашборд состоит из множества показателей типа «светофор»: зеленое состояние — всё в норме, красный цвет — аларм. Цвет показателей меняется от времени. Это может быть как нормальным поведением, так и признаком отклонения от нормы. Но если «вытянуть» все имеющие показатели в линию и наносить так на доску каждый такт измерений, получится двумерная, постоянно растущая картинка, описывающая эволюцию сети в целом. Эту картинку без труда можно «скормить» стандартным алгоритмам машинного обучения, созданным для распознавания графических паттернов (своеобразный FindFace, только для паттернов сенсоров).

l1duja5zbh99hhct0req-owgnvu.pngРазвернутая во времени цветовая диаграмма показателей — ни что иное, как картинка, описывающая эволюцию сети.

Далее добавляются алгоритмы самообучения (типа ИИ), способные автоматически классифицировать паттерны и выявлять причины отклонений или неполноту данных. Выглядит всё просто, но как вы думаете, сколько операторов связи этим действительно пользуются?

Мало, и мы не в их числе


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

Максима — оператор, в первую очередь, сервиса бесплатного Wi-Fi доступа. Причем, в отличие от достаточно большого количества «социального» Wi-Fi, мы являемся полноценным коммерческим оператором связи. По сути, это наша корпоративная идея: мы стремимся делать связь бесплатной и одновременно прибыльной, и мы уже доказали, что это возможно. Почти ни один оператор связи в мире пока такого не может (или не хочет), а значит, и технологии для этого не развивает. Это дает надежду, что в будущем мы сможем довести наши технологии до уровня, когда пользовательский опыт MT_FREE не будет отличаться от того, что предоставляют традиционные платные операторы связи. При этом уровень надежности будет выше за счет более развитой интеллектуальной системы управления и эксплуатации.

Но, к сожалению, не все проблемы можно решить в рамках возможностей одной компании, хотя бы потому, что существует множество производителей абонентского и сетевого Wi-Fi оборудования, а уровень унификации существенно уступает аналогичному в сетях сотовой связи. Проблемы с различными устройствами при подключении к сети мы решаем с момента запуска. «Корень зла» тут в отсутствии какого-либо стандарта и, как следствие, каждый производитель создает что-то свое.

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

Кстати, мы постоянно расширяем штат разработки, актуальные вакансии можно найти на нашей карьерной странице.

© Habrahabr.ru