i, for one, welcome our new robot overlords
TRANSCRIPT
I, For One, Welcome Our New Robot Overlords
Mykel Alvis - Cotiviti Labs@mykelalvis [email protected]
200+ repos
3-4 deploys per day
15 developers
0 operators (sorta)
@mykelalvis
My name is Mykel
@mykelalvis
High-risk
High-speed
High-tolerances
@mykelalvis
Highly-regulated data
@mykelalvis
I love my job
@mykelalvis
There’s just this one problem.
Well, lots of them.
@mykelalvis
NOT a “people-person”
@mykelalvis
How engineers see themselves
@mykelalvis
How the world thinks it sees them
@mykelalvis
How I generally see them
@mykelalvis
How they really are.
How we ALL really are.
@mykelalvis
The fragility of humans is a fact of life
@mykelalvis
Dealing with engineers is tiresome for me
@mykelalvis
I AM an engineer
@mykelalvis
A lot of what I have done might not be very glamorous
@mykelalvis
We get paid to make the boring things stay boring
@mykelalvis
Can’t do live demos
@mykelalvis
@mykelalvis
@mykelalvis
http://bit.ly/28NI32i
We’ve become addicted to speed
@mykelalvis
I used to own a relatively fast sports-car
@mykelalvis
I drove it very fast.
Everywhere.
@mykelalvis
But there’s a price for speed
@mykelalvis
The tolerances for failure drop
@mykelalvis
What we do is NOT Formula 1 racing
@mykelalvis
The Labs Way™
We don’t really have a trademarkIt’s a joke. For now.
@mykelalvis
Treat everything as code. Everything.
@mykelalvis
Test your code.
@mykelalvis
Perform formal releases.
@mykelalvis
Releases produce immutable artifacts
@mykelalvis
Keep everything!
@mykelalvis
No, silly. Like this.
@mykelalvis
Failing tests mean failed builds. Duh.
@mykelalvis
Design your systems to be automated
@mykelalvis
Deal with those systems only through automation
@mykelalvis
Operations IS developing
@mykelalvis
Because everything is code. Everything.
@mykelalvis
All defects are defects of code
@mykelalvis
How does this even work?
@mykelalvis
Discipline
@mykelalvis
Wat?
@mykelalvis
I know. You thought it’d be easy. Or at least easier.
@mykelalvis
The railroads
@mykelalvis
Standardization is a Big Deal
@mykelalvis
Firearms
@mykelalvis
Modern firearms require fairly tight tolerances.
@mykelalvis
Again, standardization is a
Big Deal
@mykelalvis
Assembly lines
@mykelalvis
Now we’re up to 2016!
@mykelalvis
Standardization is an effect of applying
discipline to manufacturing
@mykelalvis
★ Standardize★ Evaluate
★ Test★ Discard the useless
★ Own it
@mykelalvis
Robots are categorically better at repetitive behaviors
@mykelalvis
Humans are better at responding to
unpredictable events
@mykelalvis
Customized automation framework
@mykelalvis
Our system works on a pub-sub
framework
@mykelalvis
@mykelalvis
The developer enters the release request into a chat client
@meredith release myproject from master at 9a9c3567942ad92ec962bd96e771acb66c92c8b0
The bot responds in chat with an in-progress link that shows the running logs of the process
Starting task: f19cd655-4440-4e6b-8a57-62c2f493cf89. Track status at: https://redirector/status/f19cd655-4440-4e6b-8a57-62c2f493cf89 Successfully cloned repository: ssh://[email protected]/myorg/myproject from branch master [9a9c3567942ad92ec962bd96e771acb66c92c8b0] Performing dry run... Preparing for release... Performing release...
@mykelalvis
The legal representative enters the release request into a chat client
@meredith provision new client with public key id 9ACA8791
The bot responds
Preparing to provision a new client... New client id is: 5d5ed93f-8210-4b75-9d54-9e111abdd4f8 Queuing deploy request: client-deploy Starting task: 5988afa4-b71b-4a7b-8a0d-e5d7e1ec77d0. Track status at: https://redirector/status/5988afa4-b71b-4a7b-8a0d-e5d7e1ec77d0 Succesfully retrieved client public key: 9AAC7891 Resolving dependencies from deployment pom... Provisioning environment... Provisioning executed successfully. New deployment https://client-deploy-5d5ed93f-8210-4b75-9d54-9e111abdd4f8.alphahealthcare.io is ready to use. DEPLOYMENT COMPLETE
About 50-ish points of articulation.
@mykelalvis
The deployment graph is very important
@mykelalvis
Robots are not a substitute for
people
@mykelalvis
Bootstrapping is essential
@mykelalvis
Always, ALWAYS have a backup plan
@mykelalvis
@mykelalvis
Save yourself!Spread the Message
@mykelalvis