Topics Sem servidor

O que é sem servidor?


"Sem servidor" é um padrão de design de arquitetura de software que aproveita a execução de código guiada por eventos alimentada por serviços gerenciados em nuvem para criar aplicativos com ajuste de escala massivo e econômicos, compostos de pequenas funções discretas, sem que os desenvolvedores precisem projetar ou pensar na infraestrutura subjacente em que seu código é executado.

Saiba mais sobre o GitLab

O que é lógica de negócios sem servidor?

Então, o que é lógica de negócios sem servidor? Todo aplicativo usa servidores em algum momento. O termo sem servidor enfatiza uma arquitetura e um modelo de serviço em que os desenvolvedores não precisam se preocupar com a infraestrutura e, em vez disso, podem se concentrar na lógica de negócios do seu aplicativo. O modelo sem servidor é a próxima evolução do design de arquitetura, que passa de monolítica aos microsserviços, às funções, como explica Adrian Cockcroft neste vídeo.

Sem servidor, FaaS (funções como serviço) e serviços gerenciados

Muitas vezes, sem servidor e FaaS são tratados como termos intercambiáveis, mas isso não é 100% correto. Sem servidor é um padrão de arquitetura abrangente que faz uso de um FaaS juntamente com outros serviços gerenciados em nuvem. O FaaS é um tipo específico de serviço, como o AWS Lambda, o Google Cloud Functions e o Azure Functions, que permite que os desenvolvedores implantem funções.

Atributos do modelo sem servidor

  1. Unidades de código pequenas e discretas. Muitas vezes, os serviços escritos usando arquitetura sem servidor são compostos por uma única função.

  2. Execução baseada em eventos. A infraestrutura necessária para executar uma função não existe até que uma função seja disparada. Uma vez que um evento é recebido, um ambiente de computação efêmero é criado para executar essa solicitação. O ambiente pode ser destruído imediatamente ou, mais comumente, permanece ativo por um curto período de tempo, geralmente 5 minutos.

  3. Ajuste para zero. Quando uma função para de receber solicitações, a infraestrutura é desativada e para completamente de funcionar. Isso gera economia, pois a infraestrutura só é executada quando há uso. Se não houver uso, o ambiente é reduzido a zero.

  4. Ajuste para o infinito. O FaaS cuida do monitoramento de carga e da criação de instâncias adicionais quando necessário, em teoria, até o infinito. Isso praticamente elimina a necessidade de os desenvolvedores pensarem em ajustes de escala ao projetar aplicativos. Uma única função implantada consegue lidar com um ou um bilhão de solicitações sem qualquer alteração no código.

  5. Uso de serviços gerenciados. Muitas vezes, as arquiteturas sem servidor fazem uso de serviços fornecidos em nuvem para elementos do aplicativo que fornecem trabalho pesado não diferenciado, como armazenamento de arquivos, bancos de dados, filas, etc. Por exemplo, o Firebase do Google é popular na comunidade sem servidor como um serviço de gerenciamento de estado e banco de dados que se conecta a outros serviços do Google, como o Cloud Functions.

Comparação de serviços gerenciados em nuvem

Aqui está um gráfico com exemplos de serviços gerenciados da AWS, do Google Cloud e Azure, juntamente com suas contrapartes de código aberto.

Serviço Código aberto AWS Google Cloud Azure
FaaS Knative Lambda Cloud Functions Azure Functions
Armazenamento Minio S3 Armazenamento na nuvem Azure storage
SQL DB MySQL RDS Cloud SQL Azure SQL Banco de dados
NoSQL DB MongoDB, Cassandra, CouchDB DynamoDB Cloud Datastore Cosmos DB
Fila de mensagens Kafka, Redis, RabbitMQ SQS, Kinesis Google Pub/Sub Azure Queue Storage
Service mesh Istio App Mesh Istio on GKE Azure Service Fabric Mesh

Valores de negócios e benefícios do GitLab Serverless

O GitLab Serverless permite que as empresas implantem seu próprio FaaS no Kubernetes.

Mais velocidade

Ritmo mais rápido de inovação. A produtividade do desenvolvedor aumenta quando ele pode se concentrar apenas na lógica de negócios.

Estabilidade

Maior estabilidade/resiliência (menos perda de receita devido ao tempo de inatividade).

Ajuste de escala

Maior escala, o software é capaz de acompanhar a demanda do negócio.

Custos

Custos mais baixos. Como a computação só é cobrada quando um serviço está ativo, o modelo sem servidor oferece uma tremenda economia de custos em comparação com a infraestrutura sempre ativa.

Sem dependência do fornecedor

Sem dependência do fornecedor. As empresas podem escolher quem preferem que execute a computação. Em qualquer nuvem compatível com Kubernetes ou até mesmo servidores no local.

Fluxo de trabalho

Seu FaaS faz parte do mesmo fluxo de trabalho que o restante do seu ciclo de vida de software, com uma única aplicação, desde o planejamento e teste até a implantação e monitoramento.

Implantação

A implantação de funções é bastante simplificada em comparação com o uso direto do Knative.

Tudo pronto para começar?

Descubra o que sua equipe pode fazer com uma plataforma DevSecOps unificada.