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