workshop soa, microservices e devops

390
Workshop: SOA, MicroServices e DevOps @diego_pacheco Software Architect | Agile Coach

Upload: diego-pacheco

Post on 15-Jul-2015

394 views

Category:

Technology


21 download

TRANSCRIPT

Page 1: Workshop soa, microservices e devops

Workshop: SOA, MicroServices e DevOps

@diego_pachecoSoftware Architect | Agile Coach

Page 2: Workshop soa, microservices e devops
Page 3: Workshop soa, microservices e devops

www.ilegra.com

Page 4: Workshop soa, microservices e devops

Dia 1

@diego_pachecoSoftware Architect | Agile Coach

Workshop: SOA, MicroServices e DevOps

Page 5: Workshop soa, microservices e devops

O Sonho da TI…

Page 6: Workshop soa, microservices e devops

Um Sistema que dure anos

Page 7: Workshop soa, microservices e devops

Qualidade de solucoes pra usuarios

Page 8: Workshop soa, microservices e devops

Satisfacao dos devs

Page 9: Workshop soa, microservices e devops

Performance/ Escalabilidade

Page 10: Workshop soa, microservices e devops

Flexibilidade de mudancas

Page 11: Workshop soa, microservices e devops

Facilidade de colocar pessoas novas, treinamentos, produtividade.

Page 12: Workshop soa, microservices e devops

A realidade…

Page 13: Workshop soa, microservices e devops

Uma nova forma de ver o mundo…

Page 14: Workshop soa, microservices e devops

A lei de Conway

Page 15: Workshop soa, microservices e devops

Precisamos pensar diferente!

Page 16: Workshop soa, microservices e devops

Desaprender necessário será.

Page 17: Workshop soa, microservices e devops

Prontos?

Page 18: Workshop soa, microservices e devops

Mudanças: Só precisamos mudra uma coisa

Cultura

Cultura

Cultura

Cultura

Page 19: Workshop soa, microservices e devops

Arquitetura de Software

Page 20: Workshop soa, microservices e devops

Vendo Além do código

Page 21: Workshop soa, microservices e devops

Visoes e Perspectivas, vendo além…

Page 22: Workshop soa, microservices e devops

Foco? Pedras Grande!

Software Arquitetura

Page 23: Workshop soa, microservices e devops

Estrutura e Design: Main Architecture

Page 24: Workshop soa, microservices e devops

Propósito: SOC

Page 25: Workshop soa, microservices e devops

Propósito: Main Arch + Archs por Components

Page 26: Workshop soa, microservices e devops

Integridade Conceitual Favela ou software?

VS

Page 27: Workshop soa, microservices e devops

Escalabilidade: Usuário e Devs

Page 28: Workshop soa, microservices e devops

Arquitetura mais comun no Mercado.

Page 29: Workshop soa, microservices e devops

A era da caixa mágica…

Page 30: Workshop soa, microservices e devops

Bom pra CRUDS…

Page 31: Workshop soa, microservices e devops

Esse tipo de framework não vem com Bateria. Muita coisa por fora!

Page 32: Workshop soa, microservices e devops

No Final a TI fica assim. Complexidade -> Custo de manutenção -> Baixo tempo de resposta -> Frustração do Business e dos Devs.

Page 33: Workshop soa, microservices e devops

Crescimento sem arquitetura

Application

UI

DB

Page 34: Workshop soa, microservices e devops

Crescimento sem arquitetura

Application

UI

DB

Application Application Application

Page 35: Workshop soa, microservices e devops

Profiles de Arquitetura

Page 36: Workshop soa, microservices e devops

CPU Bound

Page 37: Workshop soa, microservices e devops

Memory

Page 38: Workshop soa, microservices e devops

IO

Page 39: Workshop soa, microservices e devops

Network

Page 40: Workshop soa, microservices e devops

Natureza do Job

Short

Long

Page 41: Workshop soa, microservices e devops

Resposta

Page 42: Workshop soa, microservices e devops

Frequencia

Cientifico

- +

Financeiro

Page 43: Workshop soa, microservices e devops

Distribuição

Page 44: Workshop soa, microservices e devops

IO: bloqueante VS não-bloqueante

Page 45: Workshop soa, microservices e devops

Sync VS Async

Page 46: Workshop soa, microservices e devops

Sync ASync

• Bloqueante• Mal usa recursos • Mais Lento - Performance• Problemas de escalabilidade• Código mais simples

• Não-Bloqueante• Pode ter Race-Conditions• Callback Hell• Complexidade de código• Tratamento de Erros• Mais Performatico• Escalabilidade

Page 47: Workshop soa, microservices e devops

Back Pressure / Throttling / Spooling

Page 48: Workshop soa, microservices e devops

Metadados

Page 49: Workshop soa, microservices e devops

OLAP VS OLTP

Page 50: Workshop soa, microservices e devops

SOA de forma errada! FOCO em ferramentas.

WS-SOAP

WS-BPEL

ESB

Page 51: Workshop soa, microservices e devops

BPEL – Sem Código

Page 52: Workshop soa, microservices e devops

ESB

Page 53: Workshop soa, microservices e devops

Manifesto SOA

Page 54: Workshop soa, microservices e devops

Princípios SOA

Page 55: Workshop soa, microservices e devops

Thomas Jefferson (don’t copy the tools)

In matters of style, swim with the current;

In matters of principle, stand like a rock.

Page 56: Workshop soa, microservices e devops

Baixo Acomplamento

