## conn-check ### testing infrastructure and deploys, with style Wes Mason [@1stvamp](http://twitter.com/1stvamp)
## Who? - / `@1stvamp` - Online services, [Canonical](http://www.canonical.com/) - Open source - [conn-check](http://conn-check.org/) maintainer
## History - UbuntuOne - Connections to Amazon S3, music providers, multiple databases/caches etc. - Strictly controlled firewall
## History cont. - `conncheck.py` - Twisted app - Checks outgoing connections required to verify the U1 app **will work**
## conn-check - Network connection verification utility - Multiple protocols - Asynchronous network connections - Monitoring - Testing
## How does it work? - type: tcp host: login.ubuntu.com port: 80 - type: udp host: localhost port: 8080 send: aaaa expect: bbbb tags: - foo
## How does it work? cont. - type: tls host: login.ubuntu.com port: 443 verify: true tags: - bar - type: redis host: 127.0.0.1 port: 6379 password: foobared
## How does it work? cont. - type: http url: https://login.ubuntu.com/ tags: - foo - bar - type: memcache host: 127.0.0.1 port: 11211
## CHECK ALL THE THINGS!!1 `udp, tcp, tls, http(s), postgres, amqp, mongodb, memcached, smtp, redis`
## Coming soon `keystone, swift, snmp, mysql` (honest, I have branches)
## But, handwriting YAML is for suckers! - Yes, yes it is. - Meet `conn-check-configs`. - Python library and utilities.
## conn-check-configs Generate YAML from.. - ..Django settings modules - ..Juju environments - ..live environments with packet sniffing
## Monitoring - Nagios plugin return standards - `!=0 exit code` == `bad` - Configurable timeouts - Output formatted for debugging/oncall
## Juju?
## sys.exit(0) - Slides: [github.com/1stvamp/conn-check-talk](https://github.com/1stvamp/conn-check-talk) - [conn-check.org](http://conn-check.org/) - [docs.conn-check.org](http://docs.conn-check.org/) - `bzr branch lp:conn-check`
## ^D - Jonathan "Joff" Oliver: [about.me/joffie](http://about.me/joffie) - Grab me and say hi `:-)`