
Computação Serverless na AWS: Certificação AWS Cloud Practitioner
Entenda os principais conceitos de Serverless e prepare-se para a certificação AWS Cloud Practitioner
Serverless, ou Computação sem servidor, é um modelo de arquitetura de computação em nuvem em que o desenvolvedor não precisa se preocupar com a infraestrutura subjacente necessária para executar sua aplicação. Em vez de se concentrar na administração de servidores, o desenvolvedor pode se concentrar apenas na codificação da lógica de negócios.
No modelo serverless, o fornecedor de computação em nuvem é responsável por provisionar automaticamente os recursos necessários para atender às demandas da aplicação. Isso significa que os servidores são criados e gerenciados sob demanda, ao invés de estarem sempre ativos e disponíveis.
Os principais benefícios do serverless são:
- Escalabilidade automática: O modelo serverless permite que a aplicação se ajuste automaticamente às demandas de uso. Os recursos são provisionados conforme necessário, garantindo que a aplicação tenha capacidade suficiente para lidar com picos de tráfego sem problemas de desempenho.
- Economia de custos: Como os recursos são provisionados sob demanda, o desenvolvedor não precisa pagar por servidores ociosos. Isso resulta em uma economia significativa de custos, especialmente para aplicações com demanda flutuante.
- Menor tempo de configuração: O tempo gasto para configurar e gerenciar a infraestrutura é reduzido, pois não é necessário se preocupar com a configuração de servidores e balanceamento de carga. Isso permite que os desenvolvedores se concentrem mais na codificação de suas aplicações.
- Manutenção simplificada: Com o modelo serverless, o provedor de nuvem é responsável pela manutenção e atualização dos servidores, permitindo que o desenvolvedor se concentre apenas no desenvolvimento da aplicação.
- Maior flexibilidade: O modelo serverless permite que os desenvolvedores usem várias linguagens de programação e serviços de terceiros para desenvolver e implementar suas aplicações. Isso oferece maior flexibilidade e permite a utilização de ferramentas e tecnologias familiares aos desenvolvedores.
Os serviços AWS trabalham em conjunto para fornecer uma variedade de recursos e funcionalidades para o desenvolvimento e a implantação de aplicativos serverless na nuvem. As camadas serverless da AWS fornecem uma estrutura para construir aplicativos sem servidor escaláveis e resilientes. Essas camadas incluem:
Compute Layer
Esta camada é onde ocorre a execução do código em um ambiente sem servidor. A AWS oferece a AWS Lambda como serviço principal nessa camada, que permite executar funções serverless em resposta a eventos. Os serviços incluem:
- AWS Lambda: permite executar aplicativos serverless e sem estado em uma plataforma gerenciada que oferece suporte a arquiteturas de microsserviço, implantação, gerenciamento e execução de funções. Suporta Node, Java, Python, C#, Go, Ruby e outros. Executa de 1 segundo a 15 minutos. Pode se configurar o uso máximo de memoria e cpu (o cpu acompanha a memoria). Serviços como S3, IoT, Alexa, Cognito, API Gateway, Load Balancer, Kinesis, Dynamo, CodeCommit, SES, CloudWatch, CloudFormation, SQS, CloudTrail, EventBridge, SNS e Step Functions podem disparar eventos. O AWS Lambda permite que você publique uma ou mais versões imutáveis para funções individuais do Lambda, de forma que as versões anteriores não possam ser alteradas. Cada versão da função Lambda tem um nome de recurso da Amazon (ARN) exclusivo e as novas alterações de versão são auditáveis à medida que são registradas no AWS CloudTrail.
- API Gateway: Uma forma eficiente de disponibilizar serviços via API Rest E HTTP (Backend for APP e Web). Oferece proteção DDOS, autenticação, autorização e monetização de API para terceiros.
- AWS Step Functions: orquestra fluxos de trabalho serverless, incluindo coordenação, estado e encadeamento de funções, bem como combina execuções de longa duração não suportadas no Lambda.
Data Layer
Esta camada fornece serviços para armazenamento e gerenciamento de dados. Os serviços incluem:
- Amazon DynamoDB: permite criar aplicativos serverless, fornecendo um banco de dados NoSQL gerenciado para armazenamento persistente. Funciona com uma estrutura chave valor, particionada por chave. Permite criar replicas entre zonas de disponibilidade. Combinado com DynamoDB Streams, você pode responder quase em tempo real às alterações em seu DynamoDB. Também oferece cache através do DynamoDB Accelerator.
- Amazon S3: permite criar aplicativos e sites da Web serverless fornecendo um armazenamento de valor-chave altamente disponível, a partir do qual os ativos estáticos podem ser atendidos por meio de uma rede de distribuição de conteúdo (CDN), como o Amazon CloudFront.
- OpenSearch: permite implantar, proteger, operar e dimensionar o OpenSearch para análise de log, pesquisa de texto completo, monitoramento de aplicativos e muito mais. Serviço OpenSearch é um serviço totalmente gerenciado que fornece um mecanismo de pesquisa e ferramentas analíticas.
- AppSync: é um serviço GraphQL gerenciado com recursos off-line e em tempo real. O AWS AppSync fornece uma API baseada em dados e uma linguagem de programação consistente para aplicativos e dispositivos se conectarem a serviços como o DynamoDB, Serviço OpenSearch e Amazon S3.
Messaging Layer
Essa camada fornece serviços para facilitar a comunicação assíncrona entre os componentes do aplicativo. Isso é especialmente útil para criar sistemas distribuídos e eventos orientados. Os serviços incluem:
- Amazon SQS: é um serviço de Fila gerenciado que armazena milhões de mensagens por região, em várias zonas de disponibilidade. Permite comunicar serviços publicadores e consumidores. Oferece uma "Dead Letter Queue" para mensagens que não puderam ser lidas. Oferece dois tipos de filas: Standard: Sem ordem de processamento; processamento praticamente ilimitado por segundo. Fifo: A primeira a chegar é a primeira a ser processada; Número limitado de requests por segundo. Também oferece dois tipos de poll: Long Polling: Envia menos mensagens ao consumidor (menor custo). Short Polling: Envia mais mensagens ao consumidor (maior custo).
- Amazon SNS: fornece um serviço de mensagens totalmente gerenciado para padrões pub/sub usando notificações de eventos assíncronas e notificações push móveis para microsserviços, sistemas distribuídos e aplicativos sem servidor. Utiliza o sistema FIFO por padrão. Mensagens são armazenadas de forma redundante entre zonas de disponibilidade.
- Amazon Kinesis: torna mais fácil coletar, processar e analisar dados de streaming em tempo real. Com Amazon Kinesis, você pode executar SQL padrão ou criar aplicativos de streaming inteiros usando SQL.
- Amazon Kinesis Data Firehose: captura, transforma e carrega dados de streaming no Kinesis Data Analytics, Amazon S3, Amazon Redshift e Serviço OpenSearch, permitindo análises quase em tempo real com ferramentas de inteligência de negócios existentes.
User management and identity Layer
Esta camada fornece serviços para autenticação e autorização de usuários. Os serviços incluem:
- AWS Identity and Access Management: você pode especificar quem ou o que pode acessar serviços e recursos na AWS, gerenciar permissões refinadas de maneira centralizada e analisar o acesso para refinar as permissões na AWS. Com o IAM, você define quem pode acessar o que especificando permissões refinadas. Assim, o IAM impõe essas permissões para cada solicitação. O acesso é negado por padrão é concedido apenas quando as permissões especificam "Permitir".
- Amazon Cognito: O Amazon Cognito é uma plataforma de identidade para aplicações web e aplicativos móveis. É um diretório de usuários, um servidor de autenticação e um serviço de autorização para credenciais da AWS e tokens de acesso do OAuth 2.0. Com o Amazon Cognito, você pode autenticar e autorizar usuários do diretório de usuários integrado, de seu diretório corporativo e de provedores de identidades de consumidores, como Google e Facebook.
Edge Layer
Esta camada envolve serviços que otimizam e aprimoram o desempenho de aplicativos para usuários finais. Os serviços incluem:
- Amazon CloudFront: fornece um CDN que fornece conteúdo e dados de aplicativos da web com segurança com baixa latência e altas velocidades de transferência.
- AWS Wavelength: incorpora serviços de computação e armazenamento da AWS em redes 5G, fornecendo infraestrutura de computação de borda móvel para desenvolvimento, implantação e escalabilidade de aplicações de latência ultrabaixa.
- AWS Local Zones: é uma espécie de implantação de infraestrutura posiciona a computação, armazenamento, banco de dados e outros produtos seletos da AWS perto do público em geral e dos centros industriais.
- AWS Storage Gateway: é um conjunto de serviços de armazenamento na nuvem híbrida que oferece acesso on-premises a armazenamento virtual na nuvem praticamente ilimitado.
- AWS Panorama: é uma coleção de dispositivos de machine learning (ML) e um kit de desenvolvimento de software (SDK) que aplica a CV em câmeras IP (Internet Protocol) on-premises.
- Amazon Monitron: é um sistema completo que usa machine learning para detectar condições anormais em equipamentos industriais e habilitar a manutenção preditiva.
Systems Monitoring Layer
Essas camadas fornecem ferramentas para monitorar aplicativos sem servidor. Essas camadas ajudam a garantir a operação suave e o gerenciamento eficiente dos aplicativos serverless. Os serviços incluem:
- Amazon Cloud Watch: permite acessar as métricas do sistema em todos os serviços da AWS que você usa, consolidar logs de nível de sistema e aplicativo e criar indicadores chave de desempenho de negócios (KPIs) como métricas personalizadas para suas necessidades específicas. Ele fornece painéis e alertas que podem acionar ações automatizadas na plataforma.
- AWS X-Ray: permite analisar e depurar aplicativos sem servidor, fornecendo rastreamento distribuído e mapas de serviço para identificar facilmente gargalos de desempenho, visualizando uma solicitação de ponta a ponta.
Em resumo, o serverless é um modelo de arquitetura de computação em nuvem que permite que os desenvolvedores se concentrem apenas na codificação de suas aplicações, enquanto o provedor de nuvem se encarrega da infraestrutura necessária. Isso resulta em escalabilidade automática, economia de custos, menor tempo de configuração, manutenção simplificada e maior flexibilidade.