Pages

Monday 18 December 2017

Tools mentioned in Devops Weekly

All credits to http://www.devopsweekly.com/ looked after by Looked after by Gareth Rushgrove.



Kashti is a dashboard for anyone using Brigade, a tool I’ve mentioned previously for building elaborate pipelines composed of multiple containers running on Kubernetes.

https://open.microsoft.com/2017/12/06/kashti-kubernetes-open-source-microsoft/
https://github.com/Azure/kashti


Jo is a handy utility which can output JSON based on arguments to the CLI tool. Handy for API testing and other use cases.

https://github.com/jpmens/jo


Kitchen Terraform is a plugin for Test Kitchen to allow for testing resources provisioned by Terraform.

https://newcontext-oss.github.io/kitchen-terraform/


Escape is a toolset for release engineering, life-cycle management and continuous delivery of software platforms and artefacts. Unlike some similar tools it hands off much of the work to other lower-level platforms or command line tools and focuses on the integration piece.

https://github.com/ankyra/escape/
https://escape.ankyra.io/docs/what-is-escape/


Metaparticle is a new project aiming to be the standard library for distributed systems. It takes advantage of the capabilities of Kubernetes to expose features like master election and container packaging and scale out, with current implementations in .NET, Java and Javascript.

https://metaparticle.io/posts/welcome-to-metaparticle/
https://metaparticle.io/


SockGuard is a eat new project which provides a proxy to the Docker socket which exposes some useful access control features.

https://github.com/buildkite/sockguard

 MetalLB is a Kubernetes-native load balancer for environments where the cloud-provider load balancer integration isn’t suitable, for instance when running a bare-metal cluster.

https://github.com/google/metallb


SPIFFE is a set of open-source standards for securely identifying software systems in dynamic and heterogeneous production environments. It’s still in development, but a useful shared solution to a common problem.

https://spiffe.io/
https://github.com/spiffe/spiffe


The Chaos Toolkit is a set of tools for describing and running chaos engineering style experiments against your systems. The tutorial does a good job of introducing the toolset.

http://chaostoolkit.org/
https://github.com/chaostoolkit/

 container-diff is a new tool for comparing container images, either locally or from a remote repository. It detects packages from a number of package management tools, as well as filesystem changes. Useful for debugging image build problems.

https://opensource.googleblog.com/2017/11/container-diff-for-comparing-container-images.html
https://github.com/GoogleCloudPlatform/container-diff


Open Policy Agent is an interesting new project providing which provides a DSL for describing policy, and software to ensure described systems remain compliant. Examples include managing Kubernetes API admission, Terraform permissions and SSH authorization.

http://www.openpolicyagent.org/

I’ve seen (and build) a few integration testing setups for container images, but DockerSpec aims to come with everything out-of-the-box. RSpec helpers for testing Dockerfiles, image builds, running containers, Compose and more.

https://github.com/zuazo/dockerspec

Neugram is a new scripting language, based heavily on Go, but with some useful tricks to cut down on some of the syntax. It also provides a REPL and shebang support.

https://neugram.io/blog/neugram-briefly
https://neugram.io/


Psykube provides a slightly higher-level abstraction that the raw APIs for describing applications running on Kubernetes.

https://github.com/CommercialTribe/psykube


CIM looks like a handy tool for anyone managing AWS CloudFormation templates. Rather than try and provide an abstraction, CIM provides a number of helpful user interface tools which make working with templates easier.

https://medium.com/@rgfindley/meet-cim-cloud-infrastructure-manager-bc8bcfe0593c
https://github.com/thestackshack/cim

lstags is a handy tool for comparing Docker images between repositories, as well as automatically syncing images between repositories.

https://github.com/ivanilves/lstags


Brigade is a new workflow tool for Kubernetes environments, allowing for writing JavaScript to define pipelines for running containers. Supports timers, listening to events from services like GitHub or Docker image repositories and more.

http://brigade.sh/
https://github.com/azure/brigade/

OpenMetrics is a public working group looking to determine a standard for exposing metrics data, influenced by the Prometheus exposition format. I’m a big fan of adhoc agreement so hopeful this takes off.

https://github.com/RichiH/OpenMetrics

Kapitan is another Jsonnet based configuration tool for Kubernetes. As well as configuration templates it provides built-in support for generating documentation and scripts, and a tool for separating data from configuration.

https://github.com/deepmind/kapitan


Tarmak is a new toolkit for managing and provisioning a Kubernetes cluster. It makes use of Packer, Puppet, Terraform and Docker to provide a degree of platform independence, but provides a higher-level CLI interface and good defaults for a secure, CI/CD ready cluster.

http://docs.tarmak.io/en/latest/
https://github.com/jetstack/tarmak

Kedge aims to provide a high-level data-centric interface for describing Kubernetes applications, with a focus on good defaults and familiarity for folks already using the lower-level APIs.

http://kedgeproject.org/
https://github.com/kedgeproject/kedge


The Docker Version Manager (dvm) is a cross-platform command-line tool that helps you install and switch between Docker clients. Handy if you’re working with a range of different server versions.

https://howtowhale.github.io/dvm/
 

Kubesh is a handy tool for anyone managing several Kubernetes clusters. It allows for spawning new shells with different Kubernetes contexts.

https://medium.com/@lestrrat/handling-multiple-kubernetes-clusters-using-kubesh-a7e2a1606bfa
https://github.com/lestrrat/kubesh


Vespa is a new open source engine for executing and serving computations over large data sets in real time. It allows you to write and persist any amount of data, and execute high volumes of queries over the data which typically complete in tens of milliseconds.

http://vespa.ai/

Chart Museum is an open source Helm Chart repository, for anyone using the helm package manager with Kubernetes. It supports S3, Google Cloud Storage backends and local storage, and the README contains details for how to get up and running.

https://github.com/chartmuseum/chartmuseum


Ducktape is a framework for writing high-level system integration tests for distributed systems, originally written to test Kafka.

https://github.com/confluentinc/ducktape
https://ducktape-docs.readthedocs.io/en/latest/


Jaeger is an open source system for monitoring distributed systems, using the OpenTracing API.

https://github.com/jaegertracing/jaeger

Pumba is a tool for chaos testing in a Docker environment. Supports interfering with network traffic to simulate connectivity issues and stopping containers.

http://blog.terranillius.com/post/pumba_docker_chaos_testing/
https://github.com/gaia-adm/pumba


AWX provides a browser-based user interface and API for Ansible. It represents part of the Ansible Tower product, now available as an open source project.

https://github.com/ansible/awx


Webhooks can be a useful way of integrating different software, but how best to run a set of hooks? Enter webhook. Describe hooks in a simple configuration file and point it ad executables and it exposes a simple HTTP/S interface to run them.

https://github.com/adnanh/webhook

OK Log is a distributed and coördination-free log management system for large clusters. It's designed to be a building block: easy to understand, easy to operate, and easy to extend.

https://github.com/oklog/oklog


Cruise-control (not the CI system) is a new tool to fully automate the dynamic workload rebalancing and self-healing of a large kafka cluster.

https://engineering.linkedin.com/blog/2017/08/open-sourcing-kafka-cruise-control
https://github.com/linkedin/cruise-control


Gosu solves a specific problem for anyone building Docker images, namely running an application as a different user but without interfering with signal processing and TTY.

https://github.com/tianon/gosu


PlantUML is a text-based diagramming tool, and this project provides primitives for diagraming with AWS service. Lots of good examples in the README.

https://github.com/milo-minderbinder/AWS-PlantUML

 Squash looks like an interesting idea to build a debugger for microservices. Currently it supports Kubernetes and VSCode. The rolling demo gives you an idea of how it works.

https://github.com/solo-io/squash


Serverless applications have typically relied on platform-specific services. For those interested in more cross-platform approaches the new event gateway application from the folks behind the serverless framework looks useful.

https://serverless.com/blog/introducing-serverless-event-gateway/
https://github.com/serverless/event-gateway


Kubernetes Deploy is a new, high level, tool for deploying applications to Kubernetes. It focuses not just on submitting changes, but helping the user understand exactly what changed.

https://github.com/Shopify/kubernetes-deploy

Functions as a Service (or FaaS) is a new serverless framework aimed at running on top of Docker or Kubernetes.

https://blog.alexellis.io/introducing-functions-as-a-service/
https://github.com/alexellis/faas


OpenEBS provides containerized block storage with per-container (or pod) QoS SLAs, tiering and replica policies across AZs and environments, and predictable and scalable performance.

https://github.com/openebs/openebs
 

Supercronic nicely solves the problem of running cron jobs in containers, providing a cron implementation which happily takes environment variables and outputs straight to stdout and stderr amongst other features.

https://github.com/aptible/supercronic


Atlantis is a workflow tool for teams working with Terraform. It provides some nice features to prevent common mult-users issues and integrates with GitHub pull requests.

https://github.com/hootsuite/atlantis

Manifesto is a new tool for storing and retrieving Docker image metadata alongside the image in question in a repository, including on Docker Hub.

https://github.com/aquasecurity/manifesto


Terraboard is a handy dashboard for anyone using Terraform. It allows for visualising and querying terraform state from a simple browser-based interface.

https://github.com/camptocamp/terraboard

Kedge is looking to provide a concise application definition for kubernetes. Higher-level than the full API wireformat, Kedge describes a YAML file format which can be expanded by the bundled command line kedge tool.

http://kedgeproject.org/
https://github.com/kedgeproject/kedge


Jsonnet is cropping up in a number of places for managing configuration so it’s nice to see a native unit testing framework.

https://github.com/yugui/jsonnetunit


Buildah is a new tool for building OCI-compatible and Docker-compatible images. It provides a series of commands for building images up, and can also use existing Dockerfiles.

https://github.com/projectatomic/buildah


Karn is a tool for creating seccomp and apparmor profiles. It provides a simple TOML based description language and a tool to convert multiple declarations to the more complex profiles.

https://github.com/GrantSeltzer/karn

K8Guard is an auditing system for Kubernetes clusters. It monitors different entities, like image size, third-party repository usage, missing metadata, etc. on your cluster for possible violations.

https://target.github.io/infrastructure/k8guard-the-guardian-angel-for-kuberentes
https://k8guard.github.io/


Kubicorn is another project in the Kubernetes management space. A library more than a tool to use directly, kubicorn is a new projects but with some interesting design goals.

https://github.com/kris-nova/kubicorn

Smith is a command line utility for building microcontainers from rpm packages or oci images. The resulting image only contains the process to be run and its direct dependencies, is particular careful about file ownership and permissions and can be run read-only.

https://github.com/oracle/smith


  Kubeval is something I’ve been hacking on recently to validate Kubernetes config files. Especially if you’re generating those files with templates, or supporting multiple versions of Kubernetes, this might be handy.

https://github.com/garethr/kubeval


Kube Shell is exactly what you’d expect, a shell for interacting with Kubernetes. Auto completion, command suggestion, history, inline documentation and more.

https://github.com/cloudnativelabs/kube-shell

Kube-bench is a handy tool for checking a Kubernetes installation against the published security guidelines in the CIS Kubernetes 1.6 Benchmark.

https://github.com/aquasecurity/kube-bench


ImageWolf is a new tool to help quickly distribute Docker images around a cluster using BitTorrent. ImageWolf runs on Docker Swarm and can integrate with both the Docker Hub and local registries.

http://container-solutions.com/lightning-image-deployment-imagewolf/
https://github.com/ContainerSolutions/ImageWolf


