Ruby on Rails – Stand der Dinge
Seite 5: Rails bei Xing
Ruby on Rails bei Xing
Eine der deutschen Firmen, die Ruby on Rails einsetzen, ist Xing, das frĂĽhere Open BC. iX sprach mit Dr. Johannes Mainusch, verantwortlich fĂĽr Xings IT, sowie Norman Timmler, Softwarearchitekt bei Xing, ĂĽber die Erfahrungen mit dem Framework.
iX: Was waren die GrĂĽnde der Entscheidung fĂĽr Rails, und wann ist sie gefallen?
Johannes Mainusch: Die Entscheidung für Ruby on Rails war eine Entscheidung für Realisierungsgeschwindigkeit, Stabilität und Wartbarkeit. Die Xing-Plattform wächst mit großer Geschwindigkeit, und die Ansprüche an die Qualität der erstellten Software in Hinblick auf Erweiterbarkeit und Stabilität sind sehr hoch. Derzeit ist Rails für Entwicklungen im Webumfeld, gemessen an unseren Anforderungen, das beste verfügbare Framework.
iX: Was wurde mit Rails realisiert?
Norman Timmler: Anfang 2007 begann die Entwicklung des Xing-Marketplaces mit Rails. Aktuell arbeiten wir an mehreren Komponenten der Xing-Plattform, die mit sieben Rails-Programmierern umgesetzt werden.
iX: Welche Startschwierigkeiten galt es dabei zu ĂĽberwinden?
NT: Die primäre Herausforderung bestand in der transparenten Integration in die existierende Xing-Plattform. Dazu mussten bestehende Systeme, wie Übersetzungs- und Lokalisierungssoftware, angebunden werden. Weil es für diese proprietären Systeme keine Rails-Plug-ins gibt, war der erste Schritt in der Entwicklungsarbeit, die bestehende Plattform über eine YAML/HTTP-API anzubinden und entsprechende Adapter zu schreiben. Weiterhin musste die vorhandene User-Datenbasis samt des komplexen Rollen- und Rechtesystems performant in Rails verfügbar gemacht werden.
iX: Welche Erfahrungen haben Sie bezĂĽglich Wartbarkeit, Erweiterbarkeit, Skalierbarkeit und Performance gemacht?
NT: Rails-Applikationen lassen sich grundsätzlich sehr gut warten. Wir haben die Erfahrung gemacht, dass ein neuer Entwickler bereits nach einem Tag Rails produktiven Code schreibt. Die starken Strukturen und Konventionen von Rails ermöglichen es jedem, sich schnell zu orientieren. Interessant ist, dass es häufig einen "Rails Way" gibt, der dabei hilft, Erweiterungen an den richtigen Stellen anzubringen, den Code schlank hält und ihn besser verständlich macht. So ein Rails Way ist beispielsweise das Paradigma "skinny controller, fat model". Es hält den Entwickler an, seine Controller frei von Logik zu implementieren und die Applikation in den Modellen unterzubringen.
Die Skalierbarkeit von Rails-Applikationen war ein großes Thema, als beispielsweise Twitter an seine Performancegrenzen stieß. Doch muss man eindeutig sagen, dass hier die Datenbank der Bottleneck war und kein grundsätzliches Problem in der Implementation von Rails vorlag. Die Unterstützung mehrerer Datenbanken, gar mehrerer Write-Masters, ist eine nicht Rails-spezifische Problematik.
iX: Wird Xing auch zukĂĽnftig auf Rails setzen oder gibt es Alternativen?
JM: Vergleichbare Projekte etwa im Java-Umfeld sind sehr viel schwerfälliger und nicht selten mit hohen Investitionen für Softwarelizenzen verbunden. Die Frage ist eigentlich, ob man auf Mainstream-Technologie oder ein modernes und leistungsfähiges Framework mit wachsender Verbreitung setzt. Xing hat sich mit Rails für diesen Weg entschieden. Die bislang sehr guten Erfahrungen lassen uns hoffen, bald mehr Experten in diesem Bereich programmieren zu sehen.
iX: Wo liegen bei Xing zukünftig die größten Herausforderungen beim Einsatz von Rails?
JM: Die großen Herausforderungen liegen im Staffing und im Multiprojektmanagement. Wir suchen jederzeit Verstärkung im Bereich Rails-Systemadministration und Entwicklung. In der Projektumsetzung besteht die Herausforderung darin, agile Entwicklungsarbeit mit den klassischen Zielen des Projektmanagements – der Planbarkeit von Ressourcen, Zeit und Projektzielen bei gleichzeitiger Abwicklung vieler Projekte – erfolgreich zu verbinden.
NT: Ich bin gespannt, wie Rails sich in größeren Entwicklerteams verhält. Eine sehr gute Testabdeckung des Codes ist dafür natürlich Grundlage.
iX: Wie beurteilt Xing den Job-Markt? Sind ausreichend Entwickler vorhanden?
JM: Die Nachfrage ist derzeit noch höher als das Angebot. Ich glaube, jeder Entwickler, der heute vor der Entscheidung steht, welches Framework als Nächstes auf seiner Lernliste steht, sollte unbedingt Ruby on Rails nach ganz oben setzen.