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

Serverless

 Serverless

College Work in the discipline "Distributed Computing".

Bruno Macabeus

March 13, 2017
Tweet

More Decks by Bruno Macabeus

Other Decks in Programming

Transcript

  1. INTRODUÇÃO Uma forma de desacoplar UI do backend: framework MVC

    como o Rails porém… isso não é o suficiente! não é o suficiente, pois - desejamos mais flexibilidade - código ainda fica encapsulado e complexo
  2. INTRODUÇÃO Para tornar realmente flexível o nosso frontend do backend,

    podemos usar um servidor para prover API para a aplicação mas espera aí… e a execução do servidor?
  3. INTRODUÇÃO Linha do tempo da execução do servidor de API

    Mas eu não preciso manter o servidor sempre vivo! Esse exemplo se baseou num servidor provedor de API, porém, situações semelhantes acontecem se for um servidor que executa uma ação em determinado período de requisição emitida processa a requisição retorno
  4. INTRODUÇÃO recebo uma requisição faço o processamento e apenas com

    base nos parâmetros da requisição ⚙ efetuo retorno, se necessário
  5. CONCEITOS GERAIS "Quando se usa a arquitetura serveless, usá-se computação

    efêmera que executará uma determinada função a partir de um trigger" DEFINIÇÃO
  6. CONCEITOS GERAIS Para se usar arquitetura serveless, é preciso ter

    algum serviço rodando de baixo dos panos. Tal serviço é chamado de FaaS F a s S unction s s ervice FAAS
  7. CONCEITOS GERAIS E QUEM PROVEM FAAS? Além dessas empresas, temos

    opções open source Tempo de execução: AWS é 5m, no iron.io é "ilimitado" Falarei das diferenças entre elas no decorrer da apresentação, e também falarei das vantagens dos open source
  8. CONCEITOS GERAIS ESCREVER FUNÇÕES PARA FAAS São stateless - só

    dependem da entrada para realizar a computação to store state across requests or for further input to handle a request para preservar o estado entre as requisições…
  9. TECNOLOGIAS TRIGGER Pode-se configurar para determinado evento invocar uma função.

    O evento que invoca a função é chamado de "trigger"
  10. TECNOLOGIAS DEPLOY Algumas tecnologias podem facilitar o deploy contínuo das

    funções e manutenção dos triggers Apex AWS CodePipeline Terraform
  11. LIMITAÇÕES LATÊNCIA DE INICIALIZAÇÃO carregando a função… … executando Linha

    do tempo trigger retorno python e js: 10 ~ 100ms para JVM pode passar de 10s para mitigar esse problema, a plataforma pode realizar cache Mitigar o problema Usar linguagens que carregam mais rapidamente, como Python e JS Escrever códigos menores
  12. LIMITAÇÕES VENDOR LOCK-IN Diferentes fornecedores de serveless possuem diferentes interfaces.

    Mitigar o problema Usar softwares como o Terraform Usar plataformas de serveless open source, como o IronFunctions
  13. VANTAGENS ESCALABILIDADE Uma grande vantagem de se usar serveless é

    a capacidade de escalar horizontalmente automaticamente. Se a sua aplicação tiver um pico de 100 requisições, todas as 100 requisições serão executadas em paralelo, e logo após esse pico voltará à execução normal. Nenhuma configuração adicional é necessária
  14. VANTAGENS REDUÇÃO DOS CUSTOS Dois fatores principais ajudam a reduzir

    o custo do FaaS: Assim como em IaaS e PaaS, a infraestrutura do FaaS é oferecida para vários clientes, o que ajuda a diluir o custo de manutenção ao cliente final. Em serviços como a AWS Lambda, você paga pelo tempo em que a função ficou executando. Desse modo, caso faça uma otimização na função que reduza o tempo dela, também reduzirá seus custos. Se uma função levava 1 segundo e agora leva 200 ms, haverá uma economia de 80%.
  15. VANTAGENS FACILIDADE NO DESENVOLVIMENTO Substituir a arquitetura monolítica para microservices

    e com funções stateless traz facilidades no desenvolvimento do projeto, pois podemos quebrar um grande projeto em pequenos segmentos, mais fáceis de se entender e desenvolver.
  16. “Stateless computing fundamentally shifts how developers and operators think about

    the software being built. Rather than thinking in terms of large monolithic applications, they think in terms of jobs that are easily understandable,” Chad Arimura, CEO da iron.io
  17. EXEMPLOS BOT PARA SLACK É possível e fácil desenvolver e

    efetuar deploy de um bot para Slack. Um exemplo prático seria um bot para recolher informações da Wikipédia
  18. EXEMPLOS WRAPPER DE ACESSO AO BANCO DE DADOS Usar FaaS

    é para prover endpoint RESTful para alguma aplicação. Desse modo, pode-se desenvolver funções serveless que provenham total acesso ao banco de dados, assim compondo uma API
  19. CONCLUSÃO É possível ver que serveless computer é uma área

    muito promissora da computação na nuvem, que pode facilitar muito o desenvolvimento de diversas aplicações, podendo assim aproveitar a facilidade de desenvolvimento, escalabilidade e redução de custos que ela provém. Por ser uma área que tende a crescer, grandes empresas, como a Amazon, Google, Microsoft e IBM estão apostando nela, fornecendo serviços próprios.
  20. EXEMPLOS COMPUTAÇÃO CIENTÍFICA Há alguns estudos e testes a respeito

    de usar FaaS para computação massiva distribuída um estudante de pós-doutorado da Berkeley demonstrou um código em Python executado na AWS Lambda que conseguiu computar cerca de 25 tera flops
  21. LIMITAÇÕES RESPONSABILIDADE DA INFRAESTRUTURA Outra limitação relacionada aos fornecedores é

    a responsabilidade de manutenção da infraestrutura ser deles. Apesar disso normalmente ser algo benéfico, pode ser que em algum momento o fornecedor tenha problemas inesperados, deixando o clientes fora do ar, sem ter prazo para retorno das atividades. Mitigar o problema Usar plataformas de serveless open source, como o IronFunctions