Buildkit is a new, low level, tool for building container images. The intention is to provide the backend for build in a separate package, allowing for compatible but new and different build interfaces to be built.

https://github.com/moby/buildkit


Managing secrets in a way that feels native to Kubernetes has been much discussed. Sealed Secrets therefore looks like an potential approach with some interesting properties.

https://github.com/bitnami/sealed-secrets
 

A nifty tool for anyone integrating Kubernetes into an existing environment, pam_hook allows for using unix-style users and groups and LDAP to provide tokens for use with the Kubernetes API.

https://github.com/bjhaid/pam_hook


CredStash is a very simple, easy to use credential management and distribution system that uses AWS Key Management Service (KMS) for key wrapping and master-key storage, and DynamoDB for credential storage and sharing.

https://github.com/fugue/credstash


Have you ever wanted to search through a filesystem but forgotten the magic incantations to find or ack? Fsql provides an interesting SQL alternative for a wide range of file system queries.

https://github.com/kshvmdn/fsql


Welder is a simple script execution tool, intended for bootstrapping server instances with as few features as possible.

https://github.com/pch/welder

Draft is a new high-level tool for managing kubernetes applications, targeting the local development experience with packs for common development environments.

https://github.com/Azure/draft


An interesting approach to creating distroless container images, using Bazel to build a minimal base image and accompanying language runtime images for Java, Python and more.

https://github.com/GoogleCloudPlatform/distroless


K2 is a new tool for deploying a Kubernetes cluster on top of CoreOS using Terraform and Ansible under the hood.

https://github.com/samsung-cnct/k2
https://github.com/samsung-cnct/k2cli
 

Istio is a new service mesh for microservice applications based on Kubernetes. It provides a standard way to connect, secure, manage and monitor microservices, based on the Envoy proxy.

https://istio.io/blog/istio-service-mesh-for-microservices.html
https://github.com/istio/istio



Lumogon is a little something I’ve been working on at Puppet recently. It’s an open source tool for inspecting running Docker containers. Initially it can report on software packages installed in the container, but we have lots more ideas for other capabilities.

https://github.com/puppetlabs/lumogon
https://lumogon.com/


Gixy is a static analyzer for Nginx configuration, intended to detect common security misconfigurations. This would be great in a CI pipeline.

https://github.com/yandex/gixy

If you’re using lots of Kubernetes you might have different contexts you want to manage. Enter kubectx, a handy tool for flipping backwards and forward, with support for aliases and shell completion.

https://ahmet.im/blog/kubectx/


BeePing is a service to allow for HTTP Monitoring via API. When running BeePing you can hit it’s API and it will confirm various properties like performance or SSL cert expiry for the requested domain.

https://github.com/yanc0/beeping


JSONNET is a handy programming language for creating JSON, useful for all sorts of configuration tasks. Kube.libjsonnet is a library for helping manage Kubernetes configs in a sane manner.

https://github.com/heptio/kube.libsonnet

Gordon is a tool for deploying and managing AWS Lambda functions, backed by CloudFormation. It provides a nice high-level abstraction over the many underlying services, and the documentation has lots of useful examples.

https://github.com/jorgebastida/gordon

Kubemr is a mapreduce framework for data processing on Kubernetes. It’s an interesting example of using the various Kubernetes primitives to build higher-level systems.

http://www.sajalkayan.com/post/kubemr.html
https://github.com/turbobytes/kubemr


Vaul UI is a user interface for the Vault secrets management application. It’s neatly packaged as either a local application or a shared web app, and supports a number of backends for authentication.

https://github.com/djenriquez/vault-ui


Deputize neatly integrates PagerDuty and LDAP, by exporting on-call information from a PagerDuty schedule to a configurable LDAP group.

https://blog.threatstack.com/balancing-security-and-your-on-call-rotation-using-deputize
https://github.com/threatstack/deputize


Weathervane is a new application for conducting a performance benchmark against a virtualized or cloud environment.

https://blogs.vmware.com/performance/2017/04/weathervane-performance-benchmarking-now-open-source.html
https://github.com/vmware/weathervane
 

Cerebro is an alerting system build to integrate with Graphite. The service layer currently integrates with Seyren to store alarms, schedule checks and send alerts

https://github.com/voyages-sncf-technologies/cerebro


Codeflow is a new deployment pipeline tool aimed at 12-factor apps on Kubernetes. It features a plugin based system for extending the core functionality too.

https://codeflow.checkr.com/
https://github.com/checkr/codeflow


Kube Applier is another kubernetes deployment tool, this time aimed at running kubernetes configuration files on a schedule and reporting on any drift.

https://blog.box.com/blog/introducing-kube-applier-declarative-configuration-for-kubernetes/
https://github.com/box/kube-applier

springboard is a cli utility to help get your secrets into vault. It allows for storing encrypted files in source control, and publishing those secrets securely in Vault.

https://github.com/benschw/springboard


One of the issues for some with the unikernel approach is the need to use specific programming languages. This demonstration shows a possible alternative, in this case transpiling PHP.

https://github.com/tfjmp/php2uni
https://www.cl.cam.ac.uk/research/srg/opera/publications/papers/2017ic2ePHP2Uni.pdf
 

Dockerscan is another security scanning tool for use with Docker images, but one focused on gathering information useful for an attacker. Useful for defence in better understanding your exposure.

https://github.com/cr0hn/dockerscan


Related to the opentracing presentation above, Loki is a new opentracing compatible tracing application with similar design sensibilities to the prometheus monitoring system.

https://github.com/weaveworks-experiments/loki


DNSControl is a system for maintaining DNS zones for different provides (including Route53, CloudFlare, and Gandi), using a custom DSL and runtime. It apparently generates the most beautiful BIND zone files ever.

https://github.com/StackExchange/dnscontrol
https://stackexchange.github.io/dnscontrol/


LXDock is a tool intended for building a local development environment. It acts as a thin wrapper around LXD and provides a YAML based users interface for describing what you need.

https://github.com/lxdock/lxdock
https://lxdock.readthedocs.io/en/stable/


If you’re writing tools against the AWS APIs testing can be a challenge. Localstack provides an easy-to-use test and mocking framework with local copies of several AWS APIs including Lambda, DynamoDB, S3, API Gateway and more, all packaged as a Docker image.

https://github.com/atlassian/localstack


FireHOL is a language (and a program to run it) which builds secure, stateful firewalls from easy to understand, human-readable configurations. It also includes FireQOS which provides extensions for traffic shaping too.

http://firehol.org/


Ctop is a top-like interface for container metrics, connecting to a Docker socket and presenting information about container memory, CPU and network usage.

https://bcicen.github.io/ctop/
https://github.com/bcicen/ctop


Kubecfg is a tool for managing complex Kubernetes configurations, by providing a nice wrapper around jsonnet templates.

https://github.com/anguslees/kubecfg



Cloud Custodian is a tool to help with keeping an AWS account to a set of defined policies, like ensuring tags are applied or that ec2 instances have encrypted volumes.

https://github.com/capitalone/cloud-custodian


Prophet is a tool for producing high quality forecasts from time series data. It is focused on allowing for accurate forecasting to be done by non-experts

https://research.fb.com/prophet-forecasting-at-scale/
https://github.com/facebookincubator/prophet


Trilogy is a new tool for testing database logic. Test cases are represented by markdown files and it’s designed to be used with a continuous integration system.

http://engineering.pivotal.io/post/trilogy-the-sql-testing-framework/
https://github.com/pivotalsharedireland/trilogy

An interesting set of tools for managing security in Google Cloud, focused on enforcing firewall rules across multiple projects.

https://labs.spotify.com/2017/02/22/google-cloud-security-toolbox/
https://github.com/spotify/gcp-firewall-enforcer
https://github.com/spotify/gcp-audit

awless is a CLI for Amazon Web Services which aims to be fast, powerful and easy-to-use. Useful to exploring an existing infrastructure as well as ad-hoc commands.

https://github.com/wallix/awless


Mach is a new build tool trying to take some of the things about Make that make it great and bring to them projects (including Java and CLojure projects) that use a hierarchical file system.

https://github.com/juxt/mach
 

HubCommander is a new chatbox for GitHub organization management. You can create new repos, grant permissions, enable Travis all from your chat room.

https://github.com/Netflix/hubcommander
http://techblog.netflix.com/2017/02/introducing-hubcommander.html

Minishift is a quick way of getting a local OpenShift cluster up and running in a VM with the minimum of fuss.

https://github.com/minishift/minishift


LogHub is a new log forwarder with some powerful data pipeline features. It received events from external sources, process them and send them, and is configured with it’s own DSL.

https://github.com/fbacchella/LogHub


zetcd is a simple forwarder for etcd which allows you to use etcd as the backend for zookeeper clients.

https://github.com/coreos/zetcd


Beringei is a high performance, in-memory storage engine for time series data.  It’s been designed specifically for storing health and performance monitoring data with very high write loads.

https://code.facebook.com/posts/952820474848503/beringei-a-high-performance-time-series-storage-engine/
https://github.com/facebookincubator/beringei

Vuls looks like an excellent, modern, vulnerability scanner for Linux and FreeBSD. Run either interactively or on cron it has support for scanning containers as well as the host OS.

https://github.com/future-architect/vuls


Tig is a text mode interface for Git. Something more than the command line can be useful when exploring a repository or learning git, but not everyone wants a full-blown GUI.

https://jonas.github.io/tig/


A build toolchain for MirageOS unikernels built around Docker. Integrates Solo5 to provide targets for kvm, ukvm and qemu.

https://github.com/mato/docker-unikernel-runner


Pipenv is a new tool for python dependency management. It’s aim is to combine pip, the new Pipfile, virtualenv and ideas from other language systems into a single polished user interface.

https://www.kennethreitz.org/essays/announcing-pipenv

Cernan is a new telemetry and logging aggregation server. It exposes multiple interfaces for ingestion (eg. statsd, graphite, line-oriented log files ) and can emit to multiple aggregation sources while doing in-flight manipulation of data.

https://medium.com/@bltroutwine/announcing-cernan-28c245a12f91#.4nbmtqh5q
https://github.com/postmates/cernan/


Hellogopher is a Makefile that makes your conventional Go project build from anywhere, for anyone, with just make. Aimed more at the occasional Go programmer, it makes the point that Go developers should know and use GOPATH but it shouldn't be the first thing they are exposed to.

https://github.com/cloudflare/hellogopher

Kubeplay is a REPL for the Kubernetes API. It allows for exploring and displaying information about Kubernetes resources using a Ruby DSL, with some commands for modifying resources too.

https://github.com/errordeveloper/kubeplay


Kubernetes provides a number of ways for third parties to extend it, kubevirt runs with that and is adding the ability for Kubernetes to manage virtual machines, adding the new VM resource amongst others.

https://github.com/kubevirt/kubevirt


Systemdlogger is a small tool to used to export systemd journald logs to an external service, for example cloudwatch or elasticsearch. It’s designed to be simple, simpy running out of cron.

https://github.com/techjacker/systemdlogger


Screwdriver is a new Continuous Delivery build system. It runs atop Kubernetes or Docker Swarm and provides a web UI as well as the ability to define pipelines in a YAML dataformat.

https://yahooeng.tumblr.com/post/155765242061/open-sourcing-screwdriver-yahoos-continuous
http://screwdriver.cd/

 

