Привет! Меня зовут Анатолий Орлов, и я технический директор AliExpress Россия. Сервис доступен русскоязычным пользователям уже 11 лет, при этом офис компании в Москве открылся только пять лет назад, а локальная команда разработки появилась лишь в прошлом году. Ее главная задача – адаптировать площадку, изначально заточенную на китайский лад, к реалиям Рунета и сделать ее понятнее и проще для русскоязычных пользователей.
Почему китайский поисковый движок не подходит для рунета, как помочь локальным продавцам получить больше заказов, какие технологии и почему для этого нужно адаптировать – в первой статье в нашем блоге на Хабре поговорим о процессе переноса разработки, трудностях на этом пути, первых проектах и планах инженерной команды. Поехали!
Зачем вообще переносили разработку
Решение о переносе разработки в Россию было принято после создания совместного предприятия (СП), в котором приняли участие Alibaba, Mail.Ru Group, «Мегафон» и РФПИ. Сделано это было для того, чтобы развивать площадку в сфере электронной коммерции по правилам и законам российского рынка и для удобства российских пользователей и селлеров.
Это я
В последние годы русскоязычная часть AliExpress интенсивно развивалась и требовала больше ресурсов и фокуса. При этом российский бизнес для Alibaba Group в целом – это слишком маленький сегмент в сравнении с любым китайским сервисом компании, так что получить ресурсы для проведения изменений было очень сложно. Когда разработка русскоязычной платформы не находится в России, то проекту нужно ждать своей очереди на ресурсы разработки. А учитывая, что очередь приоретизируется по объему рынка, пользователям Рунета приходилось ждать улучшений продолжительное время. Если же инженеры работали бы в России и постоянно занимались именно российским AliExpress, понимая, как делать продукт, востребованный здесь, это открыло бы больше простора для развития.
После создания СП ситуация сдвинулась в эту сторону, мы активно начали наращивать техническую команду. Так, если в январе 2020-го нас было около 40 человек, то в январе 2021 года число инженеров выросло почти до 400. Что же делают все эти люди?
Адаптация глобального сервиса под рунет
Звучит всё довольно просто: нужно всего лишь «забрать» в свое ведение важные для локального рынка части системы (например, поиск), адаптировать их и развивать площадку в дальнейшем. На практике всё оказывается совсем не так легко.
Инфраструктура AliExpress изначально не была рассчитана на то, что в будущем могут появиться проекты в разных странах, которые будут развиваться по правилам локального рынка и силами местных специалистов. Код писался китайскими разработчиками, с использованием удобных им инструментов, в том числе внутренних технологий Alibaba, которые трудно применять вне Китая. Например, может быть отличная технология с документацией только на китайском языке и требующая логина из двух иероглифов, чтобы начать с ней работу.
Фото: Олег Лозовой / РБК
Несмотря на то что одним из главных языков программирования во всей экосистеме является Java, почти всё окружение и инструменты проприетарны. Довольно часто встречаются форки популярных известных открытых решений, но в общем объеме инфраструктуры их не так много. Часто такие системы сильно «допилены» и имеют мало общего с исходным проектом. Например, у Alibaba есть чудесная технология MaxCompute, которая внешне почти неотличима от hadoop и, видимо, когда-то была форкнута от hadoop, но размеры кластеров, находящихся под ее управлением, таковы, что у разработчиков hadoop глаз бы задергался от зависти.
Типичная локализация разработки чего-то выглядит так: мы берем часть системы AliExpress и делаем ее локальный форк – в смысле копируем сервисы, деплоим вторую копию приложений и переключаем трафик. После этого мы получаем возможность изменять код, не влияя на китайские части системы в других странах.
Взаимодействие с китайскими коллегами-инженерами – тоже необычный опыт. Существуют культурные особенности подхода к работе и самой рабочей этики, нельзя сбрасывать со счетов и большую разницу во времени. Плюс дает о себе знать и тот факт, что инженеры в Китае и России привыкли работать с разными технологиями – и чтобы настроиться на одну волну в обсуждениях, людям с разным опытом требуется время.
В китайской культуре принят непрямой feedback. Это когда собеседнику напрямую не указывают на недочеты в его работе, да еще и публично – чтобы не расстроить и не унизить, – а осторожно намекают. С пониманием обычно не возникает трудностей. К примеру, слово suggest (по-русски «предлагать») для китайцев имеет другое значение. Если такое «предложение» исходит от руководителя – следует воспринимать это как приказ, который нужно исполнить. В случае когда что-то изменить «предлагает» коллега из другой команды – это означает довольно настойчивую просьбу.
Русскоязычным разработчикам с их привычкой давать прямую обратную связь это не всегда понятно, а китайских коллег часто шокирует стандартный русский заход «вы сделали не то, нужно переделать». Результатов можно в любом случае достигнуть, но на переговоры и обсуждения может уходить чуть больше времени, чем мы привыкли.
Даже сам процесс общения с китайскими коллегами выглядит иначе: они очень активно используют смайлики даже в сугубо деловой переписке. Неважно, насколько серьезный вопрос вы обсуждаете, чат будет полон эмодзи:
Смена стека технологий, замена поискового движка, промо локальных продавцов
Для AliExpress в России мы приняли решение в конечном итоге отказаться от проприетарного стека технологий в тех областях, где это имеет смысл. Например, где в open source есть сравнимые по качеству аналоги и где переход можно осуществить относительно малой кровью.
Часто вместо Java мы используем Kotlin, пишем отдельные сервисы на Go и .Net, применяем Kubernetes, GitLab, k8s, Prometheus, Grafana, Opsgenie и т. п.
При этом многие проекты Alibaba Group останутся в стеке, потому что они хорошие и/или нужные. Например, источником знаний о товарах кросс-бордера (то есть, которые можно купить у зарубежных поставщиков) всегда будет система Alibaba; мы можем написать свою, но заставить перейти туда 100 млн китайских селлеров будет довольно тяжело.
Одно из первых изменений: мы занялись заменой китайского движка поиска. Сейчас он отнюдь не всегда применим для русских запросов, например в некоторых местах поисковый запрос обрезается до 30 символов – при этом посередине слова. На первый взгляд – какой-то ужас, но для китайского движка это довольно логично, ведь там нет пробелов, а запросы длиной 30 символов (т. е. иероглифов) не встречаются в реальной жизни. На самом деле, поправить эту особенность несложно, но, когда дефектов много, более надёжным подходом будет сделать свой движок поиска. При всем этом технологически поисковая платформа Alibaba близка к state of art.
Другое важное изменение: мы начали работы по выделению в выдаче товаров локальных продавцов. Проблема глобального AliExpress заключалась в том, что даже если товар, который можно купить у российского продавца и заплатить меньше за доставку, существовал, то российские пользователи могли об этом не узнать.
Фото: Олег Лозовой / РБК
Алгоритмы machine learning Alibaba заточены под продвижение товаров с наибольшим объёмом продаж, и закономерно возникает проблема курицы и яйца: российский сегмент платформы здесь не может конкурировать с Китаем, а в итоге местные продавцы не получают достаточных позиций в поиске. После ряда неудачных попыток и экспериментов нам удалось повысить позиции российских товаров, но система всё еще далека от идеала, мы будем её улучшать.
В итоге российская инженерная команда взяла на себя развитие сайта aliexpress.ru, российского мобильного приложения, и вскоре в сферу ее ответственности войдут и все остальные аспекты – вроде программы лояльности.
Что дальше: полностью свой поиск, еще больше трафика локальным товарам, багфиксинг
Мы активно «пилим» новый поиск, который будет включать алгоритм продвижения локальных товаров по самым популярным запросам и выдавать рекомендации к ним так, чтобы при этом не терять объем продаж. Ну и естественно, он будет искать так, как привыкли русскоязычные пользователи. Текущий статус: мы провели первый a/b тест, результаты которого нас радуют.
Мы знаем о некоторых «родовых травмах» AliExpress, которые всех бесят, в частности постоянный разлогин на сайте, баги в локализации, что нам пока не удалось победить, так как мы еще не «забрали» нужный код, но мы над этим работаем.
Очевидно, что некоторые части системы AliExpress полностью локализовать не удастся никогда, но мы хотим добиться состояния, при котором для пользователя и селлера платформа будет максимально удобна, без ограничений. Мы будем активно этим заниматься и рассказывать о своем опыте в блоге на «Хабре». Так что подписывайтесь и пишите в комментариях, о чем нам рассказать в следующих статьях.
Автор: Анатолий Орлов