Continuous evolution - iterating to a continuous delivery platform
-
Upload
ingmar-krusch -
Category
Technology
-
view
1.100 -
download
3
description
Transcript of Continuous evolution - iterating to a continuous delivery platform
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