LCube

Subversion-Hosting von LCube ~ Es wird immer wichtiger, die Entwicklung von Quelltexten, Dateien und Dokumenten kontinuierlich zu dokumentieren.

Ein Versionierungssystem ist heute in vielen Bereichen der IT-Entwicklung nicht mehr wegzudenken. Es wird immer wichtiger, die Entwicklung von Quelltexten, Dateien und Dokumenten im Projektverlauf kontinuierlich zu dokumentieren. Eines der wertvollsten Werkzeuge dazu ist ein Versionsverwaltungssystem wie Subversion, das den Entwickler vor allem von lästigen Aufgaben befreit, die zwar notwendig sind, aber den Workflow des Developers immer wieder stören.

Wir haben heute Herrn Laehn, Inhaber von LCube Webhosting & Webdesign e.K. zu einem Interview eingeladen, um einen Eindruck aus der Praxis in diesem Segment des Hosting-Markts zu gewinnen.

Herr Laehn, welche Aufgaben erfüllt so ein System wie Subversion in der Praxis überhaupt?

Nun, zum einen archiviert das System fortlaufend den aktuellen Stand der Entwicklung. Damit ist jederzeit nachvollziehbar, welche Änderungen in einem bestimmten Zeitraum erfolgt sind, und wer diese durchgeführt hat. Das ist insbesondere bei der Softwareentwicklung sehr wichtig, etwa wenn eine neu eingeführte Funktionalität nach dem Release Probleme aufwirft und ein Rollback, also eine Rückkehr zu einem früheren Versionsstand, notwendig wird.

In solch einem Fall liefert das Versionierungssystem eine exakte Kopie der Entwicklung für den gewünschten Versionsstand. Die alte Version kann also direkt für Produktivzwecke eingesetzt werden, ohne dass erst die Änderungen zwischen neuester und Rollback-Version manuell rückgängig gemacht werden müssten. Im Hintergrund kann währenddessen weiter an der neuesten Version gearbeitet werden.

Das Versionsverwaltungssytem bietet also Reproduzierbarkeit. Ist das schon alles?

Nein, selbstverständlich nicht. Neben der Erfassung der einzelnen Versionsstände wird natürlich auch protokolliert, welcher Nutzer welche Änderungen in das sogenannte Repository eingespielt hat. Das ist beispielsweise dann wichtig, wenn geklärt werden muss, wer einen Fehler verursacht hat – und ihn beheben kann.

Ebenso verwaltet es Kommentare und Erläuterungen zu den einzelnen archivierten Revisionen und stellt ein Bindeglied in den sogenannten Toolchains moderner Softwareentwicklung dar. So kann beispielsweise durch das Einspielen einer neuen Revision in Subversion eine ganze Reihe von Automatismen angestoßen werden, von Unit-Tests über die automatische Erstellung der einzelnen Builds, die Erstellung von Installer-Paketen, und vieles mehr.

Darüber hinaus arbeitet ein System wie Subversion unter normalen Umständen inkrementell, d.h. einmal gespeicherte Revisionen bleiben über den gesamten Lebenszyklus des Repositorys erhalten. Natürlich gibt es hier auch Sonderfälle, in begrenztem Umfang kann durch einen Repository-Administrator bereinigend eingegriffen werden. Dies wird jedoch allgemein als „bad practice“ angesehen und ist recht aufwendig.

Gängiger ist daher die Alternative, bei einem vorher festgelegten Milestone in der Entwicklung das Repository zu wechseln und das bisherige als Altarchiv für Sonderzwecke zu verwenden. Das neue Repository beginnt dann mit dem letzten Versionsstand des Altarchivs.

Das klingt nach einem komplexen Stück Software. Ist dieser Aufwand denn gerechtfertigt?

(Lacht) Ja, das ist er allerdings. Haben Sie schon einmal Daten verloren, weil Sie kein Backup hatten? Oft kommt man ja mit einem blauen Auge davon, aber erklären Sie als Entwickler einmal dem Chef, warum Tage oder Wochen intensiver Arbeit verloren gegangen sind… Systeme wie Subversion ersparen dem Entwickler bei richtigem Gebrauch viel Zeit und stellen gleichzeitig Netz und doppelten Boden dar.

