Os componentes de uma estrutura de arquitetura serverless

Sobre o autor: Guilherme Teles é um cara qualquer que não dorme direito e acaba escrevendo. Sou Certificado CISSP, CHFI, CEH, LPIC-3, AWS CDA, AWS SAA, AWS SOA Quer assinar a newsletter do site e receber esse e outros artigos? Clique aqui! Aproveite e navegue pelo smeu blog. Quem sabe você não está exatamente precisando de uma ajuda ?  

Considerando serverless? O que é preciso para criar um framework serverless? Esta lista de verificação garantirá que você não deixe nada de fora, desde a interface do usuário, até a autenticação, até o banco de dados.

A computação serverless, também intimamente associada a Functions-as-a-Service (FaaS), é definida por contêineres de computação sem estado e modelada para uma solução orientada a eventos.

O FaaS fornece uma plataforma que permite aos desenvolvedores executar códigos em resposta a eventos sem a complexidade de construir e manter a infraestrutura. Os aplicativos ou serviços de terceiros gerenciariam a lógica e o estado do lado do servidor.

Uma solução serverless explicada no blog “Arquitetura Sem Servidor – O Futuro da Computação Empresarial” consiste em um servidor web, camada FaaS, serviço de token de segurança (STS), autenticação de usuário e banco de dados.

Framework para arquitetura serverless

Aplicativo cliente: A interface do usuário do seu aplicativo é o lado do cliente melhor renderizado em Javascript, o que permite que você use um servidor web simples e estático.

Servidor da Web: O Amazon S3 fornece um servidor da Web robusto e simples. Todos os arquivos HTML, CSS e js estáticos para seu aplicativo podem ser fornecidos a partir do S3.

Solução FaaS: é o principal facilitador na arquitetura sem servidor. Alguns exemplos populares de FaaS são o AWS Lambda, o Google Cloud Functions e o Microsoft Azure Functions. O AWS Lambda é usado nessa estrutura. Os serviços de aplicativo para efetuar login e acessar dados serão criados como funções do Lambda. Estas funções irão ler e escrever a partir do seu banco de dados e fornecer respostas JSON.

Security Token Service (STS): Isso gerará credenciais temporárias da AWS (chave de API e chave secreta) para os usuários do aplicativo. Essas credenciais temporárias são usadas pelo aplicativo cliente para chamar a API da AWS (e, portanto, invocar o Lambda).

Autenticação do usuário: o AWS Cognito é um serviço de identidade que é integrado ao AWS Lambda. Com o Amazon Cognito, você pode adicionar facilmente inscrever usuários e que façam login em seus aplicativos móveis e da web. Ele também tem as opções para autenticar usuários por meio de provedores de identidade social, como Facebook, Twitter ou Amazon, com soluções de identidade SAML ou usando seu próprio sistema de identidade.

Banco de dados: o AWS DynamoDB fornece um banco de dados NoSQL totalmente gerenciado. O DynamoDB não é essencial para um aplicativo serverless, mas é usado como um exemplo aqui.
Para uma implementação detalhada desta arquitetura, você pode visitar o blog Serverless Architectures usando o AWS Lambda por Tony Fendall. Ele explicou exaustivamente todos os elementos do sistema com um detalhamento de custos e links para algumas demos.

As organizações que já investem em tecnologias de nuvem se tornarão as primeiras a adotar a computação sem servidor. Algumas das futuras aplicações da tecnologia sem servidor são Blockchain, IoT, jogos e middleware corporativo.

É inerentemente benefícios e fornece baixo custo operacional, dimensionamento e menos tempo para o mercado. Essa tecnologia tem potencial para se tornar as peças fundamentais dos sistemas distribuídos modernos. Mas a adoção de sistemas serverless deve levar em consideração a dependência excessiva de APIs de terceiros e a complexidade da arquitetura.

Sobre o autor: Guilherme Teles é um cara qualquer que não dorme direito e acaba escrevendo. Sou Certificado CISSP, CHFI, CEH, LPIC-3, AWS CDA, AWS SAA, AWS SOA Quer assinar a newsletter do site e receber esse e outros artigos? Clique aqui! Aproveite e navegue pelo smeu blog. Quem sabe você não está exatamente precisando de uma ajuda ?