Skip to content

Load Testing Blog

Building small Java Docker images

When you take a look at the Java Official Docker images, you will immediately notice how fat they are: a whopping 243MB announced for a simple Java 8 JDK base image! It takes forever to download them from a regular DSL connection here.

Usually, your Dockerfile for Java apps starts with something like:

FROM java:8

MAINTAINER ...

Just try the following command: (you must have docker installed)

docker pull java:8
docker images | grep java

Should I test my external providers

If you ever recorded a load testing scenario on a website you probably noticed that the list of external links can be scary: Server List

Plus these links might occur several times, making your user profile difficult to read. Because of this even a simple task like separating the different steps into distinct transactions can become tedious: Lots of requests

Every time I work on such tests the question is always the same: "Do we need to simulate these requests?"

New Load Testing region

We're pleased to announce today the launch of the Asia Pacific (Seoul, South Korea) region. Companies with infrastructures based in Korea can now leverage our Korean load generators to measure the performance of their applications.

Seoul, South Korea

Load tests can now be run smoothly from South Korea using Amazon Web Services. Seoul is well-known to be digital nomads friendly.

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: