Upload
weop-the-operations-summit
View
83
Download
0
Embed Size (px)
Citation preview
Software Defined CDNArquitetura, Componentes e Desafios
Marcus Grando, CTO
Software Defined CDNArquitetura, Componentes e Desafios
Marcus Grando, CTO
• 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)
Azion TechnologiesOverview
Azion TechnologiesOverview
• Arquitetura
• Componentes
• Desafios
• Perguntas?
AgendaComo melhorar a experiência do usuário?
• 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
ArquiteturaO que é uma CDN?
Arquitetura
• 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!
O que é uma SD-CDN?
Arquitetura
• 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)
Desafios de uma SD-CDN
Arquitetura
http://www.cisco.com/c/en/us/solutions/collateral/service-provider/visual-networking-index-vni/white_paper_c11-520862.html
Crescimento Mobile
Arquitetura
• 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
Edge Intelligence: Application Acceleration
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
ArquiteturaOtimização e Terminação TLS: Session Cache/Session Ticket
$ openssl s_client -‐connect www.azion.com:443 -‐tls1 -‐tlsextdebug -‐status ... SSL-‐Session: Protocol : TLSv1 Cipher : ECDHE-‐RSA-‐AES128-‐SHA Session-‐ID: DA43DEAA0F9ACFE2D6888045FC5557BE23C9E3EF2CF2A48B99376546A9160DC7 Session-‐ID-‐ctx: Master-‐Key: B78A510239E2BB590E3E50AF8E0416DE1F014446F37C853CABED63A862D2599E7A93AEB1DFD6B26D011C729BC5D09A37 Key-‐Arg : None PSK identity: None PSK identity hint: None SRP username: None TLS session ticket lifetime hint: 600 (seconds) TLS session ticket: 0000 -‐ f2 ff eb ba 69 41 bb 52-‐48 23 70 02 7b 1c 73 bf ....iA.RH#p.{.s. 0010 -‐ e8 4a 40 cb fd a8 5f 85-‐14 81 71 fa 13 0c 6d e2 .J@..._...q...m. 0020 -‐ 9c b0 e4 46 99 b2 9a b7-‐8c eb e9 74 9e ea 53 88 ...F.......t..S. ...
ArquiteturaOtimização e Terminação TLS: OCSP Stapling
$ openssl s_client -‐connect www.azion.com:443 -‐tls1 -‐tlsextdebug -‐status ... OCSP response: ====================================== OCSP Response Data: OCSP Response Status: successful (0x0) Response Type: Basic OCSP Response Version: 1 (0x0) Responder Id: 12A6D068879BA23554F7250E31E7488B1D6903FB Produced At: Nov 11 14:57:02 2014 GMT Responses: Certificate ID: Hash Algorithm: sha1 Issuer Name Hash: 0C9E4D9C3DEDEF84D891E972C7CF8406BC197B07 Issuer Key Hash: 96DE61F1BD1C1629531CC0CC7D3B830040E61A7C Serial Number: 1121B93115E4174B789AD972243139085B48 Cert Status: good This Update: Nov 11 14:57:02 2014 GMT Next Update: Nov 12 14:57:02 2014 GMT ...
Arquitetura
• Segurança (WAF, Packet Inspection, DDoS, Edge Firewall)
• Availability (User Queue, Load Balancing)
• Edge Hosting?
Edge Intelligence: Outros
Componentes
• Servidores e Rede
• BGP e Anycast
• DNS e Global Load Balancer
• Kernel, Libs e Linguagens
• HTTP Server e Streaming Server
Componentes de uma SD-CDN
Componentes
• 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
Servidores e Rede
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
Componentes
• 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)
Anycast
Componentes
• Software responsável pelo primeiro direcionamento do usuário
• Faz o controle da proximidade do usuário e a gestão da qualidade da entrega (BGP, Rotas manuais ou Geolocalização)
DNS e Global Load Balancer
$ 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
Componentes
• Respostas precisam ser menores que 1ms (Database e Regras de negócio)
• Software Defined (Bind, Powerdns, Golang DEV)
• Suporte a EDNS Client Subnet
DNS e Global Load Balancer
+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
Componentes
• Atualmente 18% (já foi 12%) das consultas DNS vem do Google DNS ou OpenDNS no Brasil
• Google Public DNS agora detecta automaticamenteo suporte a ECS
DNS e Global Load Balancer
http://www.cdnplanet.com/blog/google-dns-opendns-and-cdn-performance/#mshttps://groups.google.com/forum/#!topic/public-dns-announce/67oxFjSLeUM
Componentes
• Kernel > 3.7 (IW10, TCP Fast Open, Proportional Rate Reduction)
• OpenSSL (heartbleed, poodle), CK (http://concurrencykit.org/), ZeroRPC, Gevent
• Python, C/C++ e Golang
Kernel, Libs e Linguagens
Componentes
• 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 Server
http://trafficserver.apache.org/
Componentes
• RTMP, HLS, MPEG-DASH
• Regras de negócio (Real Time)
• Segurança (Token, DRM) e Filtros (IP, Rede, Geoblock)
• Latência (Configurável)
Streaming Server
Desafios
• 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
Desenvolvimento
Desafios
• 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)
Testes
Desafios
• 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)
Operação e Orquestração
Desafios
• 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
Big Data (Azion Analytics)
DesafiosBig Data (Azion Analytics)
DesafiosBig Data (Azion Analytics)
Desafios
• 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)
Deploy continuo e Automatizações
Software Defined CDNArquitetura, Componentes e Desafios
Marcus Grando, CTO
http://www.azion.com.br/empresa/carreiras/