EXARING AG: Development of a scalable microservice backend for the waipu.tv streaming service

EXARING AG proves that linear TV and innovation are by no means mutually exclusive. The company worked with inovex GmbH to develop the waipu.tv streaming service.

Fairytales begin with “Once upon a time”; success stories begin with a vision. In this case, the vision belonged to EXARING AG and involved using a fibre-optic ring with a very large digital bandwidth to host an innovative TV platform. A team of experienced leaders from the TV industry came up with the idea of using this exclusive broadband infrastructure to set up the leading IPTV brand. The aim was to bring digital TV to an increasingly digital audience, while simultaneously transforming the TV advertising market. Digital, personalised TV naturally allows advertisers to advertise more precisely, less intrusively, and more interactively than traditional broadcast television. The plan involves using customers’ smartphones as smart remote controls—after all, there is no other digital device with which users interact as often and as intimately. 

inovex was able to get in on the ground at the development of waipu.tv, and was significantly involved in the design and implementation of the backend and the mobile applications for Android and iOS, as well as in assembling the development teams themselves.

Microservices ensure scalability

Developing a new, multi-million-user streaming service from the ground up is a massive challenge. It is also, however, the perfect opportunity to put the latest architectures and development methods into practice. inovex made the most of this opportunity when the company collaborated with EXARING to design and implement the waipu.tv backend. 

As waipu.tv was a new player entering an existing market (and expecting rapid growth), scalability was one of the fledgling project’s first requirements. In order to ensure this, the project was designed around a microservices architecture, i.e. one comprising small, standalone, linked services which can be flexibly replicated and swapped out. 

The backend comprises around thirty such services. These include video streaming, the electronic program guide (EPG) and the recording function, as well as user registration and administration. But even functions which are not externally visible, such as the generation of video preview images or rights management for the various subscription models, are implemented as standalone services: There is, therefore, a fundamental distinction between the types of service which are accessed via an API or GUI and those which are used exclusively for internal processing. 

In addition to allowing systems to grow with user numbers and requirements, microservices also enable them to react quickly to spikes in load. Major load spikes usually affect only certain aspects of the overall architecture: user registration will spike, for example, during active campaigns to attract new customers, while usage is heavy during the Sunday evening crime shows. Both services run – as do the program guide (EPG), the recording function and many other – independently and redundantly. This ensures that, if one service fails, the system can immediately switch over to a replacement, while usage spikes can be handled by adding additional instances. Each service even manages its own data persistence, rendering it completely independent of any central database system. This means that heavy loads on individual services pose no problems for the stability of the system as a whole.

In creating this type of architecture, the clear delineation of individual services and the definition of their interfaces play central roles. 

Microservices don’t just distinguish themselves in terms of their stability and scalability. Agile project management and the use of small development teams eliminate the need for a dedicated operations team. Maintaining the individual services is thus the responsibility of the people who designed and developed them, a concept that facilitates smooth and efficient operations. 

100 % Cloud, 100 % in Germany

An architectural sketch of the microservice backend

One important pillar underlying waipu.tv’s flexibility and stability is the complete outsourcing to Amazon Web Services (AWS). The implementation of the services using EC2 instances enables rapid scaling, whereas the use of Functions as a Service (AWS Lambda) as the smallest functional unit further simplifies the microservices architecture.

In order to comply with the target group’s data protection requirements, all data is stored and processed only at Amazon’s data centre in Frankfurt in Germany.

State-of-the-art, polyglot architecture

The services themselves are based on Java Virtual Machine (JVM) and are, to a large extent, written in Java in order to create a universal, easily readable code basis. The JVM also enables the seamless use of Clojure, the Lisp dialect which is used in this project. Unlike object-oriented Java, Clojure encourages a functional style with short, concise code, which permits considerably leaner structures. In addition, Clojure lends itself to interactive development in a REPL (Read-Eval-Print Loop), which enables new features to be more rapidly tested than they can through laborious compiling of the entire code, which is the case in many Java programming environments. Also lending itself to the use of a microservices architecture is the easy implementation of concurrency and statefulness enabled by Clojure.

For the development of the services, the EXARING team and inovex created a heavily automated pipeline. This enables the program-based deployment of features on the development system. In order to maintain quality control, however, publication to the preview and productive systems is still triggered manually. This human intervention does not, however, cause any problems with the development speed, as data is published to the productive system at least once a day.

Whereas the pipeline is currently based on GitLab CI and administered using Terraform, the company plans to move the services to Docker with Kubernetes orchestration in the near future.

Conclusion

The entire waipu.tv project is characterised by forward-thinking planning, from laying the dedicated fibre optic infrastructure right through to the architecture of the finished product. In inovex, EXARING found the perfect partner. inovex’s years of experience with the most diverse technologies enabled the project to be perfectly tailored to EXARING’s requirements. This meant that the resources required for the project, from the Minimum Viable Product stage to the rollout of the app, were both manageable and capable of handling sudden leaps in growth.

Core technologies

  • Java
  • Clojure
  • Amazon Web Services

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

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

Key Figures

  • 30+ Services
  • 60+ EC2 instances
  • 20 million/2 terabytes of EPG images
  • 50+ Git Repositories
  • 9 Redis instances (AWS ElastiCache)
  • 7 PostgreSQL instances (AWS RDS)

Would you like a consultation on this subject?

Call us on +49 (0)721 619 021-0 or send us an E-Mail. We look forward to advising you.

Tobias Joch

I look forward to hearing from you!

Tobias Joch

Head of Application Development

About us

Our Technology Partners

inovex cooperates with a range of selected technology partners to offer our customers genuine added value: Amazon Web Services, Cloudera, Confluent, Elastic, e-shelter, Hortonworks, MapR, Microsoft, Quobyte and SoftBank Robotics.

Read more

inovex Blog

Tech articles in the inovex Blog

Our employees regularly write technical articles in our blog. Current topics: Neural Networks, Cloud, Elasticsearch, Docker, Angular 2, Project Tango and much more.

Read more