
Alih-alih memperkenalkan
Seperti semua kisah menarik, yang ini dimulai sejak dulu dan tanpa diduga. Begitu bank mitra kami mendatangi kami dan berkata: “Teman-teman, kami belajar membuat skor dalam sistem kami dalam satu menit. Bagaimana dengan menggabungkan kekuatan dan mengintegrasikan proyek? Bersama kami - keputusan dan penghargaan, dengan Anda - mobil. " Untuk mengatakan bahwa kami terinspirasi - untuk tidak mengatakan apa-apa! Kami memiliki setiap kesempatan untuk menjadi yang pertama di dunia yang dapat memberikan pinjaman online untuk mobil bekas dalam satu menit (SATU MENIT, CARL)! Di bawah ini saya akan memberi tahu Anda apa yang terjadi, tetapi pertama-tama saya akan memberi tahu Anda siapa kami, sebenarnya, KAMI.

Kami adalah “Roda | Atap | Market ”adalah perusahaan IT terbesar yang berbasis di Kazakhstan. Setiap hari, produk kami membantu enam juta orang Kazakhstan membeli dan menjual mobil, apartemen, boks bayi, dan ribuan hal lainnya. Kolesa.kz adalah sumber daya dan aplikasi mobil terbesar, telah menempati peringkat pertama dalam peringkat seluler Kazakhstan selama beberapa tahun.
Apa proyek “Pinjaman mobil”?
Saat ini, basis mobil bekas adalah 103.400 mobil, lebih dari 60% di antaranya tersedia secara kredit!
Bagaimana tampilannya dalam gambar1. Pilih mobil yang ingin kami kredit

Gambar 1. Hasil pencarian untuk mobil yang tersedia secara kredit
Gambar 2. Layar halaman iklan
3. Pilih periode dan uang muka dan klik untuk mendapatkan persetujuan

Gambar 3. Kalkulator kredit untuk pengumuman

Gambar 4. Bentuk inisialisasi aplikasi pinjaman
Di sini kami memasukkan Nama nomor ponsel Anda dan IIN (di Rusia itu akan menjadi TIN)
5. Selanjutnya, Anda perlu memasukkan kode SMS yang akan datang ke nomor Anda

Gambar 5. Formulir konfirmasi nomor telepon dengan memasukkan SMS
6. Setelah itu, proses penilaian itu sendiri dimulai, yang berlangsung tidak lebih dari 1 menit
Gambar 6. Layar untuk proses penilaian aplikasi
7. Ada beberapa opsi untuk mencetak hasil:
- Anda menyetujui pinjaman
- Anda ditolak pinjaman
- Anda ditawari kondisi alternatif
- Anda diminta untuk informasi tambahan, setelah itu Anda menerima salah satu opsi sebelumnya (a, b, c)

Gambar 7. Contoh Layar Persetujuan Pinjaman Otomatis
Setelah seseorang menerima persetujuan atas lamarannya, manajer dari bank memanggilnya kembali dalam waktu 10 menit dan memberi tahu orang tersebut tentang tindakan apa yang perlu diambil selanjutnya untuk mendapatkan pinjaman. Nyaman bukan? Mari kita lihat bagaimana semua itu diterapkan.
Apakah Anda ingat bagaimana semuanya dimulai ...
Semuanya untuk pertama kalinya dan lagi! Jika sebelumnya kami hanya memiliki formulir umpan balik sebagai formulir kredit, maka ide baru kami adalah sesuatu yang sama sekali baru dan tidak dapat dipahami. Karena Kami tidak memiliki analog, kami memiliki tugas yang sangat menarik di depan - untuk merencanakan, merancang, mendistribusikan dan mengimplementasikan. Untuk mulai dengan, kami membagi seluruh proses integrasi bersama kami menjadi 2 blok, yang dilakukan secara paralel, yaitu:
- Integrasi infrastruktur
Integrasi perangkat lunak
Awalnya, kami sepakat dengan bank mitra bahwa ia (bank mitra) akan memberi kami semacam API, yang dengannya kami akan mengirim beberapa data dan menerima beberapa jawaban. Mereka memutuskan itu. Kami mulai menunggu dokumentasi API dari bank, menyatukan insinyur jaringan kami dan mereka! Dalam hal integrasi perangkat lunak, skema yang cukup sederhana muncul, kami mengirim data ke bank, bank menggulirnya dalam sistemnya, dan mengembalikannya kepada kami, dan semua ini dijamin selama 60 detik. Dalam hal batas waktu (di mana bisa tanpa ini), kami sepakat untuk menampilkan kuesioner darurat, di mana kami mendapatkan data yang mungkin dibutuhkan bank.
Jaringan
Pada saat itu, ketika pengembang memilih alat untuk implementasi, mereka merancang sistem mereka dan menunggu dokumentasi pada sistem mitra, pekerjaan di departemen infrastruktur sudah berjalan lancar! Bank mitra saya dan saya memiliki dua: 2 cisi yang berdiri berdampingan dalam satu DC, kabel yang menghubungkan tsiska, terowongan VPN, sertifikat keamanan dan pribludy untuk bekerja dengan mereka dari semua warna dan ukuran ... Rencananya adalah sebagai berikut, Kami meneruskan saluran VPN terenkripsi di antara kami server, dan bangun integrasi langsung antara layanan kami. Secara skematis, ini dapat direpresentasikan sebagai berikut:

