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

  1. Highly reliable microservices infrastructure
     
  2. Highly available infrastructure
     
  3. Highly scalable infrastructure
     
  4. 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

  1. 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.
     
  2. Storage Infrastruktur
    Ada dua tipe storage yang digunakan untuk FINFINI yaitu persistent disk dan object cloud storage s3.

 

  SECURITY

Logical Security

  1. Isolasi traffic internal dari akses dari luar (DMZ)
     
  2. DDoS Protection oleh Biznet Gio dan Cloudflare

  3. Additional Security Software

Additional Security

  1. Access to server using VPN

  2. Sensitive Data are Encrypted

  3. Data Transmitted over SSL

  4. Every request should be have signature

  5. 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

  1. Manpowers
  2. Security level of vendors
  3. Sample ID / Credential
  4. Sample Data (Mutasi / etc)

QUESTION

How to comply the security with regulation ?

ANSWER

  1. 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,091