46. 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
65. Partes de um Contrato
Nome do Serviço
Operações Públicas
Comportamento do serviço *
Input
Output
Versão
Formato dos dados: Xml, Json, binário
Layout 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/ou
negócio da empresa…
74. Forma de Pensamento atual: Landscape
App Application
Business Service Internal
Generic UI Tech Service
External API
Internal API Data Service
MiddlewareTool
External API
Integration
Service
80. 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
90. Ponto de Entrada(Tradução)
Domain
Data Layer
DAO
Business
Anti-Corruption Layer (BIND)
Backward Compatibility Converters
BC
Converters
Contract :TCD =>
:contract
:Integration
(UT)
Interno
91. Ponto de Entrada(Tradução)
Data Layer
DAO
Business
Anti-Corruption Layer (BIND)
Backward Compatibility Converters
BC
Converters
Contract :TCD =>
:contract
:Integration
(UT)
Domain
Interno
96. 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.
116. 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.
150. 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.
151. 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.
152. Isolamento: Beneficios
Gestão
Diferentes prioridades do negócio podem ser feitas ao
mesmo tempo de um jeito melhor.
Releases podem acontecer em simultaneo, sem
necessidade 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.
183. Multiples DBs & TX
Users Service Images Service Comments Service
184. 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
196. 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?
261. 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
332. 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
335. CORE-Principles
Criar processo de liberação confiável e repetitivel
Automatizar praticamente tudo
Mater 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 RELEASE
Melhoria Continua
343. 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 manuais
Muitos testes manuais pra testar o deploy
Releases com resultados não previsiveis
344. SO
SOA /
MSA /
Middleware
C.D
Software
Architecture
Build - GC
C.I - Jenkins
Chef - Puppet
Docker - Vagrant
CD
Automation
DevOps Completo – Ponta a Ponta
Infrasructure
Cloud (Ias)
Data Centers
Network - OS
DB
Middleware Srvs
Tunning / Test
Assessments
Stress Tests
Jmeter / LoadUI
Tunning (DB,Srvs)
Profiling
OnGoing
Support – N1,2,3,4
Tickets – SLAS
Metrics
Alerts / Monitoring
Operation 24/7
Complitude!
353. Lean
Assumption 1: A mature
organization looks at the
whole system; it does not
focus on optimizing
disagreggregated parts.
Assumption 2 A mature
organization focuses on
learning effectively and
empowers the people who do
the work to make decisions.
355. Scientific Management & Taylor
1910
People 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.
356. 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
389. 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?