Mari kita bicara tentang kodenya
Di bawah ini kita akan berbicara tentang bagaimana dan apa yang diatur oleh layanan kami. Jadi, setelah menerima dokumen yang menggambarkan layanan mitra yang siap untuk integrasi, kami mengetahui bahwa, tidak seperti kami, bank hanya bekerja dengan permintaan SOAP dan tidak ingin mendengar tentang layanan RESTful. Dan karena dalam layanan kami, kami menggunakan SABUN sedikit lebih jarang daripada sebelumnya, kami memiliki banyak penemuan luar biasa tentang cara mempelajari cara menyiapkan SABUN dalam produk baru kami. Oleh karena itu, kami perlu mengajarkan layanan kami untuk mengurai permintaan SOAP dan mengubah respons kami kembali ke SOAP.
Temukan kerangka kerja
Sebagai permulaan, Anda harus memilih setidaknya bahasa implementasi, ada banyak ide, dimulai dengan C dan C # diakhiri dengan golang dan erlang. Kami memutuskan untuk mengikuti jalan yang sederhana. Sistem akan perlu didukung, dan agar tidak mengalami faktor bus dengan kurangnya spesialis di pasar, kami memutuskan untuk fokus pada teknologi yang paling umum di perusahaan kami - PHP. Terima kasih Tuhan bahwa di luar jendela sudah bukan tahun 2001, tetapi 2017 dan ada begitu banyak kerangka kerja php yang dapat memenuhi kebutuhan bahkan insinyur yang sangat canggih. Setelah melalui sejumlah besar, kami memilih salah satu yang paling sederhana dan pada saat yang sama didukung - Yii 2.
Untuk keputusan ini adalah:
- Mudah dikuasai, sejumlah besar literatur;
- Cukup mudah untuk membuat formulir dan validator;
- Ada Rekaman Aktif dan mobil yang siap bekerja dengan semua jenis alat;
- Dia sangat cepat;
- Berdasarkan itu, API hanya dibangun, mudah untuk menulis perintah konsol.
Terhadap adalah:
- Kerangka kerja ini dibangun pada metode statis - ini sangat merepotkan, termasuk saat menulis tes
- Tidak jelas alat tambahan apa yang akan kita butuhkan dalam waktu dekat setelah peluncuran, dan, akibatnya, ada risiko tidak menemukan perpustakaan yang diperlukan ...
Pilihan penyimpanan
Kerangka kerja dipilih, sekarang saatnya untuk memilih repositori untuk aplikasi. Ada beberapa opsi, MySQL, mongoDB, postgreSQL ... Di satu sisi, aplikasi adalah dokumen, pasti strukturnya dapat berubah, dari waktu ke waktu ditambah dengan bidang baru dan menyingkirkan yang tidak relevan. Di sisi lain, penggunaan basis data non-relasional akan memberlakukan batasannya. Setelah mempertimbangkan semua pro dan kontra, kami memutuskan untuk duduk di 2 kursi dan menggunakan MySQL untuk meluncurkan, dan setelah peluncuran bermigrasi ke sekelompok mongoDB + ElasticSearch. Akibatnya, 2 replika MySQL dimunculkan sebagai penyimpanan dan mengacaukan aplikasi menggunakan ActiveRecord. Pada saat kami memulai transisi ke mongoDB, jumlah data tumbuh sangat banyak dan mengambil tingkat pertumbuhan sedemikian rupa sehingga ada kebutuhan lain untuk membagi aplikasi ke dalam repositori bersyarat. Sebagai alat untuk pengindeksan dokumen hampir realtime, ElasticSearch memutuskan untuk menggunakan layanan yang ditulis dalam Golang - monstache.
Membangun infrastruktur
Kami memutuskan untuk melakukan infrastruktur berikut: 10 backend dengan aplikasi oleh prosesor aplikasi, 2 penyeimbang, 2 replika MySQL, 3 pecahan riset elastik, 3 replika mongoDB dan 2 replika layanan monstache. 
Prosesnya
Secara umum, proses kredit mobil dapat dibagi menjadi 2 bagian:
- Untuk memulai, Anda perlu menemukan mobil yang cocok, tersedia secara kredit. Kemungkinan besar Anda akan dibimbing oleh kondisinya dan ketentuan pinjaman.
- Setelah memilih mobil, Anda harus mendapatkan persetujuan pinjaman, untuk ini Anda harus mengisi aplikasi
Tentang implementasi bagian kedua, kita kurang lebih dijelaskan di atas, mari kita bicara tentang implementasi bagian pertama. Implementasi bagian pertama terdiri dari beberapa sub-bagian:
- Ketika mencari mobil, seseorang harus dapat fokus, selain parameter teknis, pada ketersediaan mobil untuk pembelian secara kredit dan jumlah minimum pembayaran bulanan. Untuk melakukan ini, kita perlu tahu pada saat pengumuman bahwa mobil tersedia secara kredit dan berapa pembayaran minimum untuk itu.
- Setelah seseorang memilih mobil, kita perlu memberinya kalkulator pinjaman, di mana dia dapat memilih ukuran uang muka dan jangka waktu pinjaman, dengan demikian memilih jumlah pembayaran bulanan yang paling nyaman.
Untuk tujuan ini, sebuah layanan microser khusus dalam bahasa go dikembangkan. Esensinya adalah sebagai berikut: Ketika iklan dikirimkan ke layanan mikro, objek dengan semua data tentang mobil dikirim, layanan mikro, berdasarkan aturan yang ditulis secara terpisah untuk itu, mengembalikan pembayaran bulanan minimum untuk pengindeksan dalam pencarian, dan juga mengembalikan pembayaran minimum minimum dan tenggat waktu yang dapat diterima pinjaman, yang merupakan dasar untuk membangun kalkulator pinjaman.