Cherami is a new distributed, scalable, durable, and highly available message queue system. The accompanying blog post does a good job of explaining why another queuing server, and the animations give you a good sense of the design.

https://eng.uber.com/cherami/
https://github.com/uber/cherami-server


Grumpy is a Python to Go source code transcompiler and runtime. That means you can convert your Python code to a Go static binary, avoiding the python global interpreter lock and runtime dependency. Still early days but very interesting.

https://github.com/google/grumpy

Conductor is a new microservices orchestration engine. It provides a blueprint DSL to describe a process flow, and then wires up individual microservices as well as providing a useful visualisation of the topology.

https://github.com/Netflix/conductor
https://netflix.github.io/conductor/


Burry is a backup and recovery tool for etcd and zookeeper. As these tools are often used as critical components of some systems being able to use backups to recover from some failure modes is likely to be critical.

https://github.com/mhausenblas/burry.sh


Alerta is a powerful addition to a monitoring setup, providing a single place to manage alerts. It integrates with a wide range of monitoring systems and does simple de-duplication and correlation.

http://alerta.io/


Banshee is a real-time anomaly detection system for periodic metrics. It integrates nicely with statsd and can issue alerts as well as providing a nice dashboard.

https://github.com/eleme/banshee


Ostent collects metrics (memory, CPU, network IO, disk space, etc.) and forwards them to tools like InfluxDB, Graphite or Librato. It also features a simple user interface.

https://github.com/ostrost/ostent
 

A lot of information is stored in a github repository as it’s used, and the git CLI tools provide one interface to that information. GitQL provides a more SQL like read-only view, handy for repository anaylsis.

https://github.com/cloudson/gitql



I’m seeing lots of interest in using Kubernetes as a platform on which to run serverless architectures. Fission looks like a good early approach to this, although it’s described as being in “early alpha”.

http://fission.io/
https://github.com/platform9/fission


pREST is a handy looking tool for very simply exposing a PostgreSQL database via an HTTP interface.

https://github.com/nuveo/prest


Anistrano is a port of the features and usage patterns of Capistrano 2.0 to Ansible, providing a deploy and rollback role to aid with application deployment.

https://github.com/ansistrano/deploy


Jid is a simple tool for exploring JSON documents interactively. Very handy if you’re dealing with large JSON documents, say with the AWS CLI responses.

https://github.com/simeji/jid


Grafanalib is a nifty library for generating Grafana dashboards from simple Python scripts.

https://github.com/weaveworks/grafanalib


runv is analogous to the runc container runtime, except runv runs your container on top of a real hypervisor. Currently supports kvm, xen and virtualbox. Useful if you need additional isolation guarantees.

https://github.com/hyperhq/runv


Funker is an interesting experimental approach to packaging up pieces of your application (functions or otherwise) as Docker containers and have them run on-demand on a swarm.

https://github.com/bfirsh/funker


ProxySQL is a high performance MySQL proxy which allows for query caching, routing queries to different clusters, smart query firewall rules and more.

https://github.com/sysown/proxysql
http://www.proxysql.com/

Storing credentials in your shell profile and exporting them as environment variables is incredibly handy but very insecure. Envchain looks to provide the same ease of use but to use  OS X Keychain or gnome-keyring as the backing service.

https://github.com/sorah/envchain


Pinpoint is an open source Application Performance Management tool for large-scale distributed systems. It features some tracing capabilities, the various screenshots give a good sense of its capabilities.

https://github.com/naver/pinpoint


IronFunctions is an open source serverless platform which supports running Docker images via a simple API. It’s quite early but the documentation walks you through how to try it out quickly.

https://github.com/iron-io/functions
 

If you’re building your own dashboards it can be easier to start with some sort of framework. Enter this project, which provides a set of responsive templates specifically aimed at making dashboards quickly.

https://github.com/keen/dashboards


RackHD describes itself as a stack for enabling automated hardware management and orchestration. It’s an opinionated set of existing tools, bundled together with a high-level API server.

http://rackhd.readthedocs.io/en/latest/



I’ve talked before about the potential for alternative container build tools. One such recent addition is box, which builds images using a subset of Ruby, using mruby embedded in a Go application.

https://github.com/erikh/box


And for those more familiar with Puppet the recent Puppet image_build module allows for building containers images direct from Puppet’s domain specific language.

https://github.com/puppetlabs/puppetlabs-image_build


A handy tool announced at PuppetConf, octocatalog-diff allows for some interesting testing of Puppet code, in particular helping to reduce the risk of refactoring existing code.

http://githubengineering.com/octocatalog-diff-github-s-puppet-development-and-testing-tool/
https://github.com/github/octocatalog-diff


Lots of people will tell you containers are made of cgroups and namespaces, but how do you dig into those? Enter cinf which provides a handy tool for low-level container prodding.

https://github.com/mhausenblas/cinf

Gradle is a popular and powerful build tool used in a number of different language environments, and PyGrade brings that capability to Python.

https://github.com/linkedin/pygradle


Gogeta is a reverse proxy backed by etcd. It provides real time dynamic reconfiguration of routes without having to restart the process.

https://github.com/arkenio/gogeta

For lots of workflows setting the GitHub master branch to protected is a sensible choice, but it’s relatively recent addition and you may have lots of repos. Enter Petter, a simple tool to change the setting for all repos in a given organisation.

https://github.com/jessfraz/pepper


Zentral is a nice looking tool for host inventory and acting on inventory data, built atop osquery, Santa, Sal, ElasticSearch and with integration with various other tools.

https://github.com/zentralopensource/zentral/wiki


Cillium is another container networking approach, but one which uses experimental kernel features like BFP and XDP. It aims to provide fast in-kernel networking along with string security policy enforcement.

https://github.com/cilium/cilium
 

Doorman is a very interesting approach to rate limiting for internal services, pushing some of the authority to the client but providing a central service knowledgable about the needs and wants to the different clients.

https://github.com/youtube/doorman


Babushka is a tool for automating systems administration tasks which makes explicit the configuration change and the test to verify the change.

http://babushka.me/


LambCI is a CI and build system designed to run on AWS Lambda. This makes for some interesting properties, including potentially large cost savings depending on your build profile.

https://medium.com/@hichaelmart/lambci-4c3e29d6599b#.fhhti6fbs
https://github.com/lambci/lambci


Static site generators are nothing new, but Trestus is interesting as it’s very domain specific. It aims to build status pages, for communicating with users around outages, with the data coming from Trello. If you’re using Trello internally to manage an outage that could be a nice workflow.

https://canonical-ols.github.io/trestus/


SQLint is a simple SQL syntax checker, ideal for sanity checking SQL files as part of a continuous integration workflow.

https://github.com/purcell/sqlint

Envoy is a new proxy and network bus that runs on every host and abstracts the network by providing common features (load balancing, circuit breaking, service discovery, etc.) for your applications and services.

https://eng.lyft.com/announcing-envoy-c-l7-proxy-and-communication-bus-92520b6c8191#.vlashkab0
https://lyft.github.io/envoy/


Minio is an object storage server which provides compatibility with Amazon S3. It provides a nice command line and web based interface and can serve an existing directory of files.

https://github.com/minio/minio


CoreDNS is a new DNS based service discovery tool, intended to be the next generation of the popular SkyDNS project. It’s built using Caddy and already comes with several optional middleware components.

https://coredns.io/
 

I love Make and you should too. But writing maintainable Make files is often a challenge. Enter Checkmake, an opinionated linting tool for Make

https://github.com/mrtazz/checkmake


My Looking Glass is an open source software utility which combines the functions of several different network probes (HTTP, ping, DNS, port scanning and more) in one network diagnostic tool.

http://mylg.io/


Pshtt is a handy tool for anyone managing a large number of sites and trying to enforce HTTPS best practices like use of HSTS or specific cypher suites.

https://github.com/dhs-ncats/pshtt

Terraform is an increasingly common tool for describing cloud infrastructure in code, but using it in teams requires some sharing of state. Enter Terragrunt, an open source service you can run to support locking and sharing state between users.

https://blog.gruntwork.io/add-automatic-remote-state-locking-and-configuration-to-terraform-with-terragrunt-656a57565a4d#.ejrf45azt
https://github.com/gruntwork-io/terragrunt


An interesting approach to creating an Apt package repository on S3, using Lambda to build the package index automatically when you upload new packages.

http://webscale.plumbing/managing-apt-repos-in-s3-using-lambda
https://github.com/szinck/s3apt


Skopeo is a command line utility for various operations on container images and image repositories. The main feature is the ability to explore image and layer metadata without pulling the filesystem portion.

https://github.com/projectatomic/skopeo
 

Hubblestack is a security auditing tool build on top of SaltStack. It provides tools for file integrity scanning, integration with osquery and a reporting engine.

http://hubblestack.io/


Fabio is a fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices managed by consul. Also provides integration with AWS ELB and API Gateway, and natively outputs graphite metrics.

https://github.com/eBay/fabio


Test Kitchen is a popular acceptance testing framework for infrastructure, and kitchen-terraform provides a plugin using Terraform to provision the infrastructure under test.

https://github.com/newcontext/kitchen-terraform


In pursuit of everything as code, Mermaid is a DSL for generating a wide variety of charts and diagrams, from gantt charts and flowcharts to sequence diagrams and more. It provides a powerful online editor and output to SVG too.

http://knsv.github.io/mermaid/index.html#mermaid

Remote management of servers is a common problem, and Chopsticks is a new solution. Rather than focus on a command line interface and a data language, Chopsticks is just a Python library.

http://mauveweb.co.uk/posts/2016/07/chopsticks.html
https://github.com/lordmauve/chopsticks


Cli53 is a handy command line tool for managing Amazon Route53 DNS records. As well as the ability to list, create and delete records you can also import and export from BIND formatted records.

https://github.com/barnybug/cli53

Configuring SSL is complicated. The TLS Observatory project provides a useful scanning tool which has the useful feature of providing recommendations for things to change.

https://github.com/mozilla/tls-observatory

  There's been an explosion of tools recently for bootstrapping a Kubernetes or Docker cluster. Spread is one such tool, but with a few nice looking features around reproducibility.

https://github.com/redspread/spread


Entropy is a fault injection system for Docker based systems. Define a policy and point it at your docker endpoints to trigger failures of containers to aid with building resilient systems.

https://github.com/buildertools/entropy


If you already have a reasonable size AWS setup, adopting a tool like CloudFormation can mean a lot of re-work. Bellerophon aims to generate CF templates automatically from existing AWS resources by querying the API.

https://github.com/arminhammer/bellerophon

dploy is an interesting looking opinionated deployment tool that leverages DC/OS and GitHub.

https://medium.com/@mhausenblas/introducing-dploy-f112f6a6bbdf#.br5feah1g

SwarmKit is a new toolkit from Docker for orchestrating distributed systems. It includes primitives for node discovery, raft-based consensus, task scheduling and more.

https://github.com/docker/swarmkit


Cake is an open source and cross platform build automation system with a C# DSL, particularly handy for building NuGet packages.

http://cakebuild.net/
 
Snapcraft is the packaging tool for the snappy Ubuntu Core transactional packaging system. It allows for composing software from multiple other package formats into a single tree.

https://github.com/ubuntu-core/snapcraft


Torus is an open source project for distributed storage coordinated through etcd. It ships with a simple block-device volume plugin, but is extensible to more and is seeing lots of development at the moment.

https://github.com/coreos/torus


