Você já ouviu falar de arquitetura sem servidor (serverless)?
Vamos ver neste artigo um pouco do que é essa arquitetura serverless.
O Que É Arquitetura Serverless?
A computação Serverless é um modelo de execução de computação em nuvem no qual o provedor de nuvem executa o servidor e gerencia dinamicamente a alocação de recursos da máquina.
Não deve ser confundido com modelos de computação ou de rede que não exigem um servidor real para funcionar, como ponto a ponto (P2P).
Serverless é uma arquitetura de sistemas em nuvem que não envolve servidores, máquinas virtuais ou contêineres para provisionar ou gerenciar. Sim, eles ainda existem sob o aplicativo em execução, mas sua presença é abstraída do desenvolvedor ou operador do aplicativo.
Apesar do nome, na verdade, não envolve a execução de código sem servidores. O nome “computação sem servidor” é usado porque a empresa ou pessoa que possui o sistema não precisa comprar, alugar ou provisionar servidores ou máquinas virtuais para que o código de back-end seja executado. Tudo isso fica na nuvem.
A AWS (Amazon Web Services) usa as quatro características abaixo para classificar serverless:
- Não há servidores para gerenciar ou provisionar: você não está gerenciando servidores físicos, máquinas virtuais ou contêineres. Eles são gerenciados pelo provedor de nuvem e inacessíveis a você. Isso reduz a complexidade operacional.
- Pague pelo que consome (não pela capacidade): você paga pelos recursos que consome ao invés da capacidade provisionada. Você não paga pelo tempo que seu aplicativo está ocioso.
- Escalar com uso: serviços e aplicativos serverless escalam automaticamente. À medida que as solicitações chegam, um serviço ou aplicativo é escalado para atender a essa demanda. Isso permite que você cresça rapidamente.
- Disponibilidade e tolerância a falhas: você não é responsável por garantir a disponibilidade e a tolerância a falhas. Isso reduz a complexidade da engenharia e o tempo gasto.
Vantagens
- Custo: Serverless pode ser mais econômico do que alugar ou comprar uma quantidade fixa de servidores.
- Tempo: desenvolvedores e operadores não precisam gastar tempo configurando e ajustando políticas ou sistemas de dimensionamento automático; o provedor de nuvem é responsável por escalar a capacidade de acordo com a demanda. Esses sistemas são conhecidos como elásticos em vez de escaláveis.
- Produtividade: O programador não precisa se preocupar com multithreading ou manipular diretamente solicitações HTTP em seu código, simplificando a tarefa de desenvolvimento de software de back-end.
Desvantagens
- Problemas com APIs de terceiros: Controle de fornecedores e preocupações com segurança são apenas alguns dos problemas causados pelo uso de APIs de terceiros. Desistir deste controle podem ocasionar tempo de inatividade do sistema, atualizações forçadas da API, perda de funcionalidades e alterações de custo.
- Falta de ferramentas operacionais: Os desenvolvedores dependem de fornecedores para ferramentas de depuração e monitoramento. Depurar sistemas distribuídos é difícil.
- Complexidade arquitetônica: Decisões sobre quão pequena (granular) a função deve ser levam tempo para avaliar, implementar e testar.
- Desvantagens da implementação: O teste de integração de aplicativos sem servidor é difícil.
Meu e-book Como Aprender a Programar do Absoluto Zero está GRATUITO por tempo limitado!
Olha o link: 👉🏼 http://celsokitamura.com.br/como-aprender-a-programar
Bora aprender a programar!