Karl Heinz: Testumgebung Webprojekt mit Hilfe von GitHub

Hallo,

angenommen man führt regelmäßig Änderungen an einem Web-Projekt durch. Man möchte vermeiden das sich eventuelle Fehler in den Änderungen schädlich auf das Live-System auswirken, aus diesem Grund macht man die Änderungen zunächst auf einer Test-Umgebung. Erst wenn die Änderungen ausgiebig auf der Test-Umgebung getestet wurden schiebt man die Änderungen ins Live-System.

Mich würde nun interessieren wie man solch eine Testumgebung bezogen auf Webprojekte am besten aufbaut? Ich habe mir mal sagen lassen, dass man Git bzw. GitHub hier sehr sinnvoll nutzen kann.

Leider verstehe ich den Gesamtzusammenhang noch nicht so richtig. Könnt ihr mir diesen erklären, besonders in wie fern es hier sinnvoll ist GitHub einzusetzen?

Was ist z.B. wenn eine Änderung hier im selfhtml Portal gemacht wird. Läuft das über GitHub oder wie sieht hier bei Euch die Testumgebung aus? Änderungen macht Ihr sicherlich nicht am Live-System.

Viele Grüße

--
"Die Deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."
  1. Hallo

    angenommen man führt regelmäßig Änderungen an einem Web-Projekt durch. Man möchte vermeiden das sich eventuelle Fehler in den Änderungen schädlich auf das Live-System auswirken, aus diesem Grund macht man die Änderungen zunächst auf einer Test-Umgebung. Erst wenn die Änderungen ausgiebig auf der Test-Umgebung getestet wurden schiebt man die Änderungen ins Live-System.

    Mich würde nun interessieren wie man solch eine Testumgebung bezogen auf Webprojekte am besten aufbaut? Ich habe mir mal sagen lassen, dass man Git bzw. GitHub hier sehr sinnvoll nutzen kann.

    Von hinten nach vorne. Github hat damit erst einmal nichts zu tun. Es ist ein externer Speicherort, ein Spiegel für lokale Git-Repositories. Ein Git-Repository wird, wie gesagt, lokal auf dem Rechner gespeichert. Es ist ein Versionskontrollsystem, in dem Änderungen an einem Projekt Arbeitsschritt für Arbeitsschritt dokumentiert werden. Wenn man also Änderungen an einer Website durchführt und getestet hat, wird diese Änderung mit einem Commit dem Repository hinzugefügt. Wenn man will, kann man das Repo öffentlich (oder mit einem entsprechenden Account) nichtöffentlich auf Github oder einem beliebigen anderen Repository-Speicherdienst spiegeln.

    Was die Testumgebung betrifft, besteht die zumindest aus dem/den Browser(n) (wenn es nur um HTML und CSS gehen sollte) oder, wenn die Browser-Server-Kommunikation getestet werden soll, um einen lokal installierten Webserver mit allem auch auf dem Live-System vorhandenen Pipapo (serverseitige Programmiersprachen, Datenbank, etc.), in möglichst identischer Konfiguration.

    Tschö, Auge

    --
    Eine Kerze stand [auf dem Abort] bereit, und der Almanach des vergangenen Jahres hing an einer Schnur. Die Herausgeber kannten ihre Leser und druckten den Almanach auf weiches, dünnes Papier.
    Kleine freie Männer von Terry Pratchett
  2. Tach!

    Mich würde nun interessieren wie man solch eine Testumgebung bezogen auf Webprojekte am besten aufbaut?

    Möglichst gleich zur Produktivumgebung, damit man realistische Bedingungen hat. Wenn Fehler systemspezifisch sind, und in der Testumgebung wegen eines ganz anderen Systems nie auftreten, dann ist das keine gute Voraussetzung.

    Ich habe mir mal sagen lassen, dass man Git bzw. GitHub hier sehr sinnvoll nutzen kann.

    Git ist ein Programm zur Versionsverwaltung. Das hat nichts mit dem Aufsetzen oder dem Betrieb von Test- oder Entwicklungsumgebungen zu tun, sondern man kann damit Bearbeitungsstände verwalten, Änderungen zwischen den Versionen sehen und auch ältere Versionen wiederherstellen.

    GitHub ist ein Hoster für Projekte, deren Code mit Git verwaltet wird, vorwiegend Open-Source-Projekte. Gegen Bezahlung kann man da auch private, nicht öffentlich sichtbare Projekte hosten. Aber ähnliche Systeme kann man auch in privaten Umgebungen aufsetzen. Ein Linux-Server reicht dafür. (Empfehlung: Gogs)

    Was ist z.B. wenn eine Änderung hier im selfhtml Portal gemacht wird. Läuft das über GitHub oder wie sieht hier bei Euch die Testumgebung aus? Änderungen macht Ihr sicherlich nicht am Live-System.

    Die Software zum Forum wird mit Git verwaltet. Dazu gibt es auch ein Github-Projekt. Aber der Rest wird in nicht öffentlichen Git-Repositorys gepflegt. Getestet wird in VMs, die weitgehend dem Livesystem entspechen.

    dedlfix.

  3. @@Auge und @@dedlfix ,

    danke für Eure Hilfe.

    Ist folgendes sinnvoll bzw. macht man das so?

    • Live-System läuft unter example.com (Shopware Online-Shop)
    • Test-Umgebung läuft unter testumgebung.example.com (identischer Shopware Online-Shop nicht lokal sondern im Netz unter einer Subdomain, lokal würde das doch keinen Sinn machen oder? Unter einer Subdomain ist die Testumgebung doch viel realistischer)
    • Für die Testumgebung testumgebung.example.com erstelle ich mir ein Git-Repository, diese wird ebenfalls im Netz (auf dem Webserver beim Hoster) gespeichert. Ich sehe keinen Grund die Git-Repository lokal zu speichern.

    Falls es sinnvoll ist bzw. falls man das so macht:

    Aus welchem Grund sollte ich das Git-Repository, das beim meinem Webhoster gespeichert ist, zusätzlich noch nichtöffentlich auf Github spiegeln. Das macht doch eigentlich keinen Sinn oder?

    Was kostet ein nichtöffentlich Speicherplatz bei Github bzw. ist nur der nichtöffentlich Speicherplatz bei Github kostenpflichtig?

    Viele Grüße

    --
    "Die Deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."
    1. hallo

      @@Auge und @@dedlfix ,

      danke für Eure Hilfe.

      Ist folgendes sinnvoll bzw. macht man das so?

      • Live-System läuft unter example.com (Shopware Online-Shop)
      • Test-Umgebung läuft unter testumgebung.example.com (identischer Shopware Online-Shop nicht lokal sondern im Netz unter einer Subdomain, lokal würde das doch keinen Sinn machen oder? Unter einer Subdomain ist die Testumgebung doch viel realistischer)
      • Für die Testumgebung testumgebung.example.com erstelle ich mir ein Git-Repository, diese wird ebenfalls im Netz (auf dem Webserver beim Hoster) gespeichert. Ich sehe keinen Grund die Git-Repository lokal zu speichern.

      Falls es sinnvoll ist bzw. falls man das so macht:

      Aus welchem Grund sollte ich das Git-Repository, das beim meinem Webhoster gespeichert ist, zusätzlich noch nichtöffentlich auf Github spiegeln. Das macht doch eigentlich keinen Sinn oder?

      Was kostet ein nichtöffentlich Speicherplatz bei Github bzw. ist nur der nichtöffentlich Speicherplatz bei Github kostenpflichtig?

      Vergiss git! Git leistet nichts zu deinem Problem.

      1. Tach!

        Vergiss git! Git leistet nichts zu deinem Problem.

        Das sehe ich anders. Git ist zwar nicht das alleinige Tool, für die genannte Aufgabenstellung. Aber es kann ein Teil der Lösung sein. Ein zentrales Repository kann zum Beispiel sehr gut nicht nur zum Speichern von Versionsständen sondern auch als Relay dienen. Man erarbeitet lokal in der Testumgebung ein lauffähiges System, speichert den Stand im Repository und holt sich dann auf der Produktivmaschine diesen Stand ins dortige Arbeitsverzeichnis.

        dedlfix.

    2. Tach!

      • Live-System läuft unter example.com (Shopware Online-Shop)
      • Test-Umgebung läuft unter testumgebung.example.com (identischer Shopware Online-Shop nicht lokal sondern im Netz unter einer Subdomain, lokal würde das doch keinen Sinn machen oder? Unter einer Subdomain ist die Testumgebung doch viel realistischer)

      Warum? Die Internettechniken laufen auch lokal. Es gibt keinen wesentlichen Unterschied zwischen einer lokalen und einer öffentlichen Installation. Außer dass man die lokale Installation nicht noch zusätzlich gegen unerwünschte Zugriffe absichern muss.

      • Für die Testumgebung testumgebung.example.com erstelle ich mir ein Git-Repository, diese wird ebenfalls im Netz (auf dem Webserver beim Hoster) gespeichert. Ich sehe keinen Grund die Git-Repository lokal zu speichern.

      Schau dir die Arbeitsweise von Git an. Das arbeitet erstmal lokal. Remote-Repositorys sind optional. Das heißt, du hast auf alle Fälle eine lokale Kopie. Ein Remote-Repository brauchst du nur zum Zwecke der Datensicherung und/oder du ein zentrales System brauchst, auf das noch andere darauf zugreifen können oder du selbst von anderswo, ohne dass du deinen sonst üblichen Arbeitsrechner dabei hast.

      Aus welchem Grund sollte ich das Git-Repository, das beim meinem Webhoster gespeichert ist, zusätzlich noch nichtöffentlich auf Github spiegeln. Das macht doch eigentlich keinen Sinn oder?

      Wenn du dessen Dienste nicht benötigst, dann brauchst du Github nicht.

      Was kostet ein nichtöffentlich Speicherplatz bei Github bzw. ist nur der nichtöffentlich Speicherplatz bei Github kostenpflichtig?

      Github hat eine Website, da stehen auch die Preise und was man dafür bekommt.

      dedlfix.

  4. Hallo,

    denkt Ihr es ist besser auf GitLab anstatt auf GitHub zu setzen, weil GitHub durch Microsoft übernommen wurde, was ich nicht so toll finde?

    1. Tach!

      denkt Ihr es ist besser auf GitLab anstatt auf GitHub zu setzen, weil GitHub durch Microsoft übernommen wurde, was ich nicht so toll finde?

      Für dein Anliegen brauchst du weder das eine noch das andere.

      dedlfix.

      1. @@dedlfix,

        Tach!

        denkt Ihr es ist besser auf GitLab anstatt auf GitHub zu setzen, weil GitHub durch Microsoft übernommen wurde, was ich nicht so toll finde?

        Für dein Anliegen brauchst du weder das eine noch das andere.

        Das weiß ich mitlerweile, dennoch interessiert mich Eure Meinung.

        1. Tach!

          denkt Ihr es ist besser auf GitLab anstatt auf GitHub zu setzen, weil GitHub durch Microsoft übernommen wurde, was ich nicht so toll finde?

          Für dein Anliegen brauchst du weder das eine noch das andere.

          Das weiß ich mitlerweile, dennoch interessiert mich Eure Meinung.

          Wenn du ein Projekt öffentlich hinlegst, ist es völlig egal, bei welchem Anbieter es liegt. Bei privaten Projekten ist es eher eine Frage ob man dafür überhaupt einen Anbieter in der Cloud braucht.

          dedlfix.

          1. @@dedlfix,

            Wenn du ein Projekt öffentlich hinlegst, ist es völlig egal, bei welchem Anbieter es liegt.

            Das sehe ich anders, was ist z.B. wenn man Microsoft nicht unterstützen möchte, dann sollte man eher GitLab als GitHub nutzen. Viele ziehen seit der Übernahme von M$ wohl Ihre Git-Repos von GitHub zu GitLab um.

            1. Tach!

              Wenn du ein Projekt öffentlich hinlegst, ist es völlig egal, bei welchem Anbieter es liegt.

              Das sehe ich anders, was ist z.B. wenn man Microsoft nicht unterstützen möchte, dann sollte man eher GitLab als GitHub nutzen. Viele ziehen seit der Übernahme von M$ wohl Ihre Git-Repos von GitHub zu GitLab um.

              GitHub ist so bekannt, da spielt es keine Rolle, ob da noch ein Projekt mehr liegt oder nicht. Ich sehe auch nicht, wie/dass GitHub mit öffentlichen Repositorys Geld verdient. Insofern sehe ich nicht, was da die Unterstützung sein soll.

              Aber ich meinte das nicht aus politischer Sicht oder aufgrund persönlicher Vorlieben. Wenn das eine zentrale Rolle spielt, wäre deine Fragestellung nicht weiter sinnvoll, weil das Resultat bereits festgelegt ist. Vielmehr habe ich die Angelegenheit aus Sicht des Projekts betrachtet. Wenn es öffentlich ist, spielt der Anbieter keine Rolle, weil man bei jedem auf die vollständigen Daten des Projekt zugreifen kann. Allenfalls wären die zusätzlichen Leistungsmerkmale einen Vergleich wert.

              dedlfix.

          2. hallo

            Wenn du ein Projekt öffentlich hinlegst, ist es völlig egal, bei welchem Anbieter es liegt. Bei privaten Projekten ist es eher eine Frage ob man dafür überhaupt einen Anbieter in der Cloud braucht.

            Die Frage ist aber, soll man die Daten der Testumgebung öffentlich hinlegen.

    2. Hallo

      denkt Ihr es ist besser auf GitLab anstatt auf GitHub zu setzen, weil GitHub durch Microsoft übernommen wurde, was ich nicht so toll finde?

      Wie schon mehrfach gesagt wurde, brauchst du einen externen Hoster für Git-Repos nicht unbedingt. Sowas ist nur sinnvoll, wenn mehrere Entwickler auf den Code zugreifen können sollen und/oder, wenn der Entwicklungsstand für Außenstehende (innerhalb und/oder außerhalb der Organisation) dokumentiert und/oder zugänglich gemacht werden soll.

      Ja, Gitlab ist eine Alternative. Eine weitere ist das von dedlfix genannte Gogs. Zumindest für Gitlab gilt, dass man direkt bei denen einen Account für seine Repos anlegen kann (Preise auf der Gitlab-Website), aber auch selbst einen Server installieren und betreiben kann.

      In unserer Firma läuft ein Gitlab-Server in einer Ubuntu-18.04-VM und ist über eine Subdomain auch von außen erreichbar. Privat habe ich aber auch einen Account bei Github.

      Tschö, Auge

      --
      Eine Kerze stand [auf dem Abort] bereit, und der Almanach des vergangenen Jahres hing an einer Schnur. Die Herausgeber kannten ihre Leser und druckten den Almanach auf weiches, dünnes Papier.
      Kleine freie Männer von Terry Pratchett