Alternate Titles ● “Operations Eye for the Dev Person” ● “Operations 101” ● “Everything you want to know about Ops but were afraid to ask” ● “Foreign Exchange for make benefit of glorious Nation of Operations” ● “Care and Feeding of your Ops team” ● “Ops is from Venus, Development is from Mars”
Who the hell am I? ● @lusis every-effing-where ● Atlanta Native ● DevOps-y kind of guy ● Does Ruby (most of the time) ● Does Python (other times) ● Does Java (well, once like 2 days ago) ● #monitoringsucks ● Hate Driven Development
Does this look familiar? Started GET "/" for 127.0.0.1 at 2012-03-10 14:28:14 +0100 Processing by HomeController#index as HTML Rendered text template within layouts/application (0.0ms) Rendered layouts/_assets.html.erb (2.0ms) Rendered layouts/_top.html.erb (2.6ms) Rendered layouts/_about.html.erb (0.3ms) Rendered layouts/_google_analytics.html.erb (0.4ms) Completed 200 OK in 79ms (Views: 78.8ms | ActiveRecord: 0.0ms)
Does this look familiar? Started GET "/" for 127.0.0.1 at 2012-03-10 14:28:14 +0100 Processing by HomeController#index as HTML Rendered text template within layouts/application (0.0ms) Rendered layouts/_assets.html.erb (2.0ms) Rendered layouts/_top.html.erb (2.6ms) Rendered layouts/_about.html.erb (0.3ms) Rendered layouts/_google_analytics.html.erb (0.4ms) Completed 200 OK in 79ms (Views: 78.8ms | ActiveRecord: 0.0ms)
Baking operations into your code (easy) ● Visibility – Implement a “ping” page ● Low-impact ● Exercise the full stack (call DB, perform some safe action, Easy to Parse, Easy to Check) ● Please don't expect folks to robot a login session
Remember This? Started GET "/" for 127.0.0.1 at 2012-03-10 14:28:14 +0100 Processing by HomeController#index as HTML Rendered text template within layouts/application (0.0ms) Rendered layouts/_assets.html.erb (2.0ms) Rendered layouts/_top.html.erb (2.6ms) Rendered layouts/_about.html.erb (0.3ms) Rendered layouts/_google_analytics.html.erb (0.4ms) Completed 200 OK in 79ms (Views: 78.8ms | ActiveRecord: 0.0ms)
Remember This? Started GET "/" for 127.0.0.1 at 2012-03-10 14:28:14 +0100 Processing by HomeController#index as HTML Rendered text template within layouts/application (0.0ms) Rendered layouts/_assets.html.erb (2.0ms) Rendered layouts/_top.html.erb (2.6ms) Rendered layouts/_about.html.erb (0.3ms) Rendered layouts/_google_analytics.html.erb (0.4ms) Completed 200 OK in 79ms (Views: 78.8ms | ActiveRecord: 0.0ms)
Remember This? Started GET "/" for 127.0.0.1 at 2012-03-10 14:28:14 +0100 Processing by HomeController#index as HTML Rendered text template within layouts/application (0.0ms) Rendered layouts/_assets.html.erb (2.0ms) Rendered layouts/_top.html.erb (2.6ms) Rendered layouts/_about.html.erb (0.3ms) Rendered layouts/_google_analytics.html.erb (0.4ms) Completed 200 OK in 79ms (Views: 78.8ms | ActiveRecord: 0.0ms)
Lookie here GET /jobs/833552.json format=json action=jobs#show status=200 duration=58.33 view=40.43 db=15.26 ● yes that's a single line! ● No more multiline ● No more awkward parsing
Baking operations into your code ● Take little effort ● Has great value ● Makes everyone happy ● Don't forget the non-functional requirements (The “ilities”) ● Stop inventing Timestamp formats (ISO8601 is a thing) ● Turn Kittens into PopTarts