Hinter den Kulissen unserer Entwicklungsabteilung: Google Cloud-Adoption bei OBI4wan

Einer der wichtigsten Aspekte der Softwareentwicklung ist das Testen. Dies trifft besonders zu, wenn Sie Software für Tausende von Kunden entwickeln, die täglich mit mehreren Nutzern in einer Umgebung wie OBI Engage oder OBI Brand Monitor arbeiten. Ich sprach mit Matt Chapman, Backend Software Engineer bei OBI4wan. Er gewährt Ihnen einen exklusiven Einblick in seine Arbeit in der Softwareentwicklung und erzählt Ihnen alles über eines der wichtigsten Projekte der letzten Zeit: die Verbesserung unserer Testumgebung.

Kannst Du uns erzählen, was das Ziel der Google Cloud-Adoption bei OBI4wan war?

Historisch gesehen gab es immer schon Umgebungen für Integrations,- und Akzeptanztests. Wir strebten danach, unsere Produktionssysteme komplett replizieren zu können. Sie sollten isoliert und reproduzierbar sein, damit die Umgebungen im Bedarfsfall jederzeit abgebrochen und neu erstellt werden konnten. Testumgebungen sind von essenzieller Bedeutung für unsere Teams. Auf diese Weise können sie ihre Arbeit sicher testen, ohne einander oder unsere Kunden zu beeinträchtigen.

Eine Staging-Umgebung ist eine Umgebung, in der wir unsere eigenen Softwareprodukte laufen lassen und die unabhängig ist von dem Produkt, das die Kunden nutzen. Wir führen Änderungen zunächst in dieser isolierten Umgebung durch, bevor wir sie an unsere Kunden freigeben.

Ohne Staging-Umgebung wären wir dazu gezwungen, Tests in der gleichen Umgebung durchzuführen, in der auch unsere Kunden ihr Produkt benutzen. Wie Sie sich vorstellen können, würden Kunden Fehler als enorm störend empfinden. Darum ist es wichtig, risikoreiche oder experimentelle Änderungen zunächst in einer Umgebung zu testen, in der es unmöglich ist, unsere Kunden, oder die Kunden unserer Kunden, zu beeinflussen. Die Existenz dieser Staging-Umgebung bietet unseren Teams einen Raum, in dem sie ungestört experimentieren (und Fehler machen) können.

Inwiefern unterstützt die Nutzung von Cloud-Technologien OBI4wan?

Cloud Computing ist die on-demand Verfügbarkeit von Computersystemen, insbesondere Datensicherung und Rechnerstärke, ohne direkte, aktive Verwaltung des Benutzers.

Wenn man mal genau darüber nachdenkt, ist „die Cloud” ein rein technischer Begriff für den Computer eines anderen. OBI4wan verwaltet eine enorme Menge physischer Computer Hardware, um Produkte auszuführen und diese Verwaltung erfordert viel Zeit und Einsatz von unserer Entwicklungsabteilung.

Was Unternehmen wie Google und Amazon Web Services anbieten, sind im Grunde on-demand, á la carte Computer Ressourcen. Sie stellen außerdem Hardware, Infrastruktur und Software bereit, um diese Ressourcen zu verwalten. Die Software, die wir ausführen, ist und bleibt selbstverständlich unsere Verantwortlichkeit, aber wir können von der bestehenden Expertise dieser Unternehmen dadurch profitieren, dass sie uns einen Großteil der operationellen Arbeitsbelastung abnehmen. Das lässt uns viel mehr Zeit für die Entwicklung neuer Funktionen, um auf die Bedürfnisse unserer Kunden zu reagieren. Zudem spart es wertvolle Zeit für Verwaltung und Wartung, wie z.B. die Kontrolle und der Austausch von Hardware oder das Aktualisieren von Software Dritter.

Auch für OBI4wan lassen sich dadurch große Vorteile erzielen, insbesondere nun, da wir über die Benelux hinaus expandieren. Unternehmen im Bereich Cloud Computing stellen diese Ressourcen natürlich weltweit zur Verfügung. Das bedeutet für uns auch, dass wir unseren Kunden immer und zu jeder Zeit eine erstklassige Erfahrung bieten können, unabhängig davon, wo sie sich befinden. Wenn ein Kunden beispielsweise darum bittet, seine Daten im Rahmen eines Audits oder laut gesetzlicher Bestimmungen an einem bestimmten Ort zu speichern, dann ist es für uns von immensem Vorteil, um unsere Systeme in „der Cloud” zu haben.

OBI4wan ist schon seit langer Zeit Kunde der Google Cloud Platform (GCP), und zwar mit unserer sehr erfolgreichen OBI Bots Platform, die bereits auf Google Services und Infrastruktur läuft. Mit einer beachtlichen Menge von Cloud-native Entwicklungen auf unserer Roadmap (Entwicklungsplan), und der Verschiebung von unseren on-premise workloads zur Cloud, war die Erstellung neuer Testumgebungen für OBI Engage (die stets on-premise ausgeführt wird) ein ausgezeichneter Testgarten für zukünftige Projekte. Es war dann auch nur logisch, dass diese neuen Systeme auch auf GCP ausgeführt werden sollten.

Wie ist euch das Projekt gelungen?

