SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
Go e microserviços
nascidos um para o outro
https://eltonminetto.dev
Microserviços, o
que é?
[...] um estilo arquitetônico que estrutura uma
aplicação como uma coleção de serviços que
são:
• altamente manuteníveis e testáveis
• fracamente acoplados
• possíveis de serem feitos deploys
independentes
• organizados em torno das necessidades de
negócios
[...] permite a entrega/deploy contínua de
aplicativos grandes e complexos. Também
permite que uma organização evolua sua pilha
de tecnologias.
O que não é?
Uma bala de prata
Desculpa para usar todas as
tecnologias hipster do mercado ;)
Como implementar?
• Começar do zero com a arquitetura
• Começar como monolito e migrar
Quase todos os casos em
que ouvi falar de um sistema
que foi construído como um
sistema de microserviços do
zero, acabaram em sérios
problemas.
— Martin Fowler
Quase todas as histórias
de microserviços bem-
sucedidas começaram
como um monolito muito
grande que foi dividido
— Martin Fowler
Go, o que é?
Uma linguagem open source
Por que uma nova
linguagem?
Muitos problemas com software
em grande escala
Velocidade de compilação
Sistemas distribuídos Multicore
Objetivos
Semântica simples
Programação concorrente
Divertida!
Quem está usando?
Google, Basecamp, Globo.com, Canonical,
DigitalOcean, Dropbox, Github, Heroku,
Medium, Docker, MongoDB, Mozilla, Netflix,
New Relic, Mercado Livre, Cabify, New York
Times, Resultados Digitais, Moip, Neoway,
Walmart, Codenation, ContaAzul, TOTVS, etc
https://github.com/golang/go/wiki/GoUsers
TALK IS CHEAP, SHOW
ME THE CODE!
https://github.com/eminetto/talk-
microservices-go
Melhorias
• gRPC
• Containers
• Integração contínua/deploy contínuo
• Kubernetes
Isso deveria ser um microserviço?
• Múltiplas taxas de mudança
• Ciclos de vida independentes
• Escalabilidade independente
• Falha isolada
• Simplificar interações com dependências
externas
• A liberdade de escolher a tecnologia certa
para o trabalho
Dica extra
Culture Check
Referências
What are microservices?
MonolithFirst
Should that be a Microservice? Keep These Six
Factors in Mind
Awesome Go
https://eltonminetto.dev
https://codenation.dev
http://asemanago.com.br
@eminetto

Mais conteúdo relacionado

Mais procurados

Repository and Unit Of Work Design Patterns
Repository and Unit Of Work Design PatternsRepository and Unit Of Work Design Patterns
Repository and Unit Of Work Design PatternsHatim Hakeel
 
Micro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoniMicro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoniSandeep Soni
 
"Micro-frontends, web development", Oleksandr Khivrych
"Micro-frontends, web development", Oleksandr Khivrych"Micro-frontends, web development", Oleksandr Khivrych
"Micro-frontends, web development", Oleksandr KhivrychFwdays
 
Rest and the hypermedia constraint
Rest and the hypermedia constraintRest and the hypermedia constraint
Rest and the hypermedia constraintInviqa
 
Introduction To Micro Frontends
Introduction To Micro Frontends Introduction To Micro Frontends
Introduction To Micro Frontends Meitar Karas
 
Microservice Approach for Web Development with Micro Frontends
Microservice Approach for Web Development with Micro FrontendsMicroservice Approach for Web Development with Micro Frontends
Microservice Approach for Web Development with Micro Frontendsandrejusb
 
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019Codemotion
 
Mikrofrontend a Module Federation
Mikrofrontend a Module FederationMikrofrontend a Module Federation
Mikrofrontend a Module FederationThe Software House
 
Introduction to react native
Introduction to react nativeIntroduction to react native
Introduction to react nativeDani Akash
 
Angular 4 and TypeScript
Angular 4 and TypeScriptAngular 4 and TypeScript
Angular 4 and TypeScriptAhmed El-Kady
 

Mais procurados (20)

Repository and Unit Of Work Design Patterns
Repository and Unit Of Work Design PatternsRepository and Unit Of Work Design Patterns
Repository and Unit Of Work Design Patterns
 
Micro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoniMicro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoni
 
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJSMicro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
 
Monitoring Solutions for APIs
Monitoring Solutions for APIsMonitoring Solutions for APIs
Monitoring Solutions for APIs
 
Micro-frontends – is it a new normal?
Micro-frontends – is it a new normal?Micro-frontends – is it a new normal?
Micro-frontends – is it a new normal?
 
"Micro-frontends, web development", Oleksandr Khivrych
"Micro-frontends, web development", Oleksandr Khivrych"Micro-frontends, web development", Oleksandr Khivrych
"Micro-frontends, web development", Oleksandr Khivrych
 
Argocd up and running
Argocd up and runningArgocd up and running
Argocd up and running
 
Rest and the hypermedia constraint
Rest and the hypermedia constraintRest and the hypermedia constraint
Rest and the hypermedia constraint
 
