LOGIN START SELLING ONLINE

Nitro Boost Project - Stage 2 & 3

Nitro Boost Project Stages 2 and 3 are out! Making Lifeboat one of the fastest e-commerce platforms available!

Following up on Nitro Boost Project Stage 1, stages 2 and 3 are now live! This had made Lifeboat one of the fastest e-commerce solutions available today!

 

Disclaimer
This post will be a relatively technical one, but we'll try our best to oversimplify the changes.

 

TL;DR

We did a bunch of cool tech things to give you and your customers a much better experience when using Lifeboat. These changes made Lifeboat one of the fastest e-commerce platforms worldwide.

 

The results...

Metric Pre-Nitro Boost Post-Nitro Boost Stage 1 Post-Nitro Boost Stages 2 & 3
TTFB
Server Response Time
±0.7s ±0.6s ±0.4ms
DOM Loaded
Browser Loaded the HTML
±1.3s ±1.2s  ±0.7s  
Full Site Loaded
Site is usable 
±1.5s  ±1.3s  ±0.9s
Blocking Time
Time browser has to wait between loading of resources
±0.2s 0s 0s

Note: Tests are performed within the EU, if accessing sites from outside the EU timings might vary.

 

So how did we do it?

Decoupling Systems

One of the major bottlenecks in Lifeboat was that the internal systems were tightly coupled, the databases, web servers, and everything in between resided in tightly connected clusters. This made it easy for us to launch the MVP of Lifeboat but prevented us from properly scaling out. Cue in Amazon Web Services. Our databases now live in a "serverless" environment that can quickly scale to meet traffic demands. As from our testing any Lifeboat site can now easily handle hundreds of thousands of concurrent users.

The database was not the only issue though, the web servers also need to speak what we internally call "the morphing language", which in its most basic form means; any server in our cluster could respond to a request irrelevant to the store domain. Because under the hood we use a framework "Silverstripe" this wasn't the easiest of challenges (far from it). However, after a bit of tweaking with how configurations are loaded, and how content was rendered we managed to configure this "morphing" system. To simplify; if a Lifeboat store gets a spike in traffic, other servers can quickly come pitch in to help spread the load and offer a consistent experience. 

But what does it mean for the average merchant? 

Think of it this way, where we previously reserved a chunk of capacity per site leaving us with a lot of wasted resources, we now have a dynamically expandable pool of resources. If a site gets a sudden spike in traffic this pool automatically configures itself to bring more machines online to handle this load. This gives your end customers a stable and performant experience irrelevant of how many users are online.

 

Load Balancing

To be able to effectively distribute traffic, we also had to deploy a new system to balance the load. Cue in HAProxy. Without going into too much detail (for security reasons), this new system can handle hundreds of millions of requests, and like a traffic light system, it directs customers to the webserver best equipped to serve the request at that time. This new system also means we can now offer much more protection against DDOS, and malicious bots.

 

Data Structures

Finally, the last piece of the puzzle was changing how he store and retrieve data to extract as much performance from the new available systems. For obvious reasons, we can't go into detail on how this is done however, we can share that by optimising our storage systems, and data structures we managed to reduce the amount of data queried by ±70%!

 

Conclusion

The topics in this article are a bit tricky to explain however, the results are simple to explain. Thanks to the dedication of the dev team, Lifeboat merchants and customers can enjoy an improved experience when using Lifeboat.

Start your business with Lifeboat

Start your online business today, the first 30 days are on us. No credit card or contracts required.

Start free trial