Найти тему
COMNEWS ИТ

"ВКонтакте" отказалась от микросервисов

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

Де­нис Тель­ма­нов

© ComNews

25.09.2023

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

"У нас в компании принято микросервисы не обсуждать - аппетит портится. Я из VK, и весь бэкенд "ВКонтакте" - это один гигантский монолит. Пока я работаю во "ВКонтакте", микросервисов не будет", - сказал Александр Кирсанов, руководитель команды KPHP VK. KPHP (KittenPHP) — это транслятор PHP-кода в C++, который разработала VK.

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

"Почему-то они думают, что микросервисы - это панацея, которая решит все проблемы, которые скопились. Но те, кто считает, что проблемы можно решить с помощью микросервисов, неправы. Они не смотрят на другую сторону. Микросервисы, если их неправильно использовать, - а большинство именно так и делают - создают больше проблем, чем решают. Это и лишняя нагрузка на сети и базу данных, и необходимость отладки ПО, мониторинга трафика, deploy (развертывание приложения и запуск в рабочей среде). В общем, микросервисы, это сложно", - считает руководитель команды KPHP "ВКонтакте".

Он сравнил использование микросервисов с перекредитованием. "Решать проблемы с помощью микросервисов - это примерно, как брать кредит у одного банка, чтобы отдать долг другому банку. А еще же это надо и поддерживать, и администрировать. А чем проще администрировать систему, тем лучше - админов не пугать, пол бетонный", - добавил Александр Кирсанов.

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

Только сбоку

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

"Возможно мы изобрели микросервисы значительно раньше, чем это стало мейнстримом. Мы не используем стандартные базы данных, вместо этого у нас собственные движки, написанные на C++ хардкорными олимпиадниками. И по факту все данные, которые мы храним, мы храним в движках - движок лайков для постов, движок самих постов, рекламный движок, движок денег и т.д.", - рассказал Александр Кирсанов.

При этом он сравнил движки кода "ВКонтакте" с микросервисами, созданными в одном стиле и на одном языке программирования. "С одной стороны, их можно назвать микросервисами, но мы их такими не считаем, потому что с точки зрения инфраструктуры и эксплуатации - это примерно одно и то же. Это просто слой хранения данных и все, а весь наш код, все наши 9 млн строк компилированного PHP - это сплошной монолит, и его мы не разделяем", - отметил Александр Кирсанов.

Читать статью полностью >