Egal ob durch Hardwareausfall oder menschliches Versagen – der bisher erreichte Entwicklungsstand ist bis auf maximal einige Arbeitsstunden im Repository gesichert und kann jederzeit wiederhergestellt werden. Damit kann auch nach einem Totalausfall eines Entwicklersystems binnen kurzer Zeit die Entwicklung wieder aufgenommen werden.

Mit der Integration in gängige Entwicklungsumgebungen ist die Benutzung für den Programmierer sogar weitgehend transparent, lediglich die notwendigen Kommentar zum aktuellen Check-In müssen gegebenenfalls ergänzt werden. Je nach Umgebung kann aber auch hier ein guter Teil durch Automatismen abgedeckt werden.

Und für den Betrieb brauche ich einen dedizierten Server?

Das kommt ganz darauf an, welche Ansprüche Sie stellen. Die Erfahrung – das schließt auch den Input unserer Kunden mit ein – zeigt, dass schnell der Wunsch aufkommt, einen sicheren Server zu haben, der einerseits gegen Hardwaredefekte abgesichert ist, und zum anderen zusätzliche, zentrale Backups des Repositorys ermöglicht. Digitale Daten sind bekanntlich flüchtig, und das einzige Mittel gegen Datenverlust sind Backups, Backups und nochmals Backups.

Ein zweiter Punkt, der oft schnell aufkommt, ist Zugriff auf das Repository von außerhalb des lokalen Netzes, beispielsweise für Supporttechniker vor Ort, oder wenn Entwickler vom Home Office aus arbeiten.

Insbesondere dieser letzte Punkt verdient besondere Aufmerksamkeit. Denn dazu muss der Server über das Internet zu erreichen sein. Prinzipiell ist damit das lokale Firmennetz einem zusätzlichen Risiko ausgesetzt. Mit einem dedizierten Server bei einem Hoster wie Lcube lässt sich dieses Risiko für das Firmennetz umgehen.

Das bedeutet, ich brauche dann auch keinen Admin für meinen Server?

Wir bieten sowohl Root-Server als auch managed Server an. Wenn Sie also alles selbst administrieren möchten (und können!), bieten wir Ihnen dafür ebenso die optimale Basis wie für den Fall, dass Sie einfach nur sichere Repositories nutzen möchten – dann ist je nach Projektgröße entweder einfaches Subversion Hosting oder ein managed Server die richtige Wahl.

Für den Kunden hat das vor allem Kostenvorteile: Wir können durch Bündelung und Automatisierung unseren Serverpark mit fast dem gleichen Aufwand admininistrieren wie ihn ein einzelner Server beim Kunden vor Ort erfordert. Dadurch wird ein managed Server beim Hoster gegenüber einem Server in-house plus Adminkosten deutlich günstiger.

Grundsätzlich tun wir alles, um unseren Kunden Kopfweh zu ersparen – am effizientesten lässt sich arbeiten, wenn beide Seiten sich auf ihre Kernkompetenzen konzentrieren können, wie es so schön heißt. Wir möchten vor allem zufriedene Kunden haben, deswegen machen wir so ziemlich alles möglich, was technisch erreichbar und sinnvoll ist. Je nach Aufwand lässt sich das leider nicht immer als Inklusivleistung gestalten, aber letztlich zählt vor allem eine hohe Effizienz.

Und was bedeutet das im Klartext?

Lassen Sie mich ein paar Beispiele anführen: Ein Kunde kommt neu zu uns, hat ein bestehendes Repository und möchte dies auf einen Server bei uns übertragen. Auf Wunsch kümmert sich unser Support dann in Kooperation mit dem Kunden um alle notwendigen Schritte, soweit der Kunde diese nicht selbst durchführen kann oder möchte.

Ein weiterer häufig auftretender Fall: Subversion soll über die sytemseitig vorhandenen Schnittstellen („hooks“) automatisisert oder in eine Toolchain eingebunden werden. Auf Kundenwunsch sind sogar komplette Individualprogrammierungen möglich – einige unser Großkunden machen ausgiebig Gebrauch davon.

Wo Sie gerade Kunden erwähnen, wer bucht Ihre Dienste?

