Serverless básico

Serverless é uma arquitetura baseada em funções como um serviço (FaaS – Function as a Service), o principal objetivo é que o desenvolvedor se preocupe apenas com o código da função (lógica do negócio) e a responsabilidade pela configuração do ambiente/…


This content originally appeared on DEV Community and was authored by Lucas Ferreira

Serverless é uma arquitetura baseada em funções como um serviço (FaaS - Function as a Service), o principal objetivo é que o desenvolvedor se preocupe apenas com o código da função (lógica do negócio) e a responsabilidade pela configuração do ambiente/máquina que vai rodar o código fique por conta do provedor de cloud.

Características

  • Ambiente sem estado para rodar o código, cada evento que aciona a função PODE ser processado em um ambiente completamente novo, isso limita por exemplo a utilização do sistema de arquivos do ambiente onde o código está rodando e um novo processamento está desacoplado dos processamentos anteriores.
  • Tempo de execução limitado, o processamento deve ocorrer dentro de um período de tempo, se a execução não estiver completa o ambiente onde o código está rodando simplesmente morre.
  • Orientado a eventos, cada função de uma aplicação serverless tem um ou mais gatilhos que acionam a execução do código.

Código básico com o framework Serverless

# serverless.yml
provider:
  name: aws
  runtime: nodejs14.x
  memorySize: 512
  timeout: 3

functions:
  users:
    handler: ./UserHandler.handler
    events:
      - http:
          method: GET
          path: users
          cors: true
// UserHandler.js
// aws sample
exports.handler =  async function(_event, _context) {
    const service = new UserService();
    const response = await service.findAll();
    return JSON.stringify(response);
}

Com o comando abaixo é possível realizar a implantação da função no provedor de cloud.

npx serverless deploy

Quando uma requisição chegar na rota registrada no API Gateway um novo evento será disparado e este evento pode ser processado por uma função nova (cold) ou por uma função ativa (warm).

serverless_article

Diferenças entre serverless e uma arquitetura cloud com contêineres

  • Uma grande diferença é que o serverless te força a quebrar suas operações e definir muito bem qual a responsabilidade da função. Isso é imposto basicamente pelo tempo limite de execução e pelos valores maiores cobrados para execuções com tempo maior ou com consumo de memória maior.
  • As funções serverless ficam desativadas quando não existem eventos para processar, diferentemente de um contêiner rodando uma aplicação que fica 100% do tempo rodando mesmo sem requisições.

Principais ferramentas

  • Serverless framework.
  • AWS Lambda.
  • Azure Functions.
  • Google Cloud Functions.
  • Infraestrutura como código.

Referencias


This content originally appeared on DEV Community and was authored by Lucas Ferreira


Print Share Comment Cite Upload Translate Updates
APA

Lucas Ferreira | Sciencx (2021-09-23T16:59:24+00:00) Serverless básico. Retrieved from https://www.scien.cx/2021/09/23/serverless-basico/

MLA
" » Serverless básico." Lucas Ferreira | Sciencx - Thursday September 23, 2021, https://www.scien.cx/2021/09/23/serverless-basico/
HARVARD
Lucas Ferreira | Sciencx Thursday September 23, 2021 » Serverless básico., viewed ,<https://www.scien.cx/2021/09/23/serverless-basico/>
VANCOUVER
Lucas Ferreira | Sciencx - » Serverless básico. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/09/23/serverless-basico/
CHICAGO
" » Serverless básico." Lucas Ferreira | Sciencx - Accessed . https://www.scien.cx/2021/09/23/serverless-basico/
IEEE
" » Serverless básico." Lucas Ferreira | Sciencx [Online]. Available: https://www.scien.cx/2021/09/23/serverless-basico/. [Accessed: ]
rf:citation
» Serverless básico | Lucas Ferreira | Sciencx | https://www.scien.cx/2021/09/23/serverless-basico/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.