
В последнее время техническая сторона Твиттера все больше становится достоянием общественности, а потому из каждого утюга на него льется критика из-за оверинжиниринга. Даже некоторые вполне технически подкованные люди заявляют, что Твиттер можно было бы поддерживать вообще одному — мол, «подумаешь, твиты хостить, 80% всех микросервисов ему не нужны».
На самом деле Твиттер (не для кого не должно быть сюрпризом) — это далеко не только набор 140-символьных текстовых постов (для простоты можно оставить и это ограничение, которое уже давно было снято), а внезапно целая экосистема с налаженными процессами, которые волей-неволей появляются, если ваша аудитория превысила несколько миллионов пользователей:
-
процесс управления информационной безопасностью — чтобы бизнес не прикрыли из-за очередной утечки пользовательских данных
-
процесс управления инфраструктурой — на самом деле не важно, хостите вы текстовые посты, измеряемые байтами или гигабайтные видео (а в твиттах можно размещать и медиа объекты) , если ваша аудитория разбросана по континентам, а DAU измеряется миллионами — подход всегда примерно одинаковый
-
процесс управления тестированием и качеством (QA) — чтобы ежедневно не терять пользователей из-за низкого качества своего продукта
-
процесс управления релизами и выкатками (aka CI\CD) — когда у вас более 1 микросервиса, между ними появляются зависимости друг от друга, которые проще заскриптовать, чем делать вручную каждый раз
-
процесс сбора логов и метрик — без обратной связи со своим продуктом в продакшне далеко не уедешь, да и не поймешь, что пользователям нравится, а что не нравится
-
процесс технической поддержки пользователей — для тех, кто сталкивается с неизвестными багами либо не понимает, как пользоваться сетью
-
процесс управления рекламой — не так-то просто настроить нейронную сеть для хорошей лидогенерацией (один только подпроцесс сбора качественной телеметрии от пользователей чего только стоит — годы работы)
-
процесс борьбы с ботами (aka антиспам) — кто-то думает, что его нет, а он есть. Суммарное число забаненных ботов этой социальной сети уже в разы превышает число реальных пользователей. Представляете, что было бы, если на каждого пользователя Twitter приходилось 1-2 бота?
-
процесс предоставления API для сторонних разработчиков — чтобы хотя бы не все, кто хочет взаимодействовать с Twitter программно, плодили ботов
-
процесс цензурирования — ведь мало кто хочет видеть непристойный контент в своей ленте, опять пользователи разбегутся
-
процесс поддержки 100 OpenSource проектов в красивом состоянии, чтобы сообщество не поливало грязью, не отбивая тем самым желание новых специалистов устраиваться на работу
-
процесс совершенствования методологий разработки и правил оформления кодовой базы — чтобы через год разработчики не перестали быть способны поддерживать код своих предков
-
процесс управления документацией — чтобы на вопрос «сколько у вас микросервисов?» всегда был свежий ответ
И это я еще не начинал перечислять процессы, касающиеся непосредственно разработки кода «ядра» Твиттера (движок поиска, фронтенд и его оптимизация под разные устройства, генерация фида, постинг и хранение твитов и т.д). А что уж говорить про неайтишные процессы (HR, compliance, юристы).
На все из подобных перечисленных процессов нужны «свои микросервисы». И здесь скажу страшное: их количество благоприятно влияет на качество процессов. Например, можно отказаться от процесса «сбора логов и метрик» и полагаться на жалобы от пользователей в тех.поддержке — критические проблемы, может, и получится так устранять, но предупреждать их возникновение — едва ли — это уже совсем другой уровень качества процесса.
Также нужно понимать, что разработать сервисы куда проще, чем потом поддерживать их качество на должном уровне — для этого требуются отлаженные процессы и следование им. Грубо говоря, наколбасить можно за один вечер, а вот потом собирать все недочеты и внедрять их в уже работающую систему — дело кропотливое и нервозное. Наверное, именно поэтому нанятый Илоном Маском «хакер» Geohot для исправления проблем с поиском в Twitter не хочет задерживаться в Twitter дольше 12 недель:
Этим хочу завершить свою короткую статью, которую теперь можно использовать как аргумент в будущих спорах — почему простые, но популярные сервисы нуждаются в своих 1000 микросервисах.
ссылка на оригинал статьи https://habr.com/ru/post/701788/
Добавить комментарий