## 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
## 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 `:-)`