SlideShare ist ein Scribd-Unternehmen logo
1 von 64
Von Test nach Live mit Rex
Wer bin ich?
•   Jan Gehring
•   Angestellt bei inovex als Systems Architect
•   Design, Aufbau & Betrieb von
    Serverlandschaften
•   Web- und Mailcluster
•   Perl seit 1998
Wer bin ich?
•   Jan Gehring
•   Angestellt bei inovex als Systems Architect
•   Design, Aufbau & Betrieb von
    Serverlandschaften
•   Web- und Mailcluster
•   Perl seit 1998

•   https://github.com/krimdomu
•   @jfried83
Also bei mir funktionierts...
Fail early - Fail hard
Rex - Was ist das?
•   der Name steht für "Remote Execution"

•   Automatisierung
•   Serverorchestrierung
•   Konfigurationsmanagement
•   Deployments
Rex - Etwas Geschichte
•   wird entwickelt seit 2010
•   wurde entwickelt für Softwaredeployments
•   wird seitdem kontinuierlich weiterentwickelt
Philosophie
•   Getting Things Done
    o   Schnell
    o   Zuverlässig bzw. Nachvollziehbar
•   Bruch der Kompatibilität = Bug
Philosophie
•   Getting Things Done
    o   Schnell
    o   Zuverlässig bzw. Nachvollziehbar
•   Bruch der Kompatibilität = Bug
•   Feature Flags
Juhu ein neues Projekt
Ein neues Projekt
•   2 Wege
Ein neues Projekt
•   2 Wege
    o   Wir fangen gleich an zu implementieren
http://www.terminus-notfallmedizin.de/blog/
Ein neues Projekt
•   2 Wege
    o   Wir fangen gleich an zu implementieren
    o   Wir fragen nach den Anforderungen
Ein neues Projekt
•   2 Wege
    o   Wir fangen gleich an zu implementieren
    o   Wir fragen nach den Anforderungen
         Software Architektur
           Gibt es Vorgaben bzgl. Perl Versionen oder
            Modulversionen
           Unter welchem OS soll es laufen?
           Clusterbetrieb? Hochverfügbarkeit?
           und vieles mehr...
Die Entwicklungsumgebung
Die Entwicklungsumgebung


•   im Normalfall virtuell
•   so nah wie möglich an Produktion
•   Rex/Boxes um schnell VMs zu erstellen
•   Rex zum provisionieren und deployen
Basics - der Aufbau
•   Make = Makefile
•   Rex = Rexfile

•   Taskbasiert

•   SSH
•   Keine Vorgabe der Authentifizierung

•   Protokollunabhängig
•   Es gibt auch einen HTTP/s Modus
Der Start
System vorbereiten
•   Beispielprojekt
    o   Webserver
    o   Memcache
    o   Datenbank
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Die Entwicklungsumgebung
bash# rex box
modules.rexify.org
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Die Entwicklungsumgebung
Es gibt mehr...
•   Environments
•   Verwaltung von Diensten
    o   starten
    o   stoppen
    o   runlevel manipulation
•   Arbeiten mit Dateien / Config-Management
    o   Templates
•   Benutzerverwaltung
•   Filesystemoperationen
•   Partitionierung von Festplatten
•   ...
•   http://rexify.org/api
Deployments
Deployments
•   mittels Git
•   mittels Paketmanager
•   mittels Symlinks
Deployments
•   mittels Git
•   mittels Paketmanager
•   mittels Symlinks
•   Rex::Apache::Deploy
Deployment der Anwendung
Deployment der Anwendung
Deployment der Anwendung
Deployment der Anwendung
Deployment der Anwendung
Deployment der Anwendung
Deployment der Anwendung




   bash# rex deploy --commit=abcd1234
Deployment der Anwendung
Deployment der Anwendung
Deployment der Anwendung
Deployment der Anwendung
Deployment der Anwendung
Deployment der Anwendung
Deployment der Anwendung
Environments
Environments




bash# rex -E live deploy --commit=abcd1234
Vielen Dank fürs Zuhören.

● http://rexify.org/
● http://modules.rexify.org/

● http://box.rexify.org/

Weitere ähnliche Inhalte

Was ist angesagt?

Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantDeployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantChristoph Möller
 
TechTalkThursday 26.11.2015: Manage the minions - Docker Container mit Kubern...
TechTalkThursday 26.11.2015: Manage the minions - Docker Container mit Kubern...TechTalkThursday 26.11.2015: Manage the minions - Docker Container mit Kubern...
TechTalkThursday 26.11.2015: Manage the minions - Docker Container mit Kubern...nine
 
Composer und TYPO3
Composer und TYPO3Composer und TYPO3
Composer und TYPO3Peter Kraume
 
TechTalkThursday: Zentrales Metriken-System - ist der Flügelschlag des Schmet...
TechTalkThursday: Zentrales Metriken-System - ist der Flügelschlag des Schmet...TechTalkThursday: Zentrales Metriken-System - ist der Flügelschlag des Schmet...
TechTalkThursday: Zentrales Metriken-System - ist der Flügelschlag des Schmet...Benjamin Kuster
 
Überblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle VersionsmanagementsystemeÜberblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle VersionsmanagementsystemeAndreas Schreiber
 
Continuous Deployment mit Rex und Jenkins
Continuous Deployment mit Rex und JenkinsContinuous Deployment mit Rex und Jenkins
Continuous Deployment mit Rex und Jenkinsinovex GmbH
 
Ceph Introduction @GPN15
Ceph Introduction @GPN15Ceph Introduction @GPN15
Ceph Introduction @GPN15m1no
 
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenContinuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenNicholas Dille
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerNicholas Dille
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanB1 Systems GmbH
 
Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15m1no
 
Perl Renaissance Reloaded
Perl Renaissance ReloadedPerl Renaissance Reloaded
Perl Renaissance ReloadedGregor Goldbach
 
Unser Weg zum Frankenstack
Unser Weg zum FrankenstackUnser Weg zum Frankenstack
Unser Weg zum FrankenstackSascha Vogt
 
Open Patterns for Day 2 Ops [Gluecon 2017]
Open Patterns for Day 2 Ops [Gluecon 2017]Open Patterns for Day 2 Ops [Gluecon 2017]
Open Patterns for Day 2 Ops [Gluecon 2017]rhirschfeld
 
"git.net" gibt's nicht?
"git.net" gibt's nicht?"git.net" gibt's nicht?
"git.net" gibt's nicht?inovex GmbH
 

Was ist angesagt? (20)

Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantDeployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
 
TechTalkThursday 26.11.2015: Manage the minions - Docker Container mit Kubern...
TechTalkThursday 26.11.2015: Manage the minions - Docker Container mit Kubern...TechTalkThursday 26.11.2015: Manage the minions - Docker Container mit Kubern...
TechTalkThursday 26.11.2015: Manage the minions - Docker Container mit Kubern...
 
Composer und TYPO3
Composer und TYPO3Composer und TYPO3
Composer und TYPO3
 
TechTalkThursday: Zentrales Metriken-System - ist der Flügelschlag des Schmet...
TechTalkThursday: Zentrales Metriken-System - ist der Flügelschlag des Schmet...TechTalkThursday: Zentrales Metriken-System - ist der Flügelschlag des Schmet...
TechTalkThursday: Zentrales Metriken-System - ist der Flügelschlag des Schmet...
 
Überblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle VersionsmanagementsystemeÜberblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle Versionsmanagementsysteme
 
Nginx
NginxNginx
Nginx
 
Continuous Deployment mit Rex und Jenkins
Continuous Deployment mit Rex und JenkinsContinuous Deployment mit Rex und Jenkins
Continuous Deployment mit Rex und Jenkins
 
Ceph Introduction @GPN15
Ceph Introduction @GPN15Ceph Introduction @GPN15
Ceph Introduction @GPN15
 
Infra coders meetup
Infra coders meetupInfra coders meetup
Infra coders meetup
 
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenContinuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit Docker
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
 
PHP5 und Oracle
PHP5 und OraclePHP5 und Oracle
PHP5 und Oracle
 
Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15
 
GIT / SVN
GIT / SVNGIT / SVN
GIT / SVN
 
Wordpress im docker
Wordpress im dockerWordpress im docker
Wordpress im docker
 
Perl Renaissance Reloaded
Perl Renaissance ReloadedPerl Renaissance Reloaded
Perl Renaissance Reloaded
 
Unser Weg zum Frankenstack
Unser Weg zum FrankenstackUnser Weg zum Frankenstack
Unser Weg zum Frankenstack
 
Open Patterns for Day 2 Ops [Gluecon 2017]
Open Patterns for Day 2 Ops [Gluecon 2017]Open Patterns for Day 2 Ops [Gluecon 2017]
Open Patterns for Day 2 Ops [Gluecon 2017]
 
"git.net" gibt's nicht?
"git.net" gibt's nicht?"git.net" gibt's nicht?
"git.net" gibt's nicht?
 

Andere mochten auch

Linuxday.at - Lightning Talk
Linuxday.at - Lightning TalkLinuxday.at - Lightning Talk
Linuxday.at - Lightning TalkJan Gehring
 
Rex - Lightning Talk yapc.eu 2013
Rex - Lightning Talk yapc.eu 2013Rex - Lightning Talk yapc.eu 2013
Rex - Lightning Talk yapc.eu 2013Jan Gehring
 
From Test to Live with Rex
From Test to Live with RexFrom Test to Live with Rex
From Test to Live with RexJan Gehring
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting PersonalKirsty Hulse
 

Andere mochten auch (6)

Linuxday.at - Lightning Talk
Linuxday.at - Lightning TalkLinuxday.at - Lightning Talk
Linuxday.at - Lightning Talk
 
