Using Docker to build and deploy static websites on Amazon S3.
Building and deploying a Jekyll website on Amazon S3 To build the website of Octoperf, our load testing tool, we use Jekyll. I also use it for this website.
It’s great to generate static content, hosted on Amazon S3 like OctoPerf or on Github for this blog. But we had trouble upgrading jekyll to version 3 on our build server. We use plugin that are not yet available for this version.
Couchbase is a popular NoSQL Database. I’m working with this database for about a year. I like this database for several reasons:
Easy to install: a single .deb file to dpkg on Ubuntu, Fast: it serves queries within milliseconds, Distributed: you can build a distributed cluster with tens of machines. The biggest downside with this database is that it consumes almost 20% of cpu on our m3.large AWS instance for no reason.
Secure HTTP communication should be the de-facto standard to ensure better privacy.
OctoPerf is fully HTTPS. There is a are several reasons for it. Setting up HTTPS for all our websites (Documentation, Application and Website) is a little bit tedious and pricey1. It took us two days to complete the operation but the result is satisfying for number of reasons.
Why is HTTP so dangerous HTTPS ensures that the communication between our servers and our customers is fully encrypted. Lots of people are using a Wifi connection to go on the internet.
Real-time analytics was the trickiest part of our load testing tool. We went through many issues and learnt lessons from that.
Requirements When we first started to think about real-time analytics, we though that our previous experience in load testing would help us to get quickly to something working fine. It always seems easy to rethink about a problem you already solved in the past. We were totally wrong.
We wanted to provide our users a completely new analytics experience when load testing their website. Our requirements are :
Real-time: users should not wait the end of the test to analyze results, Blazingly Fast: users should experience sub-second response times, regardless of the number of concurrent virtual users, Scalable: we must be able to scale horizontally as the number of users grows, Reliable: the analytics system should be redundant to provide fault tolerance and avoid outage, Testable: we should be able to easily verify through unit testing that the analytics system is working correctly, Open-source: we don’t want to build this by ourselves.