Entusiasmado com a tecnologia Serverless? Quer iniciar um novo projeto, mas não sabe como começar?
Apresentamos um resumo dos frameworks Serverless mais populares para você experimentar!
A computação sem servidor tem atraído aqueles que apreciam a ideia de gerenciar menos infraestrutura e ter mais tempo para se dedicar à criação. Apesar de ser uma tecnologia relativamente recente, muitos desenvolvedores e engenheiros estão a inovar, criando soluções interessantes para o futuro das operações serverless.
Como já deve saber, Serverless não significa ausência de servidores, mas sim menos servidores e mais funções. Se procura uma plataforma FaaS (Functions as a Service) confiável para o seu próximo projeto, consulte a nossa análise anterior das melhores plataformas de computação sem servidor.
Dito isto, vamos explorar os frameworks disponíveis. Finalizaremos com alguns projetos em desenvolvimento no mundo Serverless, por isso, continue por perto para conhecê-los!
AWS Amplify
Crie aplicações serverless escaláveis para web e mobile rapidamente com o framework AWS Amplify e ganhe flexibilidade ilimitada. Configure back-ends serverless com dados, armazenamento, autenticação e muito mais, utilizando fluxos de trabalho inteligentes.
Conecte aplicações web e mobile a recursos novos ou existentes da AWS com menos linhas de código. Aloje e implemente aplicações web de página única, aplicações renderizadas no servidor e websites estáticos com apenas alguns cliques. Gerencie conteúdo e usuários de aplicações com facilidade.
O AWS Amplify auxilia os desenvolvedores front-end de web e mobile na criação de aplicações full-stack na AWS de forma mais rápida e na personalização da aplicação sempre que necessário. O Amplify é compatível com diversas frameworks web, como React, Angular, JavaScript, Vue.js, Next.js, e plataformas móveis como iOS, Ionic, Flutter, Android e React Native.
Integre componentes de interface do usuário do Amplify para acelerar o desenvolvimento de aplicações. Obtenha diversos recursos e ferramentas como autenticação, interações, funções, DataStore, gerenciamento de usuários, API (REST, GraphQL), Analytics, previsões de IA/ML, armazenamento, PubSub, notificações push, etc. Além disso, usufrua de hospedagem gerenciada, visualizações de relações públicas, CI/CD, domínios personalizados e monitoramento para a sua implementação.
Midway
Utilize o framework serverless Node.js Midway para criar aplicações tradicionais do lado do servidor, pequenos programas, microsserviços e serviços serverless. Escrito em Typescript, usa um mecanismo de injeção IoC para separar a lógica da aplicação, facilitando o desenvolvimento de grandes aplicações Node.js de forma mais natural.
O Midway pode usar Express, EggJS ou Koa como frameworks de base. Fornece soluções como GRPC, Dubbo.js, RabbitMQ e Socket.io para uso independente. Além disso, o Midway funciona como um framework web serverless Node.js para desenvolvedores full-stack ou front-end.
O Midway permite criar aplicações de ponta que são executadas em um contêiner, VM, Alibaba Cloud, AWS e Tencent Cloud. Também se integra facilmente com Vue e React. Encontrará recursos como:
- Plugins agrupados e escaláveis
- Compatibilidade e arquitetura de middleware de grupo avançado
- Capacidade de desacoplamento e camadas de aplicações
- Experiência de desenvolvimento de ponta
- Suporte para middleware Koa e plugins Egg.
Webiny
Tenha tudo o que precisa para arquitetar, implementar e construir aplicações serverless com o framework Webiny. Foi concebido para diversos casos de uso. Modifique a arquitetura, o conjunto de tecnologias e adapte-se às necessidades da sua organização e projeto.
Crie websites e aplicações de negócio baseadas em SEO, roteamento, pré-renderização, segurança, implementação, agrupamento e muito mais. Construa APIs internas ou externas extraindo os resolvedores do GraphQL. Não fique restrito a uma única aplicação; construa aplicações que usam várias bases de dados. Use drivers de bases de dados NodeJS para interagir com bases de dados externas.
O Webiny fornece agrupamento de código, IaC, mecanismos de implementação e organização de projetos. Adicione o produto ao topo da lista e disponibilize o SaaS para todo o mundo. Proteja parte ou todas as aplicações com ACL utilizando o AWS Cognito integrado e a estrutura de segurança.
Adicione suporte para Auth0, OKTA e outros. Terá um CMS headless, construtor de páginas, construtor de formulários, gestor de arquivos e muito mais. Gere código boilerplate utilizando plugins CLI de funções lambda para as novas APIs GraphQL.
A interface administrativa do Webiny inclui mais de trinta componentes React diferentes. Também terá proteção contra DDoS, CDN e 11 9’s de durabilidade de dados. Webiny economiza o seu tempo em tentativa e erro e pesquisa.
AWS Chalice
Procura um framework para escrever aplicações serverless em Python?
Experimente o AWS Chalice que permite criar e implementar aplicações através do AWS Lambda.
O Chalice fornece uma ferramenta de linha de comando para criar, implementar e gerenciar a sua aplicação, uma API baseada em decorator para integração com Amazon S3, Amazon API Gateway, Amazon SQS, Amazon SNS e mais serviços da AWS.
Permite criar APIs REST, executar tarefas periodicamente, conectar funções lambda a um evento S3 e uma fila SQS, além de outros recursos da AWS. Logo após escrever o código, o Chalice permite executar e implementar a sua aplicação rapidamente. O Chalice suporta todas as versões do Python compatíveis com o AWS Lambda, incluindo Python 2.7, 3.6, 3.7 e 3.8.
Configure todas as credenciais antes de implementar a aplicação. Se já configurou para executar a AWS CLI ou boto3, ignore este passo. Após a implementação, pode fazer modificações onde precisar e reimplementar as alterações. Consulte tutoriais, tópicos e referências API para melhorar o seu conhecimento.
Zappa
Zappa é um framework serverless para criar aplicações Python. Facilita a criação e implementação de aplicações Python serverless e orientadas a eventos no API Gateway e AWS Lambda. Utilize para desfrutar de manutenção zero, tempo de inatividade zero e escalabilidade infinita a um custo mínimo das implementações atuais.
Antes de fazer instalações e configurações, certifique-se de ter o Python 3.x e uma conta AWS, bem como a instalação adequada do arquivo de credenciais da AWS. Instale o Zappa facilmente com o pip.
O Zappa configura automaticamente as definições de implementação. Depois de as definições estarem configuradas corretamente, implemente a aplicação num ambiente de produção numa única linha de comando. Utilize o comando template caso queira o template do API Gateway CloudFormation. Implemente o Zappa em subdomínios e nomes de domínio personalizados com certificados SSL, certificados do AWS Certificate Manager e certificados Let’s Encrypt.
Ative endpoints seguros no API Gateway, como chave API, política IAM, autorizadores API Gateway Lambda, autorizador de grupo de usuários Cognito e política de recursos API Gateway. Defina variáveis de ambiente como ambiente local, ambiente remoto AWS e ambiente remoto via arquivo S3.
Architect
Crie, implemente e mantenha infraestruturas serverless baseadas em funções da nuvem AWS de última geração com fluxos de trabalho locais e offline completos, e muito mais.
Este é um projeto razoavelmente sofisticado que requer a leitura da filosofia do projeto e da página de documentação na íntegra.
Up
Up é um framework que o auxilia na implementação de aplicações serverless com potencial de escalabilidade infinita. Pode usar o Up para implementar sites estáticos, APIs e muito mais. Isso dá-lhe a flexibilidade para trabalhar no que realmente importa para si.
O Up implementa instâncias de servidor HTTP tradicionais, não precisando aprender um novo protocolo. Utilize o seu framework favorito como Django ou Express para começar.
Claudia.js
Claudia.js oferece aos desenvolvedores um meio para enviar os seus projetos baseados em Node.js para os sistemas Lambda e API. Claudia automatiza tarefas de implementação, configuração e ajusta o ambiente JavaScript para desenvolvimento moderno.
Ao utilizar Claudia, inicia a sua jornada de microsserviços em minutos, tendo muito menos com o que se preocupar e mais tempo para focar na solução de problemas reais.
As principais razões para usar Claudia são:
- Implemente, atualize e gerencie as suas instâncias com um único comando
- Funciona perfeitamente com pacotes NPM
- Estrutura padrão integrada, oferecendo mais espaço para focar nas suas tarefas.
- Gerenciamento de versões para trabalhar em várias versões simultaneamente
- Curva de aprendizado pequena
Jets
Gosta de Ruby?
Pode encontrar prazer em Jets, um framework Ruby serverless para criar e implementar microsserviços. O framework inclui as ferramentas necessárias para gerar estruturas de API e implementá-las em Lambda.
Jets também permite escrever funções separadas para unir serviços e recursos fornecidos pela AWS.
O Jets converte o código existente em funções para Lambda e outros serviços da AWS. Assim, pode ignorar a implementação e o provisionamento e dedicar mais tempo a escrever código funcional.
Pulumi
Pulumi fornece um SDK integrado para auxiliar na criação e implementação de software em qualquer plataforma baseada em nuvem. O SDK suporta contêineres, serviços hospedados, infraestrutura principal e contêineres.
Escreva código na linguagem que preferir; a Pulumi provisionará e gerenciará os seus recursos em provedores de serviços como GCP, AWS, Kubernetes e Azure.
Serverless
O Serverless Framework tem 30.000 estrelas no GitHub, tornando-o o framework serverless mais popular que poderá encontrar.
O que pode fazer com este framework? Pode criar aplicações que utilizam microsserviços para responder a eventos. As suas aplicações só respondem quando há uma chamada definitiva e aumentam e diminuem com base na procura. Economize muito dinheiro que seria gasto na manutenção de serviços ociosos.
O Framework usa novos serviços de computação orientada a eventos, como AWS Lambda, Google Cloud Functions e muito mais. É uma ferramenta de linha de comando que fornece scaffolding, automação de fluxo de trabalho e práticas recomendadas para desenvolver e implementar a sua arquitetura serverless. É totalmente extensível através de plugins.
Sigma
Sigma é um novo IDE baseado na nuvem construído em torno da ideia de desenvolvimento serverless. Não é apenas um editor de texto básico com algumas funcionalidades avançadas, mas um IDE completo que permite escrever código e publicar esse código como uma aplicação ativa em tempo real.
O Sigma IDE comunica com a sua plataforma serverless (FaaS) escolhida com apenas um requisito de ficheiro de configuração. Poupe horas intermináveis de tarefas entediantes.
Ao contrário de outras ferramentas que tentam alcançar um resultado semelhante, o Sigma não é serverless. O IDE é executado inteiramente a partir do navegador e não requer um serviço de back-end, exceto para algumas funções. O back-end é necessário para autenticar usuários e coletar dados analíticos.
Este projeto merece atenção e vale a pena experimentar.
Auth0
Se é um entusiasta do conceito Serverless, já deve ter ouvido falar do Serverless Framework. A Auth0 concentrou esforços na criação de tarefas da Web Auth0, um complemento para todos os usuários do Serverless Framework. O projeto chama-se Webtask.
O Webtask é utilizado para criar aplicações sem a necessidade de se preocupar com a sua infraestrutura. Escreva a lógica do lado do servidor e implemente as suas funções usando a CLI fornecida pelo Webtask. Navegue no back-end utilizando o protocolo HTTP.
Atualização: O site Webtask foi encerrado.
Exemplos serverless
Existem diversos exemplos de casos de uso do Serverless Framework.
Apesar desses exemplos serem específicos a um framework, pode aproveitar o processo de aprendizado sobre novos conceitos serverless. Existem exemplos para plataformas como AWS, Azure, Kubeless, Google Cloud e OpenWhisk. Há suporte para seis idiomas: nodeJS, Python, Go, Java, PHP e Swift.
Confira alguns exemplos como o Bot de piadas do Twitter e a API do Dropbox OAuth.
Se procura aprendizado prático, consulte este curso online.