Arnon Rotem-Gal-Oz's Cirrus Minor
"Making IT work" - Musings of a Holistict Architect
Navigation for Arnon Rotem-Gal-Oz's Cirrus Minor - Continuous Deployment
Content
Sidebar
Footer
March 18, 2009
@ 07:35 PM
Comments [0]
Continuous Deployment
Image via
Wikipedia
You might have noticed my blogging is slowing down a little, in case you're wondering the culprit is xsights - As we're getting closer to
production (2-3 weeks if all goes well) everything else slows down...
We all know about continuous integration (CI). We (xsights) are seeing a lot of ROI on the investments we made into signing up to CI esp. when we augmented by automated testing. Everyday we can and do actually release several versions and run load tests on them on different server seeking the best release to "freeze". Where "freezing" means the system that will be used in production. That's the way it is done, right? You work on a release for x months (sometimes years..) and after an integration period at the client's site you go live and forget about them (save for show-stopping bugs) until the next major update several months later. For instance, setting up our "methodology" I figured a 6 months release cycles for major versions plus 1 month releases of minor version would suffice.
These days, however the more I think about it, The more I believe this approach is not the right one for our situation. We are going to go with Continous Deployment. There are many reasons for that primarily:
The requirements stream (new reqs and changes) is still pouring in - and in increased rate.
We are building a service platform not an installable product - This means we get to control where how it is run so there's less overhead in
streamlining updates
It would be our first public installation - were going to roll out bug fixes anyway (I personally never write bugs... but you know ;) ). We'll need a proper procedure for updates anyway
We are doing this anyway - every new demo/internal run we have is using the "stablest" latest and greatest :)
What does Continuous Deployment means? It means we'll be rolling out new production versions on a daily basis (or even more frequently!)
How that's going to work? Well, First there are the prerequisites:
Version control - something that can track and tag versions...
Continous integration which is set up and running. You cannot release continously if every new development offer breaks the system. An automated smoke test is
Automates tests that provide a good approximation of real usage
(.e.g. usage patterns, loads etc.) - You need to be able to have a high
confidence level that whatever you have.
Staging environment - An environment as close as possible to the production system (just like you'd have for a web-site)
Monitoring and alert system - You need to be able to identify problems quickly - the running
Then there's the process:
identify a baseline Stable release -The "fallback".
pick the most promising build of the day
run it through more extensive tests (at least burn-down and load - which means a release maybe 1-2 days old by the time it hits the production system)
if everyhting is cool deploy to staging - else fix bugs and repeat from 2
repeat tests in staging environment
Update system (This is a point that still needs work so we can support a version hot-swap i.e. without a shutdown)..
If the monitoring system alerts unforeseen bugs (i.e. problems with the release) - roll back to stable release, try to add test for the problematic behavior and repeat from 2
if the release worked good enough - mark it as the next Stable release
That's the plan. However as we all know, talk is cheap so be sure to check in here in 2-3 months to hear how did we fare :)
Tags:
Agile
|
Project Management
|
xsights
Related posts:
Architectural requirements Q&A
xsights is hiring
Evolving Architectures – Part I What’s Software Architecture
Offtopic: xsights – now open for all
SOA Patterns on the next E-VAN (Oct. 5th 2009)
What is maintainability anyway?
« Implementing a WCF service firewall part...
|
Home
|
8 must read papers for project managers »
Comments are closed.
Navigation
Home
Papers, Articles & Presentations
SPAMMED Architecture Framework
SOA Patterns
About Me
Featured Presentations & Papers
REST introduction (ppt)
SOA Pattern Presentation (pdf)
Fallacies of Distributed Computing (pdf)
Getting SPAMMED for architecture (pdf)
OO Primer (ppt)
Use Case Methodology for large systems (pdf)
Software Architecture (ppt)
Service Oriented Architecture - Intro (ppt)
What is SOA anyway? (pdf)
(New) SOA Patterns Presentation (pdf)
More...
SOA Patterns Book
Published Patterns
Edge Component (pdf)
Gridable Service (pdf)
Service Firewall (html @ InfoQ)
Saga (pdf)
The Knot Antipattern (pdf)
Blogjecting Watchdog (pdf)
Reservation (pdf)
What I am reading
Subscribe to RSS headline updates from:
Tag Cloud
.NET (80)
A&D2007 (6)
Agile (27)
BI (2)
Cloud Computing (3)
dasBlog (1)
data (6)
Design (26)
ESB (2)
Everything (200)
Functional Languages (1)
General (67)
Google (1)
iPhone (1)
Java (9)
Mobile (3)
Mono (1)
new (4)
OO (15)
PaperLnx (6)
Papers (4)
Programming (1)
Project Management (11)
Q&A (3)
refactoring (1)
Requirements (3)
REST (21)
RIA (4)
ruby (8)
scalability (6)
SCRUM (2)
SOA (105)
SOA Patterns (51)
Software Architecture (203)
SPAMMED Process (35)
TDD (8)
Trends (5)
Trends (9)
WCF (8)
xsights (7)
Archives
May, 2010 (2)
April, 2010 (3)
March, 2010 (2)
January, 2010 (2)
December, 2009 (1)
November, 2009 (3)
October, 2009 (3)
September, 2009 (5)
August, 2009 (3)
July, 2009 (1)
June, 2009 (3)
May, 2009 (4)
April, 2009 (2)
March, 2009 (3)
February, 2009 (3)
January, 2009 (5)
December, 2008 (8)
November, 2008 (6)
October, 2008 (4)
September, 2008 (4)
August, 2008 (8)
July, 2008 (6)
June, 2008 (5)
May, 2008 (4)
April, 2008 (4)
March, 2008 (6)
February, 2008 (3)
January, 2008 (5)
December, 2007 (9)
November, 2007 (6)
October, 2007 (11)
September, 2007 (11)
August, 2007 (10)
July, 2007 (9)
June, 2007 (9)
May, 2007 (9)
April, 2007 (6)
March, 2007 (4)
February, 2007 (2)
January, 2007 (5)
December, 2006 (4)
November, 2006 (3)
October, 2006 (4)
September, 2006 (2)
August, 2006 (4)
July, 2006 (3)
June, 2006 (4)
May, 2006 (10)
April, 2006 (8)
March, 2006 (8)
February, 2006 (6)
January, 2006 (6)
December, 2005 (3)
November, 2005 (5)
October, 2005 (6)
September, 2005 (10)
August, 2005 (5)
July, 2005 (15)
June, 2005 (16)
All dates
All Posts
Contact the Author
Contact Arnon
Affiliations
Admin
Sign In