Es gibt zwei Gruppen, die den Löwenanteil unserer Kunden darstellen. Die eine Gruppe arbeitet in der klassischen Softwareentwicklung. Hier dient Subversion auch dazu, die Arbeit unterschiedlicher Teams zu bündeln, die mitunter über den ganzen Globus verstreut sind. Die zweite Gruppe sind Entwickler von webbasierten Projekten. Die Palette reicht dabei von einfachen Websites bis hin zu komplexen Webanwendungen. Hier lässt sich Subversion auch gut umfassend integrieren, etwa durch automatische Aktualisierung von Testsystemen mit dem neuesten Stand aus dem Repository.

Den Rest stellen Kleinkunden da, vom Einzelentwickler bis hin zum Übersetzer und Verfasser von umfangreichen Dokumenten ist praktisch alles vertreten, was seine Arbeitsfortschritte mit einem Werkzeug wie Subversion sichern und dokumentieren kann.

Sie hatten vorhin schon einmal das Thema Sicherheit angesprochen, wie gehen Sie damit um?

Sicherheit ist für uns natürlich eines der wichtigsten Themen, umso mehr, weil wir für unsere Kunden große Mengen vertraulicher Daten aufbewahren und verwalten. Daher gehen wir Sicherheit auf vielen Ebenen aktiv an. Das reicht von der Beobachtung der einschlägigen Mailinglisten aus dem Sicherheitsbereich über aktives Monitoring unserer Systeme, bis hin zu eigentlich selbstverständlichen Maßnahmen wie der Vergabe starker Passwörter und der konsequenten Nutzung von SSL.

Standardmäßig setzen wir eines unserer SSL-Zertifikate für alle Kommunikation mit den Subversion-Servern ein, auf Wunsch richten wir aber natürlich auch Zertifikate des Kunden ein. Bei Bedarf kümmern wir uns natürlich auch hier um alle Formalitäten, so dass der Kunde sich um sein eigentliches Geschäft kümmern kann.

Übrigens kam es auch schon vor, dass wir eine Sicherheitslücke in vom Kunden installierter Software entdeckt haben. In so einem Fall reagieren wir natürlich angemessen und suchen sofort den Kontakt zum Kunden. Auf Wunsch sind wir auch dabei behilflich, die Lücke zu schließen.

Sie legen also besonderen Wert auf umfassende Supportleistungen?

Ja, unbedingt. Für uns gehört ein erstklassiger Support einfach zu einem Produkt dazu. Wir bieten natürlich auch simples Webhosting und andere Standardprodukte an, unsere Kernkompetenz sind aber spezialisierte Produkte für besondere Anwendungen, neben dem Subversion-Hosting haben wir beispielsweise auch Hosting-Produkte, die speziell für die Anforderungen von Magento optimiert sind. In diesem Bereich ist ein Support-Team, das weiß wovon es redet, und den Kunden effizient und umfassend unterstützen kann, einfach unverzichtbar.

Es gibt leider auch Negativbeispiele, meist bei Anbietern, die sich nur über einen möglichst niedrigen Preis positionieren wollen. Das hat zur Folge, dass überall dort gespart wird, wo Kosten entstehen. Naturgemäß sind das die Posten Support und Technik – es gibt sogar Anbieter, die sich die SSL-Verschlüsselung sparen.

Diesen Weg wollen wir ganz bewusst nicht gehen. Wir bieten Produkte und Leistungen, die wir selber jederzeit auch nutzen würden, und das zu moderaten Preisen. Deswegen haben wir auch keine explizite Beschränkung der Entwickler oder Repositories pro Paket oder gar Aufpreise dafür.

Hauptsächlich der Platzbedarf und die Zugriffshäufigkeit entscheidet, welches Paket für den Kunden optimal geeignet ist. Dabei drücken wir auch gerne mal im Einzelfall ein Auge zu, wenn beispielsweise ein gigantisches Repository eigentlich besser auf einem dedizierten Server untergebracht wäre, die Zugriffszahlen aber so minimal sind, dass ein normales Subversion Hosting ausreicht. Wir versuchen, stets die optimale Lösung für jeden Kunden zu finden.

Herr Laehn, wir bedanken uns bei Ihnen für den Besuch und das aufschlussreiche Interview. Unsere Leser haben sicherlich interessante Einblicke in ihr Tagesgeschäft gewonnen.