SlideShare ist ein Scribd-Unternehmen logo
1 von 64
Downloaden Sie, um offline zu lesen
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?

Unit Tests für Totalverweigerer
Unit Tests für TotalverweigererUnit Tests für Totalverweigerer
Unit Tests für Totalverweigerer
Peter Hauke
 

Was ist angesagt? (20)

Sheriffing @ Mozilla - OpenSourceTreffen Munich Presentation
Sheriffing @ Mozilla - OpenSourceTreffen Munich PresentationSheriffing @ Mozilla - OpenSourceTreffen Munich Presentation
Sheriffing @ Mozilla - OpenSourceTreffen Munich Presentation
 
Arquillian
ArquillianArquillian
Arquillian
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
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
 
Wordpress im docker
Wordpress im dockerWordpress im docker
Wordpress im docker
 
Robustes Testen mit Selenium
Robustes Testen mit SeleniumRobustes Testen mit Selenium
Robustes Testen mit Selenium
 
Build Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessBuild Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build Prozess
 
OSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael ProkopOSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael Prokop
 
Raspberry PI 4 Freifunk Offloader
Raspberry PI 4 Freifunk OffloaderRaspberry PI 4 Freifunk Offloader
Raspberry PI 4 Freifunk Offloader
 
Technische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte EntwicklungsperformanceTechnische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte Entwicklungsperformance
 
Unit Tests für Totalverweigerer
Unit Tests für TotalverweigererUnit Tests für Totalverweigerer
Unit Tests für Totalverweigerer
 
Skalieren von WordPress & WooCommerce
Skalieren von WordPress & WooCommerceSkalieren von WordPress & WooCommerce
Skalieren von WordPress & WooCommerce
 
Composer und TYPO3
Composer und TYPO3Composer und TYPO3
Composer und TYPO3
 
ColdFusion gibt's das noch?
ColdFusion gibt's das noch?ColdFusion gibt's das noch?
ColdFusion gibt's das noch?
 
Java Servlets und AJAX
Java Servlets und AJAX Java Servlets und AJAX
Java Servlets und AJAX
 
Überblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle VersionsmanagementsystemeÜberblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle Versionsmanagementsysteme
 
WebDevOps Samson deployment
WebDevOps Samson deploymentWebDevOps Samson deployment
WebDevOps Samson deployment
 
node.js Einführung
node.js Einführungnode.js Einführung
node.js Einführung
 
Ant im Detail
Ant im DetailAnt im Detail
Ant im Detail
 
Zentrale Dokumentengenerierung mit dem Open XML SDK
Zentrale Dokumentengenerierung mit dem Open XML SDKZentrale Dokumentengenerierung mit dem Open XML SDK
Zentrale Dokumentengenerierung mit dem Open XML SDK
 

Ähnlich wie Von Test nach live mit Rex

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
Virttoo 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 HH
Florian Holzhauer
 
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
Oliver Zeigermann
 

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

Ant Maven
Ant MavenAnt Maven
Ant Maven
 
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
 
Foreman: Provisionierungswege (Webinar vom 31. März 2016)
Foreman: Provisionierungswege (Webinar vom 31. März 2016)Foreman: Provisionierungswege (Webinar vom 31. März 2016)
Foreman: Provisionierungswege (Webinar vom 31. März 2016)
 
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
 
"git.net" gibt's nicht?
"git.net" gibt's nicht?"git.net" gibt's nicht?
"git.net" gibt's nicht?
 
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
 

Mehr von inovex GmbH

Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
inovex GmbH
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
inovex GmbH
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreihen
inovex GmbH
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
inovex GmbH
 

Mehr von inovex GmbH (20)

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegen
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AI
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolution
 
WWDC 2019 Recap
WWDC 2019 RecapWWDC 2019 Recap
WWDC 2019 Recap
 
Network Policies
Network PoliciesNetwork Policies
Network Policies
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungen
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeten
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetes
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 
Azure IoT Edge
Azure IoT EdgeAzure IoT Edge
Azure IoT Edge
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreihen
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenten
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?
 
Dev + Ops = Go
Dev + Ops = GoDev + Ops = Go
Dev + Ops = Go
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Project
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretability
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madness
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
 

Von Test nach live mit Rex