Transcript
Page 1: Be Fast or Stay Behind - Building a Continuous Delivery Platform

Be Fast Or Stay Behindwww.immobilienscout24.de

Schlomo Schapiro, Systems Architect & Open Source Evangelist

Ingmar Krusch, Team Lead in Operations

License: http://creativecommons.org/licenses/by-nc-nd/3.0/

Building a Continuous Delivery Platform

Page 2: Be Fast or Stay Behind - Building a Continuous Delivery Platform

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 Telekom

Overview File Mgmt Systems Mgmt Lessons Learned

Page 3: Be Fast or Stay Behind - Building a Continuous Delivery Platform

3 Overview File Mgmt Systems Mgmt Lessons Learned

Close Collaboration

Package Deployment

Page 4: Be Fast or Stay Behind - Building a Continuous Delivery Platform

4

The Big Picture – Continuous Delivery Platform

BusinessDecision

To goLive

All Humans are on the Same Side

BuildConfigDeployTestSystems-Management

Automation

Scale OutData Centers

Overview File Mgmt Systems Mgmt Lessons Learned

Page 5: Be Fast or Stay Behind - Building a Continuous Delivery Platform

5

1st task: Reduce Systemic Complexity

File Management

Systems Management

Overview File Mgmt Systems Mgmt Lessons Learned

Page 6: Be Fast or Stay Behind - Building a Continuous Delivery Platform

6

File Management with RPM & YUM

Overview File Mgmt Systems Mgmt Lessons Learned

Page 7: Be Fast or Stay Behind - Building a Continuous Delivery Platform

7

File Management with RPM & YUM

Overview File Mgmt Systems Mgmt Lessons Learned

Libraries

Applications

Configuration

Operating System

100 %

Page 8: Be Fast or Stay Behind - Building a Continuous Delivery Platform

8

File Management with RPM & YUM

Overview File Mgmt Systems Mgmt Lessons Learned

PROD

DEV

InfrastructureBuild

ApplicationBuild

ConfigurationBuild

QA

YUMRepos

Page 9: Be Fast or Stay Behind - Building a Continuous Delivery Platform

9

File Management with RPM & YUM

Overview File Mgmt Systems Mgmt Lessons Learned

Interface

PROD

DEV

InfrastructureBuild

ApplicationBuild

ConfigurationBuild

QA

YUMRepos

Page 10: Be Fast or Stay Behind - Building a Continuous Delivery Platform

10

PROD

DEV

InfrastructureBuild

ApplicationBuild

QA

YUMRepos

Configuration Build – Pre-built Config Content

Overview File Mgmt Systems Mgmt Lessons Learned

ConfigurationBuild

Page 11: Be Fast or Stay Behind - Building a Continuous Delivery Platform

11

Configuration Build – Pre-built Config Content

Overview File Mgmt Systems Mgmt Lessons Learned

SVN

commitconfig file

buildconfig RPM

RPMswithstatic

content

YUMRepo

Page 12: Be Fast or Stay Behind - Building a Continuous Delivery Platform

12

Configuration Build – Pre-built Config Content

Overview File Mgmt Systems Mgmt Lessons Learned

SVN

RPMswithstatic

content

TemplatingVariables

Overlaying

YUMRepo

buildconfig RPM

commitconfig file

Page 13: Be Fast or Stay Behind - Building a Continuous Delivery Platform

13

Configuration Build – Pre-built Config Content

Overview File Mgmt Systems Mgmt Lessons Learned

SVN

RPMswithstatic

content

TemplatingVariables

Overlaying

we use1 RPM

per host

YUMRepo

commitconfig file

buildconfig RPM

Page 14: Be Fast or Stay Behind - Building a Continuous Delivery Platform

14

SVN

RPMswithstatic

content

TemplatingVariables

Overlaying

we use1 RPM

per host

Sharedresponsability

Ops, Dev, QA ...

Configuration Build – Pre-built Config Content

Overview File Mgmt Systems Mgmt Lessons Learned

YUMRepo

commitconfig file

buildconfig RPM

Page 15: Be Fast or Stay Behind - Building a Continuous Delivery Platform

15

Application Build – Continuous Release Delivery

Overview File Mgmt Systems Mgmt Lessons Learned

PROD

DEV

InfrastructureBuild

QA

YUMRepos

ConfigurationBuild

ApplicationBuild

Page 16: Be Fast or Stay Behind - Building a Continuous Delivery Platform

16

Application Build – Package Promotion Pipeline

YUMRepo

TestedRepo

YUMRepo

ReleasedRepo

YUMRepo

ComittedRepo

DEV Pre-PROD PROD

Overview File Mgmt Systems Mgmt Lessons Learned

Page 17: Be Fast or Stay Behind - Building a Continuous Delivery Platform

17

Application Build – Package Promotion Pipeline

CI YUMRepo

TestedRepo

YUMRepo

ReleasedRepo

YUMRepo

ComittedRepo

Business decisionto Go Live withtested versions

DEV Pre-PROD PROD

Auto-promote release if tests OK

Deploy&

Test

Deploy&

Test

Overview File Mgmt Systems Mgmt Lessons Learned

Deploy&

Test

Page 18: Be Fast or Stay Behind - Building a Continuous Delivery Platform

18

Application Build – Site-wide Releases

Overview File Mgmt Systems Mgmt Lessons Learned

PROD

DEV

InfrastructureBuild

QA

YUMRepos

ConfigurationBuild

ApplicationBuild

Page 19: Be Fast or Stay Behind - Building a Continuous Delivery Platform