SQL is one of those powerful and widely used common tools. KSQL brings the power of SQL to Kubernetes, allowing for querying resources like pods and services using SQL.

https://github.com/brendandburns/ksql


For all the simplicity in the basic Dockerfile, following the current best practice can be tricky. Dockerize Me provides an opinionated, wizard-like, approach to building Docker images.

https://github.com/fiunchinho/dockerize-me


Rocker is another Docker build tool, in this case one which adds some new features to the standard Dockerfile - including tagging and pushing from within the file, mounting build-time volumes and attaching to the build process part way through to aid debugging.

https://github.com/grammarly/rocker


We often talk about the importance of holding a learning review or blameless postmortem after an incident, but how do you track those over time? Enter Morgue. A simple web application, plus some interesting Jira and IRC integration.

https://github.com/etsy/morgue


If you run SSH on a non-standard port you still run the risk of people discovering that port. So why not change the port every 30s and use TOTP codes to discover it?

https://github.com/benjojo/totp-ssh-fluxer


Managing the configuration of a complex piece of software can too easily fall back into manual, error prone practices. Monkey Ops is an application which aims to ensure your OpenShift setup is robust by finding and finding resources like Pods or DeploymentConfigs and randomly terminating them.

https://github.com/Produban/monkey-ops


jwtproxy is an application for  authenticating, and possibly authorizing requests between services. It implements JSON Web Tokens and provides a forward and reverse proxy configuration for verification.

https://github.com/coreos/jwtproxy


Distributedlog from Twitter is a high-performance, replicated log service, offering durability, replication and strong consistency as essentials for building reliable distributed systems.

https://github.com/twitter/distributedlog

JMESPath is a query language for JSON. It comes with multiple compatible implementations in different languages, all based on a solid specification and test suite. I can see multiple uses for this.

http://jmespath.org/


Knox is another secrets management server with support for key rotation, auditing secrets access and with a desire to be developer friendly.

https://github.com/pinterest/knox


I’m a fan of using Cucumber style tests for infrastructure acceptance. The varnishtest cucumber project provides a set of steps for testing your VCL configurations, some good examples in the README.

https://github.com/nstielau/varnishtest_cucumber


Unik is an interesting attempt to build a unikernel deployment platform. It currently supports C/C++, Go (targeting rumprun) and Java (targeting OSv) and deployments to AWS, vSphere and Virtualbox.

https://github.com/emc-advanced-dev/unik


Many organisations using the same tools adopt different workflows to accomplish similar results. This Chef plugin helps sync local cookbooks with a Chef server, based around a workflow that eschews cookbook versioning.

https://github.com/PagerDuty/pd-sync-chef
 
Binctr allows you to create fully static, unprivileged, self-contained, containers as executable binaries. Which is pretty neat once you unpack that description and look at the demos.

https://github.com/jfrazelle/binctr


Harbor is a new container registry server for Docker containers with a nod towards enterprise features like role based access control and auditing capabilities.

http://vmware.github.io/harbor/
https://github.com/vmware/harbor

Airflow is a system to programmatically author, schedule and monitor data pipelines. The idea is to describe pipelines as directed acyclic graphs using Python. Airflow also comes with some great looking visualisation tools too.

https://github.com/airbnb/airflow


Habitus is a build tool for Docker images. It builds on Dockerfile, allowing for multi-stage builds as well as simple secrets management and environment variable injection.

http://www.habitus.io/


Napalm, or Network Automation and Programmability Abstraction Layer with Multivendor support, is a suite of tools for driving network devices with code, in this case Python. SUpport is already impressive, with JunOS, EOS, NXOS, IOS and more on the list.

https://github.com/napalm-automation/napalm

BCC is a set of dynamic tracing tools for linux. Powered by BFS which is available in 4 series kernels, BCC has tools for I/O latency, new processes, slow disk operations and lots more.

https://iovisor.github.io/bcc/


A number of operating systems are experimenting with different, and automatic, update mechanisms. CoreRoller is a set of tools to control and monitor the rollout of your updates, aimed at being an open source alternative to CoreOS CoreUpdate.

https://github.com/coreroller/coreroller


CFSSL is a toolkit for managing PKI/TLS. It contains lots of tools, including a certificate authority server that can use multiple signing keys, tools for managing certificate pool bundles and for generating private keys and CSRs.
https://github.com/cloudflare/cfssl


VIC, or vSphere Integrated Containers, is container runtime aimed at allowing developers familiar with Docker to develop in containers while allowing management via the familiar vSphere UI.

https://github.com/vmware/vic

Mas is a simple command line interface for the Mac App Store. Designed for scripting and automation.

https://github.com/argon/mas


Teleport is a tool for remotely accessing isolated clusters of Linux servers via SSH or HTTPS. It supports a number of team focused features as well as support for 2 factor authentication and auto-expiring keys.

https://www.lvh.io/posts/introducing-teleport.html
https://github.com/gravitational/teleport


An interesting new DNS server, CoreDNS is a fork of the Go based Caddy server which allows for writing middleware to influence DNS queries.

https://miek.nl/2016/March/18/announcing-coredns/
https://github.com/miekg/coredns
 

Libretto is a new Golang library to create Virtual Machines (VMs) on any cloud and Virtual Machine hosting platforms such as AWS, Azure, OpenStack, vSphere, or VirtualBox.

https://www.apcera.com/blog/using-golang-virtual-machine-management
https://github.com/apcera/libretto


Dalmatiner is a new metrics database that is fast, low overhead, and easy to query and manage. It uses ZFS under the hood for checksums, compressions and caching.

https://dalmatiner.io/
https://github.com/dalmatinerdb/dalmatinerdb


Kube2Consul is a simple bridge between Kubernetes and Consul. It will watch the kubernetes API for changes in Services and then register those Services in Consul.

https://github.com/Beldur/kube2consul


Blaz is a tool for bundling up you scripts into docker containers. It provides a simple Python based API, and allows for nested execution in separate containers too.

https://github.com/amiorin/blaz


Juttle is described as a dataflow programming language. Along with the language are an entire ecosystem of tools for using it to interpret data from graphite, elasticsearch, slack, AWS, various databases and more. Interesting to see more examples of how this fits into a monitoring setup.

https://github.com/juttle/juttle
https://github.com/juttle/juttle-engine

CPUStat describes itself as a “fancy top”. It’s an interactive tool for analysing CPU utilization and saturation in a helpful way, focusing on taking highly granular samples every 200ms.

https://github.com/uber-common/cpustat
 

DbDat is a tool for checking the security of your database, in particular working out which CVEs the database in question may be affected by. It has support for scanning everything from Postgres to Oracle and DB2 to Mongo.

https://github.com/foospidy/DbDat

Solo5 is a new base for unikernels, specifically providing a base to run other stacks on QEMU/KVM. The repository contains an example of running Mirage under KVM rather than Xen.

https://developer.ibm.com/open/2016/02/10/solo5-unikernel-low-level-programming-produces-high-return/
https://github.com/djwillia/solo5


Linkerd is described as a Modern RPC proxy for microservices. It uses Finangle and supports runtime traffic routing, load balancing, service discovery and built-in instrumentation,

https://blog.buoyant.io/2016/02/18/linkerd-twitter-style-operability-for-microservices/
https://linkerd.io/
https://github.com/BuoyantIO/linkerd

Teletraan is a new application deployment tool which provides support for zero downtime deploy, rollback, staging, continuous deploy; and many convenient features such as showing commit details and comparing different deploys.

https://engineering.pinterest.com/blog/open-sourcing-teletraan-code-deployment-system
https://engineering.pinterest.com/blog/under-hood-teletraan-deploy-system
https://github.com/pinterest/teletraan


Maltrain is a malicious traffic scanning utility, designed to run on all your nodes and collect information about potential malware of other problems revealed by looking at the network traffic. The documentation is excellent, with lots of clear examples.

https://github.com/stamparm/maltrail


Inductor is a command line tool used in conjunction with packer-windows to create Windows Vagrant boxes.

https://github.com/joefitzgerald/inductor


A demonstration of using a base image for running rumprun unikernels as Docker containers using KVM, fully integrated with Docker networking.

https://github.com/mato/docker-unikernel-runner

Simple tool for talking the contents of a configuration file and saving it as a Kubernetes secret for use by other Kubernetes resources.

https://github.com/kelseyhightower/conf2kube


Uphold is an interesting looking tool intended to verify backups. It downloads the backup, decompressing, loading and then running programmatic tests against it.

https://github.com/forward3d/uphold

 Builds servers can become complex quickly, sometimes because the problem you’re trying to solve is itself complicated. But if you have highly opinionated (git and GitHub only) and simpler CI requirements then Surf might be worth a look.

https://github.com/surf-build/surf


Goad is a nice demonstration of building a useful tool using Apache Lambda. It’s a Go based distributed load testing tool that takes advantage of the serverless architecture of Lambda to spin up on demand.

https://goad.io/


Keeping up with what service is running on what port is always tricky, and the commands to get the information tend to be somewhat cryptic. Enter whatportis, a simple interface for getting the ports in use by a service, or the service running on a specified port.

https://github.com/ncrocfer/whatportis

The debate about init systems and PID 1 inside a container has spawned a number of projects. S6 overlay looks particularly interesting, and makes some good arguments about why one thing, rather than one process, per container is a useful distinction.

https://github.com/just-containers/s6-overlay

ShellCheck is a static analysis tool for shell scripts. As well as providing hints on syntax it can also pick up on unused variables and in some cases suggest corrections for typos.

https://github.com/koalaman/shellcheck


Building on ShellCheck, Hadolint is a linter for Dockerfiles. As well as providing information based on Docker published guidelines it also picks up on issues with shell code using in RUN directives.

https://github.com/lukasmartinelli/hadolint


If you’re already familiar with Docker, but interested in runc, then the riddler tool is likely useful. It can inspect a running docker container and automatically generate the config and runtime files required to start the same container under runc.

https://github.com/jfrazelle/riddler
 
Minimesos is a set of tools to make running a Mesos cluster locally easy, even on OSX. Particularly useful if you’re developing your own mesos frameworks.

http://container-solutions.com/minimesos-0-5-0-mac-os-x-support-and-improved-docker-support/
https://github.com/ContainerSolutions/minimesos


Apex is a CLI tool for working with AWS Lambda, providing simple deployment, build and introspection capabilities and supporting Go and Python as well as the native Node.js.

https://github.com/apex/apex


Caddy is a new web server with out-of-the-box support for HTTP/2, IPv6 and WebSockets. It also has nifty built-in support for Let’s Encrypt to provide HTTPS by default.

https://caddyserver.com/
https://github.com/mholt/caddy


A nice idea for providing minimal help documentation focused on typical examples for common unix tools. A bit like a community contributed and stripped down man.

http://tldr-pages.github.io/


Pash is an Open Source reimplementation of Windows PowerShell, for Mono.

https://github.com/Pash-Project/Pash

A unikernel experiment, this time attempting to use Clojure but compiling down to Javascript and running on runtime.js under QEMU.

https://github.com/txus/cljs-on-unikernel-demo
 
AWSspec is a set of rspec matchers for testing AWS. The library supports a wide range of AWS resources and has nicely documented matchers for testing everything from whether an EC2 instance is in the correct VPC to whether an autoscaling group has been setup with a load balancer.

https://github.com/k1LoW/awspec


Containerd is daemon with an API and a command line client, intended to manage runc based containers on single machine. It from Docker, aimed specifically at high density and performance.

