EXARING AG: Entwicklung eines skalierbaren Microservice Backends für den Streaming Service waipu.tv

Dass lineares Fernsehen und Innovation ganz und gar keine Gegensätze sind, zeigt die EXARING AG, die mit Unterstützung der inovex GmbH den Streaming-Dienst waipu.tv entwickelt hat.

Märchen beginnen mit „Es war einmal“, Success Stories mit einer Vision. In diesem Fall mit der Vision der EXARING AG, einen Glasfaserring mit sehr großer digitaler Bandbreite für eine innovative TV-Plattform zu nutzen. Ein Team von erfahrenen Führungskräften aus dem TV-Business hatte die Idee, auf dieser exklusiven Breitband-Infrastruktur die führende IP-TV-Marke zu errichten, die digitales Fernsehen zu einem immer digitaleren Zuschauer bringt und gleichzeitig den TV-Werbemarkt transformiert. Denn digitales, personalisiertes Fernsehen bietet natürlich die Möglichkeit, viel präziser, unaufdringlicher und interaktiver zu werben als das klassische TV-Broadcasting. Dabei sollen die Smartphones der Anwender als smarte Fernbedienungen eine große Rolle spielen, denn mit keinem anderen digitalen Gerät wird so persönlich umgegangen wie mit diesen mobilen Devices.

inovex hatte die Möglichkeit, die Entwicklung von waipu.tv von Anfang an zu begleiten, und war dabei maßgeblich an der Konzeption und Umsetzung des Backends, der mobilen Anwendungen für Android und iOS sowie der Organisation der Entwicklerteams selbst beteiligt.

Skalierbar dank Microservices

Einen neuartigen, auf Millionen Nutzer ausgelegten Streaming-Service von Grund auf aufzubauen stellt eine große Herausforderung dar, bietet aber auch die Möglichkeit, modernste Architekturen und Entwicklungsmethoden in der Praxis anzuwenden. Diese Möglichkeit nahm inovex wahr, als es darum ging, gemeinsam mit EXARING das Backend von waipu.tv zu entwerfen und umzusetzen.

Da waipu.tv als neuer Player einen bestehenden Markt betrat, auf dem es schnell wachsen sollte, war Skalierbarkeit eine der ersten Anforderungen an das noch junge Projekt. Um diese zu gewährleisten, setzte man auf eine Microservice-Architektur, also kleine, in sich geschlossene und miteinander verbundene Dienste, die flexibel repliziert und ausgetauscht werden können.

Das Backend besteht aus etwa 30 solcher Dienste. Diese umfassen unter anderem das Video-Streaming, die elektronische Programmvorschau (EPG), die Aufnahmefunktion sowie die Nutzeranmeldung und -verwaltung. Aber auch nach außen hin nicht sichtbare Funktionen wie die Generierung der Vorschaubilder aus Videos und die Rechteverwaltung nach Abo-Modell sind als einzelne Services realisiert: Es wird also grundsätzlich zwischen solchen Diensten unterschieden, die per API oder GUI ansprechbar sind, und solchen, die der internen Verarbeitung dienen.

Neben der Möglichkeit, bedarfsgerecht mit der Nutzerzahl zu wachsen, erlauben es Microservices auch, schnell auf Lastspitzen zu reagieren. Denn solche Lastspitzen betreffen in der Regel nur einzelne Aspekte der Gesamtarchitektur, etwa die Registrierung von Nutzern während laufender Werbekampagnen zur Neukundengewinnung oder den Krimi-Stream am Sonntagabend. Beide Dienste laufen – ebenso wie die Programmvorschau (EPG), die Aufnahmefunktion und viele weitere – unabhängig und redundant, sodass im Falle des Ausfalls einzelner Services ohne Verzögerung Ersatz geschaffen werden kann und Lastspitzen durch das Hinzufügen weiterer Instanzen abgefangen werden können. Sogar die Datenpersistenz verwaltet jeder Service selbst, ganz ohne Abhängigkeit von einem zentralen Datenbanksystem. So stellt die starke Belastung einzelner Dienste keinerlei Gefahr für die Stabilität des gesamten Systems dar.

Um eine solche Architektur zu ermöglichen, spielte die klare Abgrenzung einzelner Dienste sowie die Definition ihrer Schnittstellen eine zentrale Rolle.

Doch nicht nur hinsichtlich ihrer Stabilität und Skalierbarkeit zeichnen sich Microservices aus. Durch das agile Projektmanagement und den Einsatz kleiner Entwickler-Teams (siehe dazu die entsprechende Case Study (Verlinkung)) entfällt die Beschäftigung eines dedizierten Operations-Teams. So liegt die Pflege der einzelnen Dienste in den Händen derer, die sie auch entworfen und entwickelt haben – ganz ohne Reibungsverluste.

100 % Cloud, 100 % in Deutschland

Eine Architekturskizze des Microservice Backends

