Upgrade to Pro — share decks privately, control downloads, hide ads and more …

O futuro do desenvolvimento bakend na plataforma BEAM

O futuro do desenvolvimento bakend na plataforma BEAM

Como a plataforma BEAM está preaparada para os próximos desafios do desenvolvimento backend como protocolos de conexões persistentes, escalabilidade e etc.

Tweet

More Decks by Victor Oliveira Nascimento

Other Decks in Technology

Transcript

  1. Fulano falando de pé - Desenvolvedor back & front -

    Só foi fazer algo em Erlang depois que saiu da Ericsson - Bacharel em Filosofia (o que não quer dizer que seja um filósofo) - libs on hex.pm: – JUnit Formatter – Joken (JWT)
  2. Backend - 2006 - Request/Response: HTTP 1.1 - Web first

    (server to html) - Filas (MQ, JMS) - Poucas APIs (SOAP) - Canal WEB (Browser) - Canal WAP (dumb mobile) - Poucos usuários (centenas por servidor) - Muito downtime (pouca banda, muita manutenção) - Pouco escalável (estado mutável no servidor) - Último lançamento de uma versão Java pela Sun (Java 6)
  3. Backend - 2009 - início do boom de smartphones -

    início do boom de REST APIs (JSON sobre HTTP) - início do boom de X as a Service (Cloud) - início do boom de NoSQL - 3 anos desde a última versão do Java (óóóóóóóóó) - Muito server to html (RoR, Django e etc) - Estado mutável indo para outra camada (Redis) - Micro services stateless
  4. Backend - 2011 - problemas mais aparentes de escalabilidade -

    início do boom das soluções de cache - limites do uso de Threads para sockets - Workarounds para simular real time - Long polling - short polling - SSE (server sent events) ainda em discussão - baixa viabilidade de conexões persistentes para todo mundo
  5. Backend - 2011 - Rise of Node.js (incluindo versão Windows…)

    - Non blocking IO (event driven) - Promessa de full-stack para o canal WEB - Aumento dos usuários por servidor: - De centenas para milhares
  6. Backend - 2011 Enquanto isso, como o engenheiro de Telecom

    olha para o desenvolvedor backend? - média de 400 milhões de bilhetes por dia (CDRs) - sem downtime - conexões persistentes desde sempre - alta escalabilidade
  7. Backend - 2016 -> ???? - Infinitos canais (IoT) -

    Conexões persistentes para real time - no downtime (releases com hot code replacement) - Alta escalabilidade: - de milhares para milhões
  8. HTTP 2 - Multiplex (vários requests e vários responses) -

    Conexão persistente - Criptografado (TLS) - Headers comprimidos também
  9. CoAP - com foco em IoT - protocolo binário para

    evitar consumo de energia - Sobre UDP - persistente, leve, assíncrono
  10. MqTT - Criado para telemetria e comunicação com satélites -

    TCP ou WebSocket - Persistente, full duplex - Tópicos e filas
  11. Por que a plataforma BEAM é ideal? - Foi criada

    para telecom - :gen_tcp e :gen_udp - escala de milhões de conexões por máquina
  12. www.concretesolutions.com.br blog.concretesolutions.com.br victor.nascimento <at> concretesolutions.com.br Rio de Janeiro – Rua

    São José, 90 – cj. 2121 Centro – (21) 2240-2030 São Paulo - Rua Sansão Alves dos Santos, 433 4º andar - Brooklin - (11) 4119-0449