https://containerd.tools/


Git-appraise is a git plugin which implements a code review workflow for distributed teams, storing the review data in the fit repository itself.

https://github.com/google/git-appraise

With the public nature of GitHub and other repositories leaking passwords and other credentials is becoming a bigger problem. Enter git-secrets, which uses local git hooks to prevent you pushing code with know passphrases and other sensitive information in.

https://github.com/awslabs/git-secrets


Most systems administrators need to quickly find things stored in CSV files at some point. Q looks like a handy tool to do just that using a subset of SQL.

https://github.com/harelba/q

Snap is a new tool for gathering of telemetry from systems, with a focus on being particularly modular and easy to administer. The accompanying blog post goes into some of the why and where the project is going.

https://github.com/intelsdi-x/snap
http://nickapedia.com/2015/12/02/what-if-collecting-data-center-telemetry-was-a-snap/


There are always risks with a rapid shift in technology, and in normally slow moving organisations adopting fast moving technology. This cost looks a containers and picks out several concerning trends or gaps in understanding which could lead to problems.

http://www.juliandunn.net/2015/12/04/the-oncoming-train-of-enterprise-container-deployments/


Documentation is an important part of any internal or external application. Slate is a documentation generator focused on API documentation. It provides functional and attractive templates and works well on mobile too.

https://github.com/tripit/slate


Herokuish is a tool for bringing parts of the heroku workflow to containers. Specifically it allows for use of buildpacks and the Procfile with Docker, and aims to be a low level component for others to reuse that require this functionality.

https://github.com/gliderlabs/herokuish


The Docker event stream is underappreciated in my experience, giving you a stream of everything happening in Docker. Ahab is an interesting new tool for processing this stream in Python, the blog post gives an example of using it for dynamic assignment of IP addresses.

https://tech.instacart.com/ahab/
https://github.com/instacart/ahab

Wagl is a new tool for service discovery via DNS intended for use in Docker Swarm clusters.

http://ahmetalpbalkan.github.io/wagl/
https://github.com/ahmetalpbalkan/wagl


Sup describes itself as “make for network servers”. It allows you to describe a set of hosts and commands, and provides a simple CLI to interact with them. Similar to Fabric in Python, but in this case written in Go with a YAML configuration file.

https://github.com/pressly/sup


The King’s Hand is a tool for organizing ad-hoc scripts written in Go. It provides a simple discovery mechanism and a way of loading arbitrary go binaries into the kh tool.

https://github.com/bryanwb/kh
 
Facette is a new and nice looking time series and graphing engine, featuring integration with RRD, Graphite, Collectd and more.

https://facette.io/


AppCatalyst looks an interesting local development tool. Billed as a desktop hypervisor for developers, it provides a simple Photon OS based image for launching Docker containers for local development.

http://getappcatalyst.com/


Kurma is another minimal OS, built on the notion that everything is a container. It also provides an API for use in managing containers across a cluster of hosts.

https://github.com/apcera/kurma
https://github.com/apcera/kurmaos


Clair is a container vulnerability analysis service. IT aims to provide vulnerability information about containers based on Ubuntu, Debian and Centos - doing so using published upstream vulnerability information.

https://github.com/coreos/clair


Ansible-dk is an omnibus package providing Ansible and a number of related tools for developers, like ansible-lint and test-kitchen, intended to make getting started with a consistent environment easier.

https://github.com/omniti-labs/ansible-dk


Inspec is a new infrastructure testing tool based on the rspec Ruby testing framework. It has some nifty ideas, from a solid separation of transport to simple custom resources and dedicated CLI tool.

https://github.com/chef/inspec


A handy tool for anyone using Redis in a clustered setup. Redis Cluster Tool is a CLI app for checking the status of the cluster, rebalancing and getting and setting configuration data.

https://github.com/deep011/redis-cluster-tool


If you’ve ever wanted to use Ruby natively in your shell, instead of Bash, then Rush might be for you. Some nice examples and rationale.

https://s-mage.github.io/2015/10/25/rush.html
 
Helm is an interesting new project which aims to provide a package manager for Kubernetes, along with a shared community repository modelled after homebrew called Charts.

https://github.com/deis/helm
https://github.com/deis/charts


Sops is an editor of encrypted files that supports YAML, JSON and TEXT formats and encrypts with AWS KMS and PGP. Another useful tool for secrets management with excellent documentation.

https://github.com/mozilla/sops


Credstash is another tool for secrets management, specifically making use of AWS Kye Management Service but providing a nice clear user interface.

https://github.com/fugue/credstash


Snyk is a new tool aimed at discovering and fixing security vulnerabilities in third party packages included in your node.js project.

https://github.com/Snyk/snyk


Vegur is the newly opensourced reverse proxy library in use by Heroku. Provided as an Erlang library, this means you can implement custom routing yourself as a callback.

https://github.com/heroku/vegur


An interesting experiment in writing a threat model in code, alongside the application code. Threatspec parses comments in a specific format and outputs useful documentation and diagrams.

http://threatspec.org/
https://github.com/pki-io/threatspec


Anycast is commonly used in datacentres but generally not available in typical cloud environments like AWS. AWSnycast aims to address that by creating a routing daemon for AWS route tables. It can already be used to create an HA NAT service.

https://github.com/bobtfish/AWSnycast

An alternative user interface for Mesos. It provides a nice overview of cluster resources, insight into individual frameworks running and access to the master logs all from a web browser.

http://capgemini.github.io/devops/mesos-ui/
https://github.com/Capgemini/mesos-ui

Gryffin is a security scanning tool out of Yahoo that’s aimed to work at scale. The deduplication of tests sounds very useful for getting results quickly with testing identical pages.

https://github.com/yahoo/gryffin


Syntribos is another security scanner, but one specifically geared not to HTML and web pages, but to testing APIs.

https://github.com/rackerlabs/syntribos


A nice little dashboard that shows the number of commits on a repo since the last deploy. Surfacing this information can help avoid large deploys later.

https://github.com/dsingleton/deploy-lag-radiator


Amazon’s ECS service automatically allocates containers to hosts, which is great until you want to better understand your utilisation and where software is running. Enter Cloud Container Cluster Visualizer.

http://blog.mattcallanan.net/2015/10/c3vis-finding-your-docker-containers-on.html
https://github.com/ExpediaDotCom/c3vis


Automating your local development environment is useful, both for learning new tools and in any growing team environment. Superlumic is a new tool in that space that’s a thin wrapper around Ansible, which comes to some example configurations.

https://github.com/superlumic/superlumic
https://github.com/superlumic/superlumic-config
 

Muxy looks like a pretty comprehensive tool for testing network activity, by introducing delays, bandwidth constraints or other issues. It works as a simple proxy with a configuration file to control the features.

https://github.com/mefellows/muxy


Traefik looks an interesting new reverse proxy with some modern capabilities like integration with service management frameworks, hot reloading of configuration, exposing metrics over HTTP and an API for configuration.

https://github.com/EmileVauge/traefik


At this point the AWS interface is huge, so SAWS might be a good alternative command line interface. In particular it provides command completion and shortcuts which should make things both quicker and more discoverable.

https://github.com/donnemartin/saws

System XVI (or S16 for short) is a new modular init system which is currently under heavy development. Might be one to watch.

https://github.com/ServiceManager/ServiceManager

Whether the contents of a container present a security risk has been much discussed, and we’re starting to see tools emerge to help answer and automate parts of the problem. This example uses OpenSCAP to scan Docker containers, though this requires a SCAP profile for your chosen OS/image.

https://github.com/OpenSCAP/container-compliance


Dinit is a nice looking solution to running multiple processes inside a Docker container. It’s not a full init system which keeps things simple, and aims to fit well into a typical Docker build process.

https://github.com/miekg/dinit


Applikatoni looks like a nice, simple deployment server and provides a web based dashboard and CLI for a team to trigger and see software deployments.

http://applikatoni.com/


rtop-bot is a simple chat bot for bringing basic monitoring data to your Slack or HipChat room. Under the hood it simply SSH’s into machines to collect data on load, CPU and memory usage.

http://www.rtop-monitor.org/rtop-bot/

The problem of building Docker containers is definitely ripe for new tools to emerge, and dockramp looks interesting - it extends the Dockerfile syntax, makes smarter decisions about the creation of layers and aims to be faster than the standard docker build command.

https://github.com/jlhawn/dockramp


Many infrastructures will use an SSH jump box or two, rather than exposing all machines directly. SSHmuxd is an application which aims to make this easier to manage, at the same time as introducing some basic access control features.

https://github.com/joushou/sshmuxd


An interesting take on testing Puppet code, Puppet Spec uses the Puppet language to write tests for Puppet by adding a new assertion type to the language.

https://github.com/jolshevski/puppet-spec


Cloudsploit Scans is an interesting set of checks for scanning your AWS setup for potential security issues.

https://github.com/cloudsploit/scans

Hyper is described as a hypervisor agnostic docker engine. It’s able to launch tiny vms using the docker interface, providing the isolation of hardware virtualisation with the speed and user interface of containers. Very interesting.

https://hyper.sh/


Portus is  nice-looking user interface for the self-hosted Docker registry which also provides a team centric authorization service, so different teams can have there own namespace in the registry.

https://github.com/SUSE/Portus


Jungle is the start of a higher-level command line interface for AWS, currently supporting EC2 and ELB services.

https://github.com/achiku/jungle


Gotty is a handy application which exposes a command line application as a web application. It’s surprisingly configurable too.

https://github.com/yudai/gotty


Testing infrastructure is one of my pet topics, so these cucumber steps for openshift looked interesting. Some good examples of how to use them to test your applications are able to be installed and run.

https://github.com/vbehar/openshift-cucumber


Mantl is a distribution of software for running a container based infrastructure. It aims to integrate Mesos, Docker, Kubernetes, Calico and Logstash amongst other tools.

http://mantl.io/


Another interesting high-level distribution, Trusted Analytics integrates Cloud Foundry with various parts of the Hadoop ecosystem and aims to create a platform-as-a-service for data analytics.

http://trustedanalytics.github.io/


Sellsword is an interesting looking tool to switch between different environments (say a set of environment variables) - handy if you support different clients or work on lots of separate projects.

https://github.com/bryanwb/sellsword

dlayer is a handy tool for anyone building several docker images. It produces statistics about the use of layers, including how many layers are reused and how much space is being take up.

https://github.com/wercker/dlayer


Battleschool is a development environment provisioning tool based on Ansible, similar to Boxen or Kitchenplan.

https://github.com/spencergibb/battleschool


Testing your systems with inputs designed to cause problems is a good idea, but requires a good list of bad inputs. This list of naughty strings should come in handy.

https://github.com/minimaxir/big-list-of-naughty-strings

Y10K is a tool to deploy Yum/RPM repositories and mirrors in your local environment using settings described in a simple Yumfile.

https://github.com/cavaliercoder/y10k


Terraframe is an interesting approach to using Terraform for describing your infrastructure, specifically it provides Ruby based DSL interface rather than HCL.

https://github.com/eropple/terraframe


An interesting approach to building an application using the latest AWS features. Specifically it combines Lambda, API Gateway and DynamoDB for a stack that requires no managed servers.

https://github.com/jaws-stack/JAWS

ActiveMQ Artemis is a multi-protocol, embeddable, very high performance, clustered, asynchronous messaging system. It provides high availability and wide range of clustering options out of the box.

