Briarpatch
Briarpatch is Mint Digital's hosting platform. Our hosting stack has been developed over three years of producing and deploying high-volume web applications.
A common problem for websites tied to television properties is how to handle the extreme spikes in traffic that come with transmission. Briarpatch has been designed from the ground-up to solve this.
Virtualise to eliminate failure
Briarpatch hosting is entirely virtualised. This brings a multitude of benefits:
- All single points of failure through the stack are eliminated.
- There is an additional layer of physical redundancy.
- We can rapidly scale up and down per demand.
- Our setups are entirely flexible to your needs.
- We can host for cheaper and pass the savings on to you.
Layer upon layer
Briarpatch is composed of three layers: the web layer, the application layer and the database layer.
The web layer
The web layer is responsible for serving static and cached assets and is the first line of defense: all requests hit this layer first. Physical load balancers distribute and fail-over this layer across multiple nodes. These nodes are virtualized and pushed to multiple physical devices.
The application layer
The application layer is responsible for the generation and caching of dynamic content. It is comprised of entirely stateless application nodes which can be seamlessly added or removed from the solution at the push of a button. This is the primary layer which scales out as traffic increases.
The database layer
The final layer is the database layer, which is typically made up of a MySql master node and one or more slave nodes. To some extent the specific topology of this layer will be application dependent, but in general, one master and many slaves are sufficient to support most applications. Since over 90% of activity online involves database reads, it is possible to massively scale out an application by adding additional slaves to the database layer. On the rare occasions we deem this to be insufficient, we use sharding to allow us to scale out the master.
Add a bit of magic
In addition to scaling according to demand, we also employ a number of techniques to guarantee high performance. These include optimising the memory footprint of each node separately: for example database nodes may be 8GB or 16GB as opposed to 1GB for a web node, or 2GB for an app node. The query cache is also tuned accordingly, we add memcached at strategic places and optimize the routing of requests at the web layer level.
Tailor to your needs
Each application is evaluated as it is developed. We use a distributed load testing system prior to launch, and we remain flexible about addressing any performance issues that might arise. Our goal is to create a stack with a solid foundation for any application, which we can then build upon for the specific application in question.