31
Desafiando o status quo: quando e por que não usar microsserviços, Big Data, etc Michael Nascimento Santos

TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

Embed Size (px)

Citation preview

Page 1: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

Desafiando o status quo: quando e por que não usar microsserviços, Big Data, etc

Michael Nascimento Santos

Page 2: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda
Page 3: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda
Page 4: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda
Page 5: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

Microsserviços(É, eita acordo ortográfico

complicado…)

Page 6: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda
Page 7: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda
Page 8: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

There's no reason why you can't make a single monolith with well defined module boundaries -

Martin Fowler

Page 9: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

“Microservices ... only work well if you come up with good, stable boundaries between the services - which is essentially the task of drawing up the right set of BoundedContexts. Any refactoring of functionality between services is much harder than it is in a monolith. Even experienced architects working in familiar domains have great difficulty getting boundaries right at the beginning. By building a monolith first, you can figure out what the right boundaries are, before a microservices design brushes a layer of treacle over them.” - Martin Fowler

Page 10: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

Deploy e desenvolvimento complexo

Page 11: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

I've heard people say that you need to use microservices because it's impossible to do Continuous Delivery with monoliths - yet there are plenty of organizations that succeed with a cookie-cutter deployment approach: Facebook and Etsy are two well-known examples. - Martin Fowler

Page 12: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

The microservices approach is all about handling a complex system, but in order to do so the approach introduces its own set of complexities. When you use microservices you have to work on automated deployment, monitoring, dealing with failure, eventual consistency, and other factors that a distributed system introduces. There are well-known ways to cope with all this, but it's extra effort, and nobody I know in software development seems to have acres of free time. - Martin Fowler

Page 13: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

Difícil de evoluir com múltiplos times

Page 14: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda
Page 15: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

Remember that the microservices approach brings a high premium, one that can slow down your

development considerably. So if you can keep your system simple enough to avoid the need for

microservices: do. - Martin Fowler

Page 16: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

I'm always reluctant to play the distribution card, and think too many people go distributed too quickly

because they underestimate the problems - Martin Fowler

Page 17: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

First Law of Distributed Object Design: "don't distribute your

objects" - Martin Fowler

Page 18: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

Pré-requisitos● Testes

● Provisionamento rápido

● Monitoramento

● Deployment rápido

● Saber lidar com computação distribuída (transações, caches

eventualmente consistentes, latência etc.)

Page 19: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

Não siga a manada● Chamadas assíncronas

● Protocolo binário

● Design for failure

Page 20: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda
Page 21: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

The additional complexity that comes from distributed systems requires an additional level of maturity and investment. We are concerned that some teams are rushing in to adopting microservices without understanding the changes to development, test, and operations that are required to do them well. Our general advice remains simple. Avoid microservice envy and start with one or two services before rushing headlong into developing more, to allow your teams time to adjust and understand the right level of granularity. - ThoughtWorks

Page 22: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

Big Data

Page 23: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

Seus dados cabem em RAM?

Page 24: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

r3.2xlarge - 61GB - USD160r3.8xlarge - 244GB - USD638,4

Page 25: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

Péssimo exemplo● Base com milhões de linhas :-)

Page 26: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

Bons exemplos● Sensores (IoT)

● Dados não estruturados

● Bases que chegam a TB

● Processamento real-time (streaming)

Page 27: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

Relational databases are mature technology, that lots of people are familiar with and have good tooling. Unless there is a good argument for something else, they are

currently still the default choice. - Martin Fowler

Page 29: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

Use se fizer SENTIDO!

Page 31: TDC2016SP - Desafiando o status quo: quando e por que não usar microsserviços, Big Data e soluções em moda

Improving your business