Naga Chokkanathan

Notes from #DevOpsDays2011 Event @ Bangalore (27 Aug 2011, Thoughtworks, Bangalore)

Posted on: August 27, 2011

Session 1 – Continuous Delivery – Nick Hines (Thoughtworks)

DevOps

Development and Operations communities together, learning from each other

What is Continuous Delivery?

* Automate the last mile to allow rapid, reliable deployment at the push of a button
* Rapid incremental delivery of high quality valuable new functionality to users
* Constant measurement and optimization of the delivery process

So, what are the benefits?

1. Predictability (and boring – Good for software deployment)
2. Reliability
3. Power in the hands of the business
4. Fast Feedback
5. Responsive to business change

So, how do you get there?

1. Fundamentals – Basic standards of source control
2. Automation – Everything / at least whatever is possible (functional testing, integration testing etc.,)
3. Right-sizing (Changing the way you divide-up the features you deliver)
4. Continuous improvement (of Process)

Why Now?

* Traditional approach: Write Spec, Write Code, Test & Fix, Release (Months / years)
* By the time release happens, things can change
* Agile – Similar approach, but in iterations (Months)
* Now we are talking about hours / days releases
* Evolution, Not revolution

Development Practices

* Functional Automated Testing
* Code on main line
* Branch by abstraction
* Non-functional Automated Testing
* In case of a problem, No rollback, Just re-release the previous version

Build & Deployment Patterns

* Build pipelines
* Canary Releases (Small subset release, test)
* Infrastructure as code (Store the infrastructure information in the source control system and treat it how you would treat software code)

Tooling

* Chef
* Puppet
* CF Engine
* IaaS
* Go

Lean Startup

* Free and Open Source
* Agile software development
* Customer Centric Rapid iteration
* Powerful, Cheap analytics

Production Dashboard

* What is in production
* What is in the next release
* Install to production – Trigger / Button

Real life examples of continuous delivery:

* Flickr
* Netflix

Book: Continuous Delivery by Jez Humble, David Farley

****************

Session 2 – “It is difficult to do TDD & CI” – Exploring the “Why” in a large company – J Srinivas & Chetana (Infosys)

CI = Continuous Integration
TDD = Test Driven Development

Different levels of adoption / understanding / acceptance

Types of projects / organizations we looked at

1. All Agile
2. A successful Agile pilot, want to move others to Agile
3. Application developed in Traditional mode, Maintenance in Agile
4. Both App development and Maintenance in Agile

Common Patterns among all these 4 types

* Adoption of management practices very strong
* More emphasis in automating functional testing more than unit
* Executing in 6 week sprints for majority of projects

What is important right now?

Development: Functionality, Security, Scalability
Maintenance: Maintainability, Reliability, Performance

Entry Barriers:

1. Investment in process automation
2. Culture Change
3. Dependencies
4. Distributed teams

Lowest adoption in mixed environment (#1 in the above types of organizations / projects)

Reasons: Management wants ROI for investment immediately / Low Buy-in / Teams lack understanding / Inter-dependency / Restriction on usage of unapproved toolset

All Agile Teams (#2) deviations observed in all teams, frequency of CI: Daily & Weekly, Automated functional tests, Challenge in automating the regression suite

Happiness Quotient in distributed teams: Maturity is the key

To get to effective practices: Investment, Legacy, Infrastructure, Culture, Business to invest with faith

**************************

Session 3 – Test Load Balancer – rocket booster for your build – Janmejay Singh & Pavan K S

What is TLB?

Test Load Balancer: Free and Open Source software, Cuts your build time by executing tests parallely on a grid

We went from 2 hours to 12 minutes to 9 minutes builds. How?

Dream: Fast Builds

* Fast Build = Rapid Development
* Devs spend less time waiting to check-in
* Easier for devs to run precomit buids, results in pulling upstream changes often and running builds frequenty

Common Solutions:

1. Split applications into modules
2. Throw more hardware at it – Slice and dice

Optimal solution: Every bucket takes the same time

Smoothened Time-based Balancing

XYZ Balancing

Failed first orderer

ABC Orderer

***********************

Session 4 – Devops at SlideShare – How we built a system that deploys 5 times a day on production – Kapil Mohan & Mayank Joshi

http://www.slideshare.net/kapil/devops-at-slideshare-talk-at-devopsdays-bangalore-2011

Once upon a time, deployments used to be rare – everybody were scared to deloy, because it was a tedious job

Manual steps to setup a new server – Non-repeatable / error prone / un-maintainable… Site down / long downtimes / time wasted in digging teh root cause / adding capacity etc.,
Blame game started

While all these were happening, the site was growing very fast

DevOps @ Slideshare

Why?

1. Deployments were blockers
2. Zero Visibility into the system
3. No Shared ownership
4. Needed better engineering processes

We looked at Lean processes

This presentation opened our eyes –> http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr

Tools & Culture: Object oriented, incremental, repeatable, Ruby

Scripted Deployments: Repeatable, powerful – Capistrano

Source Control: Moved from SVN to Git, Using GitSVN glue, Merging, Branching FTW, Dev and Ops can access all repositories

Continuous Integration

Ruthless Monitoring – Web based performance dashboards, detailed, time-based profiling, devs have visibility

Alerts – Web / Email / SMS – Nagios everything – On-Call Devs

Visibility: Akamai, Website Pulse, Nagios alerts

Management’s Role: Force collaboration when troubleshooting issues, downtimes, Build cross functional teams, STOP Blaming

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Disclaimer

The opinions expressed here are the views of the writer and do not necessarily reflect the views and opinions of the Organization He works for / belongs to.

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 58 other followers

Big Adda

%d bloggers like this: