O contexto
O PearTV é um produto interno, concebido e financiado pela Wisepear techlab. Não é uma missão de cliente: é o nosso campo de ensaio, e o projeto onde testamos em grande escala as escolhas de arquitetura que propomos depois noutros lugares.
Uma plataforma de streaming completa: agregação de conteúdos, catálogo enriquecido, recomendações e aplicações para móvel, televisão ligada e web.
O desafio
Um serviço de streaming coloca problemas que não se encontram numa aplicação de gestão clássica.
O catálogo nunca é estável. Os conteúdos vêm de mais de quarenta fontes diferentes, cada uma com o seu formato, a sua fiabilidade e as suas interrupções. Uma fonte que muda de estrutura de um dia para o outro não pode deitar abaixo o catálogo inteiro.
Os metadados fazem o produto. Um catálogo sem cartazes, sem sinopses, sem géneros coerentes é inutilizável, seja qual for a qualidade dos fluxos. O trabalho de enriquecimento e de eliminação de duplicados representa uma parte considerável do sistema.
Três suportes, três ergonomias. Uma aplicação de televisão comanda-se com um comando à distância, a três metros do ecrã, sem introdução de texto confortável. Não é a versão ampliada da aplicação móvel: é uma conceção à parte, que tem contudo de assentar na mesma API.
O que fizemos
- Um back-end Django com o catálogo, a agregação, o enriquecimento dos metadados e a personalização, exposto como API REST comum a todos os clientes.
- Uma recolha tolerante a falhas, com cada fonte isolada: uma fonte com problemas degrada o seu próprio âmbito, nunca o serviço.
- Uma aplicação Android e uma aplicação de televisão ligada, concebidas separadamente para as respetivas restrições, sobre a mesma API.
- Uma interface web a completar o conjunto.
- A operação do serviço ao longo do tempo — é ao explorar nós próprios um produto durante quatro anos que se aprende o que custa caro em manutenção e o que não se deve propor a um cliente.
O resultado
Um produto acabado, desenvolvido ao longo de quatro anos, com mais de setecentas entregas acumuladas no back-end e nas aplicações.
O que o PearTV nos traz é difícil de resumir num folheto, mas verifica-se junto dos clientes: concebemos, entregámos e depois operámos um sistema distribuído ao longo do tempo. Sabemos, portanto, quanto custa uma arquitetura depois de estar em produção — e não apenas o que promete no papel.
É também deste projeto que vêm os nossos reflexos quanto a sistemas que dependem de fontes externas: isolar, degradar com elegância e nunca deixar que uma falha externa se torne uma avaria visível para o utilizador.
Imagens