64
Von Test nach Live mit Rex

Von Test nach Live mit Rex

Embed Size (px)

Citation preview

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 Doneo Schnello Zuverlässig bzw. Nachvollziehbar

• Bruch der Kompatibilität = Bug

Philosophie

• Getting Things Doneo Schnello Zuverlässig bzw. Nachvollziehbar

• Bruch der Kompatibilität = Bug

• Feature Flags

Juhu ein neues Projekt

Ein neues Projekt

• 2 Wege

Ein neues Projekt

• 2 Wegeo Wir fangen gleich an zu implementieren

http://www.terminus-notfallmedizin.de/blog/

Ein neues Projekt

• 2 Wegeo Wir fangen gleich an zu implementiereno Wir fragen nach den Anforderungen

Ein neues Projekt

• 2 Wegeo Wir fangen gleich an zu implementiereno 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

• Beispielprojekto Webservero Memcacheo 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 Diensteno starteno stoppeno runlevel manipulation

• Arbeiten mit Dateien / Config-Managemento 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/