25 PoP ativos e 24 franquias abertas

Ao mesmo tempo que o CERS comemora 24 franquias abertas, eu estou comemorando 25 PoP's da Akamai instalados e funcionando.

Um PoP é um servidor que fica o mais próximo possível de quem acessa o sistema, a fim de entregar o conteúdo o mais rápido possível e com a melhor performance possível.

Quando o CERS começou a pensar em Franquias, o que mais causou preocupações é os alunos quem aluga uma cabine para assistir as aulas e não ter problemas de travamento. Então após várias reuniões e idéias, eu sugeri que cada uma das franquias possuíssem um PoP próprio para fazer cache dos vídeos do CERS, que hoje estão hospedados na Akamai.

Os desafios

Servidor rápido e simples

O primeiro projeto foi feito usando o Wowza, que como sou certificado nele era a opção mais simples, esbarrou no licenciamento que ficou um pouco caro a longo prazo. Então partimos para o NGINX que nós programamos em parceria com um especialista Russo e este NGINX possui dezenas de recursos exclusivos para trazer muita segurança aos vídeos ali salvos e também rápido acesso aos alunos.

Segurança e desempenho

Para evitar que estes caches possam ser pirateados (imagina roubar um servidor com estes vídeos), os vídeo são partidos em muitos pedaços e salvos de uma aleatória que não é possível, manualmente, pegar todos os pedaços do vídeo e junta-los. E só quem tem a regra para saber aonde cada pedaço esta é o NGINX.

A primeira opção testada foi a criptografia do HD, porém o tempo de leitura do disco ficou completamente fora de qualquer tempo aceitável. Então resolvemos fazer o NGINX dividir o vídeos em pequenas partes e salvar cada parte em um local calculado por um código que só o NGINX saberá aonde esta.

No final, a escolha do NGINX ajudou em mas um item de segurança, visto que com Java seria muito simples descompilar o código e ver como foi desenvolvido o sistema de salvamento e restore dos arquivos.

Em testes do NGINX original com o nosso, o nosso ficou apenas 2% mais lento, o que é menor que a latência de rede, caso o aluno fosse assistir da Akamai.

Acesso remoto

Este foi outro grande problema. Como a maioria das franquias não teria IP Fixo e gerar NO-IP para cada um seria muito complicado. E segurança ao ponto de deixar SSH aberto, e muitos outros itens.

Então foi realizado duas ações:

1) acesso remoto

Foi adquirido um software de aceso remoto e usamos servidorUbuntu com GNOME para poder acessar remotamente. Este é mais lento que SSH porém é uma forma de acesso em caso de emergência, caso algo de errado aconteça.

2) execução remota

Criei um sistema, aonde todos os comandos que eu executo no meu PoP, se replica automaticamente em todos os demais PoP espalhados pelo Brasil

SSL

Este nós descobrimos apenas quando estávamos implantando o servidor na franquia de Salvador, que foi a primeira, e quando fomos acessar o site deu erro que não podia carregar dados inseguro. Porém não havia como nós usarmos a mesma chave SSL da Akamai. Então a solução foi criar o sub-domínio apontando para o IP interno e assim podiámos colocar SSL nele. Funcionou muito bem e conseguimos a maquina ligada antes da inauguração.

E por fim

O projeto funcionou muito melhor que o esperado e além do desempenho que o aluno tem ao assistir as aulas dentro das salas da franquia, o CERS economiza em trafego que não precisa ser pago a Akamai.

Fique por dentro de nossas novidades, ideias e atualizações