Page 57: Workshop soa, microservices e devops

SOC

Page 58: Workshop soa, microservices e devops

Flexibilidade

Page 59: Workshop soa, microservices e devops

Service - Abstraction

Page 60: Workshop soa, microservices e devops

Abstraction

Page 61: Workshop soa, microservices e devops

Composição – Serviços Compartilhados

Page 62: Workshop soa, microservices e devops

Contratos de Serviços

Page 63: Workshop soa, microservices e devops

Contratos de Serviços

Page 64: Workshop soa, microservices e devops

Contratos de ServiçosConsumidor

Contrato

Implementaçãodo

Serviço

Page 65: Workshop soa, microservices e devops

Partes de um Contrato

Nome do ServiçoOperações Públicas Comportamento do serviço *InputOutputVersãoFormato dos dados: Xml, Json, binárioLayout dos dados: dd/mm/yyyy, dddd-yy-mm, dd Protocolo de acesso frontend: SOAP, REST, EJB, IPC, Atores,

Stream, etc…

Outras dimenssoes que façam sentido a arquitetura e/ounegócio da empresa…

Page 66: Workshop soa, microservices e devops

Interface unificada X Syntax Especifica

Page 67: Workshop soa, microservices e devops

Interoperabilidade VS Integração de sistemas: Estado Caordico o meio termo. Contratos -> Padrao, Impl –> Free.

Page 68: Workshop soa, microservices e devops

Orientação a Serviços

Page 69: Workshop soa, microservices e devops

Business Capability: Sem Design pour acidente.

Page 70: Workshop soa, microservices e devops

Forma de Pensamento

SO

Page 71: Workshop soa, microservices e devops

Forma de Pensamento atual: Application

Page 72: Workshop soa, microservices e devops

Forma de Pensamento atual: Services?

Page 73: Workshop soa, microservices e devops

Forma de Pensamento

#Não

Page 74: Workshop soa, microservices e devops

Forma de Pensamento atual: Landscape

App Application

Business Service Internal

Generic UI Tech Service

External API

Internal API Data Service

MiddlewareTool

External APIIntegration

Service

Page 75: Workshop soa, microservices e devops

Tipos de Serviços

Business Service

Technical Service

Wrapper Service

Page 76: Workshop soa, microservices e devops

Patterns

Page 77: Workshop soa, microservices e devops

Service Wrapper

Page 78: Workshop soa, microservices e devops

Multi-Channel Endpoint

Page 79: Workshop soa, microservices e devops

Pontes

Page 80: Workshop soa, microservices e devops

Principios Service Discoverability Stantard Service Contract Standard Content types on Contracts Service Execution Context Service SOC Service Loose Coupling Service Abstration Service Contract Abstraction Service Composability Service Autonomy Service Reusability Service Stateleness Service State Management Service Precise Boundaries

Page 81: Workshop soa, microservices e devops

Governança SOA

Page 82: Workshop soa, microservices e devops

Serviços = Ativos

Page 83: Workshop soa, microservices e devops

Inventário

Serviços• Nome do Serviço• Função• Main Arch/Design• Contrato• SLAs• Versoes• Entitlements• Toggles• Owner:

• Business• Técnico

Page 84: Workshop soa, microservices e devops

SLA de Serviços

• Tempo de Resposta• Up Time• Throughput• Tamanho• Latencia• Usuários

Page 85: Workshop soa, microservices e devops

SLA e Design

Page 86: Workshop soa, microservices e devops

Stress Tests

Page 87: Workshop soa, microservices e devops

SOA Business Service Stack

Service Management(Exposure)

Service Infrastrure(Middleware Architecture)

Service(Business)

Stack

Page 88: Workshop soa, microservices e devops

Serviço

Contrato: Interface Pública(Operações) + Entradas e Saidas

Ponto de Entrada(Tradução)

Domínio Implementação

Stack

Page 89: Workshop soa, microservices e devops

Service Anatomy(Internal Stack)

Interno

Page 90: Workshop soa, microservices e devops

Ponto de Entrada(Tradução)

Domain

Data Layer

DAO

Business

Anti-Corruption Layer (BIND)

Backward Compatibility Converters

BCConverters

Contract :TCD => :contract:Integration

(UT)

Interno

Page 91: Workshop soa, microservices e devops

Ponto de Entrada(Tradução)

Data Layer

DAO

Business

Anti-Corruption Layer (BIND)

Backward Compatibility Converters

BCConverters

Contract :TCD => :contract:Integration

(UT)

Domain

Interno

Page 92: Workshop soa, microservices e devops

TDD

Page 93: Workshop soa, microservices e devops

TCD

Page 94: Workshop soa, microservices e devops

TestContractDdevelopment

Page 95: Workshop soa, microservices e devops
Page 96: Workshop soa, microservices e devops

Regras de Testes

Serviços sempre roda na ultima versão

Os testes são todos visionados

Testes Por Versão

Testes Separados Por pacotes

Não se toca nos testes uma vez que tenha nova versão, se mexe no serviço.

Devem testar todas operações e todo tipo de comportamento cabível de se testar.

Page 97: Workshop soa, microservices e devops

Canonical Versioning

Service

V1Contract

V2Contract

V3Contract

Page 98: Workshop soa, microservices e devops

Backward Compatibility – Time Window

Page 99: Workshop soa, microservices e devops

Backward Compatibility

Service

V1 - Contract

Consumidor X Consumidor Y

Page 100: Workshop soa, microservices e devops

