Empréstimo de carro usado em 1 minuto


Em vez de introduzir


Como todas as histórias interessantes, esta começou há muito tempo e inesperadamente. Uma vez que nosso banco parceiro veio até nós e disse: “Pessoal, aprendemos a fazer pontuações em nosso sistema em um minuto. Que tal unir forças e integrar projetos? Com a gente - uma decisão e crédito, com você - carros. Dizer que fomos inspirados - não dizer nada! Tivemos todas as chances de nos tornarmos os primeiros quase no mundo a conceder um empréstimo on-line para um carro usado em um minuto (UM MINUTO, CARL)! Abaixo, vou contar o que aconteceu, mas primeiro vou dizer quem somos, de fato, NÓS.



Nós somos “Rodas | Telhado Market ”é a maior empresa de TI do Cazaquistão. Todos os dias, nossos produtos ajudam seis milhões de cazaquistão a comprar e vender carros, apartamentos, berços e milhares de outras coisas. O Kolesa.kz é o maior recurso e aplicativo para automóveis; ocupa o primeiro lugar na classificação móvel do Cazaquistão há vários anos.


O que é o projeto "Empréstimo de carro"?


No momento, a base de carros usados ​​é 103.400 carros, mais de 60% deles estão disponíveis a crédito!


Como fica nas fotos

1. Escolha o carro que queremos levar a crédito



Figura 1. Resultados da pesquisa de carros disponíveis a crédito


2. Na página do anúncio, vemos um formulário para solicitar um empréstimo


Figura 2. Tela da página de anúncio


3. Selecione o período e o adiantamento e clique em para obter aprovação



Figura 3. Calculadora de crédito para o anúncio


4. Chegamos ao formulário em que precisamos inserir nossos detalhes de contato



Figura 4. Formulário de inicialização de um pedido de empréstimo


Aqui, inserimos o número do seu celular Nome e IIN (na Rússia, seria um TIN)


5. Em seguida, você precisa digitar o código SMS que chegará ao seu número



Figura 5. Formulário de confirmação do número de telefone digitando SMS


6. Depois disso, o próprio processo de pontuação começa, que não dura mais que 1 minuto


Figura 6. Tela para processo de pontuação do aplicativo


7. Existem várias opções para pontuação de resultados:


  1. Você aprova um empréstimo
  2. Você foi negado um empréstimo
  3. Você tem condições alternativas
  4. Você é solicitado a obter informações adicionais, após o que recebe uma das opções anteriores (a, b, c)


Figura 7. Exemplo de uma tela de aprovação de empréstimo automático


Depois que uma pessoa recebe a aprovação de seu pedido, o gerente do banco o chama de volta em 10 minutos e informa a pessoa sobre quais ações ele precisa executar a seguir para obter um empréstimo. Conveniente, não é? Vamos ver como tudo foi implementado.


Você se lembra como tudo começou ...


Tudo foi pela primeira vez e novamente! Se antes tínhamos um formulário de feedback como crédito, nossa nova ideia era algo completamente novo e incompreensível. Porque Não tínhamos análogos, tínhamos uma tarefa muito empolgante pela frente - planejar, projetar, distribuir e implementar. Para começar, dividimos todo o processo de nossa integração conjunta em 2 blocos, que foram realizados em paralelo, a saber:


  • Integração de infraestrutura
  • Integração de software


    Inicialmente, concordamos com o banco parceiro que ele (o banco parceiro) nos fornecerá algum tipo de API, para o qual enviaremos alguns dados e receberemos algumas respostas. Eles decidiram isso. Começamos a aguardar a documentação da API do banco, reunindo nossos engenheiros e os de suas redes! Em termos de integração de software, surgiu um esquema bastante simples: enviamos dados ao banco, o banco os rola em seu sistema e os devolve para nós, e tudo isso por 60 segundos garantidos. No caso de um tempo limite (onde poderia ser sem isso), concordamos em exibir um questionário de emergência, no qual obtemos dados que o banco pode precisar adicionalmente.



Redes


Naquela época, enquanto os desenvolvedores estavam escolhendo ferramentas para implementação, estavam projetando seu sistema e aguardando a documentação no sistema parceiro, o trabalho no departamento de infraestrutura já estava em pleno andamento! Tínhamos um banco parceiro para dois: 2 tsiska próximos um do outro em um DC, um cabo que conecta tsiska, túnel VPN, certificados de segurança e pré-estudo para trabalhar com eles de todas as cores e tamanhos ... O plano era o seguinte: Estamos encaminhando o canal VPN criptografado entre nossos servidores e criar integração direta entre nossos serviços. Esquematicamente, isso pode ser representado da seguinte maneira:



Vamos falar sobre o código


Abaixo, falaremos sobre como e o que é organizado pelo nosso serviço. Portanto, depois de receber um documento descrevendo o serviço do parceiro pronto para integração, aprendemos que, diferentemente de nós, o banco trabalha apenas com solicitações SOAP e não deseja ouvir sobre nenhum serviço RESTful. E como em nossos serviços usamos o SOAP um pouco menos do que nunca, tivemos muitas descobertas maravilhosas sobre como aprender a preparar o SOAP em nosso novo produto. Portanto, precisamos ensinar nosso serviço a analisar solicitações SOAP e converter nossas respostas novamente em SOAP.


Seleção de framework


Para iniciantes, você tinha que escolher pelo menos uma linguagem de implementação, havia muitas idéias, começando com C e C # terminando com golang e erlang. Decidimos seguir um caminho simples. O sistema precisará ser suportado e, para não encontrar o fator de barramento com a falta de especialistas no mercado, decidimos nos concentrar na tecnologia mais comum em nossa empresa - PHP. Graças a Deus que fora da janela já não era 2001, mas 2017 e existem tantos frameworks php que podem satisfazer as necessidades de engenheiros muito sofisticados. Depois de passar por um monte, escolhemos um dos mais simples e ao mesmo tempo compatíveis - Yii 2.


