RPM deployment for Continuous Delivery @ImmobilienScout24

worked on by: Maximilien Riehl

Due date

I finally got the thesis registration to the Prüfungsbüro and updated the due date accordingly. I will deliver on September 20th, 2012

Outline

The idea behind Continuous Delivery is that releasing software towards production should not fill operations, developers and managers with fear but be an easy, transparent, reproducible and safe step.

Since the sole reliable way to achieve faster, more reliable and easier releases is through automation, this thesis' goal is to elaborate on the migration towards deployment automation in a case study where the software (which is a very complex, loosely coupled web application) will be delivered in an automated fashion using RPM packets. The software is currently delivered using a semi-automatic, network share based deployment stack with a cycle time of one week.

The deployment migration boils down to setting up an infrastructure to push the software packets throughout the staging process using RPM packets and actually use it, as well as implementing a deployment pipeline that takes source code as input and produces deployed and tested stages.

Thesis Requirements

Milestones and Planning

A milestone is a scheduled event signifying the completion of a major deliverable or a set of related deliverables. A milestone has zero duration and no effort -- there is no work associated with a milestone. It is a flag in the workplan to signify some other work has completed. Usually a milestone is used as a project checkpoint to validate how the project is progressing and revalidate work. (Source: http://www.mariosalexandrou.com/definition/milestone.asp)

Milestone no. Past days Progress Goals target accomplished wrench
1 DONE 25 100% Deploy feedservice to dev (automatic test environment) DONE
2 DONE 27 100% Deploy feedservice to tuv50 (automatic production like test environment) DONE
3 DONE 12 100% Deploy feedservice to tuv (manual production like test environment) DONE
4 DONE ? 100% Deploy RPMized feedservice to production one machine at a time DONE
5 DONE ? 100% Open source yum-repo-server and yum-repo-client DONE
6 DONE ? 100% Complete schedule and coordination with external contractors like computacenter DONE
7 DONE ? 100% Take part in a ZDD (ZeroDowntimeDeployment) with the old manual deployment stack to evaluate advantages / liabilities of the new stack DONE
8 DONE ? 100% Migration of other selected function groups (Rest-api, XMLRPCAPI) DONE
9 DONE ? 100% Finish writing thesis DONE

Weekly Status (Most recent at the top, so you don't need to scroll forever). Usually updated on Mondays.

Week 11 (CW 38) (LAST)

DONE Thesis printed and delivered

Next steps : prepare the final presentation

Week 11 (CW 37)

Activities

Results

Next Steps

Week 11 (CW 36)

Activities

Results

Next Steps

Week 10 (CW 35)

Activities

Next steps

Week 9 (CW 34)

Activities

Problems

Next steps

Week 8 (CW 33)

Activities

Results

Problems

Next steps

Week 7 (CW 32)

Activities

Results

Problems

Next steps

Week 6 (CW 31)

Activities

Results

Problems

Next steps

Week 5 (CW 30)

Activities

Results

Problems

Next steps

Week 4 (CW 29)

Estimate

Activities

Results

Next Steps

Problems

Week 3 (CW 28)

Activities

Results

Next Steps

Problems

Week 2 (CW 27)

Activities

Results

Next Steps

Problems

Week 1 (CW 26)

Activities

Results

Next Steps

Problems