usando 2020 serverless e kafka...2020/08/27  · escalando um app go usando serverless e kafka...

38
http://s3wf.com @jeffotoni TDC ONLINE 2020 São Paulo 27/08 Jefferson Otoni Escalando um App Go usando Serverless e Kafka

Upload: others

Post on 17-Aug-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

http://s3wf.com

@jeffotoni

TDC ONLINE 2020 São Paulo 27/08

Jefferson Otoni

Escalando um App Go usando Serverless e Kafka

Page 2: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura
Page 3: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

Fácil de implementar

Altamente escalável Resiliente

desafios

Page 4: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

arquitetura

@jeffotoni

Go Go Goc

o

mongo rethinkDB postgres

app

browsers

Page 5: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

nossa arquitetura

s3shop

@jeffotoni

Page 6: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

Page 7: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

Page 8: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

modelo 1

@jeffotoni

Page 9: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

1@jeffotoni

Page 10: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

1@jeffotoni

Page 11: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

meio Pagamento

Pub/Sub Cloud Function

Cloud Function

Cloud Function

Cloud Function

sucesso

@jeffotoni

Page 12: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

postgres

Pub/Sub

microservice

@jeffotoni

consumer

restrpc

write

Page 13: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

Pub/Sub

@jeffotoni

RabbitMQ

Sqs

kubemq.io

Page 14: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

consumer

Page 15: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

Cloud function

Page 16: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

Cloud function

Page 17: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

novo Cenário

@jeffotoni

Page 18: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

mongo rethinkDB

Page 19: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

postgresBigQuery

Redis

RethinkDB

mongo

nossos BDs

@jeffotoni

Spanner

Page 20: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

Solução 2

@jeffotoni

Page 21: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

Page 22: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

service service service

service service service

service service service

apache kafka

Page 23: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

Event Streams

@jeffotoni

possível solução

Page 24: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

possível solução

Page 25: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

possível solução

Page 26: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

possível solução

Page 27: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

Kafka producer

Page 28: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

Kafka consumer

Page 29: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

Por quê usar Go?

@jeffotoni

Page 30: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni@jeffotoni

Ritchie

Page 31: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

25 Keywordsbreak default func interface select

case defer go map struct

chan else goto package switch

const fallthrough if range type

continue for import return var

Page 32: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

Goroutines

Page 33: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

Pprof Profiling Go

https://eltonminetto.dev/post/2020-04-08-golang-pprof

Page 34: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

https://golang.org/pkg/testing @jeffotoni

Page 35: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

Comunidade

Telegramhttps://t.me/go_brhttps://t.me/go_bhhttps://t.me/golangcwb

Slackhttps://gophers.slack.com(members >~45k)

GopherCon Brasil 2020 https://2020.gopherconbr.org

Wiki Conferenciashttps://github.com/golang/go/wiki/Conferences

Meetuphttps://www.meetup.com/go-belo-horizontehttps://www.meetup.com/pt-BR/golangbrhttps://www.meetup.com/pt-BR/Women-Who-Go-Sampahttps://www.meetup.com/pt-BR/Golang-Campinas/https://www.meetup.com/pt-BR/golang-poa/https://www.meetup.com/pt-BR/GolangCWB/

Page 36: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

Paradigma concorrente

Compiladaestaticamente

Tipagemestática

Multi Plataformas

Retrocompa-tibilidade

Page 37: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

@jeffotoni

https://golang.org https://golang.org/doc/effective_go.htmlhttps://golang.org/ref/spec

https://golang.org/dochttps://tour.golang.org/welcome/1

Page 38: usando 2020 Serverless e Kafka...2020/08/27  · Escalando um App Go usando Serverless e Kafka @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios arquitetura

Thanks := &Obrigado{...}

Obrigado...

github.com/jeffotoni

instagram.com/jeffotoni

https://t.me/devopsbh

https://t.me/go_br

https://t.me/awsbrasil

linkedin.com/in/jeffotoni/