Как стать автором
Обновить

Комментарии 44

Жду вопроса в комментах «Почему не Laravel»? =)
Не phalcon потому, что смысла в нём нет никакого в данном конкретном случае. Смысл разворачивать такую махину и не пользоваться практически ни чем из его инструментария. Не Laravel потому, что на тот момент казалось, что на Yii это будет реализовано быстрее, хотя это и не факт)
Смысл разворачивать такую махину и не пользоваться практически ни чем из его инструментария.

А кто вам сказал, что это махина? Он довольно шустрый и нагрузку намного лучше держит, чем тот же yii2, который вовсе скоро загнется. Можете у Макарова спросить, который ушел писать на симфони в skyeng
Я бы понял ещё, если бы вы предлагали использовать «Lumen», но, в случае с phalcon, моё субъективное мнение — его использование не оправдано. В особенности, после перехода на php 7.x.
И да, пожалуй, у нас большой опыт работы с Phalcon, т.к. и Крыша и Колёса на данный момент работают именно на нём. В работе с Phalcon есть свои имнусы и свои плюсы, обсуждение которых выходит за рамки представленной статьи, и чаще всего упирается в личные предпочтения отдельно взятого разработчика.
С того момента, на сегодняшнюю дату (04.12.2018) подано 2,973,868 заявок
Tags: highload
Мне всегда казалось, что хайлоад — это три миллиона транзакций в час. А не в год.
Возможно, я что-то непонятно написал, уточню.

Количество заявок != количество просмотров кредитного калькулятора и рассчётов.
У нас, в среднем 45 000 уникальных поситителей одновременно онлайн, в час пик бывает больше! Каждый из них генерирует множество запросов: 6 показов объявлений из 10 включают в себя работу с кредитным калькулятором, и, как следствие, с нашей системой.

В то же время, заявка это уже непосредственно само обращение человека в систему скоринга, когда человек выбрал авто и решился на кредит.

Прошу прощения, если не оправдал ваше ожидание по highload, мы стремимся к лучшему!
А можно подробнее про «одновременно онлайн»? Какое количество запросов/страниц в секунду/час?
Ну и про серверы расскажите, если это не тайна: сколько ядер/памяти.
Бэкенды реализованы в виртуалках: 2 горшка на 1ГБ ОЗУ
Запросы — около 5000 запросов/секунду
Это я говорю про запросы, которые поступают от пользователя на просмотр сайта и от мобильных приложений, далее все это умножается на количество сервисов которые мы подтягиваем для показа страницы. И получаются достаточно большие цифры. В сервис автокредита отдельно нагрузка порядка 1000 запросов/секунду.

Надеюсь я ответил на ваш вопрос.
А сколько серверов для бекенда с 2 ядерным процессором и 1 гб ОЗУ? Ттак же интересно узнать параметры сервера для MySQL, а так же размер базы) Буду очень признателен.
Сожалею, но про параметры БД рассказать не могу. Про бэкенды не совсем понял ваш вопрос, уточните пожалуйста, если вам не сложно.
сколько серверов по 2 горшка и 1гб ОЗУ выдерживает 5000 RPS?

10 бэкендов

10 это по кредиту.

как бывший житель РК скажу, что колёса действительно один из крупнейших ресурсов страны и лет 5 назад даже все российские аналоги были меньше, им дальше просто расти некуда — населения нужно больше. Только последние годы автору стал больше с его агрессивным маркетингом. Так что если в Казахстене есть хайлод, то это у них)
Хайлоад это не конкретное количество транзакций за единицу времени (времена идут, сервера и технологии меняются)

Хайлоад это когда вы не в состоянии обычным кодом обслужить все на одном сервере приложения.
Хайлоад это когда вы не в состоянии обычным кодом обслужить все на одном сервере приложения
О, я знаю много таких людей!
Сделаю акцент — обычным, а не отвратительным :)
лучше бы вы научились отфильтровывать фейковые объявления и мошенников в ваших ресурсах.

Правильно пишется MySQL, а не «mySQL»

Большое спасибо! Сейчас же исправлю эту вопиющую ошибку!
НЛО прилетело и опубликовало эту надпись здесь
Немедленно исправляю, спасибо!
Очень актуально, кстати, пока покупатель не передумал брать эту рухлядь.
Аналогичная мысль возникла. Интересен процесс конвертации заявок в реальные кредиты после просмотра машины вживую. Ну или хотя бы после того, как человек вышел на связь.
Когда человек выставляет свое авто на автокредит, то он проходит околообязательную техническую проверку на СТО-партнере. СТОшникам смысла искажать данные нет — банк больше денег дает, а покупатели уверены в техсостоянии. Бизнеспроцесс хорошо выстроен
На каком этапе используется микросервис? Когда пользователь ищет машины для каждой машины отправляется инфа в микросервис или когда пользователь уже выбрал машину, то оправяется инфа по этой конкретной машине?
Микросервис используется в нескольких местах:

  1. В момент сохранения объявления нам нужно понять доступно ли оно будет в кредит и на каких условиях. Мы идём в микросервис и узнаём доступен ли и какой минимальный ежемесячный платёж и сохраняем это вместе с объявлением. Благодаря этому пользователи могут фильтровать в посике машины доступные в кредит и по размеру ежемесячного платежа.
  2. В момент когда вы открываете объявление и у нас не оказывается в кэше калькулятора для него мы идем в микросервис. В момент когда вы меняете первоначальный взнос мы тоже идём в микросервис
  3. В момент когда формируется заявка и мы ещё раз проверяем правильно ли указаны условия которые указал пользователь