Introduction To Micro Frontends
Introduction To Micro Frontends Introduction To Micro Frontends
Introduction To Micro Frontends
 
Tosca explained
Tosca explainedTosca explained
Tosca explained
 
Terraform
TerraformTerraform
Terraform
 
Microservice Approach for Web Development with Micro Frontends
Microservice Approach for Web Development with Micro FrontendsMicroservice Approach for Web Development with Micro Frontends
Microservice Approach for Web Development with Micro Frontends
 
.Net Core
.Net Core.Net Core
.Net Core
 
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019
 
Modern JS with ES6
Modern JS with ES6Modern JS with ES6
Modern JS with ES6
 
Mikrofrontend a Module Federation
Mikrofrontend a Module FederationMikrofrontend a Module Federation
Mikrofrontend a Module Federation
 
TypeScript
TypeScriptTypeScript
TypeScript
 
Terraform
TerraformTerraform
Terraform
 
Introduction to react native
Introduction to react nativeIntroduction to react native
Introduction to react native
 
Angular 4 and TypeScript
Angular 4 and TypeScriptAngular 4 and TypeScript
Angular 4 and TypeScript
 

Semelhante a Go e Microserviços - Nascidos um para o outro

Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de MicroservicosNorberto Enomoto
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de MicroserviçosNorberto Enomoto
 
Micro serviços com node.js
Micro serviços com node.jsMicro serviços com node.js
Micro serviços com node.jsBruno Trecenti
 
Tdc 2020 gerenciamento de incidente neste novo mundo
Tdc 2020   gerenciamento de incidente neste novo mundoTdc 2020   gerenciamento de incidente neste novo mundo
Tdc 2020 gerenciamento de incidente neste novo mundoFelipe Klerk Signorini
 
Skalena - Overview de Soluções
Skalena - Overview de Soluções Skalena - Overview de Soluções
Skalena - Overview de Soluções Edgar Silva
 
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017Renato Groff
 
Arquitetura de Micro Serviços
Arquitetura de Micro ServiçosArquitetura de Micro Serviços
Arquitetura de Micro ServiçosFernando Ike
 
Integrating Microservices
Integrating MicroservicesIntegrating Microservices
Integrating MicroservicesThiago Ramos
 
Um método para o desenvolvimento de software baseado em microsserviços
Um método para o desenvolvimento de software baseado em microsserviçosUm método para o desenvolvimento de software baseado em microsserviços
Um método para o desenvolvimento de software baseado em microsserviçosThiago Pereira
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de MicroserviçosNorberto Enomoto
 
O futuro do arquiteto e das arquiteturas Java Enterprise
O futuro do arquiteto e das arquiteturas Java EnterpriseO futuro do arquiteto e das arquiteturas Java Enterprise
O futuro do arquiteto e das arquiteturas Java EnterpriseGlobalcode
 
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaAzure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaRodrigo Marques Teixeira
 
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Renato Groff
 
Desafios de implantar uma arquitetura de microservices
Desafios de implantar uma arquitetura de microservicesDesafios de implantar uma arquitetura de microservices
Desafios de implantar uma arquitetura de microservicesleopoa
 
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...tdc-globalcode
 
Microservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud NetflixMicroservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud NetflixNatanael Fonseca
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Renato Groff
 

Semelhante a Go e Microserviços - Nascidos um para o outro (20)

Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de Microservicos
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de Microserviços
 
Micro serviços com node.js
Micro serviços com node.jsMicro serviços com node.js
Micro serviços com node.js
 
Tdc 2020 gerenciamento de incidente neste novo mundo
Tdc 2020   gerenciamento de incidente neste novo mundoTdc 2020   gerenciamento de incidente neste novo mundo
Tdc 2020 gerenciamento de incidente neste novo mundo
 
Skalena - Overview de Soluções
Skalena - Overview de Soluções Skalena - Overview de Soluções
Skalena - Overview de Soluções
 
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
Arquitetura de Microserviços - Tecnologia na Prática - Julho/2017
 
Arquitetura de Micro Serviços
Arquitetura de Micro ServiçosArquitetura de Micro Serviços
Arquitetura de Micro Serviços
 
Integrating Microservices
Integrating MicroservicesIntegrating Microservices
Integrating Microservices
 
Um método para o desenvolvimento de software baseado em microsserviços
Um método para o desenvolvimento de software baseado em microsserviçosUm método para o desenvolvimento de software baseado em microsserviços
Um método para o desenvolvimento de software baseado em microsserviços
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de Microserviços
 
O futuro do arquiteto e das arquiteturas Java Enterprise
O futuro do arquiteto e das arquiteturas Java EnterpriseO futuro do arquiteto e das arquiteturas Java Enterprise
O futuro do arquiteto e das arquiteturas Java Enterprise
 
Microserviços
MicroserviçosMicroserviços
Microserviços
 
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaAzure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
 
Introducao a Microservices
Introducao a MicroservicesIntroducao a Microservices
Introducao a Microservices
 
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
 
