Web

DevOps, Cloud, NoSQL

Von Startups lernen

22.10.2012
Von Eberhard Wolff
Neugründungen im IT-Umfeld sind gerade deshalb so erfolgreich, weil sie keine festen Infrastrukturen haben und sich IT-Services auf ihre Bedürfnisse zuschneidern können. Klassische Enterprises sollten sich etwas abschauen.

Startups setzten Produktivitätsmaßstäbe. So hat der von Facebook für eine Milliarde Dollar akquirierte Fotodienst Instagram zehn Millionen User und 100 Millionen Fotos mit nur drei Mitarbeitern betreut. Klassische IT-Organisationen bauen für solche Anwendungen oft eigene Einheiten auf, die eine um mehrere Faktoren größere Mitarbeiterzahl haben.

Das Rollenverständnis in IT-Organisationen wandelt sich.
Das Rollenverständnis in IT-Organisationen wandelt sich.
Foto: olly_fotolia.com

Mit den üblicherweise geringen Ressourcen ist es für Startups nicht möglich, Aufgaben nach Betrieb und Entwicklung zu trennen. Daher haben sie ein hybrides Rollenverständnis namens DevOps. Schon der Begriff macht deutlich, worum es geht: das Zusammenwachsen von Development (Entwicklung) und Betrieb (Operations). Obwohl besonders bei kleinen Unternehmen verbreitet, ist diese Organisationsform unabhängig von der Größe einer Firma: Etabliert wurde das Konzept einst bei Amazon, als der Onlineversand bereits eine beträchtliche Zahl an Mitarbeitern beschäftigte.

Es gilt, die IT an den Fachlichkeiten auszurichten - Betrieb und Entwicklung gibt es schließlich nicht. Um beim Beispiel Amazon zu bleiben: Jeweils ein Team ist für die Entwicklung und den Betrieb des Einkaufswagens oder des Produktkatalogs zuständig - und zwar in allen Belangen. Somit orientiert sich die IT konsequent an den Bedürfnissen der Kunden und der Gesamtorganisation.

Die enge Kooperation von Betrieb und Entwicklung hat weitere Vorteile. Das Feedback aus der Produktion lässt sich direkt für die Weiterentwicklung der Systeme nutzen. Die verbesserte Reaktion auf konkrete Betriebsanforderungen steigert Zuverlässigkeit und Qualität der Anwendungen signifikant.

Die für DevOps notwendigen Organisationsänderungen sind in einem Großunternehmen nur schwer umsetzbar und erfordern meist eine umfangreiche Umstrukturierung der gesamten IT-Abteilung. Obgleich zumindest für die Produktionseinführung von neuen Releases auch hier die Zusammenarbeit der Entwickler und des Betriebs nötig ist, bringt ein gemischtes Team unter einer gemeinsamen Leitung noch einmal einen Effizienzgewinn.

Zuverlässigere Releases mit Continuous Delivery

Selbst wenn Unternehmen ihre Strukturen nicht umstellen wollen oder können, gibt es universell für sie einsetzbare Methoden aus dem DevOps-Umfeld. Ein Beispiel ist das Continuous Delivery. Um Änderungen in einem Software-System in Produktion zu bringen, muss es in einer Art Pipeline verschiedene Stadien durchlaufen. Nach der Implementierung und den Entwickler-Tests sind dies beispielsweise System-, Integrations- und Performance-Test, bevor es schließlich in Produktion gehen kann. Continuous Delivery bezeichnet die Automatisierung des Durchlaufs durch die Pipeline, um die Geschwindigkeit zu optimieren. Ausnahme: Das Testen völlig neuer Funktionalitäten lässt sich nicht automatisieren, wenn sich dafür noch keine Standard-Verfahren etabliert haben.

Für Startups ist das so erreichte Time-to-Market ein wesentlicher Vorteil. Enterprises sind meistens in reiferen Märkten aktiv und benötigen diese extreme Flexibilität nicht. Aber auch für sie bringt Continuous Delivery erheblich Vorteile: Durch Automatisierung können Prozesse zum Aufbau von Umgebungen beschleunigt und vor allem auch reproduzierbar gemacht werden. Das kommt dem Aufbau von Test- und Staging-Umgebungen zu Gute. In der Testphase eines Projekts sind solche Umgebungen oft nicht unbegrenzt verfügbar - zudem ist ihr Aufbau komplex und fehleranfällig, was das Testen erschwert. Ändern sich die Anforderungen durch eine neue Version, ergeben sich wiederum dieselben Probleme. Ist der Aufbau neuer Umgebungen automatisiert, geht er schneller von der Hand und ist zudem reproduzierbar. Damit sinkt das Risiko der Produktionseinführung, weil der automatisierte Prozess bereits mehrmals verwendet worden ist.