https://activemq.apache.org/artemis/


Python has always had a hand in data analysis work, but mainly for smaller or medium sized data sets. Ibis aims to change that, with first class integration the Hadoop ecosystem, without compromises in functionality, usability, or performance.

https://github.com/cloudera/ibis
http://www.ibis-project.org/


Racker is an opinionated Ruby DSL for generating Packer JSON templates. The main advantage appears to be composition and reuse, handy if you’re maintaining a number of templates.

https://github.com/aspring/racker


Testinfra is a tool for writing unit tests for infrastructure, similar to Serverspec but implemented in Python. It supports a few standard privatives like files, services, packages and users, as well as featuring integration with Salt and Puppet.

https://github.com/philpep/testinfra
http://testinfra.readthedocs.org/en/latest/

Hygieia is a single, configurable, easy to use dashboard to visualize near real-time status of a continuous delivery pipeline.

https://github.com/capitalone/Hygieia


Waffles is intended to be a simple configuration management and deployment system written entirely in Bash for portability.

http://waffles.terrarum.net/
https://github.com/jtopjian/waffles


Pupa is a handy bootstrapping tool for an opinionated modern Puppet setup using the latest puppet-agent as well as r10k to manage environments.

https://daenney.github.io/2015/07/23/Pupa.html
https://github.com/daenney/pupa

Apache nifi is a tool for data flow management. It provides a GUI for creating flows which can deal with system failure, overflowing data and more. The site also features comprehensive documentation on the capabilities and a good introduction.

http://nifi.apache.org/


SwifttypeMonitoring is an interesting looking set of Ruby helpers to help build application-level monitoring checks. with build-in examples of checkings for MySQL, ElasticSearch and Redis it’s relatively easy to see how to write your own checks.

https://github.com/swiftype/swiftype-monitoring

Aeron looks like an interesting new messaging system intended for very high throughput and very low latency. It’s described as a message oriented replacement for TCP rather than a general purpose messaging platform.

http://highscalability.com/blog/2014/11/17/aeron-do-we-really-need-another-messaging-system.html
https://github.com/real-logic/Aeron

Notary is a tool designed to allow people to publish and verify content. Based on the Tor update framework model, one of the usecases is to allow for the current curl sudo bash install model but with a verification model.

https://github.com/docker/notary


Image sprawl can be a problem with Docker and Sherdock aims to help.  Sherdock is a simple image management tool which features garbage collection of unused images as well as identifying orphaned volumes and other cleanliness-centric features.

http://rancher.com/sherdock/
https://github.com/rancherio/sherdock

Mesos-consul automatically registers/deregisters services run as Mesos tasks, so you can use consul for service discovery purposes in a Mesos cluster.

https://github.com/CiscoCloud/mesos-consul


Brubeck is a statsd compatible stats aggregator written in C. The initial post explains the problems with statsd, and in particular the use of UDP for monitoring.

http://githubengineering.com/brubeck/
https://github.com/github/brubeck


CollectdWin a system statistics collection daemon for Windows, inspired by 'collectd'.

https://github.com/bloomberg/collectdwin

Summon is a command-line tool that reads a config file and injects secrets as environment variables into any process. It’s intended to use different providers for the actual secret storage, and currently supports Conjur, S3 and OSX Keychain.

http://blog.conjur.net/introducing-summon
https://conjurinc.github.io/summon/


Security Content Automation Protocol (SCAP) is a way of describing various security and compliance controls. The Foreman project has just added an interesting integration, meaning you can run automated vulnerability assessment and security compliance audits across Foreman managed hosts.

http://foreman-shlomizadok.rhcloud.com/2015/06/09/openscap-foreman/

I’m a big fan of sysdig as an all-in-one tracing tool. Csysdig is a new, interactive, command line user interface to sysdig. It supports querying live data as well as looking through previously captured traces.

https://sysdig.com/announcing-csysdig-strace-htop-lua-container-support/


A nifty tool for sending alerts (to HipChat, PagerDuty, email, Slack, Influxdb) based on changes in Consul health checks.

https://github.com/AcalephStorage/consul-alerts

Tipboard is an open source dashboarding framework. It’s specifically designed for large screens and deals with all the display issues so you can just focus on the data.

http://allegrotech.io/tipboard/
https://github.com/allegro/tipboard


An interesting attempt to build a human readable workflow language for operations. Allows for writing reusable operations and then tying them together with flows.

http://www.cloudslang.io/
https://github.com/CloudSlang


EGADS (Extendible Generic Anomaly Detection System) is designed to automatically detect anomalies in large scale time-series data. Looks well suited to integration with some monitoring systems.

http://labs.yahoo.com/news/announcing-the-open-source-of-egads-a-scalable-configurable-and-novel-anomaly-detection-system/
https://github.com/yahoo/egads

Percheron is a command line and YAML based tool for describing a stack of related Docker containers.

https://github.com/ashmckenzie/percheron


A handy command line tool for interacting with the Marathon API. The README shows a simple text format example for describing applications running in Marathon.

https://github.com/eBayClassifiedsGroup/marathon_deploy

Terraframe is a Ruby based DSL for Terraform, giving you the power of a full programming language with the Terraform support for different cloud providers.

http://edcanhack.com/2015/01/terraframe-making-hashicorps-terraform-awesome/
https://github.com/eropple/terraframe

Chaos HTTP Proxy is a simple HTTP proxy which can be configured to break in ways useful to testing distributed systems. Mess with MD5 hashes, add client or server timeouts, throw in redirects, reorder response headers and return error codes.

https://github.com/bouncestorage/chaos-http-proxy


Scope, from Weaveworks, is a new tool for visualising how your growing container based infrastructure connects together, focusing on how the network reveals your architecture.

http://blog.weave.works/2015/05/13/announcing-weaveworks-scope-container-visibility/
https://github.com/weaveworks/scope


Swaddle is another take on building a single tool for packaging, whether you require debs, rpms or tars. It handily builds website documentation for each created package, supports signed packages and builds repositories as well as individual packages.

https://github.com/raphaelcohn/swaddle
 

Apollo is a collection of tools (Mesos, Weave, Docker, Consul, HAProxy and more) integrated together to allow for building your own platform-as-a-service.

https://github.com/Capgemini/Apollo


Nulecule is a work-in-progress specification for an open format to describe multi-component applications, similar to Docker Compose. I’ve included a link to an example manifest too.

https://github.com/projectatomic/nulecule
https://github.com/projectatomic/atomicapp/blob/master/examples/wordpress/nulecule

I talked about secret and key management being a common problem a few weeks back. Vault is another entrant into the space with a few nice features, including clear audit logs, rolling credentials and support for multiple storage backends.

https://www.vaultproject.io/


Disque is a an in-memory, distributed job queue. Its goal is to capture the essence of the "Redis as a jobs queue" use case. Currently described as alpha quality, but interesting to keep an eye on.

https://github.com/antirez/disque


CloudRouter is a Linux based full-stack SDN implementation including OpenDaylight.  It includes the features of traditional hardware routers, as well as support for emerging technologies such as containers and software-defined interconnection.

https://cloudrouter.org


Captain is a simple opinionated workflow for building, testing and publishing containers.

https://github.com/harbur/captain

Bottled Water is an interesting looking tool for streaming data from PostgreSQL to Kafka. You could then use that stream for warming caches, building a search index or doing any form of stream processing.

http://blog.confluent.io/2015/04/23/bottled-water-real-time-integration-of-postgresql-and-kafka/
https://github.com/confluentinc/bottledwater-pg


Following on from last weeks tools for secret management, Sneaker is a tool for storing secrets on S3 using Amazon Key Management Store. Excellent documentation describing various different threat models too.

https://github.com/codahale/sneaker


A nice example of an opinionated container, it provides an Nginx HTTP load balancer which updates automatically based on information from etcd. It also integrates with another container running registrator to do this automatically.

https://github.com/factorish/proxy
 

Sometimes you just want a lo-fi dashboard. A browser window to refresh and reload as needed. Page Refreshr solves that problem nice and simply.

https://github.com/Jimdo/page-refreshr


Smolder is a simple tool for testing API endpoints. Describe the URLs, headers and required responses in JSON and run tests against your API. I’d probably prefer something more human

https://github.com/sky-shiny/smolder


Vega is a distributed mailbox, with an HTTP API and plans for AMQP and STOMP support. It’s designed to be durable and resilient under failure, and uses Consul under the hood. It’s intended as the backbone for how other components communicate with each other.

https://github.com/vektra/vega


Hub release is a handy utility for automatically populating release notes on github based on commit messages and closed issues.

https://github.com/zestia/hubrelease

As containers become the unit of work in distributed systems, scheduling across hosts becomes increasingly important. Citadel is interesting because, rather than being just an out of the box solution it’s positioned as a toolkit for writing your own custom schedulers.

http://citadeltoolkit.org/
https://github.com/citadel/citadel


Shpec is an rspec-like testing framework for shell scripts. The README gives you an idea of the syntax, and show how easy it is to extend with your own matchers.

https://github.com/rylnd/shpec


A simple Rake library which allows building Debian packages using either git-buildpackage or fpm. It would be nice if this supported other package types like RPM as well.

https://github.com/jimdo/buildtasks

 


Graphite beacon is a very simple alerting system for Graphite metrics. Just install the app and describe your alerts in JSON. Can alert via SMTP, Hipchat, Slack or HTTP.

https://github.com/klen/graphite-beacon


A nifty little tool, httpdiff allows you to diff two HTTP requests and show any differences in the headers. Useful for exploration or building testing tools on top of.

https://github.com/jgrahamc/httpdiff


Bazel is a new build tool from Google, it’s able to build a wide range of software quickly and is particularly suited to organisation using a single very large monolithic repository.

http://bazel.io/

A nice and simple way of getting metrics from elasticsearch to graphite. Nice screenshots to show you what you’re getting too.

https://github.com/jamiealquiza/es-stats


A minimal githook application configured using a json file. You can set commands to run based on the repository changing and sent output to stdout and to slack.

https://github.com/octplane/small-deployer

Shutit is a build tool for Docker containers, moving from the Dockerfile syntax to using python as a build language and providing an opinionated workflow.

http://ianmiell.github.io/shutit/
https://github.com/ianmiell/shutit

A new CI system with a very pipeline native setup. It’s automatically deployed using BOSH and features some interesting integration with Pivotal Tracker, Docker, S3 and more.

http://concourse.ci/


A collection of Puppet modules and scripts aimed at compliance with more than 1000 requirements from nine US Department of Defence policy documents. Some interesting autogenerated documentation with Latex which might be applicable to others too.

https://github.com/afseo/cmits


The combination of low level system tools with embedded scripting with Lua is, I think/hope, one we’ll see more of. Nginx already does this well. go-lua is a Lua runtime for Go, which I’d love to see in the emerging Go system tools.

https://github.com/Shopify/go-lua


Curl is amazing, but it’s also somewhat cryptic. Httpie is a a Curl replacement designed with a more friendly, and HTTP native, interface.

https://github.com/jakubroztocil/httpie
 

RancherOS is a minimal Linux distro designed to run Docker containers. It basically runs Docker as PID 1 a top the Linux kernel, meaning the image itself is tiny compared to a normal distribution.

http://rancher.com/rancher-os/


Packetbeat is an open source application monitoring and packet tracing system. It works by sniffing the traffic between your application services, correlating them into transactions and using Elasticsearch for analysing them and for ad-hoc queries.