Breaking Change VS Non-Breaking Change

• Adicionar Serviço novo• Adicionar Operação nova• Adicionar Atribuito em

request(input) opicional

• Remover Serviços• Renomear Serviços• Renomear Operações• Remover Operações• Adicionar atributos(input)

obrigatórios.• Mudar formato dos dados• Mudar Layout de Dados

Page 101: Workshop soa, microservices e devops

Backward Compatibility

Service

V1 C

Consumidor X Consumidor Y

V2 C

Page 102: Workshop soa, microservices e devops

Backward Compatibility

Service

Consumidor X Consumidor Y

V2 C

Page 103: Workshop soa, microservices e devops

SOA Patterns

Page 104: Workshop soa, microservices e devops

SOA Patterns

Page 105: Workshop soa, microservices e devops

SOA Patterns

Page 106: Workshop soa, microservices e devops

http://www.gettyimages.com/detail/81267134/Comstock-Images

Níveis de Test SOA

Page 107: Workshop soa, microservices e devops

Test Funcional

Page 108: Workshop soa, microservices e devops

http://img.domaintools.com/blog/dt-improved-performance.jpg

Test de Performance

Page 109: Workshop soa, microservices e devops

http://www.gettyimages.com/detail/57434631/Stockbyte

Tests unitário e Integração

Page 110: Workshop soa, microservices e devops

http://4.bp.blogspot.com/_vV6KYvnGMp0/ShLiIBB3shI/AAAAAAAABF8/AP85WpusAIU/s320/1981+-+Bezerra+da+Silva+-+Al%C3%B4+Malandragem,+Maloca+o+Flagrante+-+Download+Disco+Completo+Gr%C3%A1tis+Mp3+Free.jpg

Developer Test-> “Malandragen”

Page 111: Workshop soa, microservices e devops

Contract Testing -> Lightweight

http://www.gettyimages.com/detail/57421295/Image-Source

Page 112: Workshop soa, microservices e devops

Integration Test (Heavyweight)

http://www.gettyimages.com/detail/96611295/iStock-Vectors

ArghhhDATA...

Page 113: Workshop soa, microservices e devops

Regression

http://blogs.citypages.com/gimmenoise/back-to-the-future.jpg

Page 114: Workshop soa, microservices e devops

Continuous Integration é seu amigo!

Page 115: Workshop soa, microservices e devops

Dia 1 – Test

Page 116: Workshop soa, microservices e devops

Dia 1 – Test

• O que é Arquitetura de software de Verdade? Quais Elementos?• Do que é composto um contrato de serviço?• Falando de BC, modificar a ordenação de uma lista de retorno,

implica em que?• Em SOA, tudo é serviço? Explique por que.• Quais são os principios do manifesto SOA?• Devemos ter um serviço CPU Bound e Latency Bound na mesma

maquína?• Cite 3 vantagens de um serviço com 1 operação Async.• Explique a diferença de Long Running Job e Short, com exemplos.

Page 117: Workshop soa, microservices e devops

Dia 2

@diego_pachecoSoftware Architect | Agile Coach

Workshop: SOA, MicroServices e DevOps

Page 118: Workshop soa, microservices e devops

Modelos / Patterms de Arquitetura de Software

Page 119: Workshop soa, microservices e devops

Shared Database

Page 120: Workshop soa, microservices e devops

Flat file Integration

System A System B

Flat FileFlat File

Directory

Page 121: Workshop soa, microservices e devops

Client Server

Page 122: Workshop soa, microservices e devops

ETL

Page 123: Workshop soa, microservices e devops

Tiers e Layers

Page 124: Workshop soa, microservices e devops

Request/Response – Request Driven

Page 125: Workshop soa, microservices e devops

Black Board Architecture

Page 126: Workshop soa, microservices e devops

Tenancy

Page 127: Workshop soa, microservices e devops

Message Oriented

Page 128: Workshop soa, microservices e devops

Barramento

Page 129: Workshop soa, microservices e devops

EDA – Event Driven Architecture

Page 130: Workshop soa, microservices e devops

SEDA – Staged Event Driven Architecture

Page 131: Workshop soa, microservices e devops

Lambda Architecture

Page 132: Workshop soa, microservices e devops

Web Apis

Page 133: Workshop soa, microservices e devops

Web Apis – A Huge Economy

Page 134: Workshop soa, microservices e devops

Api Management Solutions

Page 135: Workshop soa, microservices e devops

Api Management Solutions

Page 136: Workshop soa, microservices e devops

Serviços Internos VS Serviços Externos ou APIs Customer Facing

Page 137: Workshop soa, microservices e devops
Page 138: Workshop soa, microservices e devops

Microservices

Page 139: Workshop soa, microservices e devops

Monoliticos

Page 140: Workshop soa, microservices e devops

MSA veio depois de SOA

Page 141: Workshop soa, microservices e devops

Microservices: Cases - Benchmark

~600 microservices ~150 microservices para uma página

Page 142: Workshop soa, microservices e devops

Microservices: Fine-Grained Business

Page 143: Workshop soa, microservices e devops

Microservices: Independent + Re-usable

Page 144: Workshop soa, microservices e devops

MSA é SOA!

http://martinfowler.com/articles/microservices.html

Page 145: Workshop soa, microservices e devops

Unix Philosophy: Dumb Pipes & Smart Endpoints

Page 146: Workshop soa, microservices e devops

Remover o “Middleware”

