
Мобильные приложения стали частью глобальной информационной инфраструктуры. Некоторыми из них ежедневно пользуются миллиарды людей, а в каждом государстве есть приложения, в которых зарегистрированы значительная часть населения страны. Скорость работы и безотказность таких платформ принципиально важны для пользователей, также эти показатели напрямую влияют на прибыль компаний-владельцев цифровых платформ. Об этом на конференции Podlodka iOS Crew, одной из самых заметных профессиональных площадок для мобильных разработчиков, рассказал инженер, занимающийся инфраструктурой и архитектурой производительности в BigTech (бигтех) Николай Сидиропуло. Эксперт представил инновационные подходы по оптимизации высоконагруженных мобильных систем и выявлению баланса между надежностью, эффективностью и производительностью. После конференции в эксклюзивном интервью Николай рассказал, как происходит оптимизация крупнейших мировых приложений и по каким принципам формируется инженерная инфраструктура при внедрении новых функций и реализации требований законодательства.
- Николай, ваше выступление на недавней отраслевой конференции стало самым просматриваемым. Как участники приняли его, какую обратную связь вы получили?
- После выступления я получил много вопросов, большинство их них касались не конкретных технологий, а того, как выстроить процесс постоянного поиска элементов, нуждающихся в оптимизации, измерять их влияние на пользовательское поведение и как сделать производительность частью инженерной культуры команды.
Мероприятия сообщества Podlodka пользуются большим авторитетом в среде разработчиков. Я хорошо помню, как это сообщество формировалось и постепенно стало одной из наиболее заметных профессиональных площадок. Здесь обсуждают реальные инженерные задачи, архитектурные решения и практический опыт людей, которые ежедневно работают над крупнейшими цифровыми продуктами. Поэтому приглашение выступить на Podlodka я воспринял как признание моей экспертизы со стороны инженерного сообщества.
- В своем выступлении вы предложили считать производительность самостоятельной инженерной дисциплиной. Как влияет такой подход на развитие цифрового продукта, в частности, мобильного приложения?
- Мне хотелось показать, что производительность — это значительно более широкое понятие, чем принято считать. Ее необходимо рассматривать не как набор отдельных технических приемов, а как часть общей архитектуры цифрового продукта. Большинство людей представляют оптимизацию как попытку сократить время открытия какого-нибудь экрана на несколько сотен миллисекунд. На практике же производительность находится на пересечении архитектуры, инфраструктуры и продуктового мышления.
Даже небольшие улучшения могут существенно изменить пользовательский опыт. Если человек быстрее получает нужную информацию, реже сталкивается с задержками и ощущает плавность работы интерфейса, это напрямую влияет на вовлеченность, удержание аудитории и, в конечном итоге, на бизнес-показатели продукта.
- Вы участвовали в реализации ряда проектов по повышению производительности в приложениях, которыми пользуются миллиарды человек. Какие проекты вы считаете наиболее значимыми? В чем их особенности?
- В BigTech (бигтех), как и в небольших продуктах, ключевую роль играет старт приложения. В приложениях с миллиардами пользователей даже десятки миллисекунд могут масштабироваться в сотни миллионов сессий. В таком продукте нельзя просто «ускорить приложение» за счет отключения или упрощения функциональности. Почти каждая часть продукта для кого-то критична, даже небольшие изменения могут затронуть очень большую аудиторию.
Поэтому задача не только в том, чтобы найти элемент, который нуждается в оптимизации, а в том, чтобы выстроить методологию поиска таких элементов. В моей работе одним из таких подходов был анализ визуального дерева приложения: мы исследовали, какие компоненты и зависимости участвуют в загрузке экранов, какие из них действительно нужны пользователю сразу, а какие можно отложить до более позднего момента.
Это позволяло находить скрытые источники замедления и оптимизировать не только старт приложения, но и загрузку ключевых вкладок и пользовательских сценариев.
— Ваш опыт охватывает несколько принципиально разных инфраструктурных направлений: производительность, продуктовую платформу, платежные сценарии и приватность данных. В частности, вы участвовали в запуске Stories (сторис) в мобильном приложении «Тинькофф Банка», интеграции Системы быстрых платежей и архитектурных решениях, связанных с защитой пользовательских данных. Что объединяло вашу роль в таких разных проектах и в чем заключалась ее критическая значимость?
- Эти проекты действительно были очень разными по природе. Но во всех случаях моя роль была похожей на уровне инженерного мышления: нужно было взять сложное требование — продуктовое, техническое или регуляторное — и превратить его в архитектурное решение, которое может работать внутри крупного приложения без ущерба для надежности, скорости и дальнейшего развития продукта.
Например, при запуске Stories в мобильном приложении «Тинькофф Банка» задача не сводилась к добавлению нового визуального формата. За таким продуктом стоит инфраструктура: хранение и доставка контента, обновление сценариев, аналитика, интеграция с внутренними сервисами, управление пользовательским опытом и сохранение высокой производительности интерфейса. Одним из ключевых архитектурных решений был Server-Driven UI (подход, при котором сервер отдаёт клиенту описание), который позволял управлять значительной частью сценариев на стороне сервера, сохраняя нативный внешний вид, скорость работы и качество анимаций на устройстве.
Похожая логика была и в платежной инфраструктуре. При поддержке Системы быстрых платежей было важно не просто добавить в приложение новый способ перевода, а сначала развить платежную инфраструктуру на мобильной платформе: определить общие абстракции, правила работы переводов, взаимодействие с существующими сценариями и границы ответственности между клиентской частью и внутренними сервисами. В этом проекте я отвечал за мобильную архитектуру платежей на iOS, и внедрение СБП поверх уже подготовленной инфраструктуры как надежную и естественную часть продукта.
- Какие инфраструктурные подходы реализуются в проектах, касающихся обеспечения приватности данных пользователей?
- В этом направлении реализуется отдельный тип инженерных решений по защите пользователя и созданию безопасной среды для разработки новых продуктов. В таких проектах система должна не просто формально соответствовать требованиям приватности, а снижать риск неправильного использования данных на уровне архитектуры. Это означает, что данные, которые не должны применяться в определенных сценариях, не должны быть доступны ни разработчикам, ни сервисам, работающим с этими сценариями. В частности, я занимался ATT-интеграцией в AudienceNetwork (аудиенс нэтворк)* и внедрением SKAdNetwork (скэд нэтворк)** — механизма, необходимого для корректной анонимизированной атрибуции рекламных кампаний. С инженерной точки зрения это был не просто compliance-проект. Такие изменения затрагивают фундаментальные принципы работы рекламной сети: измерение эффективности кампаний, передачу сигналов, сохранение приватности пользователя при одновременном сохранении бизнесовой логики платформы. Инженерная задача состояла в том, чтобы сохранить измеримость и работоспособность рекламной платформы при принципиально меньшем объеме пользовательских сигналов.
- Сегодня невозможно говорить о разработке без упоминания искусственного интеллекта. Но насколько сильно он реально меняет работу инженера и разработчика? И, глядя на этот тренд, ощущаете ли вы дефицит специалистов, способных работать на стыке такой сложной архитектуры и новых технологий?
- ИИ для меня — это прежде всего мощный инструмент, применение которого в моей работе сфокусировано на анализе данных: метриках, трассировках, профилях производительности. Раньше исследование одной сложной проблемы могло занимать часы, а сегодня ИИ помогает находить скрытые закономерности, быстрее проверять гипотезы и радикально увеличивает пропускную способность инженера.
Однако здесь есть принципиальная граница: анализ — это ещё не инженерное решение. И даже самый продвинутый ИИ не способен понять, действительно ли проблема заслуживает внимания, какие системные компромиссы придётся принять и как сегодняшнее изменение отзовётся на архитектуре через два-три года — это по-прежнему исключительно зона ответственности человека. Сегодня достаточно много сильных инженеров, прекрасно умеющих разрабатывать отдельные компоненты, но значительно меньше специалистов, которые одновременно понимают мобильную разработку, инфраструктуру, производительность, надёжность распределённых систем и влияние технических решений на бизнес — такая системная экспертиза появляется только после многих лет работы над действительно крупными платформами.
Именно поэтому сегодня особенно востребованы инженеры, умеющие видеть систему целиком, и в этом смысле ИИ становится не угрозой для нашей профессии, а её усилителем: он берёт на себя рутину анализа, освобождая человека для главного — принятия сложных решений, формирующих тот самый невидимый пользовательский опыт, который миллиарды людей ценят каждый день.
___________________________________
*Audience Network (аудиенс нэтворк) - рекламная сеть / платформа, которая объединяет рекламодателей и владельцев сайтов и мобильных приложений, помогая размещать рекламу на доступных рекламных площадках.
**SKAdNetwork (скэд нэтворк) - инструмент компании Apple для измерения эффективности рекламы на устройствах iOS .
Автор материала: журналист Олег СОИН