For Proxifile Interview

@Eddie Hsu

Career

Challenges

Backend performance

@QCDN

Before

The CDN billing system has a performance issue in log system. There are some instances with a load balencer here but they can't handle the peak value.

Because of that, some of the logs are missing and we can't have correctly bill for out customers.

Load balencer

Instance

Instance

Instance

SQL

After

I did some refactor with microservice & serverless, batch insert and BigQuery.

After that, the log system works fine and also reduce about 70% instance cost.

Cloud function handler

Cloud Function

Cloud Function

Cloud Function

Insert batch pool

BigQuery

Maptile process

@Tasmap

DEMO

Last

Learned
Technology

Rust & WASM

I learning Rust & WASM because I need a fast and cross-platform programing language to help JavaScript.

In Tiat2, I replaced some heavy loading JS module (like computer vision or clustering) with Rust and WebAssembly to improve the performance to a different level.

Advantages

After replace some computer vision JS module into Rust, the Image proccessing is 5x ~10x fast than old version. 

In the front-end side, the WASM also improved about 50% performance in clustering.

Disadvantages

The bundle size incressed a lot. In node-side, a basic Rust plugin can be many Mbs, and the WASM can be even larger. It's a hard issue when we are trying to build a light & fast web application.

Q & A

deck

By Eddie Hsu