Upload
karthik-gaekwad
View
564
Download
1
Tags:
Embed Size (px)
DESCRIPTION
These are my slides from the ignite talk from DevOpsDays Austin 2012.
Citation preview
30 days or lessNew features to production
Karthik Gaekwad@iteration1
Who is this guy?
Member of the Cloud Team @NI I’m the dude that plays the dude
that designs and implements REST Services and Web Apps.
Platform Owner- “Canopy”- User Management and licensing for NI Cloud products.
Being Agile
Typically, NI has a yearly product releases Waterfalley
Cloud Iterations: monthly Feature by Feature Features ready for production
deployment at the end of an iteration
Our Process
Few features at a time. Design->Implement->Test->Deploy
Before we write code…
We listen! Know what we are really trying to
accomplish. Who is my end user?
Interact with the end customer. Do I understand the feature?
Pro Tip!
Create ‘Research Item’ tasks Don’t have enough information upfront need to investigate an approach.
Make this time bound.Goal: Know what a prototype would
look like, and how it may function.
And then
Create the Cloudlet Model Describes the end to end system. Dev and Ops communicate effectively.
Core belief: Model Driven Automation.
Next Step
Design the feature Core belief:
Build platforms, not applications Reuse existing platforms
Security @Design Time
Proactive stance with @wickett on the team
@wickett- CISSP, GWAPT
Write the Code
Best practice:Don’t write crappy code
Make it robust & resilient Fix bugs as soon as you can Get it reviewed
Never release with known bugs.
Save it
Not Ctrl+S Source Control!
We use Perforce/TFS
“If it’s not in source control, it won’t be deployed”
Test your stuff
Unit Tests to test out individual methods
Integration Tests to test out system Production Ready?
Load Test Monitors that can execute
custom workflow checks
Worst advice ever
Time To Deploy!
PIE Time- Our homegrown DevOps tool.
Create the PIE recipe (System Model Files)
Deploy to the environment of our choice- typically Dev/Test
Demo
People “get it” when they see it. End of Iteration demos Demos to the end users Iterate based on feedback
Release the feature!
Push to production Pushed by the Operation Team
The act of pushing files to production SHOULD NOT be a big deal.
If it is, the process has holes.
Blog It!
Cultivate an open culture Easier to track what happened with
frequent releases Internal Users can read at their own
convenience
Production Bug- What to do?
Don’t freak out. Figure out what (really) broke. Figure out why it broke. Accept that it happened. Fix the code! Write a new integration tests/
monitors for this
Pro Tips
Know your end user. The customer is your biggest ally
Agile is a process. Tweak it, to make it work for you
Release Early, Release Often. Bigger the release, more stuff that will go
wrong Harder to rollback
Create integration tests that can be executed by the whole team. Great when you are on vacation!
Pro Tips
Keep system designs simple. Complex cloud designs are brittle and hard to
scale Log like a champion!
But not sensitive data Create APIs to measure metrics.
Even more important in the cloud If you do something awesome, tell people.
Others are solving similar issues #DevOpsCulture
Thank You!
Questions? Find me here or on twitter
@iteration1