А сколько человек в команде — бек, фронт?
И хотелось бы подробнее про использование Yii — сомневаюсь, что прям всё как из-коробки — как модифицировали темплейт, как с ним боролись, что перекраивали? Толстые контроллеры, толстые модели, или сервисный слой?


Ну и по тестированию — встроенный codeception или phpunit? Как решали вопрос с фикстурами?

На сегодняшний день в команде автокредита 6 человек: 4 фулл-стек разработчика, тестировщик и менеджер)
Про Yii:
1. Версия Yii2
2. Темплейтами не пользуемся у нас прямая конвертация ответа в JSON
3.
Толстые контроллеры, толстые модели, или сервисный слой
— Стараемся Делать контроллеры тонкими, максимально сократить код в экшенах и размазать по моделям и сервисам
4. Фикстуры не используются

По тестированию — встроеный codeception для юнитов и Newman для функциональных.
— Стараемся Делать контроллеры тонкими, максимально сократить код в экшенах и размазать по моделям и сервисам
4. Фикстуры не используются
По тестированию — встроеный codeception для юнитов и Newman для функциональных.

А как модели тестируете без фикстур тогда?
"… Человек должен иметь возможность ориентироваться на доступность авто для покупки в кредит.."
Что значит «доступность авто в кредит»?
Разве продавцу не всё равно какие там отношения у покупателя с банком если он получает всю сумму от банка сразу?
1. Я так понял речь про покупателя.
2. Продавец эту информацию тоже может использовать. Многие клюют на «Всего за 300 баксов в месяц вы получите большую пацанскую тачку». Более того, если авто используется для заработка, этот показатель действительно важен. Зарабатывая на такси 1000 басков в месяц пожалуй можно 300 отдавать по кредиту за средство производства. Возможно есть более удачный вариант, но этот определённо в числе допустимых.
Не все марки и модели кредитуются (как правило, банк смотрит на ликвидность). Какой-нибудь кабриолет вряд ли доступен в кредит, либо доступен, но по адским условиям.
Т.е. как? Все машины не биты, не крашены? Просто по фото взял и подписался на кредит?
Из личного опыта — там более длинная конечная процедура )
— если тебе одобрили кредит (смысл ехать смотреть авто, если тебе не одобрили?) — звонит менеджер из банка и приглашает на ближайшее аффилированное СТО в твоем городе на определенное время, удобное продавцу и покупателю.
— на СТО проводится осмотр и оценка авто, составляется дефектовочный акт и в течение нескольких минут оценивается авто (продавец может оценить авто дороже в 2 раза, чем оно действительно стоит, такие ушлые ребята отсекаются).
— дальше покупатель едет в банк (или прям на аффилированном СТО) и вносит первоначальный взнос от 10% и продавец с покупателем едут переоформлять автомобиль.
Всего один вопрос — зачем это нужно продавцу?
Наверное, чтобы продать авто? Машины — не горячие пирожки)
То есть, ушлые продавцы сразу же скинут цену, как только какая-то мастерская им скажет, что, по их мнению, авто должно стоить в два раза меньше? Вы, видимо, недооцениваете людей, которые продают подержанные машины.
Значит, покупателю нет смысла ехать, если кредит не одобрили, а продавцу есть смысл мотаться в сервис, ждать там результата, а потом выяснить, что покупатель готов дать в два раза меньше или вообще не готов покупать.
Только дурак поедет оценивать и покупать авто с ценой в два раза выше рыночной, либо мошенник :) (на kolesa.kz, кстати, в каждом объявлении есть индикатор средней рыночной цены на такую марку/модель/год).
А если банк скажет, что реальная стоимость авто сильно меньше рыночной — тогда пересчитают покупателю условия кредита и всё. Дальше стороны либо соглашаются, либо нет.
Чаще всего пересчёт — это увеличение первоначального взноса.
Используете миграции? Если да, то каким образом применяете их?
Используем родные миграции Yii. Все по мануалу. Но у нас мало что осталось в MySQL.
Интересный рассказ об опыте внедрения. Как бывший работник того самого банка-партнера, боюсь представить, с какими требованиями к безопасности вы сталкивались и, тем более, с какими интеграционными процессами, включая митинги =) Договориться об интеграциях различных разделов сайта было не так легко, что уж говорить про интеграции между двумя компаниями
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.