https://github.com/packetbeat/packetbeat


The data in AWS CloudTrail is essential for security and compliance in AWS. Traildash grabs those files, stores them in ElasticSearch, and presents a Kibana dashboard so you can analyze recent activity in your AWS account.

https://github.com/AppliedTrust/traildash


Burlesque is a message queue with a long polling HTTP API for easy integration. The excellent documentation gives a rundown of how to use it and the various configuration options.

https://github.com/KosyanMedia/burlesque

A very good looking dashboard for managing a fleet of Apple computers using Munki.

https://github.com/salsoftware/sal


Gogs is a self-hosted Git server. It’s aim is to be cross-platform (running on Windows, Mac and Linux), light-weight and very easy to install.

http://gogs.io/


Baci is a tools for building ACIs, the Rocket container format. It handily reuses the Dockerfile format, but also speculates a little about a more general container build language which sounds interesting.

https://github.com/sgotti/baci

Project Jellyfish is a broker system. It allows admins to create a product catalog of any type of service (SaaS, IaaS, PaaS, etc.) and allows them to be assigned a cost, and then users can create projects and add those services to a project.

http://www.projectjellyfish.org/
https://github.com/projectjellyfish/api


Cram is a testing framework for command line applications. Cram tests look like snippets of interactive shell sessions which makes writing tests nice and easy.

https://bitheap.org/cram/


Building system packages always required a fairly good understanding of the packaging tool chain, and building packages for different operating systems required even more work. This project uses Docker under the hood to create reproducible RPM build environments nicely.

https://github.com/alanfranz/docker-rpm-builder

Debops is a collection of ansible playbooks and supporting scripts intended to make administering debian easier.

http://debops.org/
https://github.com/debops/debops

Comcast is a tool designed to simulate common network problems like latency, bandwidth restrictions, and dropped/reordered/corrupted packets. Very handy for testing distributed systems under non-ideal network conditions.

https://github.com/tylertreat/Comcast


Toxiproxy is another tool for simulating network errors for testing purposes. It provides a proxy with an API, which allows for altering the network conditions cleanly. The example gives you a great idea of what’s possible.

https://github.com/Shopify/toxiproxy

huptime is a clever utility to enable zero-downtime reloading of processes, without modifying the application. It supports running under init systems like upstart too.

https://github.com/amscanne/huptime


If you’re on Windows and prefer a bundled software over installing and managing lots of small pieces then Bills Kitchen might be for you. It provides Vagrant, Chef and a Ruby developent environment along with various Vagrant plugins, the Putty SSH client, the SublimeText editor and more.

https://github.com/tknerr/bills-kitchen


A comprehensive set of Puppet and Chef code for hardening servers. Includes code for base operating systems, ssh, mysql, postgresql, apache and nginx and supports Ubuntu, RedHat, Debian, Centos and Oracle.

https://telekomlabs.github.io/


Jetpack is a work-in-progress implementation of the Application Container Specification using FreeBSD Jail and ZFS.

https://github.com/3ofcoins/jetpack


Dashiell is a nice frontend to osquery and facter, allowing you to query the state of a cluster of servers very quickly.

https://github.com/maclennann/dashiell

Novm is an interesting take on a hypervisor, mixing some of the benefits of virtualisation with some of the advantages of containers. The README does a good job of explaining the rationale.

https://github.com/google/novm


An attempt to write a Chef client in PowerShell. Adds new Chef resources and Knife commands which use PowerShell and DSC on the backend.

https://github.com/POSHChef/POSHChef


Cachet is an open source status page system that aims to be simple to use and easy to manage. A good starting point if you’d prefer to run your own status page.

https://cachethq.io/


A simple application which generates a Vagrantfile suitable for common Ruby on Rails development tasks.

https://railsbox.io/
 

DeployDB is a tool for storing the state of deployments, and is designed to integrate with existing tools like Jenkins and RunDeck and actually do the deployment.

http://hackers.lookout.com/deploydb/
https://github.com/lookout/deploydb


RFC Reader does exactly what you expect, it provides a nice web interface for reading individual RFCs.

http://www.rfcreader.com/

Socketplane have released a technology preview of their container networking technology. The preview features things like ZeroConf multi-host networking for Docker, support for multiple networks and distributed IP Address Management (IPAM).

https://github.com/socketplane/socketplane


vCloud Air now has a nice looking open source command line interface. This post and repo cover the basic functionality.

http://blog.pacogomez.com/vcloud-air-command-line-interface/
https://github.com/vmware/vca-cli
 

Spigio is an interesting tool for modelling gossip based communications in large networks. The output to both GraphML and graphJSON make visualising results easy.

https://github.com/adrianco/spigo

Conn Check is a new tool for verifying software deployments, things like can  a service talk to a database or another service, or is authentication setup correctly. It can also auto-generate tests for some types of applications.

http://1stvamp.org/verifying-post-deploy-connections-with-conn-check


Dockerana is a packaged version of Graphite and Grafana, specifically targeted at metrics from Docker.

http://dockerana.com/


Seagull is another monitoring tool aimed at Docker environments. It provides a dashboard containing information about the images and containers, and allows simple actions like deleting an image or stopping a container.

https://github.com/tobegit3hub/seagull

Charted is a way of sharing graphs. I’m a big fan of using monitoring tools for business metrics, but exposing that data can be hard. Charted looks a great bridge to get other people interested in data.

https://medium.com/data-lab/introducing-charted-15161b2cd71e

Rancher is an attempt to bring AWS-like functions, such as EBS, VPC, ELB and Security Groups, and make them available across any servers, using docker under the hood.

http://www.rancher.io/
https://github.com/rancherio/rancher


VclFiddle is an online tool for experimenting with the Varnish Cache HTTP reverse-proxy in a sandboxed environment. The hosted version gives you a really easy way of debugging Varnish configuration.

https://github.com/vclfiddle/vclfiddle
http://www.vclfiddle.net/

Bosun is an all-in-one monitoring system backed by OpenTSDB. It provides alerting, time series data collection and visualisation as well as metric collection. It also treats both Linux and Windows as first class citizens.

http://bosun.org/


Octopush is another tool for using Jenkins for deployment automation. It provides a dedicated user interface and API, as well as integration with GitHub for authentication.

https://github.com/olx-inc/octopush
http://olx-inc.github.io/octopush/

Walter is described as a tiny deployment pipeline. IT reminds me of the wercker build file, but can run locally as well as within a CI system. Useful for testing pipelines locally.

http://ainoya.io/walter
https://github.com/Walter-cd/Walter/


Stager is a nifty looking tool to automatically build staging environments from GitHub pull requests.

http://info.localytics.com/engineering-blog/stager-staging-environments-on-autopilot
https://github.com/localytics/stager-server

osquery exposes information about your operating system via a SQL interface, allowing for some pretty powerful tooling. Also supports querying across multiple hosts.

https://code.facebook.com/posts/844436395567983/introducing-osquery/
https://github.com/facebook/osquery


Dwight Conrad is an OpenResty based HTTP routing component, backed by Redis. It supports a number of features useful for feature toggling and canary releases.

https://github.com/3scale/dwight-conrad


Cluppet is a tool to maintain a part of your AWS infrastructure in code, specifically as a clojure based DSL.

https://github.com/mixradio/cluppet

Stocker is an interesting approach to securely managing environment variables for use by applications, in particular containers. It’s currently Redis backed though could support multiple backends in the future.

https://github.com/buth/stocker
 

Boxstarter is a tool for bootstrapping a new Windows machine. It makes heavy use of Choclately packages and provides a number of very simple ways of getting started. Great documentation too.

http://boxstarter.org/


Carbonate is a set of command line tools for managing a Graphite cluster. It packages tools for listing and finding metrics, synchronizing metrics between nodes, backfilling whisper data from other files and more.

https://github.com/jssjr/carbonate


If you’re building software on GitHub and want an easy way of managing GitHub releases then look no further than this simple command line tool. The main features are around setting release metadata and uploading binary files as part of the release.

https://github.com/aktau/github-release

Taste tester is another workflow tool for Chef, it launches a Chef-Zero instance locally and then checks what changes would happen to a remote machine with your local changes.

https://github.com/facebook/taste-tester


A set of scripts useful for hardening a typical Linux system. Partly useful for learning about a good practices, I’d also love to see this converted into various config management code flavours.

https://github.com/marshyski/quick-secure

Chef Guard looks like a useful tool, specifically it protects your Chef server from untested and uncommitted cookbooks. Several useful features, including emailing of configuration change diffs and validation of changes.

http://xanzy.io/projects/chef-guard/introduction/overview.html


Learning new tools and languages is always hard so anything that makes it easier it a good idea. Chef Koans takes inspiration from other similar projects and applies it to Chef, a good starting point if you’ve done similar learning exercises before.

https://github.com/leftathome/chef-koans


Zonify is a set of command line tools for managing Route53 DNS for an AWS infrastructure. It intelligently uses tags and other metadata to automatically create the associated DNS records.

https://github.com/airbnb/zonify
 

The new puppet server was released at Puppet Conf. Puppet server is a drop-in replacement for the current puppet master with some pretty big performance and scalability improvements.

https://github.com/puppetlabs/puppet-server


If you’re using Route53 DNS then Roadworker should be of interest. It’s a Ruby based DSL for creating zones and records. Good examples too.

https://github.com/winebarrel/roadworker


If like me you’re maintaining a number of puppet modules you probably have an occasional day when you try and remember to update lots of static files (Rakefile, .travis.yml, Gemfile, etc.) across all of them. Modulesync looks a nice solution to that issue.

https://github.com/puppetlabs/modulesync

Blender is a modular remote command execution framework. It provides a few basic primitives to automate cross server workflows, with those workflows expressed in a ruby DSL and executed using the provided command line tools.

https://github.com/PagerDuty/blender


Mcrouter is a tool for those running large memcached clusters. It’s a memcached protocol router designed to shard data across a cluster of memcached instances, with uses for load balancing, cache distribution and a number of other failure cases.

https://github.com/facebook/mcrouter
https://code.facebook.com/posts/296442737213493/introducing-mcrouter-a-memcached-protocol-router-for-scaling-memcached-deployments/


Vitess is a project to provide servers and tools which facilitate scaling of MySQL databases for large scale web services. Comprehensive user documentation is provided if you want to try it out.

https://github.com/youtube/vitess


Urknall is an interesting looking remote execution framework written in Go. Much of the functions make use of standard shell commands, which makes getting started very simple.

http://urknall.dynport.de/
https://github.com/dynport/urknall

If you’re doing any real PowerShell work in the console that PSReadLine is for you. It provides a much nicer command line interface with completion, history, syntax highlighting, multiline support and lots more.

https://github.com/lzybkr/PSReadLine
http://rkeithhill.wordpress.com/2013/10/18/psreadline-a-better-line-editing-experience-for-the-powershell-console/


The concept of a single source of truth for everything pertaining to your infrastructure isn’t a new idea, but Collins looks like a more modern take on the CMDB. A documented API and client libraries, along with support for physical servers, switches, racks and higher level software properties.

http://tumblr.github.io/collins/


Portainer is an interesting combination of mesos and docker, aimed at building containers rather than running them. Worth investigating is you’re finding yourself building lots of containers and managing dedicated machines to do so.

https://github.com/duedil-ltd/portainer


