1
Arquitetura Serverless com Serverless Framework +
Terraform
Muito prazer
Eu sou Thales Minussi de Sousa, SRE @ Zup
https://www.linkedin.com/in/tminussi
https://stackoverflow.com/users/10950867/thales-minus
si
https://github.com/tminussi/tdc-2021-devops
https://www.udemy.com/course/aws-cloud-native-com-ter
raform-serverless-framework/?couponCode=TDC-ZUP-DEVOP
S-2021 2
Serverless vs Terraform
Terraform
https://terraform.io
Excelente ferramenta para criar IaC
(Infrastructure as Code). Utiliza uma
linguagem própria (HCL) que é de fácil
assimilação. Com poucas linhas de código é
possível criar muitos recursos na Cloud.
A criação de eventos Serverless e funções
Lambda, porém, não são tão transparentes como
no Serverless Framework.
Serverless Framework
https://serverless.com
Fundamental para criar eventos
Serverless com o mínimo de
esforço. Usa .yml como arquivos
de configuração . É a maneira
mais rápida e menos verbosa de
criar funções Lambda.
No entanto, criar infraestrutura
neste Framework (filas, tabelas,
VPCs, IAM Roles) fica muito
complexo, pois temos que usar
CloudFormation explicitamente
3
Serverless vs Terraform
4
1.
Serverless. Por quê?
Vamos entender quando (não) utilizar Serverless, modelo de
custo e porque IaC (Infrastructure as Code) é importante
5
Prós Serverless
◍ Paga somente pelo que usa
◍ Cada função pode ser criada em uma
linguagem diferente
◍ Muitos eventos pré-configurados na
Cloud ajudam a criar arquiteturas
orientadas a eventos.
◍ Auto-escalável por natureza
6
Contras Serverless
◍ Tempo de execução
◍ Vendor Lock-In (embora eu não concorde,
acho importante mencionar)
◍ Difícil de debugar.
◍ É necessário configuração extra para
controlar (parcialmente) o ambiente de
execução (Lambda layers)
7
2.
IaC. Por quê?
Vamos entender porque devemos usar IaC
8
Infrastructure as Code
◍ Possibilita a execução transparente em
diferentes ambientes (dev, test, prod)
◍ Quando a Infraestrutura é automatizada,
as chances de algo dar errado porque
alguém esqueceu de rodar um script são
reduzidas significativamente.
◍ Fácil replicar a infraestrutura
inclusive em diferentes contas Cloud
9
Desafio
10
API Gerenciamento de Imagens e Aplicação de filtro
Terraform
Infraestrutura (com
exceção do API Gateway):
- Buckets S3
- IAM Roles e Policies
- SSM Parameters
Serverless Framework
- Funções Lambda
- Eventos:
- S3 ObjectCreated
- API Gateway
Divisão de Responsabilidades das
Ferramentas
11
12
Mãos no Código!

Thales de Sousa Minussi - TDC Innovation 2021 (ZUP - DEVOPS)

  • 1.
    1 Arquitetura Serverless comServerless Framework + Terraform
  • 2.
    Muito prazer Eu souThales Minussi de Sousa, SRE @ Zup https://www.linkedin.com/in/tminussi https://stackoverflow.com/users/10950867/thales-minus si https://github.com/tminussi/tdc-2021-devops https://www.udemy.com/course/aws-cloud-native-com-ter raform-serverless-framework/?couponCode=TDC-ZUP-DEVOP S-2021 2
  • 3.
    Serverless vs Terraform Terraform https://terraform.io Excelenteferramenta para criar IaC (Infrastructure as Code). Utiliza uma linguagem própria (HCL) que é de fácil assimilação. Com poucas linhas de código é possível criar muitos recursos na Cloud. A criação de eventos Serverless e funções Lambda, porém, não são tão transparentes como no Serverless Framework. Serverless Framework https://serverless.com Fundamental para criar eventos Serverless com o mínimo de esforço. Usa .yml como arquivos de configuração . É a maneira mais rápida e menos verbosa de criar funções Lambda. No entanto, criar infraestrutura neste Framework (filas, tabelas, VPCs, IAM Roles) fica muito complexo, pois temos que usar CloudFormation explicitamente 3
  • 4.
  • 5.
    1. Serverless. Por quê? Vamosentender quando (não) utilizar Serverless, modelo de custo e porque IaC (Infrastructure as Code) é importante 5
  • 6.
    Prós Serverless ◍ Pagasomente pelo que usa ◍ Cada função pode ser criada em uma linguagem diferente ◍ Muitos eventos pré-configurados na Cloud ajudam a criar arquiteturas orientadas a eventos. ◍ Auto-escalável por natureza 6
  • 7.
    Contras Serverless ◍ Tempode execução ◍ Vendor Lock-In (embora eu não concorde, acho importante mencionar) ◍ Difícil de debugar. ◍ É necessário configuração extra para controlar (parcialmente) o ambiente de execução (Lambda layers) 7
  • 8.
    2. IaC. Por quê? Vamosentender porque devemos usar IaC 8
  • 9.
    Infrastructure as Code ◍Possibilita a execução transparente em diferentes ambientes (dev, test, prod) ◍ Quando a Infraestrutura é automatizada, as chances de algo dar errado porque alguém esqueceu de rodar um script são reduzidas significativamente. ◍ Fácil replicar a infraestrutura inclusive em diferentes contas Cloud 9
  • 10.
    Desafio 10 API Gerenciamento deImagens e Aplicação de filtro
  • 11.
    Terraform Infraestrutura (com exceção doAPI Gateway): - Buckets S3 - IAM Roles e Policies - SSM Parameters Serverless Framework - Funções Lambda - Eventos: - S3 ObjectCreated - API Gateway Divisão de Responsabilidades das Ferramentas 11
  • 12.