Define por “Arquitetura sem servidor” e aplicativos sem servidor estão ganhando força, também apresentado ao mercado como FaaS (Function as a Service) ou Plataforma de Função como Serviço. A plataforma Serverless permite aos desenvolvedores ficarem livres do trabalho de gerenciar a infraestrutura de servidores enquanto estão realizando suas atividades. É claro que a operação de criação e execução dos aplicativos deles continua seguindo o mesmo fluxo de processamento em máquinas virtuais.

O que é Lambda?

O Amazon Web Services (AWS) Lambda permite que você execute JavaScript (Node.js) em ambiente de nuvem Amazon (praticamente) infinitamente escalável sem ter instâncias de VM provisórias ou outra “orquestração”; Tudo é dinamicamente automático, portanto, se você tiver 1 usuário ou 1 bilhão você paga pelo uso.

Plano de negócio da AWS:

A AWS está efetivamente interrompendo seus próprio negócio com o Lambda. Em vez de nos forçar a pagar as instâncias EC2 em incrementos fixos e ter monitoramento / dimensionamento complexo, a AWS criou uma maneira muito mais simples de criar e executar micro-serviços.

Serviços AWS para o desenvolvimento:

– Micro Serviços através do AWS API GATEWAY com AWS Lambda seguindo a arquitetura serverless e auto escalável de acordo com a demanda de requests;

– Segurança com AWS Cognito Identity compatível com OpenID Connect, onde fornece uma camada de identidade sob o protocolo OAuth 2.0;

Amazon SQS para serviço de armazenamento e processamento das filas;

– Caso o negócio exija persistência, o No-SQL da AWS, o DynamoDB poderá ter essa responsabilidade;

– Para monitoramento é recomendado o uso do serviço da AWS CloudWatch;

AWS CloudFormation para o provisionamento e gerenciamento da infraestrutura da AWS;

– Para envio de email através do serviço podemos utilizar o Amazon SES;

– Não podemos esquecer dos testes unitários, a dica para isso é a leitura desse post Unit Testing AWS Lambda Functions in Node.js

– Para armazenamento de arquivos, redimensionamento de images para otimização do processamento no mobile do lado do servidor, se necessário, recomendamos o uso do serviço Amazon AWS S3

Boas práticas para o desenvolvimento:

Caching:

Controle de Acesso:

Versionamento:

Generate SDK for an API:

Deploying:

Monitoramento:

Recomendações para o Mobile:


Testes em dispositivos Físico:

https://aws.amazon.com/pt/device-farm/?p=tile

Push Notification:

https://aws.amazon.com/pt/pinpoint/?p=tile

Versionamento do código com Git:

https://aws.amazon.com/pt/codecommit/?p=tile

http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/getting-started.html

Monitoramento de performance:

https://aws.amazon.com/pt/xray/?p=tile

Análise Técnica para o desenvolvimento em NodeJS:


Framework Claudia.js: