Case Study CBC Replatforming

CBC:

Umbau und Weiterentwicklung der bestehenden Video-on-Demand-Plattform TVNOW

CBC, das gemeinsame Produktions- und Technik-/IT-Unternehmen der Mediengruppe RTL Deutschland, betreut unterschiedliche Formate der Mediengruppe, unter anderem die Sender RTL, VOX, NITRO, n-tv, NOW! und GEO Television. Im gemeinsamen Projekt mit inovex steht das Produkt TVNOW im Fokus. Es soll eine sichere und innovative Plattform für die kommenden Herausforderungen im TV/Entertainment-Markt entstehen. Ziel ist es, die Plattform in die Cloud zu verlagern, die Themen und Teams neu zu strukturieren und auf eine agile Arbeitsweise umzustellen.

CBC-Logo

Ausgangssituation und Zielvision

Ursprünglich wurde TVNOW von RTL im eigenen Rechenzentrum betrieben. Die Plattform sollte jedoch innovativer und ausfallsicherer weiterentwickelt werden und neue Features schneller bereitstellen können.

Die »RZ only«-Strategie ermöglichte keine elastische Skalierung und eine Bereitstellung neuer Services war stets mit langwierigen Abstimmung- und Freigabeprozessen verbunden. Es gab nur einige, wenige Know-How-Träger und die klare Trennung von Entwicklung und Betrieb erschwerte zusätzlich die Kommunikation.

Die neue Strategie sah ein Replatforming mit dem externen Cloud-Partner, AWS, vor. Dadurch waren auch weitere Veränderungen der Arbeitsprozesse nötig. Die Zielvision war ein Setup mit crossfunktionalen und autonomen Teams, die selbstständig die Entwicklung ihres Aufgabenbereichs vorantreiben können.

Dieser sogenannte „DevOps“-Gedanke beschreibt im eigentlichen Sinne eine Unternehmenskultur, die – frei von Hierarchien und Silodenken – eine effektive Zusammenarbeit von Entwicklung und Betrieb im Fokus hat, mit dem Ziel, stabile, hochwertige Software schnell umzusetzen.

Diese Änderungen haben auch ein Umdenken in den Prozessen und Teams nötig gemacht: Die Fachlichkeiten der Teams wurden zusammengefasst und anschließend die Plattform daran ausgerichtet. Zu Projektstart wurden unter anderem technische Teams in fachliche Teams wie z. B. Content, Payment oder Metadata überführt. Zudem dienen die Product Owner als Ansprechpartner:innen, die die Expertise in ihren jeweiligen Fachlichkeiten inne haben.

Ebenso wurden neue Programmiersprachen eingeführt – beispielsweise Kotlin im Backend und TypeScript im Frontend.

Die neue, nachhaltige Strategie ist darauf ausgelegt, auch nach mehreren Jahren noch verständlich und erweiterbar zu sein.

Teamstruktur und veränderte Arbeitskultur

Bei der Gründung von TVNOW (früher RTL NOW) vor 12 Jahren hat ein kleines Team mit der Entwicklung und dem Betrieb der Plattform begonnen. Im Jahr 2018, zu Beginn des Replatformings, ist die Anzahl der Teammitglieder hochskaliert: heute gibt es über 10 Teams mit mindestens fünf Mitarbeitern pro Team. Neben den Teams, welche die Schnittstellen für die Endkunden betreuen (Apps und Web), gibt es auch domänenspezifische Teams, wie z. B. Data, Content und Customer.

Durch die Umstrukturierung der Entwicklung in eine Großzahl crossfunktionaler Teams mit dedizierten Themenbereichen haben sich die Arbeitsweise und die Kultur verändert. Dies hat zu einer einschneidenden Veränderung innerhalb des gesamten Produktes geführt. Zu diesem Prozess, der ungefähr ein Jahr dauerte, gehörten die Sensibilisierung für die neue Teamkultur, die Integration des Managements und die praktische Veränderung der Zusammenarbeit.

Dafür wurde auf agile Methoden zurückgegriffen: Durch skaliertes Scrum über alle Teams hinweg wurde die Anpassungs- und Innovationsfähigkeit enorm gesteigert.

Mit inovex haben wir einen hervorragenden Partner gefunden, um unser System in die Cloud zu verlagern und nachhaltig zu verbessern. Mit Hilfe der Expert:innen von inovex waren wir in der Lage, unsere Video-on-Demand-Plattform innovativ und ausfallsicherer weiterzuentwickeln. Gleichzeitig haben sie in unserer Teamstruktur einen Wandel unterstützt, der alte Silos aufgebrochen und eine agile, domänenübergreifende Zusammenarbeit ermöglicht hat.

Christian Masjosthusmann

Senior Chapter Lead Native, CBC

Die Technik dahinter – Migrationsstrategie

Die TVNOW Apps (Android, iOS, FireTV etc.), das dahinterliegende System, der Webplayer und der Smart TV Client stellen verschiedene Anforderungen an die zugrunde liegende Architektur: So mussten unter anderem das Subscription Management und die Payment-Funktion für Abonnements neu implementiert werden. Gleichzeitig muss das System für Spitzenlastzahlen ausgelegt sein und problemlos funktionen, wenn pro Tag mehrere Deployments der Entwicklungsteams in die Produktionsumgebung einfließen. Voraussetzung dafür ist ein starker Fokus auf die Resilienz der einzelnen Systeme und die Etablierung von Fallback-Möglichkeiten, um dem Endkunden im Falle einer internen Störung weiterhin alle Funktionalität bieten zu können.

All das musste bei der Migrationsstrategie mit berücksichtigt werden.
Der erste Schritt bestand in der Umstellung der Auslieferung auf Standardmechanismen, wie Docker Container und AWS ECS-Fargate Scheduler. Dadurch konnten bereits während der Entwicklung die Vorteile der Cloud genutzt und ein stabiler Parallelbetrieb gewährleistet werden.

Die Strategie sieht vor, Teilaspekte des Bestandssysteme in separaten Services abzubilden und somit den bestehenden Monolithen Stück für Stück zu »entkernen«. Neben der Abbildung der bestehenden Funktionalität muss auch eine Entwicklung neuer Funktionalität gewährleistet sein, damit die Weiterentwicklung des Produkts immer möglich ist. Migration und Weiterentwicklung sollten dabei nicht sequentiell durchgeführt werden, sondern so gut wie möglich parallelisiert.

Technisch bedeutet das einige Neuerungen: von PHP zu Kotlin/Spring Boot, Gitlab CI anstelle von Jenkins, von den Entwicklungsteams selbst verantwortete Deployments via Terraform anstelle von Deployments auf Umgebungen außerhalb des eigenen Verantwortungsbereichs.

Vorteile

inovex konnte einige Best Practices einbringen, die nicht nur die Stabilität des Systems verbessert haben, sondern auch für die Cloud Migration und den Payment-Prozess von Vorteil waren.
Die Plattform bietet nun saubere Schnittstellen, die einzelnen Services sind skalierbar und es können leicht neue Features entwickelt werden. Die Arbeitsweise hat sich ebenfalls verändert: sie ist inkrementell und erzielt dadurch schneller Ergebnisse und Veränderungen.

So können zum Beispiel starke Lastspitzen im TV-Betrieb, die unter anderem bei Fußball-Länderspielen auftreten, viel besser abgefangen werden. Durch die Aufteilung in Services und die Abstraktion in Docker-Container können neue Technologien und Sprachen eingesetzt werden.

Inzwischen sind die Teams komplett für ihre Services verantwortlich, ganz nach dem Motto: You build it, you run it, you love it.

Technologien
  • Kotlin/Spring Boot
  • Terraform
  • Gitlab CI
  • Angular (Universal)
  • TypeScript
  • Docker
  • AWS ECS
  • AWS Lambda

Wie können wir Sie unterstützen?

Tobias Joch

Head of Application Development