Stefan Horochovec
• Co-Founder e CTO – Kepha Digital Business Experts;
• Co-Founder e Arquiteto de Soluções – Previseme HelpDesk;
• Co-Founder e CTO – Azagros;
• Co-Founder e CTO – Conexiune;
• Especialista em Engenharia de Software e Gestão de Projetos;
• Instrutor/Autor/Palestrante;
• Twitter: @horochovec
• Github: @horochovec
• Blogs: https://www.horochovec.com.br e https://www.horochovec.io
https://bits.citrusbyte.com/images/posts/2015-08-24-microservices-monolith.png
Microservices – Vantagens
• Serviços independentes;
• Implantação automática via Continuous Integration;
• Possibilidade de utilizar a tecnologia certa para cada microservice;
• Arquitetura de fácil compreensão;
• Facilidade na integração com API’s de terceiros;
• Gestão de mudança facilitada;
• Melhor gerenciamento de falhas e de escalabilidade de serviços;
Microservices – Desvantagens
• Serviços distribuídos;
• Infraestrutura de difícil gerenciamento;
• Containers são tão pesados quanto servidores;
• Necessidade de criar uma cultura de DevOps;
Microservices – Infraestrutura
• Qual o tamanho do servidor para executar cada microservices?
• Qual o limite de usuários para cada microservice disponível?
• Quantos servidores devo orçar para o deploy de uma aplicação com 10.000 usuários?
• Quais sistemas operacionais deverão ser executados pelos microservices?
• Quais usuários podem ter acesso aos meus servidores?
• Quem vai manter os servidores atualizados e seguros?
• Como aumento a capacidade dos servidores caso aumente o número de usuários?
“Arquitetura Serverless é uma
maneira de criar e executar
aplicativos e serviços sem ter
que gerenciar a infraestrutura”
Function as a Service (FaaS) Providers
FaaS – Vantagens
• Não há necessidade de provisionamento, manutenção e gerenciamento de servidores;
• Você paga apenas pela execução das funções;
• Escalabilidade automática, controlada pelo consumo de funções;
• PaaS é responsável pela disponibilização do serviço;
• Redundancia Multi-AZ – AWS Services;
• Aumento da produtividade do desenvolvedor;
• Redução do tempo para publicação de soluções;
“Permite que você execute
códigos sem provisionar ou
gerenciar servidores.”
AWS - Lambda
“Permite adicionar cadastros,
login e controle de acesso de
usuários a aplicativos
web e móvel com rapidez.”
AWS - Cognito
“Colete, processe e analise
facilmente streams de vídeo e
dados em tempo real.”
AWS - Kinesis
“Armazenamento de objetos
para armazenar e recuperar
qualquer quantidade de
dados de qualquer local.”
AWS – S3
“Banco de dados não
relacional para aplicativos que
exigem alta performance em
qualquer escala.”
AWS - DynamoDB
“Filas de mensagens
gerenciadas para
microsserviços,
sistemas distribuídos e
arquitetura serverless.”
AWS - SQS
“Permite que você execute
códigos sem provisionar ou
gerenciar servidores.”
AWS – API Management
“Visibilidade completa dos
seus aplicativos e recursos na
nuvem.”
AWS - CloudWatch
“Sistema de dispositivos
onipresentes que conecta o
mundo físico à nuvem.”
AWS - IoT
Lambda Functions
• Configuração de memória disponível para cada função (Limite de até 3GB por função);
• Até 1.000 execuções concorrentes (por default);
• Monitoramento automático de cada função;
• Redução de até 80% no tempo de deploy;
• CI/CD integrado com Github;
• VPC PrivateLink para integrações (Private endpoints);
• Escalabilidade garantida pela AWS;
• Uptime garantido pela AWS;
• Performance garantida pela AWS;
Lambda Functions
Memoria Tempo de Execução Custo
128 MB 11.722965 sec $0.024628
256 MB 6.678945 sec $0.024628
512 MB 3.194954 sec $0.024628
1024 MB 1.465984 sec $0.024628
Estatística de uma função Lambda que calcula 1000 vezes todos os números primos menores ou iguais a 1.000.000
Instalação do framework Serverless
$ npm install serverless -g
Criando um projeto via boilerplate
$ serverless create --template aws-nodejs --path [SERVICE-NAME]
Instalação das dependências
$ npm init
$ npm install aws-sdk -- save
$ npm install uuid -- save
Configuração das credenciais da AWS
$ export AWS_ACCESS_KEY_ID=[AWS_ACCESS_KEY_ID]
$ export AWS_SECRET_ACCESS_KEY=[AWS_SECRET_ACCESS_KEY]
Deploy da aplicação
$ serverless deploy
Deploy da aplicação
Códigos do exemplo
https://github.com/kepha/eres2018
Arquitetura Serverless na AWS

