DEV Community

Cover image for Serverless básico
Lucas Ferreira
Lucas Ferreira

Posted on

5 2

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/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
Enter fullscreen mode Exit fullscreen mode
// UserHandler.js
// aws sample
exports.handler =  async function(_event, _context) {
    const service = new UserService();
    const response = await service.findAll();
    return JSON.stringify(response);
}
Enter fullscreen mode Exit fullscreen mode

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

npx serverless deploy
Enter fullscreen mode Exit fullscreen mode

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

Image of Timescale

Timescale – the developer's data platform for modern apps, built on PostgreSQL

Timescale Cloud is PostgreSQL optimized for speed, scale, and performance. Over 3 million IoT, AI, crypto, and dev tool apps are powered by Timescale. Try it free today! No credit card required.

Try free

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more