19

Team City – CI

POM

Application Build – Site-wide Releases

Overview File Mgmt Systems Mgmt Lessons Learned

NEXUS„released“

Repo

mvn deploy

NEXUS Server

Page 20: Be Fast or Stay Behind - Building a Continuous Delivery Platform

20

Application Build – Site-wide Releases

NEXUS„released“

Repo

yum upgrade

Overview File Mgmt Systems Mgmt Lessons Learned

Team City – CI

POM

mvn deploy

NEXUS Server

NEXUS-YUMPlugin

YUM„released“

Repo

Page 21: Be Fast or Stay Behind - Building a Continuous Delivery Platform

21

File Management through many YUM repositories

Overview File Mgmt Systems Mgmt Lessons Learned

PROD

DEV

InfrastructureBuild

ApplicationBuild

ConfigurationBuild

QAYUMRepo

YUMRepoYUM

RepoYUMRepo

Page 22: Be Fast or Stay Behind - Building a Continuous Delivery Platform

22

Systems Management with YADT

Overview File Mgmt Systems Mgmt Lessons Learned

YADT – an Augmented Deployment Tool

Page 23: Be Fast or Stay Behind - Building a Continuous Delivery Platform

23

YADT – Unified Dependency Tree

Overview File Mgmt Systems Mgmt Lessons Learned

Web Server

HTTPD

Tomcat

App Server

Load Balancer

Page 24: Be Fast or Stay Behind - Building a Continuous Delivery Platform

24

YADT – Unified Dependency Tree

Web Server

HTTPD

Tomcat

App Server

Load Balancer

web-app

httpd

config

tomcat

Overview File Mgmt Systems Mgmt Lessons Learned

Page 25: Be Fast or Stay Behind - Building a Continuous Delivery Platform

25

YADT – Large Scale System Management

Web Server

HTTPD

Tomcatweb-app

httpd

config

tomcat

App Server

Java App

app

config

Overview File Mgmt Systems Mgmt Lessons Learned

Page 26: Be Fast or Stay Behind - Building a Continuous Delivery Platform

26

YADT – Large Scale System Management

LB: www.immobilienscout24.de

Web Server

HTTPD

Tomcatweb-app

httpd

config

tomcat

App Server

Java App

app

config

Web Server

HTTPD

Tomcatweb-app

httpd

config

tomcat

App Server

Java App

app

config

Overview File Mgmt Systems Mgmt Lessons Learned

Page 27: Be Fast or Stay Behind - Building a Continuous Delivery Platform

27

YADT – Large Scale System Management

LB: www.immobilienscout24.de

Web Server

HTTPD

Tomcatweb-app

httpd

config

tomcat

App Server

Java App

app

config

Web Server

HTTPD

Tomcatweb-app

httpd

config

tomcat

App Server

Java App

app

config

1st ch

unk

Overview File Mgmt Systems Mgmt Lessons Learned

Page 28: Be Fast or Stay Behind - Building a Continuous Delivery Platform

28

S: YADT – Large Scale System Management

LB: www.immobilienscout24.de

Web Server

HTTPD

Tomcatweb-app

httpd

config

tomcat

App Server

Java App

app

config

Web Server

HTTPD

Tomcatweb-app

httpd

config

tomcat

App Server

Java App

app

config

Overview File Mgmt Systems Mgmt Lessons Learned

1st ch

unk2nd chunk

Page 29: Be Fast or Stay Behind - Building a Continuous Delivery Platform

29

Systems Management with YADT

Reduce Systemic Complexity

Overview File Mgmt Systems Mgmt Lessons Learned

Page 30: Be Fast or Stay Behind - Building a Continuous Delivery Platform

30

Reduce Systemic Complexity

Decoupled Applications

Overview File Mgmt Systems Mgmt Lessons Learned

Page 31: Be Fast or Stay Behind - Building a Continuous Delivery Platform

31

Reduce Systemic Complexity

Developers Build Infrastructure

Overview File Mgmt Systems Mgmt Lessons Learned

Page 32: Be Fast or Stay Behind - Building a Continuous Delivery Platform

32

This Automation is our Continuous Delivery Platform

BusinessDecision

To goLive

All Humans are on the Same Side Scale Out

Data CentersAUTOMATION

Overview File Mgmt Systems Mgmt Lessons Learned

Page 33: Be Fast or Stay Behind - Building a Continuous Delivery Platform

33

DevOps

We build it together as one team.

We understand it completly.

And it is fully automated.

Overview File Mgmt Systems Mgmt Lessons Learned

Page 34: Be Fast or Stay Behind - Building a Continuous Delivery Platform

34

Open-Source from the start

https://code.google.com/p/yadt

https://code.google.com/p/nexus-yum-plugin

http://sourceforge.net/projects/yadtdownloads

Overview File Mgmt Systems Mgmt Lessons Learned

Page 35: Be Fast or Stay Behind - Building a Continuous Delivery Platform

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/yadtdownloads

Overview File Mgmt Systems Mgmt Lessons Learned

Page 36: Be Fast or Stay Behind - Building a Continuous Delivery Platform

36

Q&A

Overview File Mgmt Systems Mgmt Lessons Learned

Massively Reduce Systemic Complexity

Work As One Team

Page 37: Be Fast or Stay Behind - Building a Continuous Delivery Platform

37

Kontakt:Immobilien Scout GmbHAndreasstraße 1010243 Berlin

Email: [email protected]: [email protected]: www.immobilienscout24.de

Thank you very much!Please contact us for furtherquestions and discussions.


Top Related