FINFINI.TECH
TECHNOLOGY
LUMEN FRAMEWORK
Laravel Lumen is a stunningly fast PHP micro-framework for building web applications with expressive, elegant syntax.
Lumen attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as routing, database abstraction, queueing, and caching.
https://lumen.laravel.com
Open-source
GIT & GIT FLOW
Version Code
We running with 2 main branch :
1. Develop -> Staging & Sandbox
2. Master -> Release
For deployment to production using tagging. eg : v1.0.1
Using GIT FLOW to manage feature branch
BITBUCKET
WE ARE USING BITCBUCKET FOR REPOSITORY CODE AND CONTINUOUS DELIVERY
For CONTINUOUS DELIVERY we are using PIPELINE on Bitbucket.
https://bitbucket.com
Monthly cost : $25
SERVER
TECH
Biznet Gio
One of biggest server provider in Indonesia.
Highly Reliable. Designed and hosted on Tier-3 data centers, BiznetGio's cloud architecture serves an enterprise infrastructure needs with no worries.
https://www.biznetgio.com/
Monthly cost :
IDR 1.500.000 - 2.000.000,-
KubERNETES
a system for automating deployment, scaling and management of containerized applications that was originally designed by Google and now maintained by the Cloud Native Computing Foundation
https://kubernetes.io/
Open-source
DOCKER
an open platform for developers and sysadmins to build, ship, and run distributed applications, whether on laptops, data center VMs, or the cloud
https://www.docker.com/
Open-source
Zabbix
an enterprise open source monitoring software for networks and applications,
It is designed to monitor and track the status of various network services, servers, and other network hardware.
https://www.zabbix.com/
Open-source
KIBANA
an open source data visualization plugin for Elasticsearch. It provides visualization capabilities on top of the content indexed on an Elasticsearch cluster
We user for monitoring log & indexed content
https://www.elastic.co/products/kibana
Open-source
Other Server Stack
CENT OS as Operating System
https://www.centos.org/
Nginx & Apache as Web server
https://www.nginx.com/
Squid as Proxy stack
https://squidproxy.org/
Redis as Queue & In-Memory Databases - http://redis.io
Supersivor as Worker - supervisord.org/
TOOLS
TeCH
Zoho Mail - Email inbox provider - Free
https://mail.zoho.com
Mailgun - Email gateway - Freemium
https://www.mailgun.com/
Cloudfrare - DNS - Free
https://lumen.laravel.com
AWS S3 - File storage - Monthly Cost $5
https://aws.amazon.com/s3/
MySql - Database - Opensource
https://mysql.com
Google Analytics - Event Tracker - Free
https://analytics.google.com
Death By captcha - Manual Capthca Solver - Montly cost $50
http://www.deathbycaptcha.com/
Rollbar - Error Alert & Monitoring Engine - Free
https://rollbar.com
Chaport - Live Chat - Free
https://chaport.com
INFRASTRUCTURE
OVERVIEW
- FINFINI mempunyai 2 environment utama : development
production - > Biznet Gio.
- Semua data dan pemprosesan ada di server yang dimanajemen tim internal sendiri.
- Infrastruktur yang manageable, reliable dan scalable namun tetap efisien. gangguan pada sistem,
- Infrastruktur FINFINI didesain dapat melayani traffic yang tinggi secara reaktif sehingga dapat meminimalkan downtime ketika terjadi
GOALS
- Highly reliable microservices infrastructure
- Highly available infrastructure
- Highly scalable infrastructure
- Implementasi automatic deployment untuk production.
INternal
Monitoring sistem internal yang ada di Biznet Gio yang meliputi server database, server aplikasi dan server ops.
Monitoring ini menghasilkan matriks tentang penggunaan resource cpu secara keseluruhan seperti CPU, RAM, Disk IO, dan network bandwidth.
Saat ini internal monitoring menggunakan Zabbix.
EKSTERNAL
Uptime monitoring digunakan untuk memonitoring website dari banyak lokasi yang tersebar di dunia menggunakan aplikasi dari statuscake.
Monitoring Engine dan Error Allert Menggukan Rollbar
Ada 2 macam time uptime monitoring yang akan digunakan, yaitu monitoring internal dan external.
Monitoring & Uptime
JIka sistem anomaly detection mendeteksi adanya masalah dari sistem monitoring internal dan external, maka notifikasi akan dikirimkan melalui email tergantung tingkat urgenisitas.
SYSTEM
INFRASTRUCTURE
SYSTEM INFRASTUCTURE
Secara garis besar, arsitektur FINFINI dalam environment production mengadopsi karakteristik highly available, highly scalable, highly reliable dan tentunya highly flexible.
- Load Balancer
- S3 Server
- Database
- Auto-scaling Engine
- Deployment Server
Contingency Plan
- Node Infrastructure
Infrastruktur FINFINI sebagian besar berada di atas Biznet Gio. Semua VM di atas hardware yang sudah high available. Biznet Gio sudah menerapkan metode fail-over sehingga saat node mengalami masalah (degraded) maka VM akan secara otomatis berpindah ke node yang normal.
- Storage Infrastruktur
Ada dua tipe storage yang digunakan untuk FINFINI yaitu persistent disk dan object cloud storage s3.
SECURITY
Logical Security
- Isolasi traffic internal dari akses dari luar (DMZ)
- DDoS Protection oleh Biznet Gio dan Cloudflare
- Additional Security Software
Additional Security
-
Access to server using VPN
-
Sensitive Data are Encrypted
-
Data Transmitted over SSL
-
Every request should be have signature
-
Credential will not store on database if client don’t give us permission
QUestion & ANSWER
QUESTION
What might be challenges of integration and add more banks account/e-commerce ?
ANSWER
- Manpowers
- Security level of vendors
- Sample ID / Credential
- Sample Data (Mutasi / etc)
QUESTION
How to comply the security with regulation ?
ANSWER
- It's still on grey
leverage Finfini’s data to improve credit scoring.
OVERVIEW
CLIENTS = 50
USERS = 69
VENDORS = 30
ACCOUNTS = 1.409
PRODUCTS = 1.489
CREDIT CARD = 56
TOTAL BALANCE = 5.431.950.146
CASHFLOW = 193.095
TOTAL AMOUNT OF CASHFLOW = 122.128.143.597
TOTAL HIT = 258.503
at a glance DOMPETSEHAT & VERYFUND DATA
SAMPLE ACCOUNT VERYFICATION DATA
{
"status": "success",
"data": {
"fullname": "GUMILANG FACHRIZAL",
"additional_info": {
"last_login": "23-Apr-2018 16:32:55 WIB",
"nickname": "Mr."
},
"balance": 0,
"accountnumber": "00000000585508370"
}
}
{
"status": "success",
"data": {
"fullname": "Yoga Dwi Sukma",
"additional_info": {
"address": "6282297209781",
"email": "zligerzero@yahoo.com",
"akun_url": "www.bukalapak.com/yogadss"
},
"balance": 0,
"accountnumber": "6282297209781"
}
}
e-Commerce
BANK
SAMPLE SYNC DIREC DATA
{
"status": "success",
"data": {
"debit_card": [
{
"number": "00000000585508370",
"type": "BNI TAPLUS",
"currency": "IDR",
"balance": 10955829,
"transactions": [
{
"note": "BY TRX ATM PRIMA",
"date": {
"original": "2018-04-12",
"day": "Thursday",
"date": 12,
"month": 4,
"year": 2018
},
"amount": 7500,
"type": "debit",
"info": [],
"status": [],
"properties": []
}
],
"properties": []
},
{
"number": "00000000413596638",
"type": "BNI TAPLUS",
"currency": "IDR",
"balance": 2223316,
"transactions": [
{
"note": "BY TRX ATM PRIMA",
"date": {
"original": "2018-04-12",
"day": "Thursday",
"date": 12,
"month": 4,
"year": 2018
},
"amount": 7500,
"type": "debit",
"info": [],
"status": [],
"properties": []
}
],
"properties": []
}
]
}
}
SAMPLE SYNC ACCOUNT
{
"status": "success",
"data": {
"id": 1352,
"nickname": "",
"login_status": 1,
"login_info": "Succesfully Log in",
"properties": null,
"created_at": "2018-01-31 21:26:02",
"updated_at": "2018-03-05 13:53:05",
"vendor": {
"id": 16,
"name": "MandiriOnline"
},
"products": [
{
"id": 1505,
"number": "1380014906452",
"type": "Saving",
"balance": 21354521.29,
"nickname": "Saving",
"created_at": "2018-01-31 21:26:02",
"updated_at": "2018-03-05 13:45:54",
"properties": null
}
]
}
}
SAMPLE SYNC ECOMMERCE ACCOUNT
{
"status": "success",
"data": {
"profile": {
"fullname": "Yoga Dwi Sukma",
"address": [
"Jl W.R. Soepratman 149. RT01/RW12. Tambakrejo, Purworejo, Purworejo"
],
"email": "zligerzero@yahoo.com",
"number": "6282297209781"
},
"order": {
"0": {
"date": "2018-03-17",
"note": "Pembelian dari YULI MULYADI",
"type": "debit",
"amount": 455433,
"properties": "{\"details\":[{\"title\":\"Stik Ps4 Ds4 old model\",\"tag\":\"\",\"quantity\":1,\"amount\":430000}]}"
},
"1": {
"date": "2018-02-03",
"note": "Pembelian dari MUHAJIR UMAR",
"type": "debit",
"amount": 317270,
"properties": "{\"details\":[{\"title\":\"Kaset PS4 The Witcher 3 Wild Hunt Completed Edition\",\"tag\":\"\",\"quantity\":1,\"amount\":280000}]}"
}
}
}
}
QUestion & ANSWER
QUESTION
How to integrate this data to our environment ?
ANSWER
Since we based on RESFUL API which is the raw data on JSON formated, it will much easier to integrate to any platform
deck
By Coderain
deck
- 1,155