symfony2 Support & Releasezyklen

Symfony Logo

Nach meinem letzten Blog-Eintrag wurde ich gefragt, in wiefern der angebotene Support und die Releasezyklen des symfony2-Projekts die Entscheidung für dieses Framework beeinflusst haben.

Eine hohe Verbreitung der Software ist natürlich nicht unbedingt ein Qualitäts- oder Entscheidungskriterium, allerdings vergleiche ich symfony gerne mit Adobe Photoshop:

„Was für den Grafiker Photoshop ist, ist für den Entwickler symfony.“

Ab einer gewissen Größe, Zuverlässigkeit und Professionalität nimmt auch rapide die zur Verfügung stehenden Support-Resourcen und Service-Leistungen rund um die Software zu.

Support

Wie bereits im vorherigen Blog-Artikel beschriebenen, gibt es zahlreiche frei zugängliche Resourcen und Hilfestellungen. Allerdings bietet SensioLabs natürlich auch selber entsprechende Dienstleistungen an: Neben dem „Get a guru“-Programm, bei dem man sich einzelne Spezialisten tageweise mieten kann, gibt es auch Support-Verträge für entsprechendes Entgelt. Bei einem sehr kritischen Projekt, haben wir beispielsweise bereits sehr eng mit dem deutschen Ableger von SensioLabs, mit Sitz in Köln, zusammengearbeitet. Dies wäre mit einem anderen Framework-Anbieter sicherlich nicht so einfach und vor allem professionell möglich gewesen.

Auch die Tatsache, dass entsprechende Framework-Schulungen direkt vom Anbieter angeboten werden und man sich so einen sehr standardisierten und hochwertigen Programmier-Stiel aneignen kann, sprechen meiner Meinung nach für das symfony2-Framework.

Andere Frameworks bieten zwar auch entsprechende Services und Schulungen, allerdings werden diese häufig von Drittanbietern oder beauftragten Dienstleistern und nicht direkt aus „einer Hand“ angeboten.

Releasezyklen

Nahezu jede Software hat sie, jeder Entwickler kennt sie, aber nur wenige mögen sie: Updates.

Ich für meinen Teil mag Updates, denn neben den häufig hinzugefügten Features sind Updates auch ein essentieller Bestandteil der Software: Sicherheit und Funktionstüchtigkeit.

Sicherlich kann jeder der bereits Updates für ein Framework oder anderer Software eingespielt hat ein Lied davon singen: „Nach dem Update geht meistens erstmal nix mehr.“  Das symfony2-Framework ist da im ersten Moment keine Ausnahme. Allerdings muss ich direkt dazu sagen, dass ein normales symfony-Update (z.B. 2.2.15 zu 2.2.16) in der Regel keine oder nur sehr geringe Aufwände verursacht. Etwas anders kann es unter Umständen bei Versionssprüngen aussehen (z.B. 2.0.x zu 2.1.0). Diese Updates sind meistens mit größeren Anpassungen verbunden, die je nach Projektumfang 1-2 Arbeitstage fressen können.

Mit jedem Update wird jedoch immer auch ein entsprechendes Update/Upgrade-Dokument ausgeliefert, in dem festgehalten ist, was sich wo geändert hat. Dadurch ist ein gezieltes Suchen nach Stellen die ggf. angepasst werden müssen sehr einfach und entsprechend schnell erledigt.

Aktuelles ziel des symfony2-Projektes ist es, alle sechs Monate eine neue Version des Frameworks auszuliefern. Nach der erfolgten Auslieferung beträgt die Support-Zeit der alten Version dann nur noch 3 Monate. Dadurch ist man gezwungen sehr zeitnah entsprechende Upgrades durchzuführen, um weiter mit Patches versorgt zu werden.
Dies stellt aber vor allem im Unternehmensumfeld häufig ein Problem dar, dann ein Upgrade ist immer auch mit Wartungsaufwand und Ausfallzeiten verbunden. Die Lösung: LTS.

„Long Term Support“-Versionen

Von einigen anderen (Software-)Projekten kennt man sie: LTS-Versionen. Im Moment gibt es noch keine fertige LTS Version von symfony2. Allerdings wird aktuell an genau dieser Version gearbeitet. Mit der nächsten Version 2.3 wird die erste LTS-Version von symfony2 die Entwicklergemeinde erobern. Sie wird laut Roadmap ende Mai erscheinen und drei Jahre lang mit Updates versorgt bevor ein Versionssprung nötig wird.
LTS-Versionen sind wichtig für den langfristigen Einsatz einer Software im Unternehmen. Durch den Feature-Freeze werden nur noch relevante Bugs und Sicherheitslücken der Version behoben. Dadurch kann man sich die aufwendigen Versionssprünge sparen und minimiert so die wartungsbedingten Ausfallzeiten einer bestehenden Anwendung.

Fazit

Alles in allem wurde unsere Entscheidung auf symfony2 zu setzten bisher mit jedem Projekt bestätigt und die kommende LTS-Version wir ein wichtiger Bestandteil unserer Entwicklungsarbeit für zukünftige Aufgaben.