www.immobilienscout24.deBe Fast Or Stay BehindBuilding a Continuous Delivery PlatformSchlomo Schapiro, Systems Architect &...
www.ImmobilienScout24.de     2 billion PI per month     2 data center with ~800 VM     ~30 crossfunctional IT teams     to...
Close Collaboration               Package Deployment3   Overview   File Mgmt   Systems Mgmt   Lessons Learned
The Big Picture – Continuous Delivery Platform                                                    Business                ...
1st task: Reduce Systemic Complexity                        File Management                   Systems Management5    Overv...
File Management with RPM & YUM6    Overview     File Mgmt    Systems Mgmt   Lessons Learned
File Management with RPM & YUM                  Libraries                Applications                Configuration        ...
File Management with RPM & YUM     Configuration         Build                                               DEV          ...
File Management with RPM & YUM     Configuration         Build                                                    DEV     ...
Configuration Build – Pre-built Config Content       Configuration           Build                                        ...
Configuration Build – Pre-built Config Content                                                                    YUM     ...
Configuration Build – Pre-built Config Content                                                                         YUM...
Configuration Build – Pre-built Config Content                                                                         YUM...
Configuration Build – Pre-built Config Content                                                                            ...
Application Build – Continuous Release Delivery       Configuration           Build                                       ...
Application Build – Package Promotion Pipeline                   DEV                  Pre-PROD                  PROD      ...
Application Build – Package Promotion Pipeline                               Deploy                          Deploy       ...
Application Build – Site-wide Releases       Configuration           Build                                               D...
Application Build – Site-wide Releases              mvn deploy                                         NEXUS              ...
Application Build – Site-wide Releases                                                                                    ...
File Management through many YUM repositories       Configuration           Build                                         ...
Systems Management with YADT      YADT – an Augmented Deployment Tool22    Overview     File Mgmt   Systems Mgmt   Lessons...
YADT – Unified Dependency Tree                              Load Balancer                                      HTTPD      ...
YADT – Unified Dependency Tree                              Load Balancer                                      HTTPD      ...
YADT – Large Scale System Management                  HTTPD                config                            httpd        ...
YADT – Large Scale System Management                                           LB: www.immobilienscout24.de               ...
YADT – Large Scale System Management             nk          chu                              LB: www.immobilienscout24.de...
S: YADT – Large Scale System Management                                                                                   ...
Systems Management with YADT                 Reduce Systemic Complexity29    Overview      File Mgmt   Systems Mgmt   Less...
Reduce Systemic Complexity                  Decoupled Applications30    Overview      File Mgmt     Systems Mgmt   Lessons...
Reduce Systemic Complexity                 Developers Build Infrastructure31    Overview       File Mgmt    Systems Mgmt  ...
This Automation is our Continuous Delivery Platform                                                  Business             ...
DevOps             We build it together as one team.                 We understand it completly.                  And it i...
Open-Source from the start                 https://code.google.com/p/yadt     https://code.google.com/p/nexus-yum-plugin  ...
What is the real competitive advantage?                 https://code.google.com/p/yadt     https://code.google.com/p/nexus...
Q&A                 Massively Reduce Systemic Complexity                             Work As One Team36    Overview       ...
Thank you very much!     Please contact us for further     questions and discussions.     Kontakt:     Immobilien Scout Gm...
Upcoming SlideShare
Loading in...5
×

Be Fast or Stay Behind - Building a Continuous Delivery Platform

2,016

Published on

Ten years of continuous growth leave many stretch marks on any website, like increasing maintenance overhead, lengthy and complex internal processes and lots of code and configuration that nobody knows about. A Windows-Linux migration in the past also does not help to achieve a clean platform.

On the other hand, being a market leader does not leave any room for relaxation but requires us to stay ahead. We need to be faster than the competition and make sure that our own size and being part of a larger corporation does not slow us down.

Continuous Delivery is not just a buzz word but the answer to many of our current problems. Today we envision our data center and the various IT departments as building blocks in a Continuous Delivery Platform (CDP) that strives to shorten the time it takes to convert an idea into productive code.

This talk starts from a big picture of a typical web company and drills down into the technical and organizational challenges that stood in the way of creating a CDP. Our developers turning agile and doing everything through SCRUM was only the start of a series of profound changes that touched all IT departments and beyond.

DevOps helped us a lot to explain to our management and colleagues what is going on and what we want. But only a brand-new deployment and configuration management brought the actual break-through to shared responsibility and teams developing operational thinking.

An important learning was that engineers come together through solving common problems as a team. In our case we had to deal with two main concerns: Linux and Java.

