January 1. Shiny in Production Workshop 2. Configuration Management Tools for the R Admin April 3. Championing Analytic Infrastructure July 4. Art of the Feature Toggle 5. Environmental Release Patterns August 6. Shiny in Production: Building bridges from data science to IT September 7. Data Product Delivery: The R user’s journey toward improving daily work 8. The R in Production Handoff: Building bridges from data science to IT October 9. Interactivity in Production Solutions Engineer at a Software Company called RStudio. RStudio builds open source and professional tools used by the Data Science and Statistical Computing community. speakerdeck.com/kellobri
Solutions Engineering isn’t Dev and it isn’t Ops... Industrial Research Business Management Human Resources Government Work Regulated Environments Big Data Applications Cloud Infrastructure R in Production What is there to learn? What are the needs? What can we build? Solutions Engineers!
1. DevOps is a philosophy / set of practices 2. Which create new processes for collaboration between Dev and Ops teams 3. There’s nothing new in DevOps A framework for making sense out of common sense
When developers begin to think of infrastructure as part of their application, stability and performance become normative. - Jeff Geerling “Ansible for DevOps”
Vicious cycle of mutual resentment and distrust Dev Silo IT/Ops Silo THE FEAR “Hey - could you just put this thing in production real quick?” “Uh.. I just deployed this little change, and something might be broken”
The DevOps Handbook 1. Accelerate Flow - Make work visible - Limit Work in Progress (WIP) - Reduce Batch Sizes - Reduce the number of handoffs - Continually identify and elevate constraints - Eliminate hardships and waste 2. Utilize Feedback - See problems as they occur - Swarm to solve problems and build new knowledge - Keep pushing quality closer to the source - Enable optimizing for downstream work centers 3. Learn and Experiment - Enable organizational learning and a safety culture - Institutionalize the improvement of daily work - Transform local discoveries into global improvements - Inject resilience patterns into daily work Three principles form the underpinnings of DevOps:
Make an impact: Data Product Development & Delivery “It doesn’t matter how great your analysis is unless you can explain it to others: You need to communicate your results.”
Local Environment Promotion Strategies Local Data Science Environment Email an Image or PDF Email the Code or Package Create a Shared Git Repository Publish to RPubs / Shinyapps.io Publish to an Analytic Sandbox (Tinker-Space) Deploy to Professional Analytic Infrastructure Sophistication / Usefulness Difficulty?
SUPER-vicious cycle of mutual resentment and distrust Data Science Silo IT/Ops Silo THE FEAR “Hey - I wrote this code using a bunch of open source packages some random person from the internet created … Also, what’s a test?”
How to wade in … with Empathy and Strategery! Does DevOps Exist in Your Org? Yes Maybe? Nope. Is IT/Ops comfortable helping you bring Shiny to production? ! . Best case scenario! Get ready to help implement some novelty Make a checklist, answer questions, build a POC, be prepared to take it slow This is your chance to meet some people! Talk to a developer or IT Human! Are you comfortable bringing DevOps to your Org? ! . Cool Beans! Figure out who else needs convincing Noodle on it! Maybe it’s worth it? Make a communication plan and come with an open mind. Read Books!
Start by answering some questions… - What is a Shiny Application? - Who is the audience? - What is your service level agreement definition? (SLA) - What does your analytic architecture look like today? - What are your goals for evolving this architecture? - How will monitoring be handled? - Who is responsible for maintenance? Make work visible, Define shared goals, Build a checklist, Iterate Empathetic Communication is Challenging
Shared Goal: Shorten the distance between development and production ADVOCATE FOR A SANDBOX PUBLISHING ENVIRONMENT B. User Acceptance Testing A. Automated Snapshot Testing
Automation! ● I don’t want to remember to run this testing procedure ● I don’t want to have to assure someone from IT that I ran it ● I certainly don’t want to hand the job off to them GIVE IT TO THE MACHINES Shared Goal: The improvement of daily work