InfluxData and Docker
By Jack Zampolin / Apr 17, 2017 / Chronograf, InfluxDB, Community, Kapacitor, Telegraf
Getting ready for the 2017 DockerCon this past week has had me thinking about all of the different ways we use Docker at InfluxData. From our official images, backing InfluxDB Cloud, and in our everyday development work. Furthermore, we share a commitment to open source and here are a couple of ways the two are great together.
Shared Commitment to Open Source
Both Docker and InfluxData are major open source contributors. All of InfluxData’s major projects InfluxDB, Kapacitor, Telegraf, and Chronograf as well as Docker’s Docker Community Edition and ContainerD are open source. Developers trust open source software due to its inherent visibility, transparency, and active communities behind the projectscharacteristics shared by both Docker and InfluxData.
InfluxData Sandbox and the Official Docker Images
We recently launched InfluxData’s official Sandbox for experimenting with the full TICK Stack in an easy-to–get-started way. It is at its core a
docker-compose.yml file and a script to help users unfamiliar with docker accomplish common tasks.
With millions of pulls, the images behind sandbox are production tested and included in the official Docker image repository. I know this has saved me a bunch of time, and really helps me get started on projects quickly! Want to spin up monitoring for an IOT side project? Need to do a proof of concept for your new monitoring system? No problem. There is also an example
docker-compose file in the sandbox if you want to run the full stack together and want a place to start. Here are the links to our official Docker images:
Autoscaling and Docker
We recently did a webinar on how to automatically scale containers running on Docker Swarm, or the infrastructure underlying those containers, using the TICK stack. We wrote a small Golang program called Orbiter to make sending scaling messages to different providers a breeze. For the webinar, we implemented Digital Ocean and Docker Swarm as scaling targets.
Using Kapacitor to trigger autoscaling makes it very easy to setup, and allows you to target different metrics to scale on. Want to scale your RabbitMQ Cluster based on queue depth, or your Nginx servers based on requests per second? No problem with Orbiter and the TICK Stack.
In addition to scaling Docker Swarm we also have a Kapacitor alert handler to scale Kubernetes deployments based on any metric you choose. Want to scale your CI workers based on … the weather outside? Well that might be getting carried away, but with a Raspberry Pi and some gumption you could make it happen!
At InfluxData, our cloud service (cloud.influxdata.comgo check it out!) runs on Docker. Even the smallest sized cluster requires at least four different pieces of infrastructure with multiple copies of each. While this can be painful with some configuration management tools, with Docker it is a breeze. By eating our own dogfood we can tighten the iteration cycles on our products and deliver a better experience to all of our users.