48
Viele Server – wenig Arbeit Berlin | 07.06.2013 | Schlomo Schapiro | @SchlomoSchapiro Systemarchitekt, Open Source Evangelist License: http://creativecommons.org/licenses/by-nc-nd/3.0/ Betriebsautomation bei ImmobilienScout24

Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Embed Size (px)

DESCRIPTION

Der Vortrag gibt einen Einblick in die Betriebsautomation bei ImmobilienScout24. Warum verfolgen wir eine 100%ige Paketierung aller Inhalte (Config, Software usw.) und welche Vorteile verschafft uns das? Konkrete (Live Demo) Lösungen für typische Pakete: httpd, tomcat, postfix ... Live Demo des Config SVNs und seiner Arbeitsweise Mit welchen Tricks schaffen wir das, alles zu paketieren? Wie hilft uns die Paketierung mit Dev und Ops und vielen Teams effizient zusammen zu arbeiten? Continuous Live Deployment als Weg, um das Risiko von Änderungen zu minimieren und viele parallel laufende Änderungen unter einen Hut zu bekommen. Warum modellieren wir die Abhängigkeiten zwischen Systemen, wie vereinfacht das den Job der Admins? Generell Einblick in unsere agile Arbeitsweise - Wie sieht DevOps wirklich aus? - Geschichten aus dem wahren Leben. - Ups und Downs. Die zentralen Tools sind als Open-Source Projekte frei verfügbar: http://yadt-project.org und https://github.com/yadt https://github.com/ImmobilienScout24/yum-repo-server https://github.com/ImmobilienScout24/lab-manager-light https://github.com/ImmobilienScout24/kickstart-debugger https://github.com/ImmobilienScout24/kiosk-browser https://github.com/sonatype/nexus-yum-plugin Vortragsvideo: http://www.youtube.com/watch?v=UqIY55dc_P8 Konferenzarchiv: https://www.heinlein-support.de/slac/2013/vortrag/viele-server-wenig-arbeit-betriebsautomation-bei-immobilienscout24

Citation preview

Page 1: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Viele Server – wenig Arbeit

Berlin | 07.06.2013 | Schlomo Schapiro | @SchlomoSchapiroSystemarchitekt, Open Source Evangelist

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

Betriebsautomation bei ImmobilienScout24

Page 2: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 3 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

www.ImmobilienScout24.de

>2 billion PI per month

2 data center with ~1400 VM

total of ~600 employees

~30 crossfunctional IT teams

~160 in IT

15 years in business

part of Deutsche Telekom

Page 3: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 4 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Papa,was machst Du eigentlich auf Arbeit?

Page 4: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 5 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Page 5: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 6 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Page 6: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 7 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Page 7: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 8 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Page 8: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 9 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Page 9: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 10 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Lego City

Page 10: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 11 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Orchestrierung & Automation

Page 11: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 12 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Spielen die wirklich nur mit LEGO rum?

Page 12: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 13 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

BusinessDecision

To goLive

All Humans are on the Same Side

BuildConfigDeployTestSystems-Management

Automation

Scale OutData Centers

through packages

Page 13: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 14 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

PROInfrastructureBuild

ApplicationBuild

ConfigurationBuild

QAYUM

Repos

Interface

DEV

github.com/ImmobilienScout24/yum-repo-server

Page 14: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 15 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

“Any relevant file should be either

deployed via a package

or

completely managed by an

application that is thus deployed.”

Page 15: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 16 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

„Every package must be verifyable –

stay away from package scripts.“

“Reducing the config package

reduces the deployment risk.”

Page 16: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 17 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

ConfigSVN

post-commit → YUM repos

Infrastructureas

Code

Page 17: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 18 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

TSTWEB05Location & Environment

Function Group

Instance

Configuration over Convention

Page 18: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 19 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Big Picture – Static Structure

ConfigSVN

YUMRepository

IS24 softwareAutomated RPM

creation

config├── host│ └── tstweb02│├── loc│ └── tst│ ├── VARIABLES│ │ ├── RPM_REQUIRES│ │ ├── RPM_PROVIDES│ │ ├── DB_HOST│ │ └── DB_USER│ └── etc│ └── is24│ ├── web.properties│ └── db.properties├── typ│ └── web│├── loctyp│ └── tstweb│ └── etc│ └── is24│ └── web.properties└── all ├── VARIABLES │ └── SYSLOG_HOST └── etc └── is24 └── system.properties

is24-config-tstweb01-1.0-$rev.rpm:/etc/is24/system.properties/etc/is24/db.properties/etc/is24/web.properties

[root@tstweb01 ~]# yum update

svn ci

db.host=@@@DB_HOST@@@db.user=@@@DB_USER@@@db.port=3306

Post-commit hook createsis24-config-$hostname RPM● svn export● patch VARIABLES● fill in metadata

svn co

loghost=log.domain.com

Page 19: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 20 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Static Structure – Pros and Cons

Variables follow samestructure as config data

Only one tool (SVN) needed

GUI talks only to SVN

Versioning and changetracking for variables

Variables and config fileschange together (atomic)

easy rollback→

Is this simple overlaying structure sufficient?

Simplify the world so that it is good enough!

ConfigSVN

YUMRepository

IS24 softwareAutomated RPM

creation

config├── host│ └── tstweb02│├── loc│ └── tst│ ├── VARIABLES│ │ ├── RPM_REQUIRES│ │ ├── RPM_PROVIDES│ │ ├── DB_HOST│ │ └── DB_USER│ └── etc│ └── is24│ ├── web.properties│ └── db.properties├── typ│ └── web│├── loctyp│ └── tstweb│ └── etc│ └── is24│ └── web.properties└── all ├── VARIABLES │ └── SYSLOG_HOST └── etc └── is24 └── system.properties

