Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Serverless em Go

222 views

Published on

Slides da minha palestra sobre Serverless apresentada na GopherCon Brasil 2018

Published in: Technology
  • Be the first to comment

Serverless em Go

  1. 1. SERVERLESS EM GO Elton Minetto @eminetto
  2. 2. Five Key Benefits of "Going Serverless" 1. Auto Scales for you 2. Pay per execution pricing model 3. Leverage third party services 4. Focus on your business logic 5. Event driven (push based) workflows https://www.netlify.com/blog/2018/08/06/five-key-benefits-of-going-serverless/#what-are-the-benefits- of-going-serverless
  3. 3. Por que usar Go em suas Lambda functions?
  4. 4. https://medium.com/@nathan.malishev/lambda-cold-starts-language-comparison-%EF%B8%8F- a4f4b5f16a62
  5. 5. Nossas experiências
  6. 6. Por que usar frameworks? •Independência de fornecedor de nuvem •Facilidade de deploy automatizado •Integração/padronização com outras linguagens do projeto
  7. 7. Serverless Framework
  8. 8. •Suporte a várias linguagens além do Go •Suporte a múltiplos providers (em Go por enquanto apenas AWS e fn) •Suporte a eventos •Diversos plugins •Requer uso dos pacotes dos providers (AWS, Google, etc) •A empresa recentemente recebeu um aporte de capital
  9. 9. AWS
  10. 10. Configurar o arquivo serverless.yml
  11. 11. slugify/main_test.go
  12. 12. slugify/main.go
  13. 13. Makefile
  14. 14. Deploy
  15. 15. Exemplo usando outros eventos, plugins e variáveis de ambiente
  16. 16. up
  17. 17. •Suporte a várias linguagens além do Go •Atualmente suporte apenas a AWS, Google e Azure em desenvolvimento •Desenvolvimento e deploy rápido para criar lambdas acessadas via HTTP •Usa apenas a sdtlib
  18. 18. Configurações são feitas no up.json
  19. 19. Criar um arquivo main.go:
  20. 20. Compilar e enviar para o ambiente de staging
  21. 21. Fazer o deploy para produção
  22. 22. OpenFaas
  23. 23. •Suporte a várias linguagens além do Go •Independente de provider •Baseado em containers Docker/ Kubernetes
  24. 24. slugify/handler.go
  25. 25. slugify.yml
  26. 26. Menção honrosa https://github.com/gofn/gofn
  27. 27. Qual escolher? •Se precisa tratar tipos diferentes de eventos e conviver com outras linguagens: Serverless •Se precisa apenas criar lambdas para APIs: Up •Se quer ficar independente de fornecedor e usar sua infra de containers: OpenFaas/gofn
  28. 28. Links https://gist.github.com/eminetto/ a4dda9d66ff42aece666af0903672d6b
  29. 29. Perguntas http://eltonminetto.net https://www.codenation.com.br @eminetto http://asemanago.com.br

×