be fast or stay behind - building a continuous delivery platform

Post on 08-May-2015

1.882 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

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

3 Overview File Mgmt Systems Mgmt Lessons Learned

Close Collaboration

Package Deployment

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

5

1st task: Reduce Systemic Complexity

File Management

Systems Management

Overview File Mgmt Systems Mgmt Lessons Learned

6

File Management with RPM & YUM

Overview File Mgmt Systems Mgmt Lessons Learned

7

File Management with RPM & YUM

Overview File Mgmt Systems Mgmt Lessons Learned

Libraries

Applications

Configuration

Operating System

100 %

8

File Management with RPM & YUM

Overview File Mgmt Systems Mgmt Lessons Learned

PROD

DEV

InfrastructureBuild

ApplicationBuild

ConfigurationBuild

QA

YUMRepos

9

File Management with RPM & YUM

Overview File Mgmt Systems Mgmt Lessons Learned

Interface

PROD

DEV

InfrastructureBuild

ApplicationBuild

ConfigurationBuild

QA

YUMRepos

10

PROD

DEV

InfrastructureBuild

ApplicationBuild

QA

YUMRepos

Configuration Build – Pre-built Config Content

Overview File Mgmt Systems Mgmt Lessons Learned

ConfigurationBuild

11

Configuration Build – Pre-built Config Content

Overview File Mgmt Systems Mgmt Lessons Learned

SVN

commitconfig file

buildconfig RPM

RPMswithstatic

content

YUMRepo

12

Configuration Build – Pre-built Config Content

Overview File Mgmt Systems Mgmt Lessons Learned

SVN

RPMswithstatic

content

TemplatingVariables

Overlaying

YUMRepo

buildconfig RPM

commitconfig file

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

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

15

Application Build – Continuous Release Delivery

Overview File Mgmt Systems Mgmt Lessons Learned

PROD

DEV

InfrastructureBuild

QA

YUMRepos

ConfigurationBuild

ApplicationBuild

16

Application Build – Package Promotion Pipeline

YUMRepo

TestedRepo

YUMRepo

ReleasedRepo

YUMRepo

ComittedRepo

DEV Pre-PROD PROD

Overview File Mgmt Systems Mgmt Lessons Learned

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

18

Application Build – Site-wide Releases

Overview File Mgmt Systems Mgmt Lessons Learned

PROD

DEV

InfrastructureBuild

QA

YUMRepos

ConfigurationBuild

ApplicationBuild

19

Team City – CI

POM

Application Build – Site-wide Releases

Overview File Mgmt Systems Mgmt Lessons Learned

NEXUS„released“

Repo

mvn deploy

NEXUS Server

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

21

File Management through many YUM repositories

Overview File Mgmt Systems Mgmt Lessons Learned

PROD

DEV

InfrastructureBuild

ApplicationBuild

ConfigurationBuild

QAYUMRepo

YUMRepoYUM

RepoYUMRepo

22

Systems Management with YADT

Overview File Mgmt Systems Mgmt Lessons Learned

YADT – an Augmented Deployment Tool

23

YADT – Unified Dependency Tree

Overview File Mgmt Systems Mgmt Lessons Learned

Web Server

HTTPD

Tomcat

App Server

Load Balancer

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

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

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

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

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

29

Systems Management with YADT

Reduce Systemic Complexity

Overview File Mgmt Systems Mgmt Lessons Learned

30

Reduce Systemic Complexity

Decoupled Applications

Overview File Mgmt Systems Mgmt Lessons Learned

31

Reduce Systemic Complexity

Developers Build Infrastructure

Overview File Mgmt Systems Mgmt Lessons Learned

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

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

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

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

36

Q&A

Overview File Mgmt Systems Mgmt Lessons Learned

Massively Reduce Systemic Complexity

Work As One Team

37

Kontakt:Immobilien Scout GmbHAndreasstraße 1010243 Berlin

Email: ingmar.krusch@immobilienscout24.deEmail: schlomo.schapiro@immobilienscout24.deURL: www.immobilienscout24.de

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

top related