Oh My Vagrant is an opinionated development environment suitable for docker, puppet and more development activities. Based around Vagrant, Fedora, libvert and more.

http://ttboj.wordpress.com/2014/09/03/introducing-oh-my-vagrant/


If you’ve found yourself writing small scripts in bash, and then re-implementing those same scripts for Windows as batch files then Batsh might be for you. A small scripting language that compiles to batch and bash. The online demo is pretty nifty.

https://github.com/BYVoid/Batsh
http://batsh.org/

If you’re using Test Kitchen then you might find the kitchen-sync plugin useful. It provides alternative file sync strategies which should be faster than the defaults for certain setups.

https://github.com/coderanger/kitchen-sync


An interesting DNS server which connects to the AWS API and returns DNS records based on instance names or roles.

https://github.com/ConradIrwin/aws-name-server


Scumblr is an interesting tool for keeping an eye on potential exploits or discussions of your company/application elsewhere on the internet. All sorts of potential monitoring applications for this.

https://github.com/netflix/scumblr
http://techblog.netflix.com/2014/08/announcing-scumblr-and-sketchy-search.html


Dockersh is a user shell for isolated, containerized environments and is designed to be used as a login shell on machines with multiple interactive users.

http://engineeringblog.yelp.com/2014/08/hack209-dockersh.html
https://github.com/Yelp/dockersh


Helios is another docker orchestration platform designed for managing containers across a large fleet. Instructive documentation, debian packages and a vagrant setup for trying it out are all plus points.

https://github.com/spotify/helios
 

Mentioned in the ftrace blog post above this set of scripts is a great resource if you’re doing any low-level performance tuning on Linux.

https://github.com/brendangregg/perf-tools


Vessel is another tool for automating the setup and use of docker based development environments. It integrates Vagrant, CoreOS, Consul, docker and Atom into a slick opinionated package. The user interface looks particularly impressive from the screenshots.

http://awvessel.github.io/


Ganger is a tool for running short-lived network services inside Docker containers, and then proxying client connections to them. It’s designed mainly for data processing batch jobs that require a fresh environment each time, but could have other interesting uses.

https://github.com/andytinycat/ganger


Chef-runner is a tool for executing chef recipes on remote machines, over SSH. It features vagrant integration and is built to be much faster than the in-built provisioning for this use-case.

https://github.com/mlafeldt/chef-runner

Cloud Foundry is a pretty complex distributed system, and running the entire thing locally when all you want to do is develop apps to run on it isn’t ideal. Enter Cloud Focker, which combines Docker with Cloud Foundry buildpacks under a nice command line interface.

https://github.com/CloudCredo/cloudfocker

 

Kibana-rack embeds the Kibana ElasticSearch interface into a Rack middleware, making running it alongside existing ruby apps simpler. The example showing authentication integration with Devise shows why this might be a good idea for some.

https://github.com/tabolario/kibana-rack


An interesting curated set of Go libraries for common operations and automation tasks. Everything from DNS and consensus protocols to load testing and metrics collection.

https://github.com/mindreframer/golang-devops-stuff


This packer provisioner allows for running provisioning command on the host rather than the new machine being built. I can imagine a few uses for this, from black box testing to recording the results of packer builds.

https://github.com/shaunduncan/packer-provisioner-host-command


Diplomat is an mechanism for integrating Ruby applications with the Consul service discovery tool. The blog post nicely covers some of the advantages of this approach.

https://github.com/WeAreFarmGeek/diplomat
http://johnhamelink.com/distributed-web-systems-with-consul-haproxy-and-envoy.html

Managing local machines with Vagrantfiles has lots of advantages, but when recreating that environment in production you might turn to something like libcloud. Duplicate no more, with with vagrant driver for libcloud.

https://github.com/carletes/libcloud-vagrant


Terraform is a tool aimed at giving you a single view of your entire infrastructure in code. Describe instances and supporting services (like DNS) via a domain specific language and use the command line tool to launch across multiple infrastructure providers.

http://www.terraform.io/


Consul is an orchestration mechanism with fault-tolerance based on the gossip protocol and a key/value store that is eventually consistent. Hiera-consul will allow hiera to write to the k/v store for metadata centralisation and harmonisation.

https://github.com/lynxman/hiera-consul

Devstep is described as a development environment builder powered by Docker and buildpacks. The getting started docs give you a flavour of the workflow and a list of the current buildpacks.

https://github.com/fgrehm/devstep
http://fgrehm.viewdocs.io/devstep


Infrataster is another tool for writing unit tests for infrastructure. It’s designed to complement serverspec, by focusing on running tests from outside the virtual machine to test external interfaces like HTTP or SSH.

https://speakerdeck.com/ryotarai/infrataster-infra-behavior-testing-framework-number-oedo04
http://infrataster.net/


Uchiwa looks like a great addition to the Sensu monitoring framework. The screenshots give you an idea about it’s capabilities. It’s also packaged as a docker container which I think is something we’ll see more and more of.

https://github.com/sensu/uchiwa


Goiardi is a Chef server written in Go with the ability to run entirely in memory, with optional persistence saving the in-memory data to disk or using MySQL or Postgres. I’m not sure of the why in this case, but having open integration test suites make this an interesting possibility.

https://github.com/ctdk/goiardi


Another log parsing tool, Petit has a number of impressive features from hashing, graphing and discovering important repeated items in log files.

http://crunchtools.com/software/petit/
 
MaestroNG is an orchestration tool for multi-host docker environments. The examples in the README give the best idea, showing YAML files describing the entire environment.

https://github.com/signalfuse/maestro-ng


Anode is a utility for analyzing graphite metrics. It’s currently quite experimental, containing a single three sigma analyzer that takes a time series from graphite and creates new metrics alongside.

https://github.com/mattrco/anode.exp


Log File Navigator is an advanced log file viewer for the small-scale. It’s only really useful for a single host but provides some impressive command line visualisation tools as well as a powerful SQL query engine.

http://lnav.org/


Haka is described as an open source security oriented language which allows to apply security policies on (live) captured traffic. It’s based on Lua and looks to be a great way of writing certain kinds of network tools.

http://haka-security.org/


Another interesting networking stack, again using Lua (LuaJit in this case). Snabb Switch is designed for high throughput, low latency network sytems suitable for use by ISPs. It speaks natively to ethernet hardware, hypervisors, and the linux kernel. Interesting times for networking.

https://github.com/SnabbCo/snabbswitch


An interesting approach to server authentication, swapping the AuthorizedKeysCommand for a custom application which checks keys published to GitHub rather than a local public key. The examples directory makes understanding how it works nice and easy.

https://github.com/davidpelaez/gh-keys


Tesera is yet another graphite frontend with a nifty way of separating the query from the visualisation, leading to some nice features. It looks gorgeous too with multiple colour themes available.

http://urbanairship.com/blog/2014/06/30/introducing-tessera-a-graphite-frontend
https://github.com/urbanairship/tessera


Another lovely looking dashboard, Puppet Explorer is a frontend for PuppetDB. It’s intended to exploring Puppet resource and node information with nice visualisations and the powerful PuppetDB query language.

https://github.com/spotify/puppetexplorer


Toaster is another tool designed for testing infrastructure stacks. It makes use of LXC under the hood to provide isolated test environments and comes bundled with a web interface to observe and manage test runs.

https://github.com/whummer/toaster


Given our daily use of version control systems they contain an awful lot of data past just the source code. This tool allows for exporting a git repository into the solr search engine for data mining.

https://github.com/arafalov/git-to-solr


I’ve mentioned OSv previous as an interesting take on the operating system, but trying it out locally had required a lot of effort. Enter capstan, which provides a very nice command line interface to launch OSv instances locally on your machine.

https://github.com/cloudius-systems/capstan


Cayley is an open source Graph database. It supports multiple storage backends, an HTTP based API as well as a REPL and a built-in query editor and visualiser.

https://github.com/google/cayley

If you’ve ever looked into ways of securing traffic between internal services you’ll have found lots of options, most of them lots of work. Certified is an internal CA that’s designed to be easy to use

https://github.com/rcrowley/certified

Kubernetes is the open source version of Google’s container cluster manager, including support for docker. The setup instructions are based around Google Compute Engine but the software can run anywhere.

https://github.com/GoogleCloudPlatform/kubernetes


Another announcement from DockerCon, Centurion is a deployment tool designed for docker. It provides a Rake based DSL which makes specifying hosts and images. The examples give you an idea, but the rolling update feature in particular is nice.

https://github.com/newrelic/centurion
 

Following on from a recent blog post about alert design, Nagios Herald is a notification application designed to help add context to monitoring alerts. The included examples should give you lots of ideas.

http://codeascraft.com/2014/06/06/introducing-nagios-herald/
https://github.com/etsy/nagios-herald


Logstash has always been very much about the plugins. This project aims to make writing those plugins much easier. Still early days but it looks to automate some of the common tasks.

https://github.com/coolacid/logstash-pluginbase



Changelog is a tool designed to answer the question “What changed in the last twenty minutes?”. It provides a simple HTTP api and a web interface and is intended for tracking everything from deployments, dns changes, reboots, creation of servers, etc.

http://engineering.prezi.com/blog/2014/05/28/changelog-a-tool-designed-to-help-you-recover-faster/
https://github.com/prezi/changelog


Openduty is an open source Alerting and incident escalation tool. It supports alerting with XMPP, email, SMS, Phone and Push notifications, and supports the Pagerduty API for triggering alerts.

https://github.com/ustream/openduty


Checkzilla is simple tool for letting you know about out-of-date software versions. It currently supports Rubygems and NPM, but it’s extensible for other package types. Being able to manage this in one place feels like a good thing.

https://github.com/mickey/checkzilla

Container agent is a tool for launching a set of containers based on a simple manifest file. Although designed for Google Compute Engine it appears like it should work anywhere. The documentation contains lots of good examples.

https://github.com/GoogleCloudPlatform/container-agent


Radial is described as being intended to help understand, record, and put into practice the intersection between Twelve-Factor App best-practices and Docker features. It’s provides a defined language as well as examples of how to compose a set of containers.

https://github.com/radial/docs


An OWASP project, Mantra is a browser for use when auditing the security of web applications. Under the hood it’s Firefox with a large number of very useful plugins, from traffic capture to XSS scanners.

http://www.getmantra.com/index.html

Packetbeat looks like a very nice new open source application monitoring and packet tracing system. A lovely Kibana based interface and agents which can detect various types of traffic once installed make for a very simple getting started experience.

http://packetbeat.com/


A neat approach to managing users in a large GitHub organisation. Provides tools for auditing users, ensuring two factor authentication is enabled and providing reporting of issues.

https://github.com/guardian/gu-who


Managing multiple different git hooks across multiple repositories for self-hosted git repos can be a pain. cpthook aims to make that easier, moving the configuration into a simple YAML file and providing a command line to manage the hooks.

http://cpthook.com/

I’ve been starting to think about more dynamic load balancing recently and projects like Vulcand are very interesting. It combining a custom HTTP Proxy with configuration stored in Etcd, with the configuration updating automatically as the config changes.

https://github.com/mailgun/vulcand


A very simple but powerful deployment user interface based around Git and a simple YAML configuration file.

https://github.com/gengo/goship


Kamon is a nice, opinionated, distribution of tools designed to make collecting metrics from scala applications easier. It uses Graphite or New Relic as the backend and provides modules for monitoring actors, tracing application requests and logging.

http://kamon.io/

 

0 comments: