Entwickeln & Ausliefern:
Git Versionsverwaltung
mit zwei Umgebungen

Schneller Entwicklen

Nie wieder FTP! Das Gehangel durch Verzeichnisse entfällt. Git weiß, was in welchen Dateien geändert wurde.

Leichter Experimentieren

Gefahrlos in der Staging Umgebung Neues ausprobieren, alte Zustände wieder herstellen.

Besser im Team arbeiten

Gemeinsam Code verwalten, Änderungen kommentieren, verfolgen und zusammenführen.

Screencast Tour

  • Webprojekt neu anlegen
  • Arbeit mit grafischem Git Client
  • Git Repository klonen
  • Änderungen in Staging
  • Merge von Master nach Live

Push to deploy

Nach dem Push auf den Git-Server werden die Daten umgehend auf den Webserver synchronisiert.

Repository + WebHosting

Deployment ist eine ganzheitliche Lösung, bei der Repository Hosting und WebHosting vereint sind.

Webinterface & API

Im MISH Control Panel lässt sich alles einrichten. Tools zur Resynchronisation können per Webinterface oder API aufgerufen werden.

Klon des Webprojektes ziehen

Zum Start das neue Webprojekt vom Fortrabbit Git Server in ein lokales Verzeichnis kopieren.

live-Branch auschecken

Das Deployment wird in zwei Git Branches abgebildet. Hier wird gleich der live-Branch abonniert (tracking), auf dem später die Live Website läuft.

Zurückwechseln in die master-Branch

Da die ersten Änderungen in der master-Branch gemacht werden, steigen wir wieder in diese um.

Änderungen durchführen

Exemplarisch wird hier eine Textdatei mit dem Namen 'hallo.txt' und dem Inhalt 'Hallo Welt' erstellt.

Änderungen bekannt machen

Die Änderungen in Git 'stagen'.

Änderungen per Commit einspielen

Gesammelte Änderungen an Git übergeben und mit einer Notiz versehen.

Pushen und damit deployen

Änderungen auf das entfernte Repository auf dem Fortrabbit Git Server einspielen. Im Anschluss werden die neuen Daten automatisch auf den Webserver kopiert.

Überprüfen der Änderungen

Abfrage des Inhalts der Datei über öffentlich erreichbare Adresse des Webservers. Bei einer echten Website würde man einen Browser bemühen.

Wechsel in die live-Branch

Die Änderungen sind bis jetzt nur in der Staging Umgebung zu sehen. Jetzt wollen wir sie auch in Production einspielen, hiefür muss erstmal in die live-Branch gewechselt werden.

Merge von master-Branch in live-Branch

Den master-Branch mit dem live-Branch zusammenführen. So werden alle Änderungen aus der master-Branch in die live-Branch übernommen.

Push der aktualisieren Daten

Die vereinigte, aktualisiere live-Branch publizieren. Damit ist die Production Umgebung auf dem gleichen Stand wie Staging.

Änderungen prüfen

Auch auf der öffentlichen Production Adresse sind jetzt die Änderungen angekommen.

Deployment Beispiel mit Git auf der Shell

# In das lokale Verzeichnis wechseln
$ cd ~/my-webproject

# Lokale Kopie ziehen
$ git clone git@deployment.service.frbit.de:/web123.git .

# Erster Checkout der live-Branch
$ git checkout -b live origin/live
  Switched to branch 'live'

# Zurück zur master-Branch
$ git checkout master
  Switched to branch 'master'

# Erste Änderung
$ echo "Hallo Welt" > www/hallo.txt

# Alle geänderten Dateien in Git einfügen
$ git add -Av
  add 'www/hallo.txt'

# Erstes Commit einspielen
$ git commit -am 'Erstes Commit'
  [master 43616f9] Erstes Commit
   1 files changed, 1 insertions(+), 0 deletions(-)
   create mode 100644 www/hallo.txt

# Pushen in Staging-Umgebung
$ git push
  Counting objects: 6, done.
  Delta compression using up to 4 threads.
  Compressing objects: 100% (2/2), done.
  Writing objects: 100% (4/4), 334 bytes, done.
  Total 4 (delta 0), reused 0 (delta 0)
  remote: Branch 'master' has been deployed into Staging.
  To git@deployment.service.frbit.de:/web123.git
	07b5cfa..bc7a6d7  master -> master

# Prüfen ob Änderung angekommen ist
$ curl http://web123.staging.frbit.de/hallo.txt
  Hallo Welt

# In die live-Branch wechseln
$ git checkout live
  Switched to branch 'live'

# master-Branch in live-Branch einfügen
$ git merge master
  Updating 07b5cfa..bc7a6d7
  Fast-forward
   www/hallo.txt |    1 +
   1 files changed, 1 insertions(+), 0 deletions(-)
   create mode 100644 www/hallo.txt

# Pushen in Production-Umgebung
$ git push
  Total 0 (delta 0), reused 0 (delta 0)
  remote: Branch 'live' has been deployed into Production.
  To git@deployment.service.frbit.de:/web123.git
   07b5cfa..bc7a6d7  live -> live

# Prüfen ob es geklappt hat
$ curl http://web123.test.frbit.de/hallo.txt
  Hallo Welt

# Ende
Skizze des Deployment Workflows mit Git

Production Umgebung

Diese Version der Website sehen die Besucher aus dem Internet.

Staging Umgebung

Diese Version der Website ist für die Entwickler und den Auftraggeber.

live-Branch

Git Entwicklungszweig, welcher auf Production veröffentlicht wird.

master-Branch

Git Entwicklungszweig, welcher auf Staging veröffentlicht wird.