Инфраструктура, инфраструктура, инфраструктура!

Инфраструктура, инфраструктура, инфраструктура!

 
Привет вэйзеры!

Как всем известно, недавно вышла новая версия waze 3.0 для iPhone и готовится к выходу версия 3 для Android. Всё бы хорошо и всем вроде бы нравятся нововведения, но в целом работа система пока далека от идеала, о чем регулярно говорят вэйзеры в своих обращениях к разработчикам, обращая также внимание, что проблема лежит не на поверхности, а во всей инфраструктуре проекта. Какие именно проблемы есть нынче у waze и как с ними борются разработчики, нам поведает отец-основатель waze Ehud Shabtai.

Оригинальный пост Эхуда можно найти на официальном форуме, здесь же мы публикуем её вольный перевод.

Совсем недавно мы выпустили новую версию клиента waze 3.0 для iPhone (версия для Android устройств на подходе!) и получили невероятное количество отзывов. Многие сетуют, что мы неправильно расставили приоритеты. Вместо того чтобы переделывать дизайн клиента или добавлять новые плюшки и функции, вы говорите, что нам следовало бы задуматься об улучшении нашей инфраструктуры.

Инфраструктура – это важная часть системы, включающая в себя различные сервисы, и мы прекрасно понимаем, что многие вещи, обещанные нами, не работают должным образом. В основном это касается функции “daily process” (ежедневное обновление), которая отображает баллы, обновление и редактирование карты. C вашей точки зрения они не улучшились за последний год, а мы кормим вас обещаниями, говоря: “мы работаем над этим”.

На самом деле все основные силы наших разработчиков брошены именно на работу над инфраструктурой и мы никогда не останавливали её разработку для добавления новых функций. Мы постоянно работаем над усовершенствованием backend серверов. Но почему же вы не видите всех улучшений? Существуют несколько причин:

  • Наше сообщество очень быстро увеличивается. Хотя многие вещи не улучшились, они также и не ухудшились, это значит, что мы работаем над улучшением, но видимо недостаточно быстро. Каждый раз когда мы оптимизируем наши сервисы, мы наблюдаем, что проходит всего несколько дней и новые пользователи заполняют всё свободное пространство.
  • Некоторые улучшения являются прозрачными. Дважды за этот год мы столкнулись с остановкой наших сервисов на несколько часов. Наши сервисы работают при помощи AWS, и как только у нашего провайдера возникают проблемы, наши службы оказываются недоступными. На протяжении последних нескольких месяцев мы работали и продолжаем работать над переносом наших служб на несколько зон обслуживания AWS. И если одна из зон откажет в работе, то работа продолжится в другой зоне.
  • Важные процессы и зависимости. Такой процесс, как “daily process” очень важен, он включает в себя анализ треков пользователей, обновление точек (частично построенное на анализе треков), обновление карты, переключение на новые карты и т.п. Так как каждый процесс зависит от многих других, сбой в любом сегменте приводит к сбою во всём процессе. В то время, как мы улучшаем и оптимизируем разные звенья этой цепи, всегда находится слабое звено, которое приводит к задержкам в работе всего процесса.
  • Внедрение и тестирование. Внесение изменений в инфраструктуру – это длительный и скрупулезный процесс. Эффект от некачественного внесения может быть гибельным.

Всё это время мы не покладая рук трудимся над улучшением инфраструктуры. Но весь процесс протекает не так быстро, как нам хотелось бы. Ещё раз хочу сказать вам, что дело движется и очень скоро всё наладится. И вместо того чтобы обещать эти изменения, я хочу описать на каком этапе мы сейчас находимся и когда это случится.

  • Cartouche. Недавно мы запустили новый редактор карт, в котором полностью изменён Пользовательский Интерфейс (UI). Но это не только проект по изменению UI. Был полностью переписан “backend” редактора. Изменения позволили нам добавлять столько серверов для обработки данных, сколько нам необходимо. Я думаю, все заметили, как увеличилась скорость работы нового редактора по сравнению со старым. Хотя мы по прежнему ограничены в количестве сохранений карты в секунду, но у нас есть возможности для улучшения.

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

    Через несколько дней мы запустим новое обновление которое возобновит работу сервиса сообщения об ошибках. Эти сообщения помогут увидеть проблемы на карте и исправить их.

  • Очки. Мы работали над оптимизацией системы подсчёта очков. Расчёт затрагивал многие другие сервисы и ресурсы. Сейчас для подсчёта очков мы используем “Hadoop”, это позволит нам без проблем масштабировать вычислительные ресурсы в любое время. Преимущество новой системы также в том, что очки будут обрабатываться каждый день не влияя на другие процессы. Основная работа уже проделана и мы планируем запустить сервис через неделю или две. Следующим шагом, над которым мы уже начали работать, будет возможность обрабатывать обновлять очки практически в реальном времени. Подробнее об этой возможности будет сообщено по окончании разработки этой функции.
  • Добавление ваших треков. Некоторое время назад мы уже написали программу для добавления треков, которая может быть легко масштабирована при желании. И совсем недавно мы закончили работу над приложением, которое будет собирать и подготавливать ваши треки для добавления. Теперь данные о вашем перемещении, новые дороги, записанные вами, и добавленные камеры будут появляться на сервере буквально через час. Также вы сразу же сможете редактировать ваши новые данные.

    Некоторые функции такие, как обнаружение запрещённых поворотов и направления движения, пока ещё будут обрабатываться один раз в день. Но мы работаем над улучшением и этой части.

    Новая система сейчас усиленно тестируется и планируется к запуску в течении месяца.

  • Различие серверов США/Остальной мир. Проблемы карты пока отображаются только для США. Мы планируем запустить этот сервис и для остального мира тоже. Наш принцип, не делать разницы между серверами, так на много труднее управлять разными конфигурациями. Сейчас существует некоторый разрыв, но мы прилагаем все усилия для того чтобы его сократить.

Оптимизация “daily process” – это наша приоритетная задача в отладке инфраструктуры. Мы усиленно трудимся над оптимизацией и созданием возможности для лёгкого масштабирования. Наша первая цель – достигнуть предсказуемых циклов т.к. на данный момент я уверен, что разочаровывает работа над картой, когда ты даже не знаешь когда она будет доступна клиенту.

Мы будем держать вас в курсе всех изменений.

Эхуд

Обсуждение waze 3.0 для iPhone и iPad на нашем форуме
Обсуждение новой beta waze 3.0.0.993 для iPhone и iPad