Wednesday, June 5, 2019

What Makes FiiiPay A Fast & Reliable Crypto Wallet in Asia?

FiiiPay had been launched ever since June, 2018. We had gone through a lot of obstacles from the beginning of the launch until today. In this article, I would like to share all my past experience about our FiiiPay system.

In August 2018, we organized security hackathon in Malaysia to invite hackers to attempt to hack or break into our API system, some even try to hijack the FiiiPOS terminal software, but all attempts were failed. The hackers managed to find minor bugs related to UI defects only.


Later in September 2018, we encountered hackers attack our API to create user account using fake mobile number in order to gain our FiiiCoin for free through the friend referral marketing campaign. However, we managed to stop it by applying stricter rules in order to earn the freebie. We were experiencing sudden surge of system load due to the script attack, and we addressed the issue by applying firewall rule base on the attack pattern.

During December 2018, our user base grew to 340,000 and 22,000 POS terminal online at the same time for FiiiCoin mining, active online users exceed 30,000 daily, server unable to cope the load. We decided to increase our server capacity and apply load balancing strategy.

Have you ever wonder what make us so efficient and change so fast to adapt to the situation? Thanks to Alibaba Cloud. If you are building a similar e-wallet application, you may consider take my solution as reference.

I am sure you are curious why Alibaba Cloud? Why not AWS? Why not Windows Azure? I had done a lot survey and testing, firstly my discovery is Alibaba Cloud Asia network performance is better compare to other cloud service provider, and in term of pricing, it is affordable. The consideration is depend on where is your business and where are your users location. My business focus on Asia market, hence Hong Kong is a strategic location where it is the center point of all Asia countries. Hong Kong is my best choice of data center location.


If you ask me why cloud? Why not on premise servers?

I would say my main consideration is costing. As a startup company, we need to survive by controlling the budget tightly, spend on things which are necessary only. On premise servers require high maintenance effort such as hiring DevOps or System Engineer to perform high availability, redundancy, regular backup, and disaster recovery. Furthermore, the local internet service provider provide limited network bandwidth and the charging fee is expensive. Therefore, Elastic Compute Service (ECS) by Alibaba Cloud provide the flexibility and solution that fit my requirement.

ECS allowed me to change the server specification anytime I want and quickly. While my system is suffering high load, and I need to temporary increase the server capacity including the network bandwidth, I can easily configure it through the Console.



Every software company practice System Integration Test (SIT) and User Acceptance Test (UAT), I find that ECS Pay-As-You-Go billing method gave me the flexibility to pay only when require. Most of the time, test servers are not in used unless test tasks being carried out. Hence, these test servers can be shutdown. Shut downed servers are not being charged except the used storage. It helped me save cost.

As an e-wallet solution provider, robust system and high availability are utmost important, we cannot afford down time as it will impact customer experience and affect the confidence level towards our product.

Database is a the heart of the entire system, it cannot be down not even a second. I like about ApsaraDB for RDS product. It enable me to provision a database in just a few minutes time. It gives me peace of mind in all the routine work such as differential backup, full backup, redundancy, replication and fail-over by just a few button click. Even the connection architecture is setup following the best practice.


Next is to provision the Server Load Balancer (SLB) for load distribution to different servers to support high concurrency. When single API server is unable to cope the concurrent requests, then you can opt for adding extra ECS instance to the share the load by having both ECS instances assigned into a Server Group of a SLB. The request will be distributed to the instances automatically.

Lastly, all the cloud services can be monitored. We can easily configure alarm rule to monitor ECS instances or RDS databases. If there is high CPU or RAM usage or the disk storage is running low, you will receive an alert in email form or notification in DingTalk.

In conclusion, by just relying on Alibaba Cloud service, you can run a full fledged IT operation for server, database and network with affordable price and enterprise level service. FiiiPay have been using Alibaba Cloud service for more than one year and never face any down time before and satisfied with the service.

Send Transactional SMS with API

This post cover how to send transactional SMS using the Alibaba Cloud Short Message Service API. Transactional SMS usually come with One Tim...