O padrão multicamadas fornece boas diretrizes para você seguir, garantindo componentes de aplicações desacoplados e escaláveis que podem receber gerenciamento e manutenção separados . Aplicações multicamadas costumam ser construídas usando uma abordagem SOA (service-oriented architecture, arquitetura orientada a serviços) em relação ao uso de serviços da web. Nessa abordagem, a rede age como a ligação entre camadas. O API Gateway , um serviço para criação e gerenciamento de APIs, e o Lambda, um serviço para executar funções, podem ser usados em conjunto para simplificar a criação de aplicações multicamadas. A integração do API Gateway com o AWS Lambda permite que funções de código definidas pelo usuário sejam acionadas diretamente via solicitação de HTTPS definida pelo usuário, além de inúmeros outros eventos e serviços como event bridge AWS CNS, AWS SQS. Independente do volume de solicitação, tanto o API Gateway quanto o Lambda serão automaticamente dimensionados para dar conta exata das necessidades da sua aplicação. Isso nos possibilita ter uma arquitetura de escala confiável, e com custo melhor dimensionado. Quando combinados, você pode criar uma camada para sua aplicação que lhe permita escrever o código que importa para sua aplicação e não se concentrar em vários outros aspectos de uma arquitetura multicamadas – como criação de arquitetura para alta disponibilidade, criação de SDKs do cliente, gerenciamento de servidor/sistema operacional (SO), escalabilidade e implementação de um mecanismo de autorização de cliente.
Arquitetura de três camadas
A arquitetura de três camadas é um padrão para aplicações voltadas para o usuário. As camadas que formam essa arquitetura incluem a camada de apresentação, a camada lógica e a camada de dados. A camada de apresentação representa o componente com o qual os usuários interagem diretamente (como página da web, interface da aplicação mobile, etc.). A camada lógica cntém o código necessário para converter as ações do usuário feitas na camada de apresentação em funcionalidades que orientam o comportamento da aplicação. A camada de dados é formada por persistência (bancos de dados, storages etc) que mantém os dados relevantes à aplicação.
A camada lógica sem servidor
A camada lógica da arquitetura de três camadas representa o cérebro da sua aplicação. É por isso que integrar o API Gateway e o AWS Lambda para formar sua camada lógica pode ser tão importante. Os recursos dos dois serviços permitem construir uma aplicação de produção serverless altamente disponível, escalável e segura. Sua aplicação poderia usar milhares de servidores, mas, ao usar esse padrão, você não precisará gerenciar nenhum. Além disso, usando esses serviços gerenciados juntos, você ganha os seguintes benefícios: ∙ Nenhum sistema operacional para escolher, proteger, corrigir ou gerenciar. ∙ Nenhum serviço para corrigir o tamanho, monitorar ou expandir. ∙ Nenhum risco aos seus custos pelo super provisionamento. ∙ Nenhum risco ao seu desempenho pelo sub provisionamento. Além disso, existem recursos específicos em cada serviço que beneficiam o padrão de arquitetura multicamadas.
AWS Lambda
No seu cerne, o AWS Lambda permite código em qualquer uma das linguagens compatíveis (NodeJS, Java, .NET , Python GO,) para ser disparado em resposta a um evento. Esse evento pode ser um dos vários tipos que a AWS disponibiliza, chamados de origem do evento. Vários casos de uso populares para o AWS Lambda giram em torno de workflows de processamento de dados orientados por eventos, como processamento de arquivos armazenados no S3 Quando usada em conjunto com o API Gateway, uma função do AWS Lambda pode existir dentro do contexto de um serviço da web típico, e pode ser disparada diretamente por uma solicitação HTTPS. O API Gateway age como porta da frente da sua camada lógica, mas agora você precisa executar a lógica por trás dessas APIs. Aqui acontece a mágica do Lambda.
Sua lógica de negócios aqui
O AWS Lambda permite escrever funções de código, chamadas handlers, que serão executadas quando disparadas por um evento. Por exemplo, você pode gravar um handler que será disparado quando ocorrer um evento como uma solicitação de HTTPS na sua API. Por exemplo ao receber um pedido de um cliente podemos disparar um evento de webhook para realizar uma transação e integração entre sistemas. O Lambda lhe permite criar handlers modulares no seu nível de granularidade escolhido (um por API e um por método de API) que pode ser atualizado, invocado e alterado de forma independente. O handler então fica livre para entrar em contato com outras dependências que tem (como outras funções que você disponibilizou com seu código, bibliotecas, binários nativos ou até mesmo serviços da web externos). O Lambda lhe permite criar um pacote com todas as dependências necessárias na sua definição de função durante a criação. Ao criar sua função, você especifica qual método dentro do pacote de implantação agirá como handler da solicitação. Você tem a liberdade de reutilizar o mesmo pacote de implantação para várias definições de função do Lambda; cada função do Lambda pode ter um handler único dentro do mesmo pacote de implantação. No padrão de arquitetura serverless, cada uma das APIs criadas no API Gateway se integrará a uma função do Lambda (e o handler dentro dela) que executa a lógica de negócios necessária.
Ambiente de microsserviços
O padrão arquitetura de Microsserviços não está ligado à típica arquitetura de três camadas abrangida neste artigo. Na arquitetura de microsserviços, existe um desacoplamento maciço dos componentes de software, de forma que os benefícios da arquitetura multicamadas sejam ampliados. Uma API criada com API Gateway, e funções subsequentemente executadas pelo AWS Lambda, é tudo que você precisa para construir um microsserviço. O Time tem a liberdade de usar esses serviços para desacoplar e fragmentar seu ambiente até o nível de granularidade desejado.
Serverless na Delta
Aqui na delta alguns de nossos clientes e parceiros já utilizam essa arquitetura , é o caso do Epy (www.epymobi.com) . Veja abaixo o desenho da nossa arquitetura base para o Epy. O Epy possui dezenas de microserviços desenhados e escritos na arquitetura serverless, isso nos dá um custo acessível e escala quando precisamos. Nosso monitoramento investiga e mostra detalhes de rastreamento de execução das lambdas, permitindo ao time encontrar pontos críticos e de melhorias.