Arquitetura Serverless na AWS

  • 2.
    Stefan Horochovec • Co-Foundere CTO – Kepha Digital Business Experts; • Co-Founder e Arquiteto de Soluções – Previseme HelpDesk; • Co-Founder e CTO – Azagros; • Co-Founder e CTO – Conexiune; • Especialista em Engenharia de Software e Gestão de Projetos; • Instrutor/Autor/Palestrante; • Twitter: @horochovec • Github: @horochovec • Blogs: https://www.horochovec.com.br e https://www.horochovec.io
  • 5.
  • 12.
    Microservices – Vantagens •Serviços independentes; • Implantação automática via Continuous Integration; • Possibilidade de utilizar a tecnologia certa para cada microservice; • Arquitetura de fácil compreensão; • Facilidade na integração com API’s de terceiros; • Gestão de mudança facilitada; • Melhor gerenciamento de falhas e de escalabilidade de serviços;
  • 13.
    Microservices – Desvantagens •Serviços distribuídos; • Infraestrutura de difícil gerenciamento; • Containers são tão pesados quanto servidores; • Necessidade de criar uma cultura de DevOps;
  • 14.
    Microservices – Infraestrutura •Qual o tamanho do servidor para executar cada microservices? • Qual o limite de usuários para cada microservice disponível? • Quantos servidores devo orçar para o deploy de uma aplicação com 10.000 usuários? • Quais sistemas operacionais deverão ser executados pelos microservices? • Quais usuários podem ter acesso aos meus servidores? • Quem vai manter os servidores atualizados e seguros? • Como aumento a capacidade dos servidores caso aumente o número de usuários?
  • 15.
    “Arquitetura Serverless éuma maneira de criar e executar aplicativos e serviços sem ter que gerenciar a infraestrutura”
  • 16.
    Function as aService (FaaS) Providers
  • 17.
    FaaS – Vantagens •Não há necessidade de provisionamento, manutenção e gerenciamento de servidores; • Você paga apenas pela execução das funções; • Escalabilidade automática, controlada pelo consumo de funções; • PaaS é responsável pela disponibilização do serviço; • Redundancia Multi-AZ – AWS Services; • Aumento da produtividade do desenvolvedor; • Redução do tempo para publicação de soluções;
  • 19.
    “Permite que vocêexecute códigos sem provisionar ou gerenciar servidores.” AWS - Lambda
  • 20.
    “Permite adicionar cadastros, logine controle de acesso de usuários a aplicativos web e móvel com rapidez.” AWS - Cognito
  • 21.
    “Colete, processe eanalise facilmente streams de vídeo e dados em tempo real.” AWS - Kinesis
  • 22.
    “Armazenamento de objetos paraarmazenar e recuperar qualquer quantidade de dados de qualquer local.” AWS – S3
  • 23.
    “Banco de dadosnão relacional para aplicativos que exigem alta performance em qualquer escala.” AWS - DynamoDB
  • 24.
    “Filas de mensagens gerenciadaspara microsserviços, sistemas distribuídos e arquitetura serverless.” AWS - SQS
  • 25.
    “Permite que vocêexecute códigos sem provisionar ou gerenciar servidores.” AWS – API Management
  • 26.
    “Visibilidade completa dos seusaplicativos e recursos na nuvem.” AWS - CloudWatch
  • 27.
    “Sistema de dispositivos onipresentesque conecta o mundo físico à nuvem.” AWS - IoT
  • 34.
    Lambda Functions • Configuraçãode memória disponível para cada função (Limite de até 3GB por função); • Até 1.000 execuções concorrentes (por default); • Monitoramento automático de cada função; • Redução de até 80% no tempo de deploy; • CI/CD integrado com Github; • VPC PrivateLink para integrações (Private endpoints); • Escalabilidade garantida pela AWS; • Uptime garantido pela AWS; • Performance garantida pela AWS;
  • 35.
    Lambda Functions Memoria Tempode Execução Custo 128 MB 11.722965 sec $0.024628 256 MB 6.678945 sec $0.024628 512 MB 3.194954 sec $0.024628 1024 MB 1.465984 sec $0.024628 Estatística de uma função Lambda que calcula 1000 vezes todos os números primos menores ou iguais a 1.000.000
  • 37.
    Instalação do frameworkServerless $ npm install serverless -g
  • 38.
    Criando um projetovia boilerplate $ serverless create --template aws-nodejs --path [SERVICE-NAME]
  • 39.
    Instalação das dependências $npm init $ npm install aws-sdk -- save $ npm install uuid -- save
  • 40.
    Configuração das credenciaisda AWS $ export AWS_ACCESS_KEY_ID=[AWS_ACCESS_KEY_ID] $ export AWS_SECRET_ACCESS_KEY=[AWS_SECRET_ACCESS_KEY]
  • 45.
    Deploy da aplicação $serverless deploy
  • 46.
  • 62.