Flexibilität mit Virtualisierung und Cloud

Für die Bereitstellung der notwendigen Testumgebungen müssen Server schnell und einfach verfügbar sein. Viele Startups nutzen dafür die Cloud, die die Investition in eigene Rechenzentren ersetzt und schnell Ressourcen zur Verfügung stellt, um alle Bedürfnisse abzudecken. Bei Enterprises sieht das etwas anders aus: Die Infrastruktur ist hier intern schon vorhanden. Außerdem lässt sich die Cloud aus Datenschutz- oder Compliance-Gründen oft gar nicht richtig nutzen.

Um einen Continuous-Delivery-Prozess sicherzustellen, müssen sich IT-Umgebungen aber schnell aufbauen lassen. Dafür greifen Unternehmen deshalb zu virtualisierten Serverinfrastrukturen, in denen Rechenleistung ähnlich schnell verfügbar und skalierbar ist wie in einer Cloud-Umgebung - zumindest in der Theorie. Obwohl sich Virtualisierung bereits auf breiter Front etabliert hat, sind die Unternehmensprozesse noch nicht darauf ausgelegt. Weil immer noch viel Handarbeit nötig ist, dauert die Bereitstellung neuer Server mitunter Tage, Wochen oder gar Monate. Erst wenn die Virtualisierungsprozesse vollständig automatisiert werden, stehen neue Ressourcen auch ohne Cloud-Bedarf in Minutenschnelle zur Verfügung.

Flexible und skalierbare NoSQL-Datenbanken

Cloud-Infrastrukturen stellen Startups noch vor weitere Herausforderungen. Die Cloud-Angebote umfassen nur recht einfache, wenig leistungsfähige Server. Gerade bei relationalen Datenbanken gibt es Probleme, da sie für hohe Performance auch entsprechend leistungsfähige Server benötigen. Daher nutzen Startups oft NoSQL-Datenbanken, die große Datenmengen mit einer entsprechend großen Anzahl Server verarbeiten können. Das ist nicht der einzige Vorteil dieser Lösungen: NoSQL-Datenbanken sind auch flexibler und können semi-strukturierte Daten besser verwalten. So lassen sich komplexe Datenstrukturen wie Verträge oder Produktbeschreibungen wesentlich besser abbilden.

Enterprises hingegen haben relationale Datenbanken im Einsatz und sich sogar oft auf ein bestimmtes Produkt strategisch festgelegt. Auch ihnen würden NoSQL-Datenbanken durch die preisgünstigere Skalierung und größere Flexibilität Vorteile bringen. Enterprises erschließen sich ständig neue Datenquellen. So werden auch sie in Zukunft alleine schon wegen der Datenflut keine Wahl haben, NoSQL-Technologien neben den etablierten relationalen Datenbanken zu nutzen. In diesem Kontext spricht man auch von polyglotter Persistenz.

Mit polyglotter Persistenz ist es möglich, Best-of-Breed-Lösungen für die verschiedenen Probleme bei der Datenspeicherung zu nutzen. NoSQL-Technologie kann der Schritt hin zur Etablierung kosteneffizienter Lösungen sein. Dadurch würden sich auch qualitative Unterschiede ergeben: Statt die Daten beispielsweise für ein Data Warehouse zu filtern und zu aggregieren, können "echte" Rohdaten gespeichert und auch verarbeitet werden. Damit wären nahezu beliebige Auswertungen möglich. Mit diesem "Big Data"-Ansatz lassen sich schließlich auch Geschäftsentscheidungen optimieren.

Fazit

Enterprises können in unterschiedlichen Settings Vorteile mit den Technologien und Ansätzen realisieren, die Startups schon lange verwenden. Die enge Kooperation von Entwicklung und Betrieb durch DevOps ist zumindest für die Produktionseinführung zwar sowieso notwendig - auf breiter Front wegen der komplett anderen Organisation aber nur schwer umsetzbar. Technische Verfahren wie Continuous Delivery können auf jeden Fall adaptiert werden. Während Startups vor allem von dem Time-to-Market profitieren, ist der Hauptvorteil für Enterprises das geringere Risiko bei der Produktionseinführung und der deutlich vereinfachte Aufbau von Testumgebungen. Das kommt letztendlich der Produktivität bei der Entwicklung zu Gute. Neue Datenbanken aus dem NoSQL-Bereich können auch in Enterprises die vorhandenen Lösungen gerade dort ergänzen, wo große Datenmengen oder Flexibilität benötigt werden.

Durch diverse Technologien, die sich bei Startups schon lange bewährt haben, lassen sich also auch in der Enterprise-IT erhebliche Vorteile realisieren. (sh)