O documento descreve a arquitetura, componentes e desafios de uma rede de distribuição de conteúdo definida por software (SD-CDN), incluindo a aproximação da inteligência aos usuários finais, a otimização de aplicações e a entrega de conteúdo.
2. Azion Technologies
Overview
• Fundada em 2011 (Porto Alegre e Miami)
• Software Defined CDN (Intelligent Edge, Media Delivery, Live Streaming)
• Foco na experiência do usuário (Missão Crítica)
• Atuação Global (Brasil, EUA, Europa e Asia)
4. Agenda
Como melhorar a experiência do usuário?
• Arquitetura
• Componentes
• Desafios
• Perguntas?
5. Arquitetura
O que é uma CDN?
• Mais de 50% do trafego é feito em CDN's (comercial e privada)
• Gen-1: Altamente distribuída, somente cache
• Gen-2: Menos distribuída, somente cache
• Gen-3: Super POP, inteligência na origem
6. Arquitetura
O que é uma SD-CDN?
• Gen-4: CDN com Inteligência nos EDGEs (Azion: Altamente Distribuída)
• Aproxima a inteligência da aplicação ao usuário
• Coisas incríveis!
7. Arquitetura
Desafios de uma SD-CDN
• Melhorar a performance do usuário Mobile, Wi-Fi
e outros dispositivos tradicionais (Latência em last mile)
• Performance? Adapte a aplicação ao usuário
(Rede, SO, Browser, Tecnologia)
8. Arquitetura
Crescimento Mobile
http://www.cisco.com/c/en/us/solutions/collateral/service-provider/visual-networking-index-vni/white_paper_c11-520862.html
9. Arquitetura
Edge Intelligence: Application Acceleration
• Otimização de imagem por dispositivo e tela
(Webp - Chrome/Opera, PNG/JPEG - FF/IE)
• Otimização de rede (Window Scaling, Network Path Optimization)
• Conexão com a origem (Melhores protocolos, Multi-Origem)
• Prefetch do conteúdo
• Performance na entrega de JS, CSS, HTML, JSON, ICO, Fonts
10. Arquitetura
• Otimização para browsers (dns-prefetch, prefetch, prerender)
• API Acceleration
• Push Notification (Websockets)
• Otimização e Terminação TLS
(Session cache/Tickets, OCSP stapling, Forward Secrecy e TLS False Start)
https://wiki.mozilla.org/Security/Server_Side_TLS
Edge Intelligence: Application Acceleration
14. Componentes
Componentes de uma SD-CDN
• Servidores e Rede
• BGP e Anycast
• DNS e Global Load Balancer
• Kernel, Libs e Linguagens
• HTTP Server e Streaming Server
15. Componentes
Servidores e Rede
• Alta capacidade de rede por servidor/rack (40Gbps por server)
• Alta capacidade de processamento por servidor/rack
• Alta densidade de memória por servidor/rack (1TB por server)
• Níveis de cache SSD/RAM
16. Componentes
• Responsável pelo recebimento das rotas (Milhões)
• Tratamento de AS_PATH, Priority, MED, Community
• Hint das operadoras para a CDN
• Software Defined (Exabgp, Bird e Quagga)
BGP
17. Componentes
Anycast
• Anúncio de um mesmo bloco em locais diferentes do mundo
• Usado para reduzir a latência de acesso (DNS e POP’s fallback)
• Software Defined (Exabgp, Bird e Quagga)
18. Componentes
DNS e Global Load Balancer
• Software responsável pelo primeiro direcionamento do usuário
$
dig
www.azion.com
...
;;
ANSWER
SECTION:
www.azion.com.
1963
IN
CNAME
20001a.ph.azioncdn.net.
20001a.ph.azioncdn.net.
120
IN
A
200.175.203.51
20001a.ph.azioncdn.net.
120
IN
A
200.175.203.35
20001a.ph.azioncdn.net.
120
IN
A
200.175.203.43
• Faz o controle da proximidade do usuário e a gestão
da qualidade da entrega (BGP, Rotas manuais ou Geolocalização)
19. Componentes
DNS e Global Load Balancer
• Respostas precisam ser menores que 1ms (Database e Regras de negócio)
• Software Defined (Bind, Powerdns, Golang DEV)
• Suporte a EDNS Client Subnet
+0
(MSB)
+1
(LSB)
+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+
0:
|
OPTION-‐CODE
=
8
(IANA)
|
+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+
2:
|
OPTION-‐LENGTH
(Bytes)
|
+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+
4:
|
FAMILY
=
IPv4(1),
IPv6(2)
|
+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+
6:
|
SOURCE
NETMASK
(Usually
24)
|
SCOPE
NETMASK
|
*
0
on
request,
>0
on
response
+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+
7:
|
ADDRESS...
/
*
needs
match
netmask
+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+-‐-‐-‐+
http://tools.ietf.org/html/draft-vandergaast-dnsop-edns-client-subnet-00
20. Componentes
DNS e Global Load Balancer
• Atualmente 18% (já foi 12%) das consultas DNS vem do Google DNS
ou OpenDNS no Brasil
• Google Public DNS agora detecta automaticamente
o suporte a ECS
http://www.cdnplanet.com/blog/google-dns-opendns-and-cdn-performance/#ms
https://groups.google.com/forum/#!topic/public-dns-announce/67oxFjSLeUM
21. Componentes
Kernel, Libs e Linguagens
• Kernel > 3.7 (IW10, TCP Fast Open, Proportional Rate Reduction)
• OpenSSL (heartbleed, poodle), CK (http://concurrencykit.org/), ZeroRPC, Gevent
• Python, C/C++ e Golang
22. Componentes
HTTP Server
• HTTP/HTTPS 1.0/1.1 (ATS, Nginx, Varnish)
• Cache (RAM, SSD)
• Plugins e regras de negócio (Real Time, Edge Intelligence)
• Novos protocolos: QUIQ (UDP), SPDY/HTTP 2.0 e Websockets
http://trafficserver.apache.org/
23. Componentes
Streaming Server
• RTMP, HLS, MPEG-DASH
• Regras de negócio (Real Time)
• Segurança (Token, DRM) e Filtros (IP, Rede, Geoblock)
• Latência (Configurável)
24. Desafios
Desenvolvimento
• Software Open Source, melhorias, correções de bugs, segurança
e RFCs (ATS, Bind, Linux Kernel, Cassandra)
• Conhecimento em C/C++
• Programação por eventos, lock-free e troubleshoot
• Protótipos e testes de conceito de novas tecnologias
25. Desafios
Testes
• Escrever testes automáticos, garantindo uma boa cobertura
• Testes de regressão
• Dificuldades de simular um ambiente real
• Técnica de replay de conexões (dnsperf, tcpreplay, GOR, web-page-replay, Jmeter)
26. Desafios
Operação e Orquestração
• Monitoração (Complex Event Processing, Alarmes Warning e Critical)
• Automatização de alarmes
• Agentes para configuração e interações Real Time (Monkeys, Alfreds)
• Painel de configuração e orquestração Real Time (Azion Manager)
27. Desafios
Big Data (Azion Analytics)
• Grande quantidade de logs (Servidores, Clientes e Rede)
• Análise em tempo real
• Agentes de coleta e processadores multi-datacenter
(RTT, Rede, ASN, HTTP, TLS, etc)
• Cassandra + PrestoDB (Grafana), InfluxDB
30. Desafios
Deploy continuo e Automatizações
• Equipes de DevOps, maturidade das equipes e garantias extras
• Documentação e busca por erros automáticos
• Análise de RTT e dados RUM (Real User Monitoring)
31.
32. Software Perguntas?
Defined CDN
marcus.grando@azion.com
Arquitetura, Componentes e Desafios
http://www.azion.Marcus com.Grando, br/empresa/CTO
carreiras/