Slush is a two-day tech and startup conference organised annually in mid-November. In the past four years, Slush has grown from a local, 300-person event to one of the leading tech and startup events in the world, reaching more than 14000 attendees from 79 countries in 2014. Regarding the IT-infrastructure, this year’s Slush received approximately 500 000 page views in just November and about 30 000 active users on peak hours during the event. The website was also responsible for many business critical functions as it was the main source of information about the conference and it also linked users to the ticket sales service.
UpCloud was one of the key partners of Slush 2014 and provided hosting for the event’s IT-infrastructure. While I work for UpCloud myself, I was also volunteering at the Slush IT-team so we have a rather good understanding of what exactly was built on top of UpCloud in this project. In this post, I will describe the technology stack and infrastructure of Slush2014 and the role of UpCloud as the hosting partner.
Overview of Slush 2014 IT
The 2014 Slush IT consisted of www.slush.org main site built on top of WordPress and a Django app. The Django app consisted of a restful JSON API, a matchmaking service for companies and investors, and an admin panel for the API. The API also had a small part built with Node.js which aggregated data to mobile apps (iOS, Android and Windows Phone). Naturally, there was also a database server running PostgreSQL for the API and a MySQL database for the main site’s WordPress installation.
Fig. 1. Slush IT-infrastructure
Fig. 1. shows a high-level view of the infrastructure. The Django LB was responsible for load balancing traffic to the Django app. The Main site LB was responsible for load balancing traffic to frontend servers running Varnish + Nginx + WordPress stack. For the main site, we set up a WP-files server containing the actual WordPress files so they are loaded via NFS to the frontend servers. This was helpful because we could clone more frontend servers without changing any configurations – e.g. WordPress file uploads. Thus, we had horizontally scalable, stateless web servers for the Django app and the main site.
Slush is an event where the load on the IT infrastructure is very heavy during autumn and especially in November during the event, while the rest of the year is pretty quiet. This essentially means that cloud hosting is a must as opposed to physical servers or a traditional VPS as we need to be able to scale up and down easily and fast. Figure 2 demonstrates the need for scaling quite well.
Fig.2. Slush Pageviews (Google Analytics)
Another reason to work with UpCloud was the free scalability of individual instances which allowed us to have precise control over horizontal and vertical scalability. UpCloud allows to freely configure the amount of CPU, RAM and storage in all of the instances instead of offering predefined instances. This is helpful as during the event we could have resource usage at the exact percentage we wanted by cloning web servers (horizontal scalability) and specifying the exact resources of individual instances (vertical scalability). After the event, we could reduce the number of web servers and also bump down the specs of the load balancers, remaining web servers and the database server to reduce costs and minimise the waste of resources.
UpCloud is a pure-bred infrastructure-as-a-service (IaaS) provider which means that we provide the infrastructure while the customer is free to build whatever they wish on top of it. However, we do also offer great customer service and support. For example, we helped the Slush IT staff to set up a high-performance load balancer (main site LB) where we bumped up the network bandwidth from 100Mbps to 1Gbps. These are examples of how we can offer customisations that are not yet available from out control panel in order to better meet the customer’s demand.
We also gave consultation on setting up a horizontally scalable WordPress site in order to make sure Slush.org would work flawlessly even during sudden, bigger loads. This is an example of how our customer support is not there to just answer the most common questions – we have true professionals with years of experience in web hosting answering your calls.
If you would like to work with a hosting provider that can be flexible in terms of your needs, consider testing UpCloud. If you have any questions – technical or general – don’t hesitate to contact our customer service!
Photo: Sami Heiskanen