Авария «Мегафона» дала массу поводов как для пересудов, так и для более глубоких размышлений. Можно по-разному относиться к последующему потоку официальных объяснений и неофициальных «вбросов», однако, для меня это стало поводом поговорить с Вами о технологиях, которые применяют «серьезные операторы» и некоторых возможностях.
Связь – отрасль, которая сочетает в себе самые что ни на есть высокие технологии с махровым консерватизмом. Технологии происходят из того, что без них никак, а консерватизм исторически обусловлен критичностью связи для нашего общества. Ведь мы хотим быть уверенными, что звонок в скорую пройдет с первого раза! Связь всегда была большим, капиталоемким и социально-значимым бизнесом.
В силу этого унаследованная ментальность связистов – это стремление к предсказуемости системы, ну или хотя бы к предсказуемому математическому ожиданию результата. И это несмотря на то, что на самом деле за всю свою историю и за пределами специальных систем та же самая телефонная связь никогда не жила по законам детерменизма. Эрланг, нагрузки, вероятности, статистика. Но теория связи давала иллюзию предсказуемости и обозначала границы ответственности. По этой самой причине оборудование связи всегда было дорогим. «Потому что надежно!» © И всегда было весьма и весьма специальным, нагруженным сертификациями, проверками и так далее.
А потом случился протокол IP, который изменил все и породил взрыв в ИТ. После чего началось медленное, мучительное проникновение «расхлябанного и непредсказуемого» в «правильно рассчитанный по утвержденным методикам» мир связистов.
На протяжении многих лет IP и «массовые» ИТ-технологии шаг за шагом отжимали себе место в мире свзистов. Массовые технологии «засунули ногу в дверь» в виде набора стандартов AdvancedTCA. На тот момент это виделось идеальным компромиссом между необходимостью переходить со спец-устройств на вычислительные платформы и тараканами надежности в головах связистов. Получилось как всегда в связи – дорого, малотиражно, по формальным признакам – очень надежно.
Тем временем Интернет рос, взлетали новые гиганты, масштаб бизнеса которых превысил самые смелые мечты большинства операторов связи. С соответствующими требованиями к надежности, доступности, непрерывности сервиса. С потоками данных, на порядки превышающими то, с чем привыкли иметь дело связисты в качестве сигнализации и сервисов.
Казалось бы, почему они не взяли из связи ее подходы? Почему АТСА не стал стандартом в интернет-компаниях, чей бизнес зависим от доступности? А ведь не стал!
Потому что мир ИТ пошел другим путем, начало которому было положено технологией RAID в далеком уже 1987 году. Для ИТ характерно строить надежные системы из ненадежных, зато дешевых и массовых элементов, достигая высокой доступности за счет избыточности. Строить свои системы так, чтобы отказы не вели даже к деградации услуги, а не то чтобы к полному отказу системы. И в то же время не делать из надежности культа и не забюрократить этот сектор до полной нежизнеспособности. Кластеризация, шардинг, балансировка, проксирование, кэширование, многоуровневые системы, резервирование на всех уровнях вида «если не ответили здесь – спроси там», и все это вместо того, чтобы годами разрабатывать мега-надежный сервер под управлением супер-надежного софта.
В жизни бывает так: кто-то декларирует цель и сосредоточенно работает над ней, кто-то просто достигает лучших результатов «по пути». Кто-нибудь помнит, чтобы часами лежал Гугл? Яндекс? Мэйл-ру? Фейсбук? Фактически все эпизоды их «недоступности» — это не их упавшие системы, а проблемы со связностью на сетях, которыми, кстати, нынче занимаются старые добрые «высоконадежные» связисты.
Вот так, незаметно, ИТ-решения, зачастую базирующиеся на open source, стали в практическом плане более надежны, чем «сертифицированные аппаратно-программные комплексы». Это не стало формальной нормой, но стало общепринятой практикой. За два-три процента необслуженных запросов в течение сколько-нибудь заметного времени CTO крупного проекта может отправиться на улицу с «волчьим билетом». Никто не считает «время простоя», в нем уже нет смысла, сервис в принципе не может быть вообще недоступен. Все считают процент необслуженных запросов, поэтому айтишные 99,99% доступности – это совсем не то же самое. Опасаюсь, что в пересчете на айтишные метрики качества сотовые операторы и три девятки не вытянули бы на конечной услуге.
Может быть в ИТ все проще? Меньше нагрузки? Проще логика?
Вот здесь мы вернемся к примеру с Мегафоном, немного посчитаем и сравним. Напомню, наиболее распространенное мнение о причинах аварии заключается в том, что «сломался, не выдержав нагрузки» компонент от HP, ответственный за авторизацию абонентов в сети, хранилище профилей абонентов.
Итак, количество абонентов – примерно 75 млн. Давайте предположим, что оценка сверху затронутого аварией количества – половина, то есть для простоты 37 млн. Также предположим, что всех этих абонентов надо авторизовать в сети за 5 минут. Простым расчетом это дает нам 123 тысячи запросов в секунду, что в целом коррелирует с разными источниками, сообщающими, что критической для решения HP оказалась нагрузка в 60..80 тыс. запросов в секунду. Ее характеризовали как «запредельную».
Ключевой вопрос: много это или мало? Давайте сравним с аналогом из мира интернет-сервисов — с подсистемой хранения профилей пользователей одного, кстати, не самого крупного портала, характеристиками которой любезно поделился один из коллег. Суть этой системы та же – все остальные компоненты портала обращаются к ней за данными пользователя, авторизацией, профилем и т.д. Этакий HLR в терминах сотовиков.
Так вот, штатный режим этой системы – это около 1 миллиона запросов в секунду. Я не шучу. Каждую секунду – миллион запросов. В среднем. Надежность, измеренная в терминах отношения отказов по конкретному единичному запросу к их общему количеству – 99,99%, то есть один запрос из тысячи, это с учетом того, что на порталах регулярно бывают мощные всплески посещаемости по разным инфоповодам. Мой вопрос о «простоях» ответа не получил, ибо у них просто нет такого понятия.
Может быть там просто все проще? Меньше данных? Приготовьтесь удивиться: в этой системе лежит полтора миллиарда профилей. Еще раз: полтора миллиарда. Понятно, что не все из них активны, это накопленная за долгие годы база, но надо понимать, что любой из этих полутора миллиардов «виртуалов» может в любой момент зайти на портал, и система должна «поднять» его профиль.
Тогда может быть под это задействованы большие ресурсы, десятки стоек в ЦОДе? Снова приготовьтесь удивиться: весь этот чудовищный поток запросов обслуживают восемь «стоковых» серверов по 12 ядер, разбросанные по нескольким ЦОДам. Это уже с резервированием. И работают они далеко не в предельных режимах, а вовсе даже наоборот, ибо совсем недавно их было и вовсе четыре, нынче это конфигурация «на вырост», загруженная процентов на 20 максимум. Так что выход из строя половины ресурса вообще не скажется на пользователях.
По стоимости тут нечего даже сравнивать. Я готов поспорить на свой среднемесячный доход против среднедневного дохода руководителя московского офиса HP, что эта система по CAPEX и OPEX обошлась дешевле этак на пару порядков минимум по одному только железу.
И вот здесь мы плавно приходим к пониманию, что на одной чаше весов у нас консервативный, насквозь сертифицированный HP со стоимостью и поворотливостью слона и технологическим стеком прошлого поколения. А на другой – сделанное «под себя» решение, где выжат максимум из NoSQL, in-memory обработки, многоуровневой балансировки, шардинга и взаимного резервирования. Это просто другое поколение, это как сравнивать гоночное авто 30-х годов и болид Формулы-1.
Итак, в результате: задачи – сходные, разница в надежности – в новостях, разница в стоимости – порядки, разница в производительности – тоже порядки. Разница в price/performance получается совсем чудовищная.
Такова цена консерватизма отрасли и малой скорости перетока технологий из «непредсказуемого мира ИТ» в «нормированную вселенную связистов». Цена высокомерия и вот этого «ой, что вы там со своим кластером Астерисков в связь лезете, кто его вообще придумал, что за «комьюнити» такое? Где производитель со столетним опытом, где сертификаты?»
Ну и теперь немного о трендах и перспективах. Ситуация с нагрузками у сотовиков будет только ухудшаться. Их ждет кратное увеличение номинальной «абонентской базы» — привет, IoT. Их ждет кратное увеличение числа базовых станций и плотности их размещения, ибо скорости растут, а эфир не резиновый. Все это вызовет кратное, если не на порядки, увеличение сигнального трафика, регистраций, хэндоверов, аттачей-детачей и вот этого всего. Так что каждого сотового оператора еще ждет его «идеальный сигнальный шторм». Одновременно будут падать доходы, сжиматься голос, дешеветь передача данных, в сетях появятся миллиарды «пятирублевыхвмесяц» IoT абонентов.
И это будет большой проблемой, если индустрия останется в парадигме «дорого, специально, лицензируется поабонентно, работает только на особом железе под присмотром специально выведенной породы людей».
В этой игре выиграет тот, кто первым «выскочит из парадигмы», благо архитектура сотовых сетей стремительно мигрирует в сторону «обычного ИТ». Можно ли ждать прорыва от вендоров типа HP? Не думаю. Несмотря на риторику «про облака» и демонстрацию понимания этого тренда – двигаться по нему они будут максимально медленно, упираясь всеми конечностями и защищая свои доходы и прошлые инвестиции. У них нет мотивации в корне менять технологические стеки, а без глубокого их пересмотра выход на новый уровень невозможен.
Эта ситуация создает окно возможностей для разработки новых конкурентоспособных продуктов, для новых игроков, «срезающих углы» технологических треков и выходящих на принципиально новые уровни производительности и соотношения цена-качество как раз по причине отсутствия технологического наследия и связанных с ним ограничений. Потому что в этих продуктах нет ни мистики, ни недоступных ноу-хау.
Что было бы, если бы решение HP было той же архитектуры, какую используют большие интернет-проекты? Вероятнее всего какой-нибудь оператор дежурной смены Мегафона заметил бы на графике всплеск нагрузки длиной в несколько десятков секунд. И все.
Что мешает появлению продуктов, имеющих в десять раз большую производительность на в десять раз меньшем «железе», распределенных, динамичных, адаптивных, переконфигурируемых на ходу, как это принято в ИТ? С параметрами, которые достигаются на практике в интернет-проектах?
Может быть их нет потому, что просто никто их не сделал? Никто не видит это как окно возможностей? Не чувствует в себе сил потягаться с грандами типа HP?
А почему нет?