continuous evolution - iterating to a continuous delivery platform
DESCRIPTION
@IngmarKrusch describes how the journey to continuous delivery looks like for ImmobilienScout24. He shows the evolutionary steps that were taken, both on the technical side, as well as on the cultural side. The talk was given at http://berlindevops.org/2012/03/22/109/TRANSCRIPT
www.immobilienscout24.de
www.immobilienscout24.de
Berlin | 25.04.2012 | Ingmar Krusch, DevOps believer
Continuous Evolution Iterating to a Continuous Delivery Platform
| Things we learned while scaling DevOps | Ingmar Krusch, André von Deetzen Seite 2
Continuous Delivery
at ImmobilienScout24
| Continuous Evolution | @IngmarKrusch Seite 3
When we started
running at capacity in
ops and above
| Continuous Evolution | @IngmarKrusch Seite 4
historically grown
infrastructure
and code
| Continuous Evolution | @IngmarKrusch Seite 5
Got root?
No!
Wait, what?!
| Continuous Evolution | @IngmarKrusch Seite 6
we knew we had to
fundamentally change
| Continuous Evolution | @IngmarKrusch Seite 7
even without everyone
pushing us
| Continuous Evolution | @IngmarKrusch Seite 8
ground changing
beneath us
| Continuous Evolution | @IngmarKrusch Seite 9
old and complicated
build- and deployment
infrastructure
| Continuous Evolution | @IngmarKrusch Seite 10
Our dilemma
we were devided
amongst ourselves
| Continuous Evolution | @IngmarKrusch Seite 11
taking
evolutionary steps
| Continuous Evolution | @IngmarKrusch Seite 12
Old world
Iteration zero
| Continuous Evolution | @IngmarKrusch Seite 13
old world
| Continuous Evolution | @IngmarKrusch Seite 14
some
config
config
share
build &
release
47.0.1
48.2.1
devapp01
deploy
tool
Iteration one
| Continuous Evolution | @IngmarKrusch Seite 15
old world
| Continuous Evolution | @IngmarKrusch Seite 16
some
config
config
share
build &
release
47.0.1
48.2.1
devapp01
deploy
tool
-> first iterration
1st iteration – RPM tech demo
| Continuous Evolution | @IngmarKrusch Seite 17
config
SVN
svn ci
devapp01
converter
script
post
commit
hook
build &
release
47.0.1
48.2.1
global
YUM
config
viewer
yum
install
Config RPMs intermezzo
| Continuous Evolution | @IngmarKrusch Seite 18
application
tomcat
config
SVN
models the
landscape
generates one
RPM
for each host
post
commit
hook
is24-conf-devapp01
Iteration two
| Continuous Evolution | @IngmarKrusch Seite 19
2nd iteration – RPM POC
| Continuous Evolution | @IngmarKrusch Seite 20
config
SVN
svn ci
devapp01
converter
script
post
commit
hook
build &
release
47.0.1
48.2.1
global
YUM
config
viewer
yum
install
| Continuous Evolution | @IngmarKrusch Seite 21
Taking a RPMized app live
Tomcat / solr
DB
internet
LB
Frontend
Backend
http
RPMize the maschines
the solr app runs on
| Continuous Evolution | @IngmarKrusch Seite 22
devapp01
2nd iteration – RPM POC
| Continuous Evolution | @IngmarKrusch Seite 23
config
SVN
svn ci
post
commit
hook
global
YUM
config
viewer
devsol01 tuvsol01 bersol01 hamsol01
Cron:
sudo yum upgrade -y
TeamCity
Iteration three
| Continuous Evolution | @IngmarKrusch Seite 24
3rd iteration: Combining two POCs
| Continuous Evolution | @IngmarKrusch Seite 25
config
SVN
svn ci
post
commit
hook
global
YUM
config
viewer
devsol01 tuvsol01 bersol01 hamsol01
Cron:
sudo yum upgrade -y
TeamCity
Map and reduce YADT
| Continuous Evolution | @IngmarKrusch Seite 26
some
config
config
share
build &
release
47.0.1
48.2.1
YADT
rsync
config 1 artefact 1
tomcat / solr
service
UDT
devapp01
start & stop
services
First complete solution
| Continuous Evolution | @IngmarKrusch Seite 27
config
SVN
svn ci
post
commit
hook
global
YUM
config
viewer
devsol01 tuvsol01 bersol01 hamsol01
TeamCity
tomcat / solr
service
UDT
YADT
start
stop
status
integrating with our
datacenter partner
| Continuous Evolution | @IngmarKrusch Seite 28
http://code.google.com/p/yadt
YADT controls the
whole datacenter
| Continuous Evolution | @IngmarKrusch Seite 29
http://code.google.com/p/yadt
Open Sourcing YADT
was a great idea!
| Continuous Evolution | @IngmarKrusch Seite 30
Splitting up legacy
applications is HARD!
| Continuous Evolution | @IngmarKrusch Seite 31
Iteration four
| Continuous Evolution | @IngmarKrusch Seite 32
Iteration four – Package Promotion
The maven release
process is crap!
| Continuous Evolution | @IngmarKrusch Seite 33
TeamCity
global
YUM
Package Promotion Pipeline
| Continuous Evolution | @IngmarKrusch Seite 34
devsol01 tuvsol01
bersol01
hamsol01
global
YUM
TUV
YUM
DEV
YUM
TeamCity
promote promote
Untold stories (so little time :)
Nexus
as YUM Repository
| Continuous Evolution | @IngmarKrusch Seite 35
But it‘s Open Source
code.google.com/p/
nexus-yum-plugin
| Continuous Evolution | @IngmarKrusch Seite 36
the journey continues…
| Continuous Evolution | @IngmarKrusch Seite 37
dedicated vs. shared
infrastructure
| Continuous Evolution | @IngmarKrusch Seite 38
integrate better with
the linux distro
| Continuous Evolution | @IngmarKrusch Seite 39
Finally
changing our culture
| Continuous Evolution | @IngmarKrusch Seite 40
www.immobilienscout24.de
Contact: ImmobilienScout24 Andreasstraße 10 10243 Berlin
Let‘s discuss!!!
Google+: http://bit.ly/ingmar Twitter: @IngmarKrusch URL: www.immobilienscout24.de