Page 147: Workshop soa, microservices e devops

Descentralização

ESB Microservices

Page 148: Workshop soa, microservices e devops

Isolamento

Page 149: Workshop soa, microservices e devops

Isolamento: Beneficios

Times Recursos Gestão

Page 150: Workshop soa, microservices e devops

Isolamento: Beneficios

Times

Ter multiplos times trabalhando ao mesmo tempo em coisas diferente, sem merge

É possível ter times por serviços Cada time pode trabalhar com técnologias diferentes Cada time pode trabalhar de formas diferentes por a

dependencia dos times vira por serviços e não pro pessoas.

É possível ter times fazendo delivery de business e outros atualizando tecnologias ou fazendo melhorias de performance.

Page 151: Workshop soa, microservices e devops

Isolamento: Beneficios

Recursos

Hardware diferente por serviço Serviços podem usar mais ou menos recursos Serviços não afetam os outros em runtime, tem mais

resiliencia. Isolamento de banco permite atualizaçoes no modelo e

tecnolgoia de dados sem impactos e outros serviços. Isolamento de CPU, Threads, Memoria, Rede faz com

que o serviço sejá autocontido e indepente assim tendo mais facilidade para portar de um lugar para outro até mesmo do DS local para Cloud ou vice-versa.

Page 152: Workshop soa, microservices e devops

Isolamento: Beneficios

Gestão

Diferentes prioridades do negócio podem ser feitas ao mesmo tempo de um jeito melhor.

Releases podem acontecer em simultaneo, semnecessidade de tanta coordenação e bloqueio como em outros modelos.

Podem se priorizar melhor: Bugs, Débitos Técnicos, melhorias de tecnologias e migrações.

Times tem mais produtividade e menos dependencias.Velocidade de deploy e test / experimentação de

funcionalidades.

Page 153: Workshop soa, microservices e devops

Balanceamento

Page 154: Workshop soa, microservices e devops

Anti-Patterns: Entendimentos Errados, Ideias Ruins entre outros…

Page 155: Workshop soa, microservices e devops

ANTI-Pattern: 1 Serviço para cada coisa. EX: 1 WS pro operação.

Page 156: Workshop soa, microservices e devops

ANTI-Pattern: 1 Serviço tem que ser sempre pequeno.

Page 157: Workshop soa, microservices e devops

ANTI-Pattern: MSA é SOA, não ignore os principios.

SOC

Backward Compatibility

Contracts Versioning

Governance

Page 158: Workshop soa, microservices e devops

ANTI-Pattern: NanoServices <= 10..100 LOC. “nem todos concordam”

NanoService or Function as a Service?

Page 159: Workshop soa, microservices e devops

Case: Netflix

Page 160: Workshop soa, microservices e devops

Case: Twitter

Page 161: Workshop soa, microservices e devops

Case: HailO

Page 162: Workshop soa, microservices e devops

Case: Gilt

Page 163: Workshop soa, microservices e devops

DDD: Domain Driven Design

Page 164: Workshop soa, microservices e devops

Usando REST para Microservices

Page 165: Workshop soa, microservices e devops

Spring Boot + REST

Page 166: Workshop soa, microservices e devops

Node The JS way

Page 167: Workshop soa, microservices e devops

Dropwizard+ REST

Page 168: Workshop soa, microservices e devops

Netflix OSS - IPC

Page 169: Workshop soa, microservices e devops

Akka as Microservice solution

Page 170: Workshop soa, microservices e devops

Actors VS RPC

Page 171: Workshop soa, microservices e devops

Colossus: nio + akka

Page 172: Workshop soa, microservices e devops

Spray: Akka + HTTP

Page 173: Workshop soa, microservices e devops

Muitas requests? Mobile? API Gateway Model

Page 174: Workshop soa, microservices e devops

API Gateway Model: Como fica a UI?

Page 175: Workshop soa, microservices e devops

IPC-ish, point-2-point, Brokerless solutions.

Ribbon

Quasar

Page 176: Workshop soa, microservices e devops

Lightweight Servers

Page 177: Workshop soa, microservices e devops

Big Fat Jar: $ java –jar service.jar | OneJar, Assembler, Packager, RPM…

Page 178: Workshop soa, microservices e devops

Isolamento Físico

Page 179: Workshop soa, microservices e devops

Tudo é sobre processos baratos.

Page 180: Workshop soa, microservices e devops

Requisitos: DevOps

Page 181: Workshop soa, microservices e devops

Requisitos: Monitoramento + Fall back explicito

Page 182: Workshop soa, microservices e devops

Requisitos: Design Boundaries

Page 183: Workshop soa, microservices e devops

Multiples DBs & TX

Users Service Images Service Comments Service

Page 184: Workshop soa, microservices e devops

Eventual Consistency

Alternativa a TX distribuidas Trabalha com eventos Os Serviços tem que ouvir esses

eventos e aplicar as mudanças nos dados.

Soluções: CQRS + Event Sourcing Topicos / Pub-Sub (JMS) Akka

É Possível ter TX local

Page 185: Workshop soa, microservices e devops

Eventual Consistency: ES

Page 186: Workshop soa, microservices e devops

Log Centralizado – ELK Stack

Page 187: Workshop soa, microservices e devops

Log Centralizado – Graphite + Grafana

http://grafana.org/

Page 188: Workshop soa, microservices e devops

Log Centralizado – Graylog

https://www.graylog.org/overview/

Page 189: Workshop soa, microservices e devops