Kami menyimpan opsi perhitungan yang salah terlebih dahulu untuk nilai uang muka dan pembayaran bulanan standar. Ini dilakukan untuk masing-masing periode kredit yang tersedia. Jika seseorang mengubah pembayaran awal (dalam kisaran yang dapat diterima), maka layanan mikro akan kembali menghitung semua data. Jika pembayaran awal ditentukan kurang dari yang diijinkan, maka kalkulator akan menampilkan kesalahan validasi.

Karena beban tinggi pada layanan kami, kalkulator pinjaman memiliki 2 derajat caching: yang pertama terjadi di backend, di mana klien awalnya pergi untuk kalkulator, yang kedua di layanan mikro itu sendiri.
Jadi apa intinya?
Kami meluncurkan proyek pada 11 September 2017. Sejak saat itu, hingga saat ini (4 Desember 2018), 2.973.868 aplikasi telah diajukan. Kami sedang dalam proses berkelanjutan untuk meningkatkan layanan kami dan menyederhanakan perjalanan pengguna. Kami membuatnya lebih cepat dan lebih stabil! Waktu aktif proyek untuk seluruh periode sejak peluncuran adalah 99,99%.
Sebagai hasilnya, kami memiliki hasil sebagai berikut:
- Jalur pengguna berkurang secara signifikan
- Kami memperluas volume mobil yang tersedia untuk pemberian pinjaman hingga 60% dari seluruh basis
- Hingga saat ini, jumlah aplikasi telah bertambah lebih dari 7 kali!
Alih-alih sebuah kesimpulan
Dalam 3 bulan kami berhasil membangun proyek yang benar-benar luar biasa dan unik. Tujuan utamanya adalah memberi pelanggan kami kesempatan untuk membeli mobil bekas tanpa meninggalkan platform kami. Hanya dalam 1 menit, pengguna dapat mengambil keputusan tentang aplikasinya, menelepon penjual, dan menyusun semua dokumen yang diperlukan pada hari yang sama.
Dilihat dari jumlah aplikasi untuk tahun dan 2 bulan, kita dapat menyimpulkan bahwa kita dapat membuat layanan ini benar-benar nyaman dan diminati.