You are here: Foswiki>ITServicesInfo Web>Anleitungen>WiNeMeWEBDevelopment (23 Mar 2010, TimmWunderlich)Edit Attach

Anleitung zur gemeinsamen Entwicklung von Webbasierten Anwendungen mit SVN

Bei komplexen Projekten mit mehreren Entwickler(n)innen ist eine Versionsverwaltung wie Subversion (SVN) eine grosse Hilfe, dieser Beitrag beschreibt die am Lehrstuhl eingesetzten Mechanismen zur gemeinsamen Entwicklung von Webbasierten Anwendungen mit SVN.

Durch den Einsatz von SVN muss der Code auf dem Webserver nicht mehr durch geeignete Mechanismen für alle Entwickler zugänglich gemacht werden. Jeder Entwickler kann den Code lokal auschecken und bearbeiten. Über ein SVN-hook-Skript wird dann bei jedem commit in den trunk des Repo der Code auf dem Webserver aktualisiert.

Mehr zum WiNeMe SVN siehe SVNZugang.

Das führt allerdings dazu, dass jeder Entwickler eine lokale Entwicklungsumgebung benötigt um den geänderten Code vor dem commit zu testen. Eine Möglichkeit wäre es die Virtuelle Maschine die für den Webserver benutzt wird jedem Entwickler lokal zur Verfügung zu stellen. Das hast allerdings einige Nachteile:
  • Änderungen(z.B. Installation von PHP Modulen) an der Webserver VM müssen auch an den Entwickler VM's durchgeführt werden
  • die Entwickler benötigen eine entsprechende Virtualisierungs-Software, in unserem Fall VMWare
  • wenn Datenbanken genutzt werden muss jeder Entwickler immer Zugriff darauf haben. Die WiNeMe Datenbanken sind jedoch nur innerhalb des WiNeMe Subnet erreichbar, da das ZIMT die entsprechenden Ports nicht nach aussen öffnet
Dieses Problem kann mit Hilfe des WiNeMe AFS Netzwerdateisystems und den Benutzer Webseiten gelöst werden.

Jeder WiNeMe Benutzer hat ein Benutzer-Verzeichnis im AFS das mit dem OpenAFS Client und einer Internet-Verbindung auch von ausserhalb der Uni erreichbar ist, siehe AFSDienst. Im Benutzer-Verzeichnis befindet sich ein Verzeichnis WWW. Dieses Verzeichnis ist per HTTP/HTTPS erreichbar, siehe BenutzerWebseiten. Da der Webserver sich im WiNeMe Subnetz befindet ist die Datenbankverbindung kein Problem.

Entwickler checken also den Code per Subversion Client in das WWW Verzeichnis oder ein Unterverzeichnis aus, bearbeiten den Code und können Resultate der Veränderungen über die BenutzerWebseiten sehen. Kommen die gewünschten Resultate dabei raus wink kann der Code wieder in den trunk commited werden. Dabei wird automatisch der Webserver auf der Entwicklungs-VM aktualisiert.

Man kann mit diesen Mechanismen auch einen einfachen Workflow einrichten. Viele Prototypen werden bereits im Entwicklungsstadium von "echten Benutzern" benutzt. Dafür würde man eine zweite VM(oder VHost), das Live-System einrichten. Dieses Live-System wird manuell aktualisiert sobald der Code auf der Entwicklungs-VM getestet wurde. Diese Tests kann man natürlich auch über die Benutzer Webseiten abwickeln, eine Entwicklungs-VM die auch von Dritten (Projektleiter, Beta-Tester etc.) erreichbar ist und an der alle Änderungen am Code "gesammelt" werden ist dafür allerdings praktischer.

-- TimmWunderlich - 23 Mar 2010
Topic revision: r1 - 23 Mar 2010, TimmWunderlich
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback