conn-check

A deployment utility to check connectivity between services

What is it?

conn-check is a small utility, written in Python using the Twisted network library, that verifies outgoing connections from your application servers to services it depends on, e.g. databases, caches, web service APIs, etc.

conn-check is used not only to verify network dependency changes at deploy time, and during each step in a CI/CD pipeline, but can also be used in continuous monitoring, e.g. with tools like Nagios.

But, why?

conn-check's original purpose, as part of the UbuntuOne project, was to verify holes were poked in the production firewalls at deploy time to allow connections to various dependencies, such as the Amazon S3 API, 7digital, internal Cassandra, memcached, PostgreSQL, and other internal web services. However, it now also provides a general purpose utility for visibility of connectivity to services your app requires, and even has tooling for modifying firewalls, generating configurations from app frameworks, and even the ability to generate configuration from a live environment using packet sniffing.

Better yet, conn-check doesn't just check basic connectivity to a service, it does deep protocol inspection, from the base UDP/TCP layer, to TLS, and then a real connection to a service, including authentication and other configuration (e.g. schemas for databases, key options in caches etc.).

What about microservices?

Given the rise of microservices and a greater number of inter-dependencies between disparate services, conn-check makes the perfect tool for checking live availablity of your "hard requirements", which in the case of microservices is connectivity to dependent services.

For more info on adding conn-check to your app, try the tutorial for size.