Всем привет! Меня зовут Илья Пятин. Я отвечаю за IT в компании CarPrice и сегодня хочу в общих чертах рассказать вам о внутренностях нашей платформы и из чего мы её делаем.
Наш рассказ будет следовать этой схеме, так что время от времени мы будем её повторять, чтобы вам не пришлось часто возвращаться в начало:
Приём автомобиля
Итак, человек хочет продать свой автомобиль. Он заходит на наш публичный сайт (есть закрытые части системы, про них далее), заполняет короткую форму и записывается на встречу в одном из наших филиалов (их у более 45 в 21 городе России).
Техническая справка
Видимый всем клиентский сайт на битриксе в текущей микросервисной архитектуре по факту является одним из «фронтов». Информация, вводимая владельцами автомобилей, передаётся во внутренние хранилища, систему аналитики, колл-центр, маркетинговые системы и так далее.
Также на публичном сайте доступен калькулятор, с помощью которого вы можете примерно оценить, сколько можно будет выручить за машину на аукционе CarPrice. Цены рассчитываются с помощью аналитического алгоритма на основании уже имеющейся у нас статистики продаж по конкретным маркам, моделям, техническому состоянию, спросу в различных регионах страны и так далее.
После ввода данные попадают в наш колл-центр. С владельцем машины созваниваются, уточняют дополнительную информацию и предупреждают, какие документы надо с собой взять.
Техническая справка
Колл-центр построен на платформе Oktell/MSSQL и работает в нашем приватном облаке. Он интегрирован с CSI — расширенной системой опроса пользователей, клиентской CRM и различными сервисами рассылок и уведомлений. Там же фиксируется первичная информация о владельце автомобиля, юридическом статусе машины и так далее.
Когда человек приезжает в выбранный филиал, его там встречает наш сотрудник — специалист по осмотру автомобилей. Он проверяет документы с помощью нашей внутренней системы под названием AutoCheck. Туда вносится информация из ПТС, СТС и паспорта, а AutoCheck проверяет информацию по всем доступным базам госслужб и собирает данные о различных запретах, ограничениях, штрафах и прочих юридических проблемах, которые могут возникнуть при продаже этой машины.
Если обнаруживаются проблемы, то мы сообщаем о них владельцу машины и объясняем, как их можно решить. Если речь идёт только о неоплаченных штрафах, то мы можем оплатить их за него. Если всё в порядке, то наш коллега — инспектор — с помощью разработанного нами мобильного приложения, которое мы так и называем «приложение Инспектора», заносит в базу всю информацию об автомобиле. Делается это по определенному алгоритму: он выбирает марку, модель, год выпуска, делает фотографии кузова, салона, указывает повреждения, комплектацию и так далее. Алгоритм осмотра одинаков для всех легковых автомобилей.
Когда инспектор заканчивает осмотр, он нажимает в приложении кнопку «Ок», и вся информация уходит по сети в нашу онлайн-платформу.
Основные фичи приложения:
- С сервера загружается универсальный сценарий, который влияет на последовательность действий инспектора, осматривающего автомобиль.
- При осмотре приложение может работать полностью в offline-режиме, поскольку наши сотрудники работают в очень разных условиях, иногда и на территории клиента.
- Проверка ограничений на регистрационные и прочие действия через ГИБДД, ФССП, Автокод и т. д.
- Встроенная система умного сжатия и многопоточной передачи фото- и видео- в облачное хранилище.
- Собственная компьютерная диагностика через сканер OBD-2.
- Работа с мобильными принтерами.
- Электронный указатель повреждений автомобиля.
Техническая справка
Архитектура приложения построена по шаблону MVVM с использованием RxJava, Dagger, Retrofit 2, Realm, Amazon SDK и так далее.
Выставление на продажу
Когда инспектор закончил работу, собранные им данные превращаются в лот на аукционе: агрегируются и выводятся в удобочитаемом виде. А дилеры, которым может быть интересна эта машина, получают уведомление. Кстати, за уведомление дилеров частично отвечает нейросеть, анализирующая их поведение и прошлые покупки.
По факту дилеры не видят сам автомобиль. Им доступна лишь карточка в аукционной системе, с результатом осмотра и фотографиями, сделанными нашим инспектором. В это время автомобиль находится в одном из наших офисов.
Ещё одно пояснение: когда результаты осмотра попадают в нашу систему, то, чтобы не вываливать дилерам сотни пунктов, выполняется агрегация данных и приведение к балльной системе — машина получает «звёзды». Всего четыре критерия, по каждому из которых может быть до 5 звёзд:
- кузов
- техническое состояние
- салон
- сопутствующие факторы
Почему мы решили ввести «звёзды»? Дело в том, что чек-лист инспекторского приложения состоит из более чем 1000 пунктов. Каждому пункту присвоен свой вес. К тому же список регулярно пересматривается: что-то добавляется, что-то убирается. Поэтому «звёзды» жизненно необходимы, чтобы дилеры могли быстро получить представление о состоянии автомобиля, а также чтобы сформулировать гарантийную политику на этот авто.
После того как карточка поступает в аукционную систему, владелец авто ждёт 30 минут. Он может на отдельном телевизоре — дашборде — в реальном времени наблюдать все текущие торги, видит, как дилеры делают ставки на его автомобиль, из каких они городов, сколько времени осталось до конца аукциона. Большинство наблюдают за торгами с большим азартом. Если время почти закончилось и пришла новая ставка, то платформа продлевает аукцион ещё на некоторое время. И такие продления могут происходить несколько раз, чтобы владелец смог выгоднее продать свой автомобиль, если на него есть спрос.
Техническая справка
Дашборд — это SPA на Vue.js и push-уведомлениях. По сути это страница, которая получает частичную информацию обо всех ставках и в компактной форме выводит данные из текущих аукционов по тому филиалу, в котором находится клиент.
Основная часть платформы написана на PHP, но ряд самых критичных к скорости и нагрузке компонентов мы сделали на Golang: приём ставок, роботы, торгующиеся за дилера и так далее. Система отправки уведомлений — один из очень важных для нас компонентов — реализована на Slanger. Это open source система уведомлений на базе протокола от Pusher с промежуточным хранилищем в Redis.
Из аукционной платформы данные отправляются в логистическую, статистическую и маркетинговую системы (используется, в том числе, для A/B-тестирования). Для отдела продаж создан отдельный интерфейс на пушах для наблюдения за ходом аукционов.
Дилеры и аукцион
Дилеры могут зайти в аукцион либо через браузер, либо через мобильное приложение. Многие из них не сидят в офисе, а постоянно ездят на встречи, смотрят автомобили, поэтому приложение для них более актуально. Если же компания крупная, то она, наоборот, часто выделяет отдельного сотрудника, который сидит и целенаправленно покупает на CarPrice машины, удовлетворяющие определённым, ему озвученным критериям.
Выбрав карточку интересующего автомобиля, дилер может полистать фотографии, посмотреть комплектацию, оценить повреждения:
В карточке, сделанной на связке React+Redux, отображается таймер, показывающий, сколько осталось до конца торгов по этому лоту, и можно сделать ставку. Если вы участвовали в онлайн-аукционах, например, на eBay, то можете хорошо представить, как в последние секунды разгорается борьба между дилерами за «лакомые» автомобили.
К слову, мы реализовали на Go сервис «автоставок» для дилеров. По сути это роботы, которым можно сказать: «Торгуйся за эту машину вплоть до такой суммы», и пойти смотреть другие лоты. Как только ваша ставка будет перебита, бот автоматически сделает ставку выше.
Дилеру нужно не просто победить в аукционе, ему нужно предложить такую цену, за которую владелец согласится продать свою машину. Ведь если кто-то из дилеров выиграет торги с самым высоким предложением, но оно не устроит владельца, тот может просто отказаться и уехать. Кстати, для владельца авто вся процедура оценки машины и её выставления на аукцион полностью бесплатна вне зависимости от его конечного решения.
Но и дилер находится в выгодном положении: он пока ничего не заплатил, но при этом получает товар с нашей технической экспертизой, с качественными фотографиями, отсутствием необходимости куда-то ехать и с кем-то общаться. К слову, сейчас мы внедряем алгоритм, который автоматически определяет уровень качества фотографии, которую сделал инспектор при осмотре принимаемых автомобилей, чтобы сообщить ему о необходимости переснять её, если снимок получился «не очень».
Основные фичи дилерского приложения:
- Возможность где угодно участвовать в торгах.
- Список ожидаемых аукционов, позволяет спланировать время дилеров.
- Внутренние и push-уведомления о новых аукционах.
- Встроенная оплата участия.
- Отображение всех повреждений, которые были указаны при осмотре автомобиля на интерактивной карте.
Склады и логистика
Допустим, кто-то из дилеров в жаркой схватке одержал победу, выиграл торги, и предложенная сумма устроила владельца автомобиля. В этом случае мы сразу отдаём ему всю сумму, оформляем документы, и счастливый, теперь уже бывший владелец уезжает праздновать сделку.
Автомобиль временно оказывается у нас — мы за него уже заплатили и теперь хотим отдать победителю. К примеру, на текущий момент мы владеем более чем 1000 автомобилей. Естественно, такой географически распределённый автопарк с постоянной «текучкой» требует строгого учёта. Мы не нашли подходящего стороннего решения и написали собственную складскую систему, с которой работают все филиалы. Она же позволяет отслеживать все перемещаемые между филиалами автомобили, планировать фрахт автовозов и так далее.
Техническая справка
Это собственный сервис на Laravel/MySQL/Vue с кучей внешних интеграций.
QA
Итак, дилер выиграл аукцион по какому-то лоту, и автомобиль прибыл на склад соответствующего города. Здесь он проходит процедуру осмотра — QA, всем вам известный quality assurance. Только в данном случае речь не о проверке новой фичи в продукте, а о повторной оценке состояния автомобиля. Достаточно ли точно была проведена оценка при приёмке? Нет ли каких-то упущенных дефектов?
У сотрудников QA тоже есть своё мобильное приложение с чек-листом, в которое подгружаются результаты первого приёмочного осмотра. Поскольку машины осматриваются не в тепличных условиях с Wi-Fi-подключением, а на складах-стоянках, причём нередко «вдали от цивилизации», то мы адаптировали приложение для работы в условиях низкого уровня связи. Это в городах-миллионниках хорошее покрытие LTE или 4G, да и то не во всех. А в городах поменьше, да ещё и на окраинах, и Edge может быть редкостью. Перед осмотром сотрудник подгружает в офисе данные по машинам, которые будет осматривать — а это до 500 Мб данных и фотографий по каждому автомобилю, и идёт в поля. Там он вносит в информацию корректировки, и когда появляется связь, выполняется автоматическая синхронизация с платформой.
Основные фичи QA-приложения:
- Планирование рабочего дня сотрудников склада.
- Актуальный список дилеров, желающих забрать свои автомобили.
- Актуальный список автомобилей на складе.
- Осмотр автомобиля по загруженному ранее акту осмотра с дилером.
- Фиксация неучтенных повреждений.
- Запуск внутренних бизнес-процессов.
Техническая справка
Приложение сделано на MVP с Retrofit 2, EventBus, Realm, Amazon SDK, JobQuery и так далее.
Выдача автомобилей дилерам
У каждого дилера есть личный кабинет с системой онлайн-бронирования. В нём можно записаться отдельно на осмотр и на выдачу автомобилей.
Почему отдельно? Дилеры — это бизнесмены. Прежде чем заплатить, они хотят сначала посмотреть товар, убедиться, что он соответствует описанию из карточки лота. Ведь автомобили — вещь не дешёвая, риски довольно высоки. Дилер осматривает автомобиль вместе с нашим сотрудником, а результаты осмотра фиксируются в приложении QA. Если дилер не имеет претензий, то система документооборота выставляет ему счёт на оплату. После этого он оплачивает его и может записаться на выдачу, чтобы забрать своё приобретение.
На этом наша основная бизнес-цепочка завершается.
Техническая справка
Система документооборота — это отдельный модуль для «1С: Битрикс». Она генерирует пакеты документов по каждой сделке с учётом всевозможных условий.
Длительный аукцион
Бывает так, что на аукцион приехал автомобиль, который по каким-то причинам в течение получаса не привлёк внимание дилеров или за него предложена слишком низкая сумма, и мы понимаем, что владелец на неё не согласится. Но при этом мы знаем, что в нашей клиентской базе есть те, кого автомобиль может заинтересовать, или кто готов будет предложить за него больше, просто сейчас они не смогли участвовать. В таком случае мы зовём нашего «внутреннего дилера», просим его взять риски на себя и выкупаем автомобиль, предложив владельцу бОльшую сумму, чем дилеры. После оформления документов мы выставляем машину на так называемый длительный аукцион, не имеющий ограничения в 30 минут. К слову, многие дилеры предпочитают именно такие лоты, потому что здесь не нужно торопиться, можно спокойно оценить автомобиль, приехать на стоянку, посмотреть, подумать.
Откуда мы знаем, сколько нужно предложить владельцу? Почему мы считаем, что автомобиль у нас потом выкупят? За это отвечают наши специалисты, ориентируясь на аналитическую систему, которая просматривает историю торгов по похожим автомобилям, анализирует спрос и клиентскую базу и на основании множества критериев выбирает дилеров, которые пока не увидели данный лот, но могут проявить к нему интерес. Сегодня в нашей клиентской базе около 30 000 дилеров, и далеко не все из них пользуются смартфонами и компьютерами: немало тех, кто до сих пор ходит с кнопочными телефонами. Регулярно их обзванивать, рассказывая об интересных лотах — не хватит никаких колл-центров. Тем не менее, это успешные бизнесмены, которым можно регулярно отправлять дайджесты с потенциально интересными для них лотами из длительного аукциона.
Также мы внедрили автоматическую рекомендательную систему. Нейросеть анализирует все лоты, а не только те, по которым нет ставок или предложено слишком мало. Это позволяет адресно вызывать на аукцион именно тех дилеров, которым наиболее интересна конкретная машина.
Техническая справка
Нейросеть была сначала смоделирована в MATLAB, а затем портирована на Tensorflow, есть места на NumPy. Всё это работает в виде отдельного микросервиса, который собирает информацию о конкретных лотах и выбирает из базы дилеров тех, кому эти лоты могут быть интересны. Она анализирует прошлое поведение дилеров: кто, когда и какие лоты смотрел, за какие машины торговался, победил или не победил, сколько сейчас машин куплено, ждут ли какие-то счета оплаты.
На основании многих сотен критериев, описывающих автомобиль, нейросеть выделяет те машины, которые могут быть интересны конкретному дилеру. Более того, основываясь на истории поведения дилеров, неройсеть может выделить предпочтения, которые сам дилер для себя не сформулировал. Например, она может догадаться о том, что дилер не интересуется машинами, у которых больше двух владельцев по ПТС или салон не из кожи. А другой дилер часто смотрит праворульные «японки», их ему надо показывать в первую очередь.
Подводя итог вышесказанному: длительные аукционы помогают предложить владельцу автомобиля справедливую цену, а потом найти дилера, который готов заплатить за неё достойную сумму.
Зачем всё это дилерам?
Возможно у вас давно возник вопрос, а зачем дилерам покупать подержанные машины, конкурируя друг с другом на аукционе и повышая цену? Всё очень просто: мы лишь проводим техническую оценку автомобилей, но не проводим никаких технических работ. Всем этим потом занимаются дилеры: ремонтируют, заменяют, чистят, красят, рихтуют. В общем, увеличивают ценность авто и готовят его к тому, чтобы оно обрело нового владельца, а затем — продают с наценкой. Таким образом, с нашей помощью они экономят на этапе подбора и покупки.
Другие разработки
Уже выпущен личный онлайн-кабинет для владельцев автомобилей на React/Redux. Когда человек решает продать машину и регистрируется в CarPrice, то в его личном кабинете появляется полезная информация о том, какие документы нужно подготовить, как проверить наличие неоплаченных штрафов, как лучше подготовить машину к продаже, как доехать до ближайшего офиса CarPrice и многое другое.
Результаты работы всех систем агрегируются в систему BI для последующей глубокой аналитики. По мере роста компании аналитика начинает играть всё более важную роль в самых разных бизнес-процессах и принятии решений, поэтому сейчас у нас есть целый отдел, посвящённый анализу собственных данных.
Технологии
Стек основных технологий, используемых в CarPrice, выглядит так:
Помимо вышеупомянутых приложений и систем мы создали немало других IT-продуктов, а также интегрировали сторонние решения, которые помогают нам быстрее разрабатывать: Huginn, Zapier, Exponea.
Весь обмен данными между сервисами и системами выполняется напрямую через внутренние API, защищённые jwt-токенами. Все ключевые сервисы работают на очередях RabbitMQ.
Нагрузку на сервисы регулируют nginx-балансировщики, и, конечно, все ключевые системы защищены антиDDoS-зонтиком.
У нас много интересного, и мы планируем потихоньку рассказывать об используемых решениях. Будет классно, если в комментариях вы отметите, о чём стоит рассказать в первую очередь.
Спасибо!
Комментарии (38)
Loki3000
25.05.2017 09:33+3Походил я по вашему сайту — сплошные рассказы о том, какие вы замечательные и выпрашивание моих данных. Для клиента полезной информации ноль. С отключенным яваскриптом, кстати, работает заметно бодрее (а, ну да — там JS на 1,2Мб… а на некоторых страницах и 2,5Мб). Сайт выглядит как клон любого другого по запросу «выкуп авто».
Я бы вам свою машину не доверил.
Dmitry_4
25.05.2017 10:21-6Ваш кар-пидарайс сплошное дерьмо и обман. Никакого аукциона там нет, просто осматривают машину и тут же предлагают цену в половину рыночной.
dkorablinov
25.05.2017 10:35+2Спасибо за статью!
Хотелось бы узнать о вашем подходе к разработке микросервисов на PHP: какой SAPI используете, как организовано общение между ними, каковы методики развертывания, какую нагрузку выдерживаютkoluchiy01
25.05.2017 14:57Апи в Ларавеле, Ларавель в докере, Докер в кластере, если коротко) Сервисы между собой общаются по внутреннему json API. Для авторизации в api используются jwt токены, которые генерятся и проверяются через отдельный сервис, написанный на Go и имеющий огромный запас по производительности. По развертыванию: из тега в гите строится контейнер, который едет в реджистри, из реджистри контейнер после тестирования едет в прод ансиблом (обновляем тег контейнера). По нагрузке бенчмарки не найду, в целом большинство микросервисов сильно не нагружены, а общая производительность кластера увеличивается за счет добавления серверов.
dkorablinov
25.05.2017 15:39Как вы решаете вопрос с веб-сервером? Apache в контейнере, fpm + nginx в контейнере, fpm в контейнере + внешний nginx, какой-то другой вариант?
koluchiy01
25.05.2017 15:55В основном каждый php сервис это 2 контейнера: контейнер nginx + контейнер fpm. Безусловно можно не ставить отдельный nginx над каждым php. Но отдельный nginx позволяет всю логику и настройки сервиса (тут могут быть и настройки nginx например) держать обособлено от остальных сервисов, а при масштабировании появляется выбор: масштабировать пару nginx+fpm или же масштабировать только fpm.
AleksandrKu
25.05.2017 10:56-2Хорошая статья, спасибо! Открыл для себя много нового! Рад, что сервис растет и продолжает технически развиваться. Знаю, что у вас много еще есть о чем рассказать. Например о процессе разработки и QA, у вас там накоплены отличные знания и решения! Ждем!
BigD
25.05.2017 12:01А если дефекты будут найдены уже в процессе процедуры осмотра — QA — кто понесёт связанные с этим потенциальные убытки?
koluchiy01
25.05.2017 15:34Это убытки карпрайса, поэтому грамотный первичный осмотр — очень важная задача.
maxru
25.05.2017 13:01+1Какой прекрасный зоопарк вы собрали. А зачем?
koluchiy01
25.05.2017 14:33У Вас вызывает отторжение использование больше одной технологии на проект? Или что-то конкретное?
maxru
25.05.2017 14:49У меня ничего не вызывает отторжения, у меня вызывает недоумение зоопарк технологий при выполнении схожих задач.
То есть быстрое и параллельное сделали на Go — ок. Битрикс с ларавелем зачем замешивать?
(ну то есть я-то знаю примерно, почему так вышло, но вопрос "зачем" — остаётся)koluchiy01
25.05.2017 15:08+2Битрикс случился исторически, мелкие сервисы на нем писать мягко говоря не удобно, поэтому появился ларавель. Переписать весь битрикс на ларавель быстро и без потери бизнес производительности не представляется возможным. Переход на сервисы позволяет удобно отдельную функциональность переводить на более подходящий инструмент, который в свою очередь ускоряет процесс развития этой функциональности (тут похоже я очевидную вещь написал). Итоговый ответ на вопрос «зачем?», это чтобы быстрее бежать и меньше спотыкаться.
maxru
25.05.2017 16:11Между "мы сделали прототип на битрикс и получили инвестиции" и нынешним моментом "мы всё ещё генерим документацию через битрикс" несколько лет прошло, могли бы уже и.
koluchiy01
25.05.2017 16:31+2Могли, но что-нибудь из бизнесовых фич тогда не сделали бы. Вопрос приоритетов, если документация до сих пор генерится через битрикс, значит она не настолько болит, чтобы ее переписать, отложив другие фичи. Да и «несколько лет» слишком сильное высказывание, компании всего 3 года.
prog666
25.05.2017 16:17У меня к вам ужасно негативное отношение. Выбирали другу машину, по телефону парень сказал что он владелец и продает сам, все рассказал, было видно что собственник. Договорились на осмотр. Вначале нам сказали подъезжать к торговому центру «карусель». По пути он отправил смску что вот адрес подъезжайте туда (через дорогу от карусели). По приезду оказалось что карпрайс. Почему нельзя было этого сказать по телефону? Я принципиально не собирался покупать машину в автосалоне, два часа времени из жизни зря на дорогу, не считая бензина.
koluchiy01
25.05.2017 16:40+1Я тут не очень компетентен, но кейс очень странный. Машины мы продаем дилерам.
prog666
25.05.2017 17:36Да, я наверное не по адресу… Но может кто из руководства прочтет. Я почему-то считал карпрайс честным автосалоном.
nswbit
25.05.2017 18:11Уважаемый prog666, это правда очень странно, потому что наша компания действительно работает честно. С вашего позволения, передал информацию коллегам, чтобы они разобрались с ситуацией. Если не против, напишут вам лс.
prog666
26.05.2017 10:47Я был не прав, внутри автосалона никто не говорил мне что это карпрайс, я сделал такой вывод по вывеске снаружи, видимо это соседи были.
paranoik2
25.05.2017 20:45Также на публичном сайте доступен калькулятор, с помощью которого вы можете примерно оценить, сколько можно будет выручить за машину на аукционе CarPrice.
Где, где он? Ткните меня носом, что бы я могу на него посмотреть.nswbit
25.05.2017 20:47-1Если на первой странице заполнить форму — оценка появится на второй
http://joxi.ru/l2ZN5pgSwGqjd2
1kot4u
26.05.2017 13:44большое спасибо за статью, она весьма интересна, однако со стороны клиента (продавца авто) у вас все очень непрозрачно, а по факту вы выступаете в роли перекупа между продавцом авто и будущим перекупом, то есть текущий владелец дважды теряет в выручке с машины. может быть стоит упростить вхождение на аукцион частных покупателей?
CarPriceIT
26.05.2017 14:05Добрый день, 1kot4u. За счёт того, что количество дилеров, принимающих участие в аукционе, довольно большое, а так же учитывая различия в ценообразовании между столицей и регионами, в большинстве своем клиентов устраивает предложенная сумма. Компания активно развивается, мы стараемся продумать и внедрить различные бизнес — стратегии, но, к сожалению, на данном этапе участие физических лиц в торгах крайне затруднительно.
kolabaister
26.05.2017 13:44Продавал свою прошлую машину у вас, продал, спасибо. Но есть много упреков о том, то в итоге вы называете клиенту не ту сумму что пришла на аукцион крайней. У меня так тоже было, но для меня это было не критично. Причем это не только мое мнение, но и многих моих знакомых, да и интернете такое пишется иногда.
Расскажите немного о том, как определяется победитель, и почему такое может быть?
А еще бы посоветовал потом клиенту отправлять результаты осмотра, полезно со многих точке зрения.CarPriceIT
26.05.2017 14:05Добрый день, уважаемый kolabaister. В первую очередь, хочу Вас поблагодарить за обращение в нашу компанию и поздравить с успешной продажей — мы будем рады видеть Вас снова! Что касается финальной ставки и определения победителя — разумеется, побеждает автодилер, предложивший максимальную цену по завершению аукциона. Однако, бывает что победитель в последний момент отменяет свою ставку — в таком случае мы озвучиваем цену того участника, что лидировал до него. В любом случае, последняя ставка дилера в полном объёме прописывается в ДКП, который при передаче ТС мы предъявим новому владельцу.
kolabaister
27.05.2017 15:08А отслеживаете ли вы дилеров, систематически повышающих ставки, а потом отменяющих их?
erotichnaya
27.05.2017 13:32+1Спасибо за статью!
Если не секрет, какой у вас в компании штат для разработки и поддержки такого проекта? Сколько разрабов, девопс, тестировщиков? Привлекаете ли аутсорс или все работы делаете своими силами?
Интересует именно техническая часть, не инспекторы/менеджеры/сотрудники салонов.
Спасибо!nswbit
29.05.2017 18:21Добрый день, erotichnaya!
Что касается разработки основного продукта, у нас около 30 разработчиков (в основном PHP/Go), примерно 10 тестировщиков, один девопс + itsumma.
Аутсорс почти не привлекаем, всё делаем сами.
В IT помимо этого также есть менеджеры, системные администраторы, отвечающие за работоспособность офисов, 1С и так далее.
merrygod
Хорошая статья, интересная.
Раз начали рассказывать про техническое направление, неплохо было бы узнать на какое железо и ПО используется, под какой нагрузкой находятся сервера в постоянном режиме и в пиковом.
nswbit
merrygod, давайте расскажем в отдельном топике, у нас разнообразные профили нагрузки и считать «хитами» в секунду у нас её часто бессмысленно)
kolabaister
А еще интересно техническое оснащение офисов, есть ли какой то стандарт, или все стихийно? Например, что происходит, если в офисе нет интернета — есть ли какой то промежуточный сервер офиса или интернет дублируется?
Для меня самого это больная тема, решаю ее многократным резервированием провайдеров с прозрачным переключением.