Microservices 2
Microservices 2Microservices 2
Microservices 2
 
Desafios de implantar uma arquitetura de microservices
Desafios de implantar uma arquitetura de microservicesDesafios de implantar uma arquitetura de microservices
Desafios de implantar uma arquitetura de microservices
 
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
TDC2017 | POA Trilha Arquitetura - Desafios de se implantar uma arquitetura d...
 
Microservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud NetflixMicroservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud Netflix
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016
 

Mais de Elton Minetto

Object Calisthenics em Go
Object Calisthenics em GoObject Calisthenics em Go
Object Calisthenics em GoElton Minetto
 
Programar != desenvolver software (v2)
Programar != desenvolver software (v2)Programar != desenvolver software (v2)
Programar != desenvolver software (v2)Elton Minetto
 
Gerenciando uma startup no Github Projects
Gerenciando uma startup no Github ProjectsGerenciando uma startup no Github Projects
Gerenciando uma startup no Github ProjectsElton Minetto
 
Clean architecture em Go - v2
Clean architecture em Go - v2Clean architecture em Go - v2
Clean architecture em Go - v2Elton Minetto
 
Programar != desenvolver software
Programar != desenvolver softwareProgramar != desenvolver software
Programar != desenvolver softwareElton Minetto
 
Clean Architecture em PHP
Clean Architecture em PHPClean Architecture em PHP
Clean Architecture em PHPElton Minetto
 
Clean Architecture in Golang
Clean Architecture in GolangClean Architecture in Golang
Clean Architecture in GolangElton Minetto
 
A jornada do desenvolvedor
A jornada do desenvolvedorA jornada do desenvolvedor
A jornada do desenvolvedorElton Minetto
 
Product and Technology
Product and TechnologyProduct and Technology
Product and TechnologyElton Minetto
 
Code:Nation Tech Stack
Code:Nation Tech StackCode:Nation Tech Stack
Code:Nation Tech StackElton Minetto
 
Modernizando projetos legados usando APIs
Modernizando projetos legados usando APIsModernizando projetos legados usando APIs
Modernizando projetos legados usando APIsElton Minetto
 
12 factor in the PHP world
12 factor in the PHP world12 factor in the PHP world
12 factor in the PHP worldElton Minetto
 
Building APIs using Go
Building APIs using GoBuilding APIs using Go
Building APIs using GoElton Minetto
 
O case da Compufácil e AWS
O case da Compufácil e AWSO case da Compufácil e AWS
O case da Compufácil e AWSElton Minetto
 
Como extrair métricas do Trello
Como extrair métricas do TrelloComo extrair métricas do Trello
Como extrair métricas do TrelloElton Minetto
 

Mais de Elton Minetto (20)

Object Calisthenics em Go
Object Calisthenics em GoObject Calisthenics em Go
Object Calisthenics em Go
 
Programar != desenvolver software (v2)
Programar != desenvolver software (v2)Programar != desenvolver software (v2)
Programar != desenvolver software (v2)
 
Gerenciando uma startup no Github Projects
Gerenciando uma startup no Github ProjectsGerenciando uma startup no Github Projects
Gerenciando uma startup no Github Projects
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Serverless em Go
Serverless em GoServerless em Go
Serverless em Go
 
JAMstack
JAMstackJAMstack
JAMstack
 
Clean architecture em Go - v2
Clean architecture em Go - v2Clean architecture em Go - v2
Clean architecture em Go - v2
 
Programar != desenvolver software
Programar != desenvolver softwareProgramar != desenvolver software
Programar != desenvolver software
 
Clean Architecture em PHP
Clean Architecture em PHPClean Architecture em PHP
Clean Architecture em PHP
 
Clean Architecture in Golang
Clean Architecture in GolangClean Architecture in Golang
Clean Architecture in Golang
 
A jornada do desenvolvedor
A jornada do desenvolvedorA jornada do desenvolvedor
A jornada do desenvolvedor
 
Product and Technology
Product and TechnologyProduct and Technology
Product and Technology
 
Code:Nation Tech Stack
Code:Nation Tech StackCode:Nation Tech Stack
Code:Nation Tech Stack
 
Modernizando projetos legados usando APIs
Modernizando projetos legados usando APIsModernizando projetos legados usando APIs
Modernizando projetos legados usando APIs
 
12 factor in the PHP world
12 factor in the PHP world12 factor in the PHP world
12 factor in the PHP world
 
Building APIs using Go
Building APIs using GoBuilding APIs using Go
Building APIs using Go
 
Start you
Start youStart you
Start you
 
O case da Compufácil e AWS
O case da Compufácil e AWSO case da Compufácil e AWS
O case da Compufácil e AWS
 
Introdução a Go
Introdução a GoIntrodução a Go
Introdução a Go
 
Como extrair métricas do Trello
Como extrair métricas do TrelloComo extrair métricas do Trello
Como extrair métricas do Trello
 

Go e Microserviços - Nascidos um para o outro