Para esta decisão foi:


  • Fácil de dominar, um monte de literatura;
  • É fácil o suficiente criar formulários e validadores;
  • Há um registro ativo e um carro pronto para trabalhar com todos os tipos de ferramentas;
  • Ele é realmente rápido;
  • Com base nisso, uma API é simplesmente criada, é conveniente escrever comandos do console.

Contra foi:


  • A estrutura é baseada em métodos estáticos - isso é muito inconveniente, inclusive ao escrever testes
  • Não ficou claro quais ferramentas adicionais precisaríamos no futuro próximo após o lançamento e, como resultado, havia o risco de não encontrar as bibliotecas necessárias ...

Seleção de armazenamento


A estrutura foi escolhida, agora é hora de escolher um repositório para aplicativos. Havia várias opções, MySQL, mongoDB, postgreSQL ... Por um lado, um aplicativo é um documento, com certeza sua estrutura pode mudar, de tempos em tempos, complementada por novos campos e se livrando de campos irrelevantes. Por outro lado, o uso de bancos de dados não relacionais imporá suas limitações. Depois de ponderar todos os prós e contras, decidimos sentar em duas cadeiras e usar o MySQL para iniciar e, após o lançamento, migrar para um monte de mongoDB + ElasticSearch. Como resultado, duas réplicas do MySQL foram geradas como armazenamento e parafusadas no aplicativo usando o ActiveRecord. No momento em que iniciamos a transição para o mongoDB, a quantidade de dados cresceu muito e teve uma taxa de crescimento tão grande que havia outra necessidade de dividir aplicativos em repositórios condicionais. Como uma ferramenta para indexação de documentos quase em tempo real, o ElasticSearch decidiu usar um serviço escrito em Golang - monstache.


Infra-estrutura predial


Decidimos fazer a seguinte infraestrutura: 10 back-end com o aplicativo pelo processador de aplicativos, 2 balanceadores, 2 réplicas do MySQL, 3 shards de pesquisa elástica, 3 réplicas de mongoDB e 2 réplicas de serviço monstache.


O processo


Em geral, o processo de empréstimo de carro pode ser dividido em 2 partes:


  1. Para começar, você precisa encontrar um carro adequado, disponível a crédito. Muito provavelmente você será guiado pela condição dela e pelos termos do empréstimo.
  2. Depois de selecionar um carro, você precisa obter uma aprovação de empréstimo, para isso, precisará preencher um requerimento

Sobre a implementação da segunda parte, mais ou menos descritos acima, vamos falar sobre a implementação da primeira parte. A implementação da primeira parte consiste em várias sub-partes:


  1. Ao procurar um carro, uma pessoa deve ser capaz de se concentrar, além dos parâmetros técnicos, na disponibilidade de um carro para compra a crédito e no valor mínimo de um pagamento mensal. Para fazer isso, precisamos saber no momento do anúncio que o carro está disponível a crédito e qual será o pagamento mínimo.
  2. Depois que uma pessoa escolhe um carro, precisamos fornecer uma calculadora de empréstimo, onde ele pode escolher o tamanho do adiantamento e o prazo do empréstimo, escolhendo assim o valor do pagamento mensal mais confortável.

Para esse fim, um microsserviço especial na linguagem go foi desenvolvido. Sua essência era a seguinte: quando um anúncio é enviado ao microsserviço, um objeto com todos os dados sobre o carro é enviado, o microsserviço, com base nas regras escritas separadamente para ele, retorna o pagamento mensal mínimo para indexação na pesquisa e também retorna o pagamento mínimo inicial e os prazos aceitáveis empréstimos, que são a base para a construção de uma calculadora de empréstimos.



Armazenamos em cache antecipadamente as opções de erro de cálculo para os valores padrão de adiantamento e pagamento mensal. Isso é feito para cada um dos períodos de crédito disponíveis. Se uma pessoa alterar o pagamento inicial (dentro do intervalo aceitável), o microsserviço calculará novamente todos os dados. Se o pagamento inicial for especificado abaixo do permitido, a calculadora exibirá um erro de validação.



Devido à alta carga em nosso serviço, a calculadora de empréstimos possui 2 graus de armazenamento em cache: o primeiro ocorre no back-end, onde os clientes buscam inicialmente a calculadora, o segundo no próprio microsserviço.


Então, qual é o resultado final?


Lançamos o projeto em 11 de setembro de 2017. Desde esse momento, até a data (4 de dezembro de 2018), 2.973.868 pedidos foram arquivados. Estamos em um processo contínuo de melhoria de nosso serviço e simplificação da jornada do usuário. Tornamos mais rápido, mais fácil e mais estável! O tempo de atividade do projeto durante todo o período desde o lançamento foi de 99,99%.


Como resultado, temos os seguintes resultados:


  1. Caminho do usuário significativamente reduzido
  2. Expandimos o volume de carros disponíveis para empréstimos para 60% de toda a base
  3. Até o momento, o número de aplicativos cresceu mais de 7 vezes!

Em vez de uma conclusão


Em 3 meses, conseguimos construir um projeto verdadeiramente incrível e único. Seu principal objetivo era dar a nossos clientes a oportunidade de comprar carros usados ​​sem sair de nossa plataforma. Em apenas 1 minuto, o usuário pode tomar uma decisão sobre sua inscrição, ligar para o vendedor e elaborar todos os documentos necessários no mesmo dia.
A julgar pelo número de solicitações para o ano e 2 meses, podemos concluir que somos capazes de tornar o serviço realmente conveniente e demandado.

Source: https://habr.com/ru/post/pt431342/


All Articles