Skip to content

2016

Scheduling Docker containers on a cluster

Docker makes it incredibly easy to run a variety of processes on a cluster of machines. Rancher offers container orchestration on top of Docker. Rancher allows you to manage a cluster of Docker-enabled machines. We use Rancher extensively at Octoperf to run JMeter containers on machines all over the world. We quickly faced an issue with Rancher here: container scheduling.

Rancher Administration

rancher-infrastructure

When you have a single machine running your docker container, everything is simple. You can run containers until the machines resources (CPU, RAM) are depleted. When you start working with 2+ nodes, you start to ask yourself new questions:

  • What is the optimal way to run containers on a cluster of machines?
  • How do I maximize resources utilization?

Deploying Jekyll using Docker

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. So we had to revert back to 2.5.

Docker to the rescue

The whole process took us time. So I decided to use Docker to build, optimize and deploy our website. Now all we need is Docker installed on our build server and available in Jenkins, the Continuous Integration tool we use.

I wrote a simple script that:

On-premise load injectors in 2 min

We are proud to announce that we support On-Premise load testing! What is On-premise load testing? Sometimes, web applications to test are behind firewalls. It may also happen that the application should not be available publicly until in production. Our on-premise feature allows you to test those applications without opening any firewall port.

You can now setup a machine to act as a load-generator on your private network. This post explains how to setup an on-premise load-generator within minutes.

Hybrid Load Testing

Our new technology allows you to mix both on-premise and cloud load-generators. Simulate virtual users running on your on-premise load-generators and virtual users running on our cloud infrastructure at the same time.

How does it work

All you need to do is to run our load testing agent on your on-premise servers. It consists of a simple Docker container, thus requiring nothing else than Docker. The agent connects to our Cloud platform, and waits for tasks. The agent will spawn JMeter Docker container when running load tests. JMeter will then hit your application and send metrics to our cloud servers.

How to build and release an open-source Java Project

I was recently curious on how to create an open-source project from scratch and release it on Maven Central. I'm going to explain in this post how to create and release your first Java open-source project.

I'm going to go through all the steps from creating the source repository, building the project using Continuous Integration, testing the code coverage and finally uploading a release on Maven Central.

No server is required to build the project, nor to publish it. Every tool used here is absolutely free, and most of them are open-source.

Source Control Management

First, we need to store the source code of our open-source project using an SCM.