Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Escalando um App Go usando Serverless e Kafka

Escalando um App Go usando Serverless e Kafka

Uma degustação de como poderíamos escalar uma aplicação utilizando serverless, nesta apresentação utilizamos Google Cloud Functions, mas nada impede de utilizar AWS lambdas ou qualquer outro que convier para sua necessidade.
Utilizamos serverless para escalar o finalizar compra de um e-commerce que é um marketplace e pode haver picos de mais de 200k/reqs e ao invés de bater direto em um banco de dados relacional e escalar o banco para tomar esta porrada, utilizei o kafka para isto, e como a mesma informação será utilizada e consumida por diversos serviços nada que utilizar uma tecnologia para stream e o mais legal que é distribuído, sabemos que kafka também é um banco de dados e exploro um pouco deste recurso também na apresentação.
Nossos serviços lambdas são todos feitos em Go, e todo back também.

02b3f64a1d67d061c3be08729322a90b?s=128

Jefferson Otoni Lima

August 28, 2020
Tweet

Transcript

  1. http://s3wf.com @jeffotoni TDC ONLINE 2020 São Paulo 27/08 Jefferson Otoni

    Escalando um App Go usando Serverless e Kafka
  2. None
  3. @jeffotoni Fácil de implementar Altamente escalável Resiliente desafios

  4. arquitetura @jeffotoni Go Go Goc o mongo rethinkDB postgres app

    browsers
  5. nossa arquitetura s3shop @jeffotoni

  6. @jeffotoni

  7. @jeffotoni

  8. modelo 1 @jeffotoni

  9. 1 @jeffotoni

  10. 1 @jeffotoni

  11. meio Pagamento Pub/Sub Cloud Function Cloud Function Cloud Function Cloud

    Function sucesso @jeffotoni
  12. postgres Pub/Sub microservice @jeffotoni consumer rest rpc write

  13. Pub/Sub @jeffotoni RabbitMQ Sqs kubemq.io

  14. @jeffotoni consumer

  15. @jeffotoni Cloud function

  16. @jeffotoni Cloud function

  17. novo Cenário @jeffotoni

  18. @jeffotoni mongo rethinkDB

  19. postgres BigQuery Redis RethinkDB mongo nossos BDs @jeffotoni Spanner

  20. Solução 2 @jeffotoni

  21. @jeffotoni

  22. @jeffotoni service service service service service service service service service

    apache kafka
  23. Event Streams @jeffotoni possível solução

  24. @jeffotoni possível solução

  25. @jeffotoni possível solução

  26. @jeffotoni possível solução

  27. @jeffotoni Kafka producer

  28. @jeffotoni Kafka consumer

  29. Por quê usar Go? @jeffotoni

  30. @jeffotoni @jeffotoni Ritchie

  31. @jeffotoni 25 Keywords break default func interface select case defer

    go map struct chan else goto package switch const fallthrough if range type continue for import return var
  32. @jeffotoni Goroutines

  33. @jeffotoni Pprof Profiling Go https://eltonminetto.dev/post/2020-04-08-golang-pprof

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

  35. @jeffotoni Comunidade Telegram https://t.me/go_br https://t.me/go_bh https://t.me/golangcwb Slack https://gophers.slack.com (members >~45k)

    GopherCon Brasil 2020 https://2020.gopherconbr.org Wiki Conferencias https://github.com/golang/go/wiki/Conferences Meetup https://www.meetup.com/go-belo-horizonte https://www.meetup.com/pt-BR/golangbr https://www.meetup.com/pt-BR/Women-Who-Go-Sampa https://www.meetup.com/pt-BR/Golang-Campinas/ https://www.meetup.com/pt-BR/golang-poa/ https://www.meetup.com/pt-BR/GolangCWB/
  36. @jeffotoni Paradigma concorrente Compilada estaticamente Tipagem estática Multi Plataformas Retrocompa-

    tibilidade
  37. @jeffotoni https://golang.org https://golang.org/doc/effective_go.html https://golang.org/ref/spec https://golang.org/doc https://tour.golang.org/welcome/1

  38. 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/