Basierend auf den Erfahrungen, die wir mit unseren bestehenden on-premise Testumgebungen gesammelt haben, wussten wir bereits sehr genau, wie wir diese neuen Umgebungen in der Google Cloud-Plattform bauen wollten. Reproduzierbarkeit war der wichtigste Aspekt: es würde enorm wertvoll sein, etwas direkt neu aufbauen zu können, wenn es defekt ist, oder etwas zum Zwecke der Kapazitätserhöhung duplizieren zu können. Es war auch erforderlich geworden, die Implementierung neuer Softwareversionen automatisiert durchführen zu können; sogar unsere jüngsten Entwickler sollten in der Lage sein, Änderungen mit Hilfe einiger weniger Klicks durchzuführen.

Um dieses Ziel zu realisieren, arbeiten wir mit Binx.io zusammen, einem Beratungsunternehmen, das sich darauf spezialisiert hat, Unternehmen bei der Einführung von cloud-basierten Plattformen und Technologien zu unterstützen. Durch diese Zusammenarbeit ist es gelungen, unsere neuen Staging-Umgebungen in der Google Cloud-Plattform zu planen und zu erstellen. Terraform benutzten wir bereits zur Speicherung unserer gesamten Infrastruktur in Codeform. Das bedeutet, dass auch unsere neuen Umgebungen als Code definiert werden können, anstelle einer Liste mit Instruktionen, die von einem Menschen manuell erledigt werden müssen. Dadurch sind wir in der Lage, Veränderungen in allen Umgebungen gleichzeitig zu automatisieren. Außerdem können für Veränderungen in der Infrastruktur die gleichen Kontrollprozesse für Versionen und Review angewendet werden wie für unsere anderen Codes. Anstatt den Systemen zu sagen, was sie tun müssen, sagen wir ihnen, wie die Dinge aussehen sollen, wenn sie fertig sind – und Google Cloud-Plattform erledigt dann den Rest!

Eine komplett neue, saubere Umgebung lässt sich nun anhand einiger Reihen Code erstellen und eine Aufgabe, die zuvor einige Tagen gedauert hätte, ist nun bis auf ein Minimum an manueller Arbeit, vollständig automatisiert. Zum Schutz unserer Systeme führt Google Cloud-Plattform sämtliche Zugangskontrollen und Authentifizierungen aus, so dass nur die Entwickler von OBI4wan Zugang zu diesen Systemen haben, sie benutzen oder Veränderungen durchführen können. Die Tatsache, dass wir GSuite intern für unsere Mitarbeiter-Accounts benutzen bedeutet, dass wir genau dieselben Referenzen nutzen können, um den Zugang zu den Daten und den Code, der eingesetzt wird, zu kontrollieren.

Wie nutzen die Entwickler bei OBI4wan diese neuen Testumgebungen?

Wir haben unsere bestehende Aufstellung von Azure Pipelines, die für das automatische Bauen und Testen benutzt wird, erweitert und können Implementationen in Staging-Umgebungen in der Google Cloud-Plattform nun mit nur einem Mausklick durchführen. Neue Versionen unserer Software werden automatisch generiert und getestet, wenn Entwickler ihre Änderungen zur Beurteilung an ihre Kollegen vorlegen. Nun können diese Versionen schnell und automatisch in weniger als einer Minute in jeder beliebigen Umgebung eingesetzt werden. Das wirkt sich positiv auf die Zeitkosten aus, die für das Testen von Änderungen anfallen und schafft Zeitressourcen für die Sicherstellung, dass die Qualität unserer Arbeit so hochwertig wie möglich ist.

Sobald die neue Version unserer Software implementiert ist, können sie ganz einfach Ihren Browser nutzen, um diese zu kontrollieren und sie mit ihren Kollegen zu teilen.

Für die Zukunft wäre es wünschenswert, diese 1 Klick-Funktionalität in unsere kundenorientierten Systeme zu übernehmen, denn die konstante Lieferung von Software ist eins der Ziele, das wir anstreben. Ich möchte einen Punkt erreichen, an dem wir unsere Kunden mehrere Male per Tag, 5 Tage die Woche, nahtlos und ohne jegliche Störung, mit Updates versorgen!

Was ist das nächste Projekt auf der Roadmap der Entwicklungsabteilung?

Wie ich bereits gesagt habe – dies war lediglich das erste von vielen Projekten, die auf unserer Roadmap für dieses Jahr stehen. OBI4wan setzt auf „All in“ in punkto Cloud-Technologien. Die Vorteile, die uns die Nutzung dieser Art von Technologien bieten, sind enorm, und werden uns dabei helfen, die Produkte und Funktionen, die unsere Kunden benötigen, in einem noch viel schnelleren Tempo bereitzustellen.

Es gibt viele Hilfsprogramme und Dienste, die wir intern bei OBI4wan zu einem bestimmten Ziel laufen lassen, ob es sich nun um die Lieferung von Funktionen wie Echtzeitmeldungen in Ihrem Browser handelt, Suchfunktionen oder die Versendung von Kundenzufriedenheitsumfragen. Durch den Transfer dieser Services in die Cloud, können wir von denselben Vorteilen profitieren, die sich durch die Verschiebung unserer Staging-Umgebungen in die Cloud ergeben: schnellere Implementierung von Änderungen, geringere operationelle Arbeitsbelastung und in der Konsequenz ein qualitativ höheres Produkt.

Auch im Development-Team von OBI4wan arbeiten?

Wir sind immer auf der Suche nach neuen Talenten! Interesse an einer Funktion? Besuche unsere Stellenangebote oder schicke eine offene Bewerbung an clariva@obi4wan.com.

Recent Posts