Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Go no Luiza Labs

Utilização de Go no Luiza labs: erros, sucessos, serviços que respondem milhões de requisições sem serem percebidos.

Técnicas de deploy utilizadas, rolling updates e Kubernetes em produção, partindo para multi-cloud.

  • Sé el primero en comentar

Go no Luiza Labs

  1. 1. Go no Luiza Labs
  2. 2. Luiza Labs ● Desenvolve e opera os canais de venda do Magazine Luiza ● 102 colaboradores ● 2 HQs - São Paulo e Franca ● ~200 apps ● >700 lojas ● R$ 10.5 (Magazine) bilhões de receita bruta em 2015 ● Python, Java, Javascript, Swift, Golang
  3. 3. Primeiro Go: sproxy ● Proxy entre API de busca e solr ● Permite troca de API de precificação do site a qualquer momento, sem deploy ou restart: configurável através de interface REST ● Com ~500 linhas, atende em média 1MM requests / hora ● Último release novembro de 2015 ● Sem channels, sem Goroutines ● Mesmo sem eles, Go é extremamente eficiente
  4. 4. Primeiro Go: sproxy ● Persiste apenas a config no disco ● Toml, Negroni ● Gorilla context, Gorilla mux ● Gabs ("dynamic json")
  5. 5. Segundo Go: acme ● Catálogo de produtos: API mais utilizada ● Ingestão, entrega, busca separados ● DynamoDB ● Kinesis stream ● SQS, s3, solr, etc
  6. 6. Segundo Go: acme ● Lógica de negócio subestimada ● Prazo estourado ● Projeto re-escrito em Python
  7. 7. O que houve? ● Não dominávamos a lógica de negócio ● Linguagem nova ● Equipe pequena ● Prazo curto
  8. 8. Terceiro Go: Wally ● Microserviço de estoque ● Desenvolvido por Rafael Correia e Abner Campanha ● Negroni ● Go-metrics, newrelic
  9. 9. Automação de infraestrutura ● Packer ● Ansible ● Terraform ● Fabric ● Um microserviço por instância?
  10. 10. Kubernetes ● Go, APIs baseadas em swagger ● 3a geração de orquestrador de containeres do Google (Borg, Omega) ● Rolling updates, horizontal pod (container) autoscaling, AB testing
  11. 11. Teresa ● Nosso PaaS ● Faz build com heroku buildpacks, suporta Go, Python e Node ● Roda como pod, no Kubernetes ● API server, client e swagger-UI gerados via go-swagger ● Torna o Kubernetes mais amigável para o desenvolvedor
  12. 12. Teresa Teresa
  13. 13. Teresa ● Go-swagger: github.com/go-swagger/go-swagger ● Cobra: github.com/spf13/cobra ● Gorm: github.com/jinzhu/gorm
  14. 14. Referências ● Borg, Omega and Kubernetes: http://queue.acm.org/detail.cfm?id=2898444 ● Go-swagger Todo list tutorial: http://goswagger.io/tutorial/todo-list/ ● Goa, design first then win: http://goa.design
  15. 15. Obrigado Arnaldo Pereira - Luiza Labs http://luizalabs.com http://twitter.com/arnaldostream

    Sé el primero en comentar

    Inicia sesión para ver los comentarios

  • powerirs

    Aug. 26, 2016

Utilização de Go no Luiza labs: erros, sucessos, serviços que respondem milhões de requisições sem serem percebidos. Técnicas de deploy utilizadas, rolling updates e Kubernetes em produção, partindo para multi-cloud.

Vistas

Total de vistas

674

En Slideshare

0

De embebidos

0

Número de embebidos

30

Acciones

Descargas

4

Compartidos

0

Comentarios

0

Me gusta

1

×