Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microservices

 Microservices

Quebrando gigantes em pequenos

Vinícius Krolow

March 25, 2015
Tweet

More Decks by Vinícius Krolow

Other Decks in Technology

Transcript

  1. mas o que é então? não existe uma definição “concreta”

    ainda… Arquitetura de software que busca desacoplar/quebrar aplicações em serviços “pequenos” que atendam um requisito funcional da aplicação e que funcionem de forma independente.
  2. browser hey http server get “/”? for sure, let me

    see here… ….. alright here is the response UI Store Service Inventory Service Shipping Service Aplicação monolítica
  3. @browser: hey @http_server get “/”? Store service Inventory Service Shipping

    Service Aplicação monolítica / single page UI @http_server, okay here are the html/js and lets make theses ajax calls to backend
  4. Menores e simples Ao contrário das aplicações monolíticas, os microservices

    vão focar em pequenos contextos/soluções o que leva: • Ser mais fácil de entender • Menor code base • Rápido de rodar e fazer deploy • Reduzir/Dividir developers por serviços • Maior controle domínio do contexto
  5. Conceitos: Domínio: Venda de produtos onlines (e-commerce) Sub-domínios: Venda, Estoque,

    Controle financeiro, Pós venda, Histórico de compras, Pagamento, Logística, etc… Contextos Delimitadores: “Usuários” podem ter contexto diferentes no sub-dominío de venda, e no subdomínio de pós vendas.
  6. depende... Pode ser comunicação síncrona ou assíncrona HTTP/REST JSON ou

    Protobuf Messages Queue (ZeroMQ, RabbitMQ, etc..) Assim como pode variar o protocolo TCP/UDP...
  7. usam e abusam da cloud • virtual machines • containers

    (dockers) • servidores físicos • instâncias separadas • instâncias juntas
  8. complexidade de sistemas distribuídos 1. The network is reliable. 2.

    Latency is zero. 3. Bandwidth is infinite. 4. The network is secure. 5. Topology doesn't change. 6. There is one administrator. 7. Transport cost is zero. 8. The network is homogeneous. http://www.rgoarchitects.com/Files/fallacies.pdf “8 falácias de sistemas distruídos”
  9. versionamento, fallback, coordenadação para evitar quebras de interface de contrato!

    http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html
  10. é algo que está em alta Pode vir a se

    tornar uma tendência para os projetos maiores web, por ser uma tendência/hype, padrões de projetos, padrões de arquitetura e ferramentas estão sendo criados para atender essa demanda.
  11. Não é pau de toda obra… Mas pode ser uma

    solução eficaz para alguns tipos de projetos onde reutilização de serviços se da necessário e ou escalabilidade e divisão de esforços são necessários...