Runtime Isolation + Metrics

Page 190: Workshop soa, microservices e devops

Runtime Isolation: Hystrix

Page 191: Workshop soa, microservices e devops

Runtime Isolation: Circuit Breaker

Page 192: Workshop soa, microservices e devops

https://github.com/Netflix/SimianArmy

Runtime Testing

Page 193: Workshop soa, microservices e devops

Todos os microservicos tem que ter o seu proprio pipeline.

Page 194: Workshop soa, microservices e devops

Sistema como um organismo vivo.

Page 195: Workshop soa, microservices e devops

Dia 2 – Test

Page 196: Workshop soa, microservices e devops

Dia 1 – Test

O que é isolamento e por que é importante? Posso ter microservices sem DevOps? Por que não? Como resolver o problema da transação distribuida? Quais as vantagens de microserviços? Por que precisamos de log centralizado? O que é back pressure? Timeouts? Por que temos que cuidar? Por que precisamos de fall back explicito? Tem como fazer MSA sem SOA? Por que?

Page 197: Workshop soa, microservices e devops

Dia 3

@diego_pachecoSoftware Architect | Agile Coach

Workshop: SOA, MicroServices e DevOps

Page 198: Workshop soa, microservices e devops

Soluções Open Source

Page 199: Workshop soa, microservices e devops
Page 200: Workshop soa, microservices e devops

Desenvolvimento

Jenkins CI

Redmine

Page 201: Workshop soa, microservices e devops

EIPSOA Patterns

OASIS

PADRÕES ABERTOS

Page 202: Workshop soa, microservices e devops
Page 203: Workshop soa, microservices e devops
Page 204: Workshop soa, microservices e devops

2000

REST

Page 205: Workshop soa, microservices e devops

REST

Page 206: Workshop soa, microservices e devops

#FACTS

• 85% of Amazon services usage is of the REST interface• Google Deprecates Their SOAP Search API

REST

Page 207: Workshop soa, microservices e devops

Representational State Transfer

REST

Page 208: Workshop soa, microservices e devops

Roy Fielding

REST

Page 209: Workshop soa, microservices e devops

HTTP

REST

Page 210: Workshop soa, microservices e devops

POX + POST + HTTP = REST

REST

Page 211: Workshop soa, microservices e devops

POX + POST + HTTP = REST

REST

Page 212: Workshop soa, microservices e devops

RESOURCES

REST

Page 213: Workshop soa, microservices e devops

Hypermedia

REST

Verbs + hm Media Types

REST

Page 214: Workshop soa, microservices e devops

Client Server

SOCUniform InterfacePortabilityScalable

REST

Page 215: Workshop soa, microservices e devops

Stateless (Stateful)

Client Server

REST

Page 216: Workshop soa, microservices e devops

Cacheable

REST

Page 217: Workshop soa, microservices e devops

Client Server

REST

Page 218: Workshop soa, microservices e devops

HTTP HEADERS(not only uris)

REST

Page 219: Workshop soa, microservices e devops

HTTP METHODS

REST

Page 220: Workshop soa, microservices e devops

REST

Page 221: Workshop soa, microservices e devops

Idempotent

REST

Page 222: Workshop soa, microservices e devops

REST - Exemplo

Page 223: Workshop soa, microservices e devops

SOAP

Page 224: Workshop soa, microservices e devops

SOAP

Page 225: Workshop soa, microservices e devops

SOAP

Page 226: Workshop soa, microservices e devops

SOAP

Page 227: Workshop soa, microservices e devops

SOAP

Page 228: Workshop soa, microservices e devops

SOAP

Page 229: Workshop soa, microservices e devops

SOAP

Page 230: Workshop soa, microservices e devops

<WSDL/>

WS-Provider(Expõe endpoints)

WS-Comsumer(Aplicação Client /

SOAPUI)

BrowserHttp://url/endpoint?wsdl

Request SOAP Message

ResponseSOAP Message Business Code

Http://url/endpoint

SOAP

Page 231: Workshop soa, microservices e devops

SOAP

Page 232: Workshop soa, microservices e devops

SOAP

Page 233: Workshop soa, microservices e devops

SOAP

Page 234: Workshop soa, microservices e devops

MIME Types

application/octet-stream

text/html

text/plain

image/jpeg

application/json

application/x-excel

SOAP

Page 235: Workshop soa, microservices e devops

SOAP

Page 236: Workshop soa, microservices e devops

JSON

Page 237: Workshop soa, microservices e devops

JSON

Page 238: Workshop soa, microservices e devops

JSON

Page 239: Workshop soa, microservices e devops

JSR 311JAX-RS: The JavaTM API for

RESTful Web Services

JSON

Page 240: Workshop soa, microservices e devops

ANNOTATIONS

Java

Page 241: Workshop soa, microservices e devops

@Path@Produces@Consumes

@GET@POST@PUT@DELETE@HEAD

@Context@PathParam@HeaderParam@CookieParam@QueryParam

Java

Page 242: Workshop soa, microservices e devops

Java

Page 243: Workshop soa, microservices e devops

Java

Page 244: Workshop soa, microservices e devops

GET /customers/1/order/2/price/2000/weight/2

Java

Page 245: Workshop soa, microservices e devops

Exceptions -> Error CodeJava

Page 246: Workshop soa, microservices e devops

ParametersJava

Page 247: Workshop soa, microservices e devops

FiltersJava

Page 248: Workshop soa, microservices e devops

RESTful services without annotationsJava

