Tom: PHP/MySQL: Entwickeln auf einem "Produktivserver"

Hello,

ich brauch einfach mal Eure qualifizierte und geschätze Meinung:

Die Projektfortführung/-korrektur/-umstellung die ich mir da angelacht habe fängt echt an zu nerven.

  • Chaos-Code, nur teilweise überlegte Strukturen erkennbar
  • Mischung aus PHP, Verweisen auf Includes in der MySQL-DB, include-Dateien,
      JavaScript,
  • Fast alle Referenzen über GET-Parameter, auch solche, die niemals bookmarked werden sollten
  • haufenweise fehlende Zugriffskontrollen
  • register_globals = on; man kann oft nicht so einfach feststellen, aus welcher Quelle die
      Variable nun stammen muss
  • fast keine Fehlerbehandlung (mit Ausnahme von "Passwort ist falsch", "Username ist falsch"...
      was man ja eigentlich acuh nicht so dediziert machen sollte
  • Ständig mit nicht initialisierten Variablen gearbeitet (Notices = OFF)

usw.

Nun bin ich mehr oder weniger gezwungen, das System auf einem "heißen Server" zu reparieren. Das gefällt mir überhaupt nicht. Ein Teil der Seite wird vom Kunden bereits benutzt und bezieht die  Information dafür aus derselben Datenbank, an der ich nun noch testen muss.

Wie steht Ihr dazu?

Was würdet Ihr machen?

Spaß macht das so nicht unbedingt.

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
  1. Hi!

    Nun bin ich mehr oder weniger gezwungen, das System auf einem "heißen Server" zu reparieren. Das gefällt mir überhaupt nicht. Ein Teil der Seite wird vom Kunden bereits benutzt und bezieht die  Information dafür aus derselben Datenbank, an der ich nun noch testen muss.

    Was spricht dagegen einen Dump der DB zu exportieren und das ganze lokal oder auf einem anderen, oder von mir aus sogar auf dem selben Server in eigenem vhost bzw. eigener DB zu installieren?

    Grüße
    Andreas

    --
    SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/
    1. Hello,

      Nun bin ich mehr oder weniger gezwungen, das System auf einem "heißen Server" zu reparieren. Das gefällt mir überhaupt nicht. Ein Teil der Seite wird vom Kunden bereits benutzt und bezieht die  Information dafür aus derselben Datenbank, an der ich nun noch testen muss.
      Was spricht dagegen einen Dump der DB zu exportieren und das ganze lokal oder auf einem anderen, oder von mir aus sogar auf dem selben Server in eigenem vhost bzw. eigener DB zu installieren?

      Die Lizenz für die Datenbank.
      Für eine kommerzielle Entwicklung ist auch lokal eine notwendig.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Hi!

        Die Lizenz für die Datenbank.

        Oracle?

        Für eine kommerzielle Entwicklung ist auch lokal eine notwendig.

        Aber im Normalfall sind ja DB-Server und DB-User lizensiert. Es dürfte doch kein Problem sein, eine neue DB aufzusetzen, die Daten da reinzuspielen, das "produktive Verzeichnis" zu kopieren und dann in der Kopie mit der 2. DB zu arbeiten, oder?
        Und sonst musst Du eben noch eine DB-Abstraktionsschicht einbauen, und dann die Daten aus der DB ziehen, und lokal z.B. mit PostgreSQL zu entwickeln... wobei mir dabei nicht so wohl wäre.

        Grüße
        Andreas

        --
        SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/
        1. Hello,

          Und sonst musst Du eben noch eine DB-Abstraktionsschicht einbauen, und dann die Daten aus der DB ziehen, und lokal z.B. mit PostgreSQL zu entwickeln... wobei mir dabei nicht so wohl wäre.

          Es ist sogar eine drin, aber die wird nicht unbedingt durchgängig eingehalten.

          Allerdings bringst Du mich da auf die Idee, ggf. die paar wenigen Fehler wegen der DB-Connection mal als erstes auszumerzen und das Ganze dann mal zu versuchen.

          Allerdings sind auch die ganzen Links und Pfade dann nicht OK.

          Ich versuch das morgen mal.

          Harzliche Grüße aus http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
          1. Hi!

            Es ist sogar eine drin, aber die wird nicht unbedingt durchgängig eingehalten.

            nett ;-) Aber sowas ist ja wenigstens leicht zu ändern/zu finden.

            Allerdings bringst Du mich da auf die Idee, ggf. die paar wenigen Fehler wegen der DB-Connection mal als erstes auszumerzen und das Ganze dann mal zu versuchen.

            Ja, macht Sinn. Allerdings hast Du das Problem an die Datenstruktur zu kommen, da würde ich dann ADODB(php) empfehlen, denn damit kannst Du die Struktur der meisten Systeme auslesen und in irgendein anderes einspielen. Bei PEAR::MDB geht das AFAIK nur mit mysql.

            Trotzdem würde ich eher dazu raten, als erstes dasselbe RDBMS lokal zu installieren. Selbst im Fall von Oracle(welches verwendest Du?) sollte man da unter 100 EUR davon kommen, wenn ich das mit den Jahreslizenzen richtig deute.

            Und sonst musst Du halt denjenigen der Dir eine DB anlegen kann überzeugen, oder Deinen Auftraggeber, dass der dafür sorgt.

            Grüße
            Andreas

            --
            SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/
  2. Hallo Tom!

    Nun bin ich mehr oder weniger gezwungen, das System auf einem "heißen Server" zu reparieren. Das gefällt mir überhaupt nicht. Ein Teil der Seite wird vom Kunden bereits benutzt und bezieht die  Information dafür aus derselben Datenbank, an der ich nun noch testen muss.

    Ich würd zum Entwickeln einfach mal nen Dump ziehen und in ne neue Entwicklungsdatenbank einspielen.
    Du brauchst zum Entwickeln ja nicht die aktuellsten Daten, und wenn doch aktualisier den Dump halt täglich und spiel ihn ein.

    Ansonsten eben die Entwicklung komplett von der Produktivumgebung trennen, also am besten imho eigene Subdomain, zur Not auch nur eigenes Verzeichnis auf der bisherigen Domain.

    Das, was Du sonst so schreibst, hört sich ja eh sehr nach nem Rewrite an, und weniger nach "nur reparieren", oder?

    MfG
    Götz

    --
    Losung für Dienstag, 5. Oktober 2004
    Groß sind die Werke des Herrn; wer sie erforscht, der hat Freude daran. (Psalm 111,2)
    Das Wort Gottes breitete sich aus und die Zahl der Jünger wurde sehr groß in Jerusalem. (Apostelgeschichte 6,7)
    (http://www.losungen.de/heute.php3)
    1. Hello,

      Ich würd zum Entwickeln einfach mal nen Dump ziehen und in ne neue Entwicklungsdatenbank einspielen.

      Dazu müsste ich die notwendigen Rechte haben. Aber darauf sitzt ein Dritter.

      Du brauchst zum Entwickeln ja nicht die aktuellsten Daten, und wenn doch aktualisier den Dump halt täglich und spiel ihn ein.

      Ja, Übungsdaten reichen mir.

      Ansonsten eben die Entwicklung komplett von der Produktivumgebung trennen, also am besten imho eigene Subdomain, zur Not auch nur eigenes Verzeichnis auf der bisherigen Domain.

      Normalerwaeise mache ich sowas auf einem Testserver, der dann mittels lokalem DNS sogar "dieselbe" Domain benutzen kann, natürlich offline. Da ist dann alles so, wie auf dem Online-Server, nur dass niemend zugucken kann, man soviele Fehler machen darf, wie einem beliebt, ohne dass gleich schlimme Dinge passieren.

      Das, was Du sonst so schreibst, hört sich ja eh sehr nach nem Rewrite an, und weniger nach "nur reparieren", oder?

      Das sieht fast so aus.
      Ich weiß nicht, was wirklich anstrengender ist; alles neu zu machen oder "nur" die Ungeschicklichkeiten beseitigen. Die Idee ist ganz nett, allerdings ist das kleine CMS, dass Fabian und ich mal angefangen haben, ca. 3/4 Generation weiter.

      Es wäre fast einfacher, das fertig zu machen und auf den Kunden anzupassan, als das Kunden-proprietäre zum runden Laufen zu bewegen.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
  3. Hi,

    Nun bin ich mehr oder weniger gezwungen, das System auf einem "heißen Server" zu reparieren. Das gefällt mir überhaupt nicht. Ein Teil der Seite wird vom Kunden bereits benutzt und bezieht die  Information dafür aus derselben Datenbank, an der ich nun noch testen muss.

    Wie steht Ihr dazu?

    positiv.   ;-)

    Was würdet Ihr machen?

    Ja, ich wuerde machen, bin ich gewohnt.

    Spaß macht das so nicht unbedingt.

    Da lernst Du mal richtig programmieren oder Du wirst Dir einen Namen machen, als der Mann, der das System endgueltig zugrundegerichtet hat. Den ersten Taeter wird man dann allerdings unbelangt lassen.

    Gruss,
    Ludger

    --
    "Machts der Gerd nicht, machts der Franz."
  4. Servus,

    also..... sorry wenn ich schroff werde...

    1. Man zieht sich einen Dump der DB.
    2. Setzt ein produktiv Identisches bzw. nahes System auf.
    3. Spielt den Käse ein.
    4. Schafft eine "identische" Infrastruktur für einen
       Produktionsidentischen Ablauf / zugriff.

    Für das ganze solltest Du nicht länger als einen Tag arbeit haben.
    Dieses System kannst Du dann getrost weiter für Deine Entwicklung und arbeit z.B. als Testsystem verwenden.

    Aber Finger weg von der Produktion!!! Denn Dein Kunde dankt es dir nicht, dass Du schweissgebadet morgens nach der Umstellung aus dem Büro gegangen bist.
    Im gegenteil der hasst dich für jede Offline Minute.

    Meine Persönliche Meinung dazu:
    Ich finde es imer wieder witzig, wie man hier eine riessen Wirbel um "unschöne aber doch unwichtige" Kleinigkeiten macht.
    Da werden ab und an auf nichtigkeiten herum getrampelt.....
    Aber sowas wie auf Prod. Entwickeln... auf so eine Schnapps Idee komme ich nicht einmal bei einem noch nicht online System.

    Eigentlich wolte ich zu dem Thema ein Feature Artikel schreiebn. Ist aber wohl im ganzen trubel irgendwie unter gegangen.

    -> Da warte ich auch noch auf ein Feedback zu
     meinem Schreibstil... ;-)

    Gruss Matze

    1. Hello Matze,

      also..... sorry wenn ich schroff werde...

      nee, nee, das ist schonb gut.
      Bevor ich aber nun selber etwas deutlicher werde gegenüber meinem Auftraggeber, wollte ich einfach noch ein paar Fachmeinungen einholen. Hätte ja auch sein könne, dass ich mich nur "anstelle", dass ich das auch verlangt habe. Der Server sthet schon hier neben mir, habe ich mir extra besorgt. Muss nun noch die Lizenzfrage geklärt werden, dann kann ich ihn benutzen.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Servus,

        kommt darauf an, was Du so benötigst an Lizenzen.
        Eine Oracle DB kannst Du Dir ja online ziehen.
        Lizenz benötigst Du (technisch) für den Betrieb nicht.
        Für die Personal edition stellt es kein Problem dar dieses als Entwicklungsystem zu verwenden. Lizenz meines wissens für umme.

        Für das andere Zeug..

        Ich weiss ja nicht was Du benötigst.
        Die meisten Hersteller jedoch drücken ein Auge zu, für solche temporären Umgebungen.
        Schliesslich haben die genug Geld am Produkt verdient.

        Einfach nachfragen. Nicht alle Hersteller sind unkooperativ.

        Gruss Matze

      2. Hi, Tom,

        nee, nee, das ist schonb gut.
        Bevor ich aber nun selber etwas deutlicher werde gegenüber meinem Auftraggeber, wollte ich einfach noch ein paar Fachmeinungen einholen. Hätte ja auch sein könne, dass ich mich nur "anstelle", dass ich das auch verlangt habe. Der Server sthet schon hier neben mir, habe ich mir extra besorgt. Muss nun noch die Lizenzfrage geklärt werden, dann kann ich ihn benutzen.

        es ist aber tatsaechlich eine coole Sache Bugs auf einem Produktivsystem zu jagen.

        Nicht, dass ich das hier ausdruecklich empfehlen moechte. Aber es ist oft sehr effizient und es bedeutet den besonderen Nervenkitzel, wenn Du weisst was ich meine.   ;-)

        Gruss,
        Ludger

        1. Servus,

          deswegen werde ich wohl bei dir nix gehostet haben.
          Fehleranalyse ist ja gut und recht.
          Eine Produktive Umgebung ist jedoch keine Spielwiese.

          Und ein Profi unterscheidet sich wenige in der verwenung und umsetzung besonders cooler Gimmiks, sondernm ehr in seiner Verantwortungsvollen Handlungsweise.

          Gruss Matze

          PS. Gerade war eine Kunde von uns 12 Stunden offline -> 7-8 Mio EURO Umsatz gingen flöten, weil ein Admin den coolen Nervenkitzel mal wieder gebraucht hat.

          1. Hi,

            Und ein Profi unterscheidet sich wenige in der verwenung und umsetzung besonders cooler Gimmiks, sondernm ehr in seiner Verantwortungsvollen Handlungsweise.

            nun, es ist manchmal schlichtweg erforderlich, wenn in Produktivsystemen schwerwiegende Bugs auftreten, ins Live-System zu gehen und zu debuggen. Nichts tun waere deutlich teurer.

            Und wenn man dann im Code sitzend in der Lage ist hier und da eine kleine Aenderung zu machen, die dann auch noch den gewuenschten Erfolg mit sich bringt, dann macht das schon Spass.

            Ich hatte nach Schilderung der Anforderungslage durch Tom den Eindruck, dass es fuer ihn in diese Richtung gehen duerfte. Soz. ein Himmelfahrtskommando.   ;-)

            Gruss,
            Ludger

            --
            "Programmieren ohne Netz?"
            1. Servus,

              also ich muss dir wirklich wiedersprechen.
              Eine hotdeployment wie Du es beschreibst darf in einem unternehmen nie vorkommen.
              Dafür muss trotzdem eine Teststufe durchlaufen werden.
              Denn, dass sich durch eine schlampigen Code ein weiteres Loch eingeschlichen hat, ist meistens wahrscheinlicher als dass das bekannte Problem die mit einem Shorthack erledigt ist.

              Und in einem solchen Fall wie Deinem müsste man so konsequent sein und das System aus dem Netz nehmen, eine Wartungsseite schalten.
              Ist unangenehm, jedoch besser als eine ungeprüft Änderung ins System schleifen. Lass da nur mal was am Login schief gehen und jeder bucht auf Herrn Maier.

              Klasse ist das und geht ratz fatz durch die läster Presse.
              Es gibt meines erachtens eine grossen Unterschied zwischen Materiellem Schaden und einem vertrauens Schaden.

              Ich werde niemals mehr etwas mit AOl zu tun haben, wenn man bedenkt, dass in diesem Unternehmen Kunden E-mail Adressen weiter verkauft wurden.

              Letzendlich musst Du es selbst wissen, was Du tust. Ich für meine Fälle würde einen Provider mit einem guten Prozess vor ziehen, auch wenn in einem Fehlerfall es länger dauert bis dieser behoben ist.
              Dafür tritt dort weniger Fehler auf, weil es wenigstens einen Prozess gibt, der es verhindert, das Änderungen ungeprüft eingefummelt werden.

              Gruss Matze

            2. Hello,

              Ich hatte nach Schilderung der Anforderungslage durch Tom den Eindruck, dass es fuer ihn in diese Richtung gehen duerfte. Soz. ein Himmelfahrtskommando.   ;-)

              Wenn ich das nicht durchsetzen kann, dass da erstmal der Testserver genutzt wird, dann wird es bestimm ein Himmelfahrtskommande. Der Kunde drängelt nämlich schon länger und nun verliert er langsam die Geduld. Aber wahrscheinlich liegt es am Hang zum Billigen. Man hat eben erst versucht, das ganze anders zu lösen, hat nicht geklappt, und nun doch so...

              Harzliche Grüße aus http://www.annerschbarrich.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              Nur selber lernen macht schlau
              1. Servus,

                wobei sich mal wieder zeigt:

                Billig <> günstig.

                GRuss Matze

                1. Hi,

                  wobei sich mal wieder zeigt:

                  Billig <> günstig.

                  "teuer == guenstig" gilt aber auch nicht.

                  Gruss,
                  Ludger

                  --
                  "Die SPD im Aufwind?"
                  1. Servus,

                    "teuer == guenstig" gilt aber auch nicht.

                    Natürlich nicht. Denn wenn es teuer wäre, dann wärs nicht günstig.
                     ;-))

                    Gruss Matze