20
30 days or less New features to production Karthik Gaekwad @iteration1

30 days or less: New Features to Production

Embed Size (px)

DESCRIPTION

These are my slides from the ignite talk from DevOpsDays Austin 2012.

Citation preview

Page 1: 30 days or less: New Features to Production

30 days or lessNew features to production

Karthik Gaekwad@iteration1

Page 2: 30 days or less: New Features to Production

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.

Page 3: 30 days or less: New Features to Production

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

Page 4: 30 days or less: New Features to Production

Our Process

Few features at a time. Design->Implement->Test->Deploy

Page 5: 30 days or less: New Features to Production

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?

Page 6: 30 days or less: New Features to Production

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.

Page 7: 30 days or less: New Features to Production

And then

Create the Cloudlet Model Describes the end to end system. Dev and Ops communicate effectively.

Core belief: Model Driven Automation.

Page 8: 30 days or less: New Features to Production

Next Step

Design the feature Core belief:

Build platforms, not applications Reuse existing platforms

Page 9: 30 days or less: New Features to Production

Security @Design Time

Proactive stance with @wickett on the team

@wickett- CISSP, GWAPT

Page 10: 30 days or less: New Features to Production

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.

Page 11: 30 days or less: New Features to Production

Save it

Not Ctrl+S Source Control!

We use Perforce/TFS

“If it’s not in source control, it won’t be deployed”

Page 12: 30 days or less: New Features to Production

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

Page 13: 30 days or less: New Features to Production

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

Page 14: 30 days or less: New Features to Production

Demo

People “get it” when they see it. End of Iteration demos Demos to the end users Iterate based on feedback

Page 15: 30 days or less: New Features to Production

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.

Page 16: 30 days or less: New Features to Production

Blog It!

Cultivate an open culture Easier to track what happened with

frequent releases Internal Users can read at their own

convenience

Page 17: 30 days or less: New Features to Production

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

Page 18: 30 days or less: New Features to Production

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!

Page 19: 30 days or less: New Features to Production

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

Page 20: 30 days or less: New Features to Production

Thank You!

Questions? Find me here or on twitter

@iteration1