Page 249: Workshop soa, microservices e devops

web.xmlJava

Page 250: Workshop soa, microservices e devops

Programmatically ExposureJava

Page 251: Workshop soa, microservices e devops

WADL

Java

Page 252: Workshop soa, microservices e devops

Swagger

Page 253: Workshop soa, microservices e devops

Swagger

Page 254: Workshop soa, microservices e devops

JEE

Page 255: Workshop soa, microservices e devops

Spring Framework

Page 256: Workshop soa, microservices e devops

Spring Plataform

Page 257: Workshop soa, microservices e devops

Messageria

Page 258: Workshop soa, microservices e devops
Page 259: Workshop soa, microservices e devops
Page 260: Workshop soa, microservices e devops
Page 261: Workshop soa, microservices e devops

Workload não previsivel – Buffer / Spooling

Informações sobre o que esta acontecendo

Auto-Escalabilidade com + workers

Re-Processamento

Bom para Long Running Jobs

Queues

Page 262: Workshop soa, microservices e devops

Sender

Broker

FILA

WORKER

WORKER

FILA

Page 263: Workshop soa, microservices e devops

Message Patterns

Page 264: Workshop soa, microservices e devops

Spring Batch

Page 265: Workshop soa, microservices e devops

Integration

Page 266: Workshop soa, microservices e devops

ESB

Page 267: Workshop soa, microservices e devops

ESB

Page 268: Workshop soa, microservices e devops

Apache Camel: EIP

Page 269: Workshop soa, microservices e devops

Apache Camel

Page 270: Workshop soa, microservices e devops

EIP

Page 271: Workshop soa, microservices e devops
Page 272: Workshop soa, microservices e devops

Apache Camel: DSL

Page 273: Workshop soa, microservices e devops

WS-BPEL

Page 274: Workshop soa, microservices e devops

WS-BPEL

Page 275: Workshop soa, microservices e devops

CEP

Page 276: Workshop soa, microservices e devops

BRMS/DSL

BRMS

Page 277: Workshop soa, microservices e devops

BRMS

Page 278: Workshop soa, microservices e devops

ExpertBRMS

Page 279: Workshop soa, microservices e devops

FlowBRMS

Page 280: Workshop soa, microservices e devops

PlannerBRMS

Page 281: Workshop soa, microservices e devops

Guvnor - GeralBRMS

Page 282: Workshop soa, microservices e devops

Guvnor – Tabela de DecisãoBRMS

Page 283: Workshop soa, microservices e devops

Guvnor – Testes IntegradosBRMS

Page 284: Workshop soa, microservices e devops

Data Service

Page 285: Workshop soa, microservices e devops
Page 286: Workshop soa, microservices e devops

NoSQL

Page 287: Workshop soa, microservices e devops

Data Landscape

Page 288: Workshop soa, microservices e devops

Design Melhor

Page 289: Workshop soa, microservices e devops
Page 290: Workshop soa, microservices e devops

Sharding

Page 291: Workshop soa, microservices e devops

Text Search

Page 292: Workshop soa, microservices e devops

Cache

Page 293: Workshop soa, microservices e devops

DataGrid

Page 294: Workshop soa, microservices e devops

4 Vs

Page 295: Workshop soa, microservices e devops

BigData

Page 296: Workshop soa, microservices e devops

Hadoop

Page 297: Workshop soa, microservices e devops
Page 298: Workshop soa, microservices e devops

Data Lake

Page 299: Workshop soa, microservices e devops

Big Data - Hadoop

Page 300: Workshop soa, microservices e devops

Data Science BS

Page 301: Workshop soa, microservices e devops

FAST Data

Page 302: Workshop soa, microservices e devops

FAST Data

Page 303: Workshop soa, microservices e devops

Spark

Page 304: Workshop soa, microservices e devops

Spark

Page 305: Workshop soa, microservices e devops

Spark

Page 306: Workshop soa, microservices e devops

Stream Processing

Page 307: Workshop soa, microservices e devops

Stream Processing

Page 308: Workshop soa, microservices e devops

Stream Processing

Page 309: Workshop soa, microservices e devops

Storm

Page 310: Workshop soa, microservices e devops

Storm

Page 311: Workshop soa, microservices e devops

Reactive

Page 312: Workshop soa, microservices e devops

Akka

Page 313: Workshop soa, microservices e devops

https://rx.codeplex.com/

Erik Meijer

https://github.com/ReactiveX/RxJava

http://rxscala.github.io/

https://github.com/Reactive-Extensions

Reactive Extensions!

Page 314: Workshop soa, microservices e devops

Reactive Streams

Page 315: Workshop soa, microservices e devops

Cloud

Page 316: Workshop soa, microservices e devops

IaaS, Paas e SaaS

Page 317: Workshop soa, microservices e devops
Page 318: Workshop soa, microservices e devops

Cloud Patterns

Page 319: Workshop soa, microservices e devops

Amazon

Page 320: Workshop soa, microservices e devops

Google

Page 321: Workshop soa, microservices e devops

Cloud Interna

Page 322: Workshop soa, microservices e devops

DevOps

Page 323: Workshop soa, microservices e devops

Deploy Process?

Page 324: Workshop soa, microservices e devops

DevOps

Page 325: Workshop soa, microservices e devops

Promessa? – Realidade!

Page 326: Workshop soa, microservices e devops
Page 327: Workshop soa, microservices e devops

DevOps

Page 328: Workshop soa, microservices e devops

