abril de 2017 diego de oliveira e marden neubert - qconsp.com · marden neubert formador de times...

21
Diego de Oliveira e Marden Neubert Abril de 2017

Upload: vumien

Post on 02-Dec-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

Diego de Oliveira e Marden NeubertAbril de 2017

Page 2: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz

Diego de Oliveira .Apaixonado por desafios .

Devorador de livros .Nerd .

Pai .

Page 3: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

[ Colocar uma foto do hackaton ]

Page 4: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

microserviços aparecem em sistemas

Page 5: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

ResponsivoBaixa latência, fail fast, ...

ResilienteNão propaga falhas em cascata, boa disponibilidade

ElásticoPossível adicionar ou remover instâncias

IsoladoCiclo de vida, dados, deployment, monitoração, etc.

Responsabilidade únicaAtua em um contexto de domínio bem definido

Estado exclusivoNão compartilha banco de dados, filesystem, ...

MobilidadeCapacidade de ser migrado com pouco esforço

Page 6: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

Paradigma maduro Tão antigo quanto programação orientada a objetos

Comunicação assíncronaIncorporada de forma inerente ao modelo

Atores criam outros atoresIsso viabiliza elasticidade e leva a uma topologia dinâmica

Programação ou arquiteturaAplicável como paradigma de programação ou como estilo de arquitetura

Page 7: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

Sistema com programação Reativa

Focado dentro do serviço

● IO não blocante● Event looping● Bibliotecas como RxJava, Akka● Linguagens e frameworks como

Golang, Elixir, NodeJs, Vertx,

o seu sistema pode ser multithread, não blocante, reativo, concorrente, paralelo...

Page 8: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

Microserviços reativos

Focado na integração entre os microserviços

● Padrões de integração● Event Sourcing● CQRS

Page 9: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

no fim das palestras, blogs e livros sempre ficava um “depende”

não achamos nenhum mapa, tem que atuar na cultura

Imprevisibilidade

Não há rota pronta

Novos processos e técnicas devem ser internalizadas

Page 10: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

Não faça nadaA princípio não se preocupe

com isso, fique atento ao . problema de negócio. .

O crescimento dele .irá definir a real .

necessidade .

. Entenda

. Observe os resultados,

. como o time está absorvendo

. as mudanças. Relacione com

. referências já conhecidas de

. mercado

Comece Quando seu sistema começar a ganhar tamanho, comece a testar novos modelos em partes menos críticas

Direcione .Crie mecanismos, práticas .

e facilidades para reduzir .africção de uso do .

novo modelo

12

3

4

Ações

Page 11: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

Há pouca necessidade de comunicaçãoNo começo surgir um monolito é natural.

Deve-se observar o crescimento do time e das funcionalidades atento ao ponto crítico

Page 12: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

Uma vez percebido problemas com delivery, velocidade do time, dificuldade de refatoração, etc, é preciso aprender a modularizar, aqui começam a aparecer macroserviçes

Faz parte do processo de aprendizagem para evitar vazamento de contextos entre os

módulos

Alguma comunicação ativa entre sistemas. A origem da informação notifica os interessados

Page 13: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

Muita comunicação e necessidade de coordenação, mas ainda pode melhorar...

Várias peças móveis, necessidade de maturidade nos mecanismos de monitoração e operação

Page 14: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

Não é preciso ficar na moda de. microserviços, eles devem ser. do tamanho certo

O processo evolutivo permite ao time aprender a achar a. delineação das fronteiras dos sistemas

Muita comunicação e coordenação entre os sistemas

Page 15: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

log

MB

MA

BA

MC

D

MD

ME

E

A BMB

C

D

E(MA)

(MA)

(MA)

C

Page 16: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

MAv1

MAv2

MAv3

… log ...

... log ...

... log ...

Qualquer sistema interessado pode ouvir o

log de eventos

Conteúdo

● As mensagens deve ser versionadas● Schema formalmente definido (json

schema, Protobuf, Avro)● Curadoria sobre o modelo das

mensagens● Portável entre plataformas e

linguagens

Armazenamento

● Garantias de Ordem● Distribuído● Extensível

Page 17: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

GUI de Cadastro

Serviço de Usuários

Serviço de Vendas

GUI de Vendas

Serviço de conciliação

Serviço de classif. Vendedor

URA

● Alguns serviços atuam de forma ativa

● Alguns serviços atuam de forma reativa

● API First● Cada um com banco de

dados próprio● Visão própria dos dados

de sistema

Page 18: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

● Os times atuam em um ou poucos componentes● Times trabalham com mock de componentes não essenciais● Componentes essenciais executando para auxiliar o desenvolvimento● Uso de perfis de execução

● Especialização em sub-sistemas● Ecossistema heterogêneo:

Nodejs, Java + Springboot, Java + Vertx, Reactjs, Server side templating, Vuejs, Golang, Rabbit, Kafka, MySQL, Oracle, Memcached, Cassandra, etc

Page 19: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

You must be this big to ride

Atende muito bem se você:

● tem um número grande de times● está em uma fase de super

crescimento● tem cultura ágil e devops● aplica arquitetura evolutiva● usa ferramental adequado

Page 20: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

Desafio técnico e culturalÉ preciso atuar na formação e na capacitação dos times

Muda a forma de estimarMenor dependência entre times, porém com maior sincronização

Revisão de modelo existenteNão é hype, é uma nova leitura de um modelo maduro e consolidado

Modelo de crescimentoEscala para grandes projetos e times

Complexidade adicionalRequer maturidade e ferramental para ser efetivo

Maior resiliênciaPermite isolamento de pontos de falha, backpressure, etc.

Motiva os timesMenor lead time traz sensação de trabalho realizado

Page 21: Abril de 2017 Diego de Oliveira e Marden Neubert - qconsp.com · Marden Neubert Formador de times Obcecado por soluções Agilista Aprendiz Diego de Oliveira . Apaixonado por desafios

Buscando desafios?https://goo.gl/vGbSb2

Diego de Oliveira e Marden NeubertAbril de 2017