Post: Afinal de contas, o que é uma arquitetura baseada em micro serviços?

O conceito de micro serviços tem me ocupado por algum tempo.
Neste post tento dissecá-lo com o objetivo de descobrir o que isto realmente vêm a ser e de que modo muda o nosso modo de pensar e implementar soluções, inclusive se é de fato uma grande novidade.

Espero que gostem: https://www.youtube.com/watch?v=_04S0fYU7FI

Seu post é um vídeo no youtube sobre Bill Nye versus Ken Ham???

A propósito, recentemente Martin Fowler e James Lewis também publicaram um post falando sobre esse tema, aqui:

Ha ha ha ha ha ha ha ha!

Foi mal: toma o link certo: http://www.itexto.net/devkico/?p=1755

(a propósito, este vídeo é ridículo, me desculpem)

Muito legal seu post, esclareceu algumas dúvidas.

Concordo com o texto e vou além: certos autores, incluindo “autoridades” como Martin Fowler (que nunca desenvolveu um software relevante), precisam constantemente reinventar a roda para ter o que falar, senão caem no ostracismo.

Na verdade, dar nomes a conceitos e padrões é uma coisa muito importante.

Há uma história que o frameworks java começaram a ser baseados em POJOs quando o nome “POJO” foi criado.

Se o termo micro serviços começar a ser mais difundido e implementado na prática, será um grande ganho.

Infelizmente, ainda hoje, em muitos times a idéia de quebrar uma aplicação em micro serviços é vista como overengineering.

[quote=AbelBueno]Na verdade, dar nomes a conceitos e padrões é uma coisa muito importante.

Há uma história que o frameworks java começaram a ser baseados em POJOs quando o nome “POJO” foi criado.

Se o termo micro serviços começar a ser mais difundido e implementado na prática, será um grande ganho.

Infelizmente, ainda hoje, em muitos times a idéia de quebrar uma aplicação em micro serviços é vista como overengineering.[/quote]

Por que é. Geralmente essa arquitetura é usado em empresas da escala do netflix, amazon.

[quote=kicolobo]O conceito de micro serviços tem me ocupado por algum tempo.
Neste post tento dissecá-lo com o objetivo de descobrir o que isto realmente vêm a ser e de que modo muda o nosso modo de pensar e implementar soluções, inclusive se é de fato uma grande novidade.

Espero que gostem: https://www.youtube.com/watch?v=_04S0fYU7FI[/quote]

Começando pelo final, não é novidade. Até porque, para ser um padrão, precisa estar sendo praticado. Nesse ponto, não entendo as críticas. É fundamental que pessoas de peso, com reconhecimento do mercado, estejam dedicando tempo para descrever e especificar a arquitetura.

A principal mudança na maneira de pensar e implementar soluções, é a quebra de resistências devido à preconceitos sobre a arquitetura. Afinal, o peso de um Martin Fowler faz diferença.

Mas, como tudo, vai depender se a solução se adeque à situação da sua empresa ou modelo de negócio, e nunca a “modismos”.

Como Gusukuma falou aqui, depende do modelo de negócios. As vezes o problema está quando um determinado sistema atende duas ou mais áreas do negócio sem isso ser prático no uso real, onde uma parte acaba impactando outra sem precisar estarem juntas, sendo o ideal os sistemas serem separados para atender cada foco do negócio ou conjunto de usuários. Já os serviços ou até mesmo bibliotecas entram conforme a necessidade de compartilhamento. Então dependendo do caso pode ser visto mesmo como o que você se refere de “overengineering”, trazendo mais obstáculos técnicos sem necessidade. Mas também vão ter muitos casos que será importante como os citados.

Se você pretende migrar seu sistema de larga escala pra alguma nuvem, acho que vale a pena seguir as orientações dos engenheiros que passaram pela experiência de implementar micro serviços (ao invés do blogueiro Martin Fowler).

Microserviços é uma tendência de sistemas que rodam na nuvem.

Após uma semana publiquei no meu blog algumas conclusões que cheguei sobre o assunto.
Estou postando aqui para que possamos esquentar um pouco esta discussão: http://www.itexto.net/devkico/?p=1768

Basicamente, sim, é SOA.
O papo de que “SOA significa muitas coisas” é furado.
O problema da abordagem “Não projeto, mas produtos”

E mais algumas outras.

Por que você acha que experiência anterior em arquitetura SOA tradicional vai lhe ser útil para microserviços em nuvem?

[quote=lkbm]Por que você acha que experiência anterior em arquitetura SOA tradicional vai lhe ser útil para microserviços em nuvem?
[/quote]

SOA é um superset de micro serviços, quando executado e governado corretamento vai suprimir os principais problemas de uma arquitetura de micro-serviços: versionamento, duplicidade de operação, interoperabilidade. E vai ter ajudar com algum problemas de mais alto níveis, como segurança dos serviços, transição atômica, rastreabilidade de falha.

Pode-se adora SOA como a arquitetura de microservicos na nuvem

Acho que micro serviços é SOA sim, mas voltado para um público totalmente diferente, por que as empresas em sua maioria querem distância de nuvem depois dos escândalos de espionagem praticado pelos EUA.