#wycatsdownunder
Through the Looking-Glass, and What Toby Found There
The Adventures of a Ruby Developer in Opsland
Hi
I'm Toby
![](https://s3.amazonaws.com/media-p.slid.es/uploads/tobyhede/images/44136/ralph_wave.gif)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/tobyhede/images/32599/extra-large-ninefold-logo-b.png)
We make #cloud
![](https://s3.amazonaws.com/media-p.slid.es/uploads/tobyhede/images/32595/mccoy-aa-tos-wave1-2.jpg)
Developers
![](https://s3.amazonaws.com/media-p.slid.es/uploads/tobyhede/images/33526/Jp5fYlk.gif)
i iz in ur computer
![](https://s3.amazonaws.com/media-p.slid.es/uploads/tobyhede/images/32591/1128-neckbeard.jpg)
Actual Devops
My client is looking for an experienced DEVOPS resource to come on board.
Ideally you would have experience in previous DEVOPS.
Actual Seek Advertisement
![](https://s3.amazonaws.com/media-p.slid.es/uploads/tobyhede/images/46536/Screen_Shot_2013-07-09_at_1.59.19_PM_1.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/tobyhede/images/46547/Screen_Shot_2013-07-09_at_1.59.19_PM_1-_1_.png)
Turtles All The Way Down
So ...
Actual Multi-Node Application
What the hell is going on?
It's probably your fault
![](https://s3.amazonaws.com/media-p.slid.es/uploads/tobyhede/images/44163/-9.gif)
Actual Asset Pipeline
It's better than bad, it's GOOD!
![](https://s3.amazonaws.com/media-p.slid.es/uploads/tobyhede/images/32532/LOG-ren-and-stimpy-1552749-1280-1024__1_.jpg)
All of the things!
![](https://s3.amazonaws.com/media-p.slid.es/uploads/tobyhede/images/33499/tumblr_inline_mmrb8pCNj81qz4rgp.gif)
[C]\ ,-[AMQP] \ | [C]--[LB]---[AMQP] / | | [C]/ | '-[AMQP] | [LS]---[ES]---[PORTAL] [ES] [ES]
Actual ASCII Architectural Diagram
source, tags, search, tail
Chef
Testing
![](https://s3.amazonaws.com/media-p.slid.es/uploads/tobyhede/images/33509/CHuWU78.gif)
Ruby
![](https://s3.amazonaws.com/media-p.slid.es/uploads/tobyhede/images/44017/67902-Peter-Griffin-blinds-gif-zgVr.gif)
How does it even work?
database_nodes.keep_if{|n| n.server.present?}.collect do |n| { n.server.public_ip => [:status, :repl_status, :last_status_check].collect { |a| {a => [:app, :db, :postgresql, a].inject(n){|h,k| h[k] if h.is_a?(Hash)} }
}.reduce(Hash.new, :merge) } end
Actual Ruby
Capacity Planning
![](https://s3.amazonaws.com/media-p.slid.es/uploads/tobyhede/images/33519/tumblr_inline_mk6u7vJ9Qq1qz4rgp.gif)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/tobyhede/images/33520/tumblr_inline_mmrd2uy3dV1qz4rgp.gif)
The End
Actually Not The End
![](https://s3.amazonaws.com/media-p.slid.es/uploads/tobyhede/images/32599/extra-large-ninefold-logo-b.png)
eap@ninefold.com
#wycatsdownunder
RoRO Sydney
By tobyhede
RoRO Sydney
- 3,943