DevOps

Page 329: Workshop soa, microservices e devops

Anti-Fragilidade

Page 330: Workshop soa, microservices e devops

Anti-Fragilidade

Page 331: Workshop soa, microservices e devops

CD

Page 332: Workshop soa, microservices e devops

CM Basics

Versionamento inteligente de software Automatização Gestão de Dependencias

Maven, Gradle, Buildr, sbt, rake Artifactory

CI -> Jenkins Versionamento de todas as configurações

DEV PROD Ferramentas Servidores

Automação do ambiente do Dev: VM Vagrant Docker Dev Pack Scripts

Cultura de Tooling. 2 Linhas de código já deve ter um script

Page 333: Workshop soa, microservices e devops

DevOps

Page 334: Workshop soa, microservices e devops

DevOps

Page 335: Workshop soa, microservices e devops

CORE-Principles

Criar processo de liberação confiável e repetitivel Automatizar praticamente tudoMater tudo em controle de versão Se doer, faça mais frequente e antecipe Qualidade inbutida PRONTO significa LIBERADO(PROD) Todos são responsáveis pelo processo de RELEASEMelhoria Continua

Page 336: Workshop soa, microservices e devops

Sem Branchs

Lembre-se que você tem:

CODE Arquitetura versionamento Backeard compatibility Toggles Canary release Criatividade Automação DevOps

Page 337: Workshop soa, microservices e devops

Não ir pra casa com o Build quebrado

PASS!

Page 338: Workshop soa, microservices e devops

CD: Feature Toggles

Page 339: Workshop soa, microservices e devops

CD: Blue-Green Deployments

Page 340: Workshop soa, microservices e devops

CD: Canary Release

Page 341: Workshop soa, microservices e devops

DB: Versioning, Rollback e Refactoring.

Page 342: Workshop soa, microservices e devops

Configuration

Page 343: Workshop soa, microservices e devops

Anti-Patterns

Ciclos de releases Longos Handoffs ops, dev, qa, etc.. Preparar anbientes leva tempo Aplicar mudanças nos ambientes leva tempo Diferença de versoes de artefatos em ambientes Falta de invetorio preciso sobre prod Documentação de Steps manuaisMuitos testes manuais pra testar o deploy Releases com resultados não previsiveis

Page 344: Workshop soa, microservices e devops

SOSOA / MSA / MiddlewareC.D

Software Architecture

Build - GCC.I - JenkinsChef - PuppetDocker - VagrantCD

Automation

DevOps Completo – Ponta a Ponta

Infrasructure

Cloud (Ias)Data CentersNetwork - OSDBMiddleware Srvs

Tunning / Test

AssessmentsStress TestsJmeter / LoadUITunning (DB,Srvs)Profiling

OnGoing

Support – N1,2,3,4Tickets – SLASMetricsAlerts / MonitoringOperation 24/7

Complitude!

Page 345: Workshop soa, microservices e devops

Docker

Page 346: Workshop soa, microservices e devops

Docker

Page 347: Workshop soa, microservices e devops

Docker

Page 348: Workshop soa, microservices e devops

Docker

Page 349: Workshop soa, microservices e devops

Docker

Page 350: Workshop soa, microservices e devops

New: DoD / Tests

Page 351: Workshop soa, microservices e devops

Caos Controlado

http://jagt.github.io/clumsy/

Page 352: Workshop soa, microservices e devops

Processo de adoção SOA com LEAN

Page 353: Workshop soa, microservices e devops

Lean

Assumption 1: A matureorganization looks at thewhole system; it does notfocus on optimizingdisagreggregated parts.

Assumption 2 A matureorganization focuses onlearning effectively andempowers the people who dothe work to make decisions.

Page 354: Workshop soa, microservices e devops

LeanWhy do it at all ?Remove Waste

Page 355: Workshop soa, microservices e devops

Scientific Management & Taylor

1910People are not Smart, enough to know the best way to do it! They are lazy!

Workers will do as little as possible.

Workers do not care about quality.

Experts tell workers exactly what to do! Do the best and cheapest way! Pay extra if they do it the best way right!

Experts(management/supervisors) break the work in small parts so the workers can do it.

Page 356: Workshop soa, microservices e devops

W. Edwards Deming

The Humanist“All anyone asks for is a chance to work with pride.”

1940

People are good. People care !!!

Respect People.

People are about Trust, Pride, and applause not numbers.

Continuous improvements in work process: PDCA.

Intrinsic Motivation

Page 357: Workshop soa, microservices e devops

Respect People

Page 358: Workshop soa, microservices e devops

Lean Origins…

Taichii Ohno

TPS - 1948

Page 359: Workshop soa, microservices e devops

Lean Manufacturing

Page 360: Workshop soa, microservices e devops

Lean/Kanban Origins in Software…

~2002

(Mary & Tom Poppendieck)

(David Anderson)~2003

Page 361: Workshop soa, microservices e devops

Effort X Benefit

Page 362: Workshop soa, microservices e devops
Page 363: Workshop soa, microservices e devops
Page 364: Workshop soa, microservices e devops
Page 365: Workshop soa, microservices e devops

Bucket approach

Page 366: Workshop soa, microservices e devops

Hose approach

Page 367: Workshop soa, microservices e devops

Batch Size Reduction

Page 368: Workshop soa, microservices e devops

You need learn how to see waste !!!

Page 369: Workshop soa, microservices e devops

Documentando a bagunça? Design de software primeiro!