is24-config-tstweb01-1.0-$rev.rpm:/etc/is24/system.properties/etc/is24/db.properties/etc/is24/web.properties

[root@tstweb01 ~]# yum update

svn ci

db.host=@@@DB_HOST@@@db.user=@@@DB_USER@@@db.port=3306

Post-commit hook createsis24-config-$hostname RPM● svn export● patch VARIABLES● fill in metadata

svn co

loghost=log.domain.com

yadt-config-rpm-maker

Page 20: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 21 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Page 21: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 22 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Page 22: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 23 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Page 23: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 24 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Page 24: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 25 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Page 25: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 26 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Page 26: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 27 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Page 27: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 28 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Page 28: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 29 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

File Management with RPM & YUM

PROD

DEV

InfrastructureBuild

ApplicationBuild

ConfigurationBuild

QA

YUMRepos

Page 29: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 30 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Example: is24-tomcat Packages

is24-tomcat-welcome = 6.0.35

is24-tomcat-standalone is24-tomcat-behind-httpd

is24-tomcat-base

is24-tomcat = 6.0.35

XOR

Req

Req Req

Req

is24-tomcat-welcome = 7.0.40

is24-tomcat = 7.0.40

Page 30: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 31 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Example: Apache HTTPD

Design Goals:

Use and extend upstream httpd RPM

Configure MPM and service user per application

IS24 standard configuration everywhere

httpd RPM

/etc/httpd/conf/httpd.conf

/etc/sysconfig/httpd

Page 31: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 32 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Example: is24-httpd RPM

if ! echo '# IS24 HTTPD conf framework. Read IS24_README!# This file is managed by %{name}­%{version}.%{release}# Put your stuff in /etc/conf/*/is24*.conf files!ServerRoot "/etc/httpd"Include conf/basic/is24*.confInclude conf/main/is24*.confInclude conf/other/is24*.conf' >/etc/httpd/conf/httpd.conf ; then    logger ­p user.err ­s ­t %name ­­ "ERROR: …"fi

Requires: httpdRequires(Pre): httpd%post

Page 32: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 33 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Example: is24-httpd RPM

if ! echo '# HTTPD options can be configured in# additional /etc/httpd/conf/env/*.sh files# This file is managed by %{name}­%{version}.%{release}# Please add extra options to the OPTIONS Bash Arrayshopt ­s nullglobHTTPD=/usr/sbin/httpd.workerfor f in /etc/httpd/conf/env/*.sh ; do    source $fdoneOPTIONS="${OPTIONS[*]}" # flatten array' >/etc/sysconfig/httpd ; then    logger ­p user.err ­s ­t %name ­­ "ERROR: ..."fi

...

%post (continued)

Page 33: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 34 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Systems Management

yadtshell

Page 34: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 35 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

YADT – Unified Dependency Tree

Web Server

HTTPD

Tomcat

App Server

Load Balancer

Page 35: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 36 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

HTTPD

Tomcat

web-app

httpd

config

tomcat

YADT – Unified Dependency Tree

initscript

initscript

/etc/yadt.services- httpd: is_frontservice: true needs_services: - tomcat- tomcat:

Page 36: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 37 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

YADT – Large Scale System Management

Web Server

HTTPD

Tomcatweb-app

httpd

config

tomcat

App Server

Java App

app

config

Page 37: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 38 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

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

Page 38: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 39 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

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

chun

k

Page 39: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 40 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

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

chun

k

2nd chunk

Page 40: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 41 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

yadtshell Wave Deployment

Page 41: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 42 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Systems Management with YADT

Reduce Systemic Complexity

Keep It Simple

Page 42: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 43 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Continuous Delivery Platform

BusinessDecisionTo GoLive

All Humans are on the Same Side

BuildConfigDeployTestSystems-Management

Automation

Scale OutData Centers

Page 43: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 44 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

DevOps

Page 44: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 45 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Abstraktion

Starke Vereinfachung

Standardbausteine

Lösungen wiederverwenden

Kleine Komponenten zu Großem verbinden

Alles ist machbar

Page 45: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 46 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

www.yadt-project.org

go.schapiro.org/slides

Page 46: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 47 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapirobit.ly/is24techjobs

Page 47: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 48 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Kontakt:Immobilien Scout GmbHAndreasstraße 1010243 Berlin

Fon: +49 30 243 01-1229 Email: [email protected]: www.immobilienscout24.de

Thank you very much!Please contact me for further questions and discussions.

Page 48: Viele Server - Wenig Arbeit: Betriebsautomation bei ImmobilienScout24

Slide 49 | Betriebsautomation bei ImmobilienScout24 | Schlomo Schapiro

Photo URLs:http://skepchick.org/wp-content/uploads/lego-1.jpghttp://smithduck.home.comcast.net/~smithduck/bmw/kwiring/Early%20K75%20K100/K100_Early_Wiring_Diagram.jpeghttp://brickbrowse.com/creator/small-cottage-31009/http://static.desktopnexus.com/owallpaper/15044-1024x768-4097LinuxSkeleton1024768.jpg (John Schriener)http://images.brickbrowse.com/technic/motorized-excavator-8043/technic-motorized-excavator-8043-3.jpghttp://images.brickbrowse.com/technic/container-truck-8052/technic-container-truck-8052-3.jpghttp://www.flickr.com/photos/dhardacre/5754596620/http://images.brickbrowse.com/architecture/brandenburg-gate-21011/architecture-brandenburg-gate-21011-1.jpghttp://www.gtaberlin.de/models/brandenburger_tor_1.jpg

All remaining images are custom-made or from http://openclipart.org