Seguindo a série de posts que estamos publicando em nosso blog sobre arquitetura Serverless (sem servidor), resolvemos trazer um comparativo dos principais fornecedores desse tipo de tecnologia: Amazon Web Services (AWS), Google Cloud e Azure, da Microsoft.
A ideia é mostrar porque, apesar de prometerem praticamente as mesmas coisas, algumas se destacam no mercado.
Confira em detalhes, a seguir!
Principais diferenças entre a arquitetura Serverless de AWS, Google Cloud e Microsoft Azure
Idioma suportado
O AWS Lambda é melhor do que outros, pois a linguagem de programação é bastante diversificada e o Lambda fornece mais versões e mais tipos de linguagens compatíveis do que outros provedores de arquitetura sem servidor.
Suporte a funções com estado
O AWS Lambda não oferece esse suporte, mas pode acessar os serviços de armazenamento da AWS onde o Azure fornece esse recurso, e o Google Cloud não possui esse elemento até o momento.
Identity and Access Management (IAM) granular
As políticas do Identity and Access Management (IAM) podem ser anexadas ao Lambda. Enquanto o RBAC tem suporte na Assinatura e as Funções estão dentro do Azure. O Google Cloud não divulgou publicamente nada relacionado a isso.
Armazenamento persistente
A AWS usa S3 e DynamoDB para armazenamento persistente sem estado completo, enquanto no ambiente do Azure as variáveis podem ser definidas para que possam ser usadas em funções.
O Azure armazena no armazenamento de blobs.
Já o Google Cloud fornece Cloud Storage, Cloud Datastore, Cloud SQL para o mesmo.
Desdobramento, desenvolvimento
Na AWS, a implantação é feita no formato zip.
O zip é carregado no Lambda/S3. Enquanto no Azure Git, dropbox, visual studio, console Kudu etc. podem ser usados para implantação.
Na CLI do Google Cloud, o upload Zip, o Cloud Storage ou o Source e o editor da Web embutido são usados para essa finalidade.
Número máximo de funções
No AWS Serverless e no Azure Serverless, não há limite para um número máximo de funções, enquanto no Google Cloud o limite é de até 1000 por projeto.
Vista a superioridade da AWS, confira os aplicativos que ela oferece
Os destaques abaixo são os principais aplicativos da computação AWS Serverless:
Aplicativo da Web e back-end
Aplicativos da web sem servidor e back-end podem ser criados usando AWS Lambda, Amazon API Gateway, Amazon S3 e Amazon DynamoDB e ajudariam a lidar com solicitações da web, dispositivos móveis, IoT e chatbots.
Exemplo: Backend móvel para aplicativo de mídia social.
Processamento de dados
Muitas variantes diferentes de sistemas de processamento de dados em tempo real podem ser criadas na AWS Serverless Computing. Pode-se usar o seguinte para processamento de dados.
AWS Lambda;
Amazon Kinesis;
Amazon S3;
Amazon DynamoDB
Exemplos:
Criação de miniaturas de imagens;
Análise de dados de streaming de mídia social;
Descubra como criar aplicativos sem servidor na AWS;
Explore os serviços de desenvolvimento de aplicativos sem servidor.
Que tal, conseguimos te mostrar as diferenças entre as arquiteturas Serverless da AWS, Google Cloud e Azure? Para seguir aprendendo sobre o tema, baixe agora o eBook Computação sem Servidor!
AWS Serverless, a arquitetura sem servidor da AWS é uma maneira de criar e executar serviços e aplicativos sem precisar gerenciar a infraestrutura.
O aplicativo de usuários ainda é executado em servidores, mas os servidores são gerenciados pela AWS. Portanto, é um método que fornece suporte para serviços de back-end.
Além disso, os usuários pagam com base em seus cálculos, e nada mais é cobrado apenas pelos serviços utilizados. Embora sejam chamados de serverless, os servidores físicos ainda são usados, mas os desenvolvedores não precisam ter conhecimento disso.
Continue lendo para entender!
Por que usar a arquitetura sem servidor da AWS
A arquitetura sem servidor da AWS oferece várias vantagens sobre a infraestrutura tradicional centrada em servidor ou baseada em nuvem.
Por exemplo, dá aos desenvolvedores maior escalabilidade, rapidez no lançamento, mais flexibilidade e tudo isso a um custo reduzido, pois o usuário paga apenas pelos serviços utilizados.
Logo, um desenvolvedor pode se concentrar em seu produto principal em vez de fazer malabarismos entre gerenciar e operar servidores ou tempos de execução e desenvolver o aplicativo. Ajuda a diminuir a latência.
Mas tem mais!
O usuário pode criar facilmente um aplicativo sem servidor com um pipeline de implantação automatizado no console do AWS Lambda.
Os serviços da AWS integrados ao AWS SAM são usados para automatizar implantações. O AWS SAM ajuda a implantar novas versões da função Lambda e cria automaticamente aliases que apontam para a versão mais recente.
Se as distribuições graduais forem habilitadas por meio do AWS SAM, um recurso do CodeDeploy será criado automaticamente para o usuário.
Os principais serviços da arquitetura sem servidor da AWS
Existem vários serviços para computação sem servidor da AWS, alguns deles estão listados abaixo!
Serviços de computação sem servidor
AWS Serverless fornece o AWS Lambda que permite que o usuário execute código sem gerenciar servidores, e o usuário paga apenas pelos cálculos usados.
O Lambda Edge permite que o usuário execute funções do Lambda nos pontos de presença da AWS em resposta a eventos do Amazon CloudFront AWS Fargate é um mecanismo de computação sem servidor criado para contêineres.
Ele ajuda a dimensionar e gerenciar a infraestrutura necessária para executar a caixa do usuário.
Serviços de armazenamento sem servidor
O Amazon S3 oferece a uma equipe de desenvolvimento um armazenamento de objetos durável, seguro e altamente escalável. É fácil de usar e portátil.
O Amazon EFS oferece armazenamento de arquivos puro, escalável e elástico. É auto-ajustável e cresce e diminui conforme a demanda do usuário.
Serviços de armazenamento de dados sem servidor
A AWS fornece o Amazon DynamoDB, que é um serviço de banco de dados No-SQL rápido e flexível para todos os aplicativos; ele precisa de latência de milissegundos em qualquer escala.
Já o Amazon Aurora Serverless é uma configuração de dimensionamento automático sob demanda (sistema compatível com MySQL). Neste banco de dados irá iniciar e desligar automaticamente. O sistema será dimensionado de acordo com as necessidades da aplicação do usuário.
Serviços de proxy de API
Amazon API Gateway é um serviço totalmente gerenciado que facilita a tarefa dos desenvolvedores de criar, manter, publicar, monitorar e proteger APIs em qualquer escala.
Os gateways permitem processar milhares de chamadas de API simultâneas e ajudam o usuário a lidar com gerenciamento de tráfego, autorização e controle de acesso, monitoramento e gerenciamento de versão de API.
Serviços de Integração de Aplicativos
Amazon SNS — serviço de mensagens pub/sub totalmente gerenciado que ajuda a desacoplar e dimensionar microsserviços, sistemas distribuídos e aplicativos sem servidor.
Amazon SQS — serviço de mensagens totalmente gerenciado que ajuda a desacoplar e dimensionar microsserviços, sistemas distribuídos e aplicativos sem servidor.
AWS AppSync — ajuda a simplificar o desenvolvimento de aplicativos, permitindo que você crie uma API GraphQL flexível, ajuda a proteger o acesso, a manipulação e combina dados de uma ou mais fontes de dados.
Amazon EventBridge — serviço de barramento de eventos para computação sem servidor que ajuda a facilitar o acesso a dados de aplicativos de várias fontes e enviá-los para o ambiente AWS do usuário.
Serviços de Orquestração
AWS Step Functions — ajuda a facilitar a coordenação dos componentes de aplicativos e microsserviços distribuídos; ele usa fluxos de trabalho visuais para o mesmo.
Serviços de análise
Amazon Kinesis — usado para transmitir dados na AWS. O Kinesis oferece ótimos serviços para ajudar a carregar e analisar os dados de streaming.
Amazon Athena —serviço interativo que facilita a análise dos dados no Amazon S3 usando SQL padrão. Athena não tem servidor.
Serviços de ferramentas para desenvolvedores
A AWS fornece ferramentas e serviços que ajudam os desenvolvedores no processo de desenvolvimento de aplicativos sem servidor.
Tais como ferramentas para integração contínua, entrega, teste, implantação, monitoramento e diagnóstico, SDKs, estruturas e plugins de ambiente de desenvolvimento integrado.
Benefícios de usar a arquitetura AWS Serverless
A arquitetura sem servidor da AWS é uma benção, pois ajuda o desenvolvedor a concentrar todo o seu poder no desenvolvimento, em vez de se preocupar com a implantação e o gerenciamento de servidores.
Ela pode ser usada para executar ou construir qualquer aplicativo moderno e aumenta a agilidade, ao mesmo tempo em que ajuda a reduzir o custo do seu produto.
Confira, a seguir, uma síntese dos principais benefícios:
Os servidores não precisam de atenção para instalação e manutenção.
O pagamento é de acordo com a taxa de transferência, tornando-o valor para o dinheiro.
Você pode escolher as configurações apropriadas de acordo com a necessidade do seu produto, pagando apenas pelas funções que usar.
Ajuda o desenvolvedor a se concentrar apenas no código, dando-lhe tempo suficiente para inovar o programa ou interagir com os clientes para obter feedbacks dos clientes, aumentando assim o tempo de lançamento no mercado.
Você pode escrever código e, quando terminar tudo, pode implantar o sistema imediatamente, e ele estará disponível para o mundo em poucos minutos. Assim, não há necessidade de fazer nenhum esforço para criar e gerenciar servidores.
Que tal, nós conseguimos te mostrar quais são os benefícios da arquitetura AWS Serverless? Se precisar de ajuda para implementá-la na sua empresa, faça contato conosco! Para se aprofundar ainda mais no tema, baixe agora o eBook Computação sem Servidor!