Page 370: Workshop soa, microservices e devops

Chão Batido Paralelepipido Autoestrada

Tempo

Complexidade

Valor Agregado

Escalabilidade

Risco

Page 371: Workshop soa, microservices e devops

htt

p:/

/ww

w.ie

ewas

te.o

rg/i

mag

es/e

-was

te-g

lob

ally

-b.jp

g

Page 372: Workshop soa, microservices e devops

htt

p:/

/to

mlin

son

-de

sign

.co

m/I

mag

es/b

luep

rin

t.jp

g#1 Foco em Tecnologia

Page 373: Workshop soa, microservices e devops

#2 Gastar em SW

htt

p:/

/nad

aco

nve

nci

on

al.f

iles.

wo

rdp

ress

.co

m/2

01

0/0

1/m

uit

o2

0d

inh

eiro

.jpg

Page 374: Workshop soa, microservices e devops

#3 Alcançar Perfeição de cara

htt

p:/

/3.b

p.b

logs

po

t.co

m/_

Fjn

Blb

xHj6

w/T

D2

lcSb

GIS

I/A

AA

AA

AA

AA

gc/I

aBih

gR2

zjc/

s16

00

/im

age%

5B

17

%5

D.jp

g

Page 375: Workshop soa, microservices e devops

#4 Não Pensar em Design/Arquitetura

htt

p:/

/mar

ksb

acky

ard

.co

m/s

iteb

uild

er/i

mag

es/B

ad-d

esig

n-4

63

x31

4.jp

g

Page 376: Workshop soa, microservices e devops

#5 Não Pensar Orientado a Serviços

htt

p:/

/cu

po

fjac

ksq

uat

.co

m/w

p-c

on

ten

t/u

plo

ads/

20

10

/01

/fai

l-o

wn

ed-s

ervi

ce-f

ail.j

pg

Page 377: Workshop soa, microservices e devops

htt

p:/

/ww

w.g

etty

imag

es.c

om

/det

ail/

10

32

04

00

7/D

igit

al-V

isio

n#6 Adoção Lenta

Page 378: Workshop soa, microservices e devops

htt

p:/

/ww

w.g

etty

imag

es.c

om

/det

ail/

10

39

12

28

2/P

ho

tod

isc#6 Adoção Lenta

Page 379: Workshop soa, microservices e devops

#7 Processo Pesado

htt

p:/

/in

usi

tatu

s.b

logt

varg

en

tin

a.co

m.a

r/im

g/Im

age/

Inu

sita

tus/

20

08

/Dez

emb

ro/t

rab

alh

o_

pes

ado

.jpg

Page 380: Workshop soa, microservices e devops

htt

p:/

/1.b

p.b

logs

po

t.co

m/_

5EE

1w

K9

F0q

s/S6

2h

zsB

Lp4

I/A

AA

AA

AA

AB

Pw

/yR

pV

IPI-

eSk/

s16

00

/Mu

dan

ca.d

e.H

abit

o.D

VD

RIP

.Xvi

d.D

ub

lad

o.jp

g

Page 381: Workshop soa, microservices e devops

#2 Gastar em Pessoas

htt

p:/

/4.b

p.b

logs

po

t.co

m/_

xQH

CG

fOh

3f0

/S-

h9

o7

a64

VI/

AA

AA

AA

AA

Ad

I/7

Q2

UO

WX

6W

hY/

s16

00

/Sel

e%C

3%A

7%

C3

%A

3o

+bra

sile

ira.

jpg

Page 382: Workshop soa, microservices e devops

Estrada de Barro Estrada de Paralelepípedo Auto-Estrada

Tempo

Complexidade

Valor Agreg.

Escalabilidade

Risco

#3 Qualidade Evolutiva

Page 383: Workshop soa, microservices e devops

#4 Pensar em Design/Arquitetura

htt

p:/

/up

load

.wik

imed

ia.o

rg/w

ikip

edia

/co

mm

on

s/6

/65

/Po

nte

_V

asco

_da_

Gam

a.jp

g

Page 384: Workshop soa, microservices e devops

#5 Pensar Orientado a Serviços

htt

p:/

/ww

w.g

etty

imag

es.c

om

/det

ail/

96

39

31

31

/Cu

ltu

ra

Page 385: Workshop soa, microservices e devops

#6 Adoção Rápida – Entregas Freqüentes

htt

p:/

/ww

w.g

etty

imag

es.c

om

/det

ail/

74

21

18

31

/MIX

A

Page 386: Workshop soa, microservices e devops

htt

p:/

/do

nir

ee.c

om

/wp

-co

nte

nt/

up

load

s/2

00

9/0

9/y

oga

1.jp

g

#7 Processo Enxuto/Leve

Page 387: Workshop soa, microservices e devops
Page 388: Workshop soa, microservices e devops

Dia 3 – Test

Page 389: Workshop soa, microservices e devops

Dia 3 – Test

O que é Lean? Por que é importante pra SOA/MSA? Qual a diferença de topicos e filas? Por que precisamos de arch OLAP seprada? Qual a diferença de Stream e Big Data? Qual a diferença de Data Lake para DW? Cite 4 disperdicios SOA sem Lean? Por que precisamos das estradas de barro? Tem como fazer SOA certo de primeiro? Quanto tempo demora pra adotar SOA?

Page 390: Workshop soa, microservices e devops

Workshop: SOA, MicroServices e DevOps

@diego_pachecoSoftware Architect | Agile Coach

Obrigado!