Linux being the choice operating environment we started to do things the Linux Way and package all our software, configuration files and even content into RPM packages, thus greatly simplifying the problem of deployment and system management. Since our developers build the RPM packages they also get much more involved in site operations and suddenly the whole DevOps idea actually works out for us.

Java being the choice coding language (with a huge code base :-() and a lot of “Java thinking” lead us to write a bridge between Java and Linux: Our Nexus YUM plugin translates between a Java world that knows only Maven and a Linux world that likes to install packages via YUM. The automated build process in TeamCity creates RPM packages and puts them into the Nexus which serves the same RPM packages as a YUM repository to our servers. This simplifies the handover from development to operations and is a big performance boost for our delivery chain.

These and other technical solutions come together with many organizational changes – e.g. giving developers more access in the data center – to create the foundation for our Continuous Delivery Platform and enable everyone to focus on working the software while relying on a reliable delivery tool chain below.

Another important learning is the way how to ensure the management buy-in into what essentially started

Published in: Technology
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
2,016
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
32
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

Be Fast or Stay Behind - Building a Continuous Delivery Platform

  1. 1. www.immobilienscout24.deBe Fast Or Stay BehindBuilding a Continuous Delivery PlatformSchlomo Schapiro, Systems Architect & Open Source EvangelistIngmar Krusch, Team Lead in Operations License: http://creativecommons.org/licenses/by-nc-nd/3.0/
  2. 2. www.ImmobilienScout24.de 2 billion PI per month 2 data center with ~800 VM ~30 crossfunctional IT teams total of ~500 employees 14 years in business part of Deutsche Telekom2 Overview File Mgmt Systems Mgmt Lessons Learned
  3. 3. Close Collaboration Package Deployment3 Overview File Mgmt Systems Mgmt Lessons Learned
  4. 4. The Big Picture – Continuous Delivery Platform Business Decision To go LiveAll Humans are on Buildthe Same Side Config Scale Out Deploy Data Centers Test Automation Systems- Management4 Overview File Mgmt Systems Mgmt Lessons Learned
  5. 5. 1st task: Reduce Systemic Complexity File Management Systems Management5 Overview File Mgmt Systems Mgmt Lessons Learned
  6. 6. File Management with RPM & YUM6 Overview File Mgmt Systems Mgmt Lessons Learned
  7. 7. File Management with RPM & YUM Libraries Applications Configuration Operating System 100 %7 Overview File Mgmt Systems Mgmt Lessons Learned
  8. 8. File Management with RPM & YUM Configuration Build DEV YUM Application Repos QA Build PROD Infrastructure Build8 Overview File Mgmt Systems Mgmt Lessons Learned
  9. 9. File Management with RPM & YUM Configuration Build DEV YUM Application Repos QA Build PROD Infrastructure Build Interface9 Overview File Mgmt Systems Mgmt Lessons Learned
  10. 10. Configuration Build – Pre-built Config Content Configuration Build DEV YUM Application Repos QA Build PROD Infrastructure Build10 Overview File Mgmt Systems Mgmt Lessons Learned
  11. 11. Configuration Build – Pre-built Config Content YUM SVN Repo commit build config file config RPM RPMs with static content11 Overview File Mgmt Systems Mgmt Lessons Learned
  12. 12. Configuration Build – Pre-built Config Content YUM SVN Repo commit build config file config RPM RPMs Templating with Variables static Overlaying content12 Overview File Mgmt Systems Mgmt Lessons Learned
  13. 13. Configuration Build – Pre-built Config Content YUM SVN Repo commit build config file config RPM RPMs Templating we use with Variables 1 RPM static Overlaying per host content13 Overview File Mgmt Systems Mgmt Lessons Learned
  14. 14. Configuration Build – Pre-built Config Content YUM SVN Repo commit build config file config RPM RPMs Shared Templating we use with responsability Variables 1 RPM static Ops, Dev, QA ... Overlaying per host content14 Overview File Mgmt Systems Mgmt Lessons Learned
  15. 15. Application Build – Continuous Release Delivery Configuration Build DEV YUM Application Repos QA Build PROD Infrastructure Build15 Overview File Mgmt Systems Mgmt Lessons Learned
  16. 16. Application Build – Package Promotion Pipeline DEV Pre-PROD PROD YUM YUM YUM Repo Repo Repo Comitted Tested Released Repo Repo Repo16 Overview File Mgmt Systems Mgmt Lessons Learned
  17. 17. Application Build – Package Promotion Pipeline Deploy Deploy Deploy & & & Test Test Test DEV Pre-PROD PROD CI YUM YUM YUM Repo Auto- Repo Repo promote release if Business decision tests OK to Go Live with tested versions Comitted Tested Released Repo Repo Repo17 Overview File Mgmt Systems Mgmt Lessons Learned
  18. 18. Application Build – Site-wide Releases Configuration Build DEV YUM Application Repos QA Build PROD Infrastructure Build18 Overview File Mgmt Systems Mgmt Lessons Learned
  19. 19. Application Build – Site-wide Releases mvn deploy NEXUS „released“ Repo POM Team City – CI NEXUS Server19 Overview File Mgmt Systems Mgmt Lessons Learned
  20. 20. Application Build – Site-wide Releases yum upgrade mvn deploy YUM NEXUS „released“ „released“ Repo Repo NEXUS-YUM POM Plugin Team City – CI NEXUS Server20 Overview File Mgmt Systems Mgmt Lessons Learned
  21. 21. File Management through many YUM repositories Configuration Build DEV YUM YUMRepo YUM YUMRepo Application Repo Repo QA Build PROD Infrastructure Build21 Overview File Mgmt Systems Mgmt Lessons Learned
  22. 22. Systems Management with YADT YADT – an Augmented Deployment Tool22 Overview File Mgmt Systems Mgmt Lessons Learned
  23. 23. YADT – Unified Dependency Tree Load Balancer HTTPD Tomcat Web Server App Server23 Overview File Mgmt Systems Mgmt Lessons Learned
  24. 24. YADT – Unified Dependency Tree Load Balancer HTTPD config httpd web- Tomcat app tomcat Web Server App Server24 Overview File Mgmt Systems Mgmt Lessons Learned
  25. 25. YADT – Large Scale System Management HTTPD config httpd web- Tomcat app tomcat Web Server Java App config app App Server25 Overview File Mgmt Systems Mgmt Lessons Learned
  26. 26. YADT – Large Scale System Management LB: www.immobilienscout24.de HTTPD config HTTPD config httpd httpd web- web- Tomcat app Tomcat app tomcat tomcat Web Server Web Server Java App config Java App config app app App Server App Server26 Overview File Mgmt Systems Mgmt Lessons Learned
  27. 27. YADT – Large Scale System Management nk chu LB: www.immobilienscout24.de 1st HTTPD config HTTPD config httpd httpd web- web- Tomcat app Tomcat app tomcat tomcat Web Server Web Server Java App config Java App config app app App Server App Server27 Overview File Mgmt Systems Mgmt Lessons Learned
  28. 28. S: YADT – Large Scale System Management 2n nk d ch chu LB: www.immobilienscout24.de u nk 1st HTTPD config HTTPD config httpd httpd web- web- Tomcat app Tomcat app tomcat tomcat Web Server Web Server Java App config Java App config app app App Server App Server28 Overview File Mgmt Systems Mgmt Lessons Learned
  29. 29. Systems Management with YADT Reduce Systemic Complexity29 Overview File Mgmt Systems Mgmt Lessons Learned
  30. 30. Reduce Systemic Complexity Decoupled Applications30 Overview File Mgmt Systems Mgmt Lessons Learned
  31. 31. Reduce Systemic Complexity Developers Build Infrastructure31 Overview File Mgmt Systems Mgmt Lessons Learned
  32. 32. This Automation is our Continuous Delivery Platform Business Decision To go LiveAll Humans are onthe Same Side AUTOMATION Scale Out Data Centers32 Overview File Mgmt Systems Mgmt Lessons Learned
  33. 33. DevOps We build it together as one team. We understand it completly. And it is fully automated.33 Overview File Mgmt Systems Mgmt Lessons Learned
  34. 34. Open-Source from the start https://code.google.com/p/yadt https://code.google.com/p/nexus-yum-plugin http://sourceforge.net/projects/yadtdownloads34 Overview File Mgmt Systems Mgmt Lessons Learned
  35. 35. What is the real competitive advantage? https://code.google.com/p/yadt https://code.google.com/p/nexus-yum-plugin http://sourceforge.net/projects/yadtdownloads35 Overview File Mgmt Systems Mgmt Lessons Learned
  36. 36. Q&A Massively Reduce Systemic Complexity Work As One Team36 Overview File Mgmt Systems Mgmt Lessons Learned
  37. 37. Thank you very much! Please contact us for further questions and discussions. Kontakt: Immobilien Scout GmbH Email: ingmar.krusch@immobilienscout24.de Andreasstraße 10 Email: schlomo.schapiro@immobilienscout24.de 10243 Berlin URL: www.immobilienscout24.de37
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×