Operations team ITIL type change management methodology: • Need for specific versions of the application and supporting tools • Change management process requires detailed specifics of what's in a "release" in order to assess possible impact • Multiple environments that need to be maintained for integration, staging, performance, etc. • Requirement to perform granular upgrades to existing environments
release branches • New functionality exposed by feature flags - Lack of discrete features or fixes per release • Package version availability (or rather lack of) i.e who cares about version X in 6 months? • Reliance on Rolling Forward vs Back
able in Y Months (With multiple releases per day)? • Should the managing software versions and a definitive software library across multiple environments be a full time job?
wants to quickly deliver features to customers in a reliable and stable manner • Developers want change to enable features • Operations want stability and minimal changes
commit • New functionality gets added all the time • A lot can change if you don’t ship regularly • If you skip xxx revisions deployment risk increases
lets split them into small batches • Small batches mean faster feedback • Small batches mean problems are instantly localized • Small batches reduce risk • Small batches reduce overhead (http://www.startuplessonslearned.com/2009/02/work-in-small-batches.html)
Deployment is easy for Traditional Operations Teams • We are packaging a package but the incremental work performed to create them more than paid for itself in terms of communications overhead for release coordination • We want to package almost everything in a RPM (excluding configuration) e.g. Documentation, Software, Admin support scripts, etc...
content, such as software packages, and pushing that content out to large numbers of consumers • Pulp can walk software packages through development, testing, and stable repositories, pushing those updates out to client machines as they get promoted.
manner that fits all parties • As confidence and trust grows we can move from normal to standard pre-approved releases further increasing deployment velocity • Working towards making production releases boring events rather than fire drills • It adds predictability since the process flow is shown from code creation to production deployment • Shared responsibility between all teams involved in getting releases into production