Einen wichtigen Pfeiler der Flexibilität und Stabilität von waipu.tv stellt die komplette Auslagerung auf Amazons Web Services (AWS) dar. Die Realisierung der Services mit EC2-Instanzen ermöglicht eine schnelle Skalierung, während die Verwendung von Functions as a Service (AWS Lambda) als kleinste funktionelle Einheit die Microservice-Architektur weiter vereinfacht.

Um den Datenschutzansprüchen der Zielgruppe gerecht zu werden, erfolgt die komplette Datenhaltung und -verarbeitung außerdem nur in Amazons Rechenzentrum in Frankfurt.

Modern und Polyglott

Die Services selbst setzen auf die Java Virtual Machine (JVM) und sind zu einem guten Teil in Java geschrieben, um eine allgemeine, leicht lesbare Codebasis zu schaffen. Die JVM ermöglicht allerdings auch die nahtlose Verwendung des Lisp-Dialekts Clojure, der in diesem Projekt zum Einsatz kommt. Im Gegensatz zum objektorientierten Java fördert Clojure einen funktionalen Stil mit kurzem und prägnantem Code, der deutlich schlankere Konstrukte zulässt. Zudem bietet sich Clojure für die interaktive Entwicklung in einer REPL (Read-Eval-Print Loop) an, mit der neue Features schneller getestet werden können als durch das aufwändige Kompilieren des kompletten Codes, das in vielen Java-Programmierumgebungen gängig ist. Für die Verwendung in einer Microservice-Architektur spricht außerdem die unkomplizierte Implementierung von Nebenläufigkeit und Statefulness, die Clojure ermöglicht.

Für die Entwicklung der Services schuf das Team von EXARING und inovex eine stark automatisierte Pipeline. Diese ermöglicht das programmatische Deployment von Features auf das Development-System, während die Veröffentlichung auf den Preview- und Produktionssystemen aus Qualitätssicherungsgründen noch manuell angestoßen wird. Unter diesem menschlichen Eingriff leidet die Entwicklungsgeschwindigkeit allerdings keinesfalls, ist doch durchweg pro Tag mindestens eine Veröffentlichung auf das Produktivsystem angesetzt.

Während die Pipeline momentan auf GitLab CI basiert und Terraform zur Verwaltung verwendet wird, ist für die nahe Zukunft die Umstellung der Services auf Docker mit Kubernetes-Orchestrierung vorgesehen.

Fazit

Das ganze Projekt waipu.tv ist von vorausschauender Planung geprägt: Vom Verlegen der eigenen Glasfaserinfrastruktur bis hin zur Architektur des fertigen Produkts. Mit inovex fand EXARING den passenden Partner, der dank seiner jahrelangen Erfahrung mit verschiedensten Technologien eine bedarfsgerechte Entwicklung ermöglichte. So war der Ressourcenbedarf vom Minimum Viable Product bis zum Rollout der Apps gleichzeitig überschaubar und doch auch auf sprunghaftes Wachstum vorbereitet.

Kerntechnologien

  • Java
  • Clojure
  • Amazon Web Services

    • EC2
    • Lambda
    • RDS
    • DynamoDB
    • S3
    • Kinesis
    • SQS

  • ElastiCache
  • GitLab CI
  • Terraform
  • Lucene
  • Prometheus
  • Grafana

Kennzahlen

  • 30+ Services
  • 60+ EC2-Instanzen
  • 20 Mio./2 TByte EPG-Bilder
  • 50+ Git-Repositories
  • 9 Redis-Instanzen (AWS ElastiCache)
  • 7 PostgreSQL-Instanzen (AWS RDS)

Sie haben Fragen oder möchten zu diesem Thema beraten werden?

Dann rufen Sie uns an unter +49 (0)721 619 021-0 oder schreiben Sie uns eine E-Mail. Wir freuen uns auf Ihre Nachricht!

Weitere Themen:

Tobias Joch

Ich freue mich auf Ihre Nachricht!

Tobias Joch

Head of Application Development

inovex Blog

Tech-Artikel im inovex Blog

Unsere Mitarbeiter schreiben regelmäßig Fachbeiträge in unserem Blog. Aktuelle Themen: Neural Networks, Cloud, Elasticsearch, Docker, Angular 2, Project Tango uvm.

Zum inovex Blog

Organisation

Research & Development bei inovex

Im „inovex Lab“ kümmern wir uns systematisch um die Früherkennung, Erprobung und Bewertung neuer Technologien, IT-Trends und Anwendungsmöglichkeiten in allen Themenfeldern der Digitalen Transformation.

Mehr lesen

inovex Content Pool

Alle Tech-Vorträge im Content Pool

Hier geht's zu den Vorträgen

Über uns

Unsere Technologie-Partner

Wir kooperieren mit Partnern, die unseren Kunden einen echten Mehrwert bieten: Amazon Web Services, Cloudera, Confluent, Elastic, Hortonworks, MapR, Microsoft, Quobyte und SoftBank Robotics.

Mehr Infos

Case Studies

Case Study Hussel GmbH: Migration des Data Warehouse auf SQL Server 2014

Case Study jetzt lesen