Rex - Lightning Talk yapc.eu 2013
Rex - Lightning Talk yapc.eu 2013Rex - Lightning Talk yapc.eu 2013
Rex - Lightning Talk yapc.eu 2013
 
From Test to Live with Rex
From Test to Live with RexFrom Test to Live with Rex
From Test to Live with Rex
 
Git+jenkins+rex presentation
Git+jenkins+rex presentationGit+jenkins+rex presentation
Git+jenkins+rex presentation
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
 
Clean code
Clean codeClean code
Clean code
 

Ähnlich wie Von Test nach Live mit Rex

Proxtalks 2016 - Migration zu Proxmox VE
Proxtalks 2016 - Migration zu Proxmox VEProxtalks 2016 - Migration zu Proxmox VE
Proxtalks 2016 - Migration zu Proxmox VEMarco Gabriel
 
DevOps: Automatisierte Deployments mit TFS & Octopus Deploy
DevOps: Automatisierte Deployments mit TFS & Octopus DeployDevOps: Automatisierte Deployments mit TFS & Octopus Deploy
DevOps: Automatisierte Deployments mit TFS & Octopus DeployMark Lechtermann
 
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...Marc Müller
 
Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro sessionVirttoo org
 
Entwicklung mit Chef und Vagrant - PHPUG HH
Entwicklung mit Chef und Vagrant - PHPUG HHEntwicklung mit Chef und Vagrant - PHPUG HH
Entwicklung mit Chef und Vagrant - PHPUG HHFlorian Holzhauer
 
PHP Summit 2013 - Make or Buy?
PHP Summit 2013 - Make or Buy?PHP Summit 2013 - Make or Buy?
PHP Summit 2013 - Make or Buy?Sebastian Heuer
 
Introduction to Apache Maven 3 (German)
Introduction to Apache Maven 3 (German)Introduction to Apache Maven 3 (German)
Introduction to Apache Maven 3 (German)Chris Michael Klinger
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013Oliver Zeigermann
 
Bernhard Wick - appserver.io - code.talks 2015
 Bernhard Wick - appserver.io - code.talks 2015 Bernhard Wick - appserver.io - code.talks 2015
Bernhard Wick - appserver.io - code.talks 2015AboutYouGmbH
 
DevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampDevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampWerner Keil
 
2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und TestsDaniel Fisher
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsHussein Morsy
 
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)NETWAYS
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationGWAVA
 
ColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveBokowsky + Laymann GmbH
 
PHP Deployment mit Ansible
PHP Deployment mit AnsiblePHP Deployment mit Ansible
PHP Deployment mit AnsibleMichael Döhler
 
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel OnkopediaBack to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel OnkopediaAndreas Jung
 

Ähnlich wie Von Test nach Live mit Rex (20)

Ant Maven
Ant MavenAnt Maven
Ant Maven
 
Ant im Detail
Ant im DetailAnt im Detail
Ant im Detail
 
Proxtalks 2016 - Migration zu Proxmox VE
Proxtalks 2016 - Migration zu Proxmox VEProxtalks 2016 - Migration zu Proxmox VE
Proxtalks 2016 - Migration zu Proxmox VE
 
DevOps: Automatisierte Deployments mit TFS & Octopus Deploy
DevOps: Automatisierte Deployments mit TFS & Octopus DeployDevOps: Automatisierte Deployments mit TFS & Octopus Deploy
DevOps: Automatisierte Deployments mit TFS & Octopus Deploy
 
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
BASTA Spring 2016: Test- und Releaseumgebungen der nächsten Generation mit TF...
 
Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro session
 
Entwicklung mit Chef und Vagrant - PHPUG HH
Entwicklung mit Chef und Vagrant - PHPUG HHEntwicklung mit Chef und Vagrant - PHPUG HH
Entwicklung mit Chef und Vagrant - PHPUG HH
 
PHP Summit 2013 - Make or Buy?
PHP Summit 2013 - Make or Buy?PHP Summit 2013 - Make or Buy?
PHP Summit 2013 - Make or Buy?
 
Introduction to Apache Maven 3 (German)
Introduction to Apache Maven 3 (German)Introduction to Apache Maven 3 (German)
Introduction to Apache Maven 3 (German)
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013
 
Bernhard Wick - appserver.io - code.talks 2015
 Bernhard Wick - appserver.io - code.talks 2015 Bernhard Wick - appserver.io - code.talks 2015
Bernhard Wick - appserver.io - code.talks 2015
 
DevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampDevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCamp
 
2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit Rails
 
ColdFusion gibt's das noch?
ColdFusion gibt's das noch?ColdFusion gibt's das noch?
ColdFusion gibt's das noch?
 
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
Foreman: Docker Integration (Webinar vom 05. Oktober_2016)
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
 
ColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep Dive
 
PHP Deployment mit Ansible
PHP Deployment mit AnsiblePHP Deployment mit Ansible
PHP Deployment mit Ansible
 
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel OnkopediaBack to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
 

Von Test nach Live mit Rex