Нужные нагрузки. IT-эксперт рассказал о работе сервисов с высоким трафиком
С каждым днем интернет охватывает все больше людей. По данным Statista, на октябрь этого года в мире насчитывалось 5,52 миллиарда пользователей сети. Это значит, что почти две трети населения Земли регулярно работает, покупает, общается, играет в игры, смотрит стриминги и занимается другими вещами во всемирной паутине. С ростом цифрового населения растут и требования к IT-специалистам: сегодня они должны обеспечивать бесперебойную работу сайтов и приложений с огромным количеством посетителей и большим объемом данных, говорит Глеб Шкрябин*, занимающий должность ведущего инженера (StaffEngineer) в международной компании BrainRocket. Глеб — эксперт в области разработки подобных систем, которые называют высоконагруженными (High-Load Systems): на его счету множество проектов, таких как интернет-магазины, мессенджеры, онлайн-аукционы и другие платформы с большим количеством запросов и большим объемом трафика и данных. Мы поговорили с Глебом Шкрябиным о том, с какими рисками связан высокий трафик и почему высоконагруженные системы критически важны для успеха бизнеса.
— Вы специалист по созданию высоконагруженных систем — сайтов, сервисов и приложений, которые надежно работают даже при самом высоком трафике. Почему термин «high-load-система» стал сегодня таким актуальным?
— Разработка высоконагруженных систем становится все более актуальной из-за стремительного роста онлайн-активности, особенно на коммерческих и социальных платформах, где трафик бывает интенсивным и неравномерным. Люди все больше работают и взаимодействуют онлайн, и компании должны обеспечить надежную работу сервисов независимо от нагрузки. Сбой в работе таких систем ведет к потере клиентов и финансовым убыткам. Поэтому важно разрабатывать системы, способные выдерживать большой объем запросов, оставаясь при этом стабильными и безопасными.
— Вы говорите, высоконагруженные системы необходимы для четкой работы платформ электронной коммерции. Насколько мне известно, у вас есть опыт создания сайта по торговле одеждой. За счет чего вам удалось добиться стабильности и эффективности этой площадки?
— Действительно, во время работы в компании CodeGeek я работал над онлайн-платформой для торговли одеждой. Моей ключевой задачей было добиться оптимизации кода и улучшения производительности, чтобы платформа могла обрабатывать большой трафик без сбоев. Поэтому основное внимание в процессе разработки и запуска я уделял оптимизации программ и внедрению автоматизированного тестирования. Проще говоря, мы наладили автоматические проверки и тесты, которые отслеживали любые изменения в коде и быстро выявляли потенциальные проблемы. Это позволило нам не только поддерживать стабильную работу платформы, но и быстрее и безопаснее внедрять обновления, обеспечивая надежность и эффективность работы в условиях высокой нагрузки.
— Безотказность в работе при высоком трафике требуется не только площадкам e-commerce, но и, например, онлайн-аукционам, работающим в режиме реального времени. В вашей практике был и такой проект — платформа для управления и оптимизации рекламных кампаний. Какие технологии вы использовали при ее создании?
— Для системы BidVol, которую мне пришлось создать с нуля во время работы в компании Invоlta, я разработал основную архитектуру и систему расчетов. Так как система должна была обеспечивать стабильность проведения рекламных онлайн-аукционов, от нее требовалось быстро и надежно обрабатывать данные в реальном времени. Я внедрил методы, которые позволяют прогнозировать нагрузки и грамотно распределять трафик. Благодаря этому система получилась стабильной, способной выдерживать большой трафик и эффективно использовать ресурсы. В результате внедрения проекта система уже на старте смогла обрабатывать 100 запросов в секунду.
— Высокий трафик — это то, за что сегодня борется любая компания, нацеленная на успех. А значит, рано или поздно руководству этой компании приходится задумываться над внедрением у себя систем, которые способны выдерживать большие нагрузки. Исходя из вашего опыта, когда эта необходимость становится явной?
— Вы правы, любые крупные компании сталкиваются с проблемами производительности, особенно в периоды быстрого роста, — это естественный процесс. Вопрос лишь в том, когда эти проблемы начинают представлять реальную угрозу. Сигналом того, что ситуация становится небезопасной, может быть, например, возникновение сложностей с базой данных при отсутствии инструмента, способного оперативно выявить и проанализировать причину. Говоря об опасности, я имею в виду, что из-за нестабильной работы могут пропасть данные, отключиться нужные функции или возникнуть другие проблемы. В этом случае необходимо внедрять систему мониторинга, которая может анализировать огромные объемы данных и находить причины возможных проблем.
— Для компании, в которой работаете сейчас, вы создали такую систему мониторинга баз данных, и теперь ваши сервисы выдерживают нагрузку, если не ошибаюсь, в 100 миллионов запросов в сутки. В каком направлении вы намерены развивать свой проект?
— Да, я разработал систему мониторинга, которая позволяет в реальном времени отслеживать и анализировать состояние базы данных, выявляя потенциальные проблемы на раннем этапе. Это существенно повысило скорость и стабильность работы базы данных даже под высокой нагрузкой. По нашим оценкам, с момента внедрения этой системы удалось предотвратить более сотни инцидентов, которые могли бы привести к критическим сбоям. Следующим шагом в развитии проекта станет добавление функций прогнозирования, чтобы система могла заранее выявлять потенциальные проблемы и устранять их до того, как они повлияют на пользователей.
— Судя по нашему разговору, создание высоконагруженных систем требует особых компетенций и по силам далеко не каждому специалисту. Вы сейчас не только занимаетесь разработкой сами, но и руководите командой. Какие качества, по вашему мнению, нужно развивать в себе IT-профессионалу, чтобы быть способным на уникальные решения?
— Для IT-специалиста, который хочет находить уникальные решения, важно развивать несколько ключевых качеств. Во-первых, нужно уметь видеть задачу не только со своей стороны, но и в целом, понимать, как она вписывается в большой проект, — это помогает находить действительно полезные и нестандартные решения. Во-вторых, важна способность работать в команде: иногда именно общение с коллегами помогает придумать что-то новое. Также важно развивать критическое мышление, чтобы не просто следовать инструкциям, а думать над тем, как сделать лучше. Ну и, конечно, не стоит забывать о навыках самоорганизации — умение управлять временем и планировать задачи помогает работать продуктивнее и быстрее добиваться результата.
— Экспертность в сфере IT позволила вам стать членом Института инженеров электротехники и электроники, или IEEE, — крупнейшей международной организации, объединяющей профессионалов сферы технологий. Расскажите, какие преимущества открывает перед вами членство в этой престижной организации?
— Членство в Institute of Electrical and Electronics Engineersдает мне возможность общаться с ведущими специалистами IT и участвовать в международных технических проектах и обсуждениях. Я планирую принимать участие в конференциях и встречах, где можно обмениваться опытом и узнавать о новых разработках. Кроме того, я хотел бы внести свои идеи и решения, которые могут быть полезны другим специалистам, и вместе с коллегами развивать перспективные направления в сфере технологий.
— В этом году вы наряду с другими экспертами IT-отрасли были членом жюри на конкурсе DigitalLeaders. Какие работы конкурсантов показались вам наиболее интересными?
— Как инженера, работающего с высоконагруженными системами, меня особенно привлекла платформа PlatformV SberLinux OS Server. Это система корпоративного уровня, которая решает ключевые задачи для крупных серверных приложений, таких как работа с базами данных и виртуализация. Было интересно увидеть, как эта система справляется с высоконагруженными сценариями, и оценить ее эффективность и производительность на практике.
— Ваше экспертное мнение — как будут развиваться проекты в области высоконагруженных систем в условиях усиливающегося влияния искусственного интеллекта и машинного обучения?
— С развитием искусственного интеллекта и машинного обучения высоконагруженные системы станут гораздо умнее и эффективнее. Они смогут не только анализировать и распределять трафик, чтобы избежать перегрузок, но и возьмут на себя часть задач, которые сейчас выполняются простыми алгоритмами, переводя их на более продвинутые нейронные вычисления. Словом, скорость и качество работы повысятся, а системы при высоких нагрузках станут еще более надежными и устойчивыми.
*Глеб Шкрябин — специалист в области разработки и архитектуры высоконагруженных систем. В прошлом сотрудник IT-компаний CodeGeek и Involota. Создатель трекера для отслеживания выполнения задач и мессенджера Involta Messenger, сервиса для продвижения и аналитики мобильных приложений AppoClick, платформы для монетизации BidVol. Автор научных статей в журналах «Вестник науки» и «Актуальные исследования». Член жюри премии Digital Leaders Award— 2024. Член международного Института инженеров электротехники и электроники IEEE.