1) O documento discute a arquitetura de microserviços e SOA para um projeto com mais de 120 mil horas de desenvolvimento.
2) Apresenta os principais conceitos de SOA como separação de preocupações, acoplamento frouxo e contratos de serviço.
3) Discutem como usar filas ativas como ActiveMQ para lidar com cargas de trabalho imprevisíveis e tarefas de longa duração nos microserviços.
Sistemas de software costumam ficar cada vez mais difíceis de evoluir e manter na medida que o tempo passa e mais funcionalidades são adicionadas.
No Nubank, após 4 anos de evolução, adicionar novas funcionalidades é tão ou mais fácil do que era há 3 anos atrás. Nessa palestra vamos explorar as principais características que possibilitaram essa evolução rápida e contínua de funcionalidades, como exemplo:
Microservices com o escopo bem definido
Integração assíncrona entre serviços usando Kafka
Verificação de schemas nas integrações
Clojure e programação funcional
Palestra que o Rodrigo Flores e eu apresentamos no TDC 2015 na trilha NoSQL. Nesta palestra apresentamos uma introdução básica ao banco de Dados Datomic, e porque ele é ótimo para nossas necessidades no Nubank.
Sistemas de software costumam ficar cada vez mais difíceis de evoluir e manter na medida que o tempo passa e mais funcionalidades são adicionadas.
No Nubank, após 4 anos de evolução, adicionar novas funcionalidades é tão ou mais fácil do que era há 3 anos atrás. Nessa palestra vamos explorar as principais características que possibilitaram essa evolução rápida e contínua de funcionalidades, como exemplo:
Microservices com o escopo bem definido
Integração assíncrona entre serviços usando Kafka
Verificação de schemas nas integrações
Clojure e programação funcional
Palestra que o Rodrigo Flores e eu apresentamos no TDC 2015 na trilha NoSQL. Nesta palestra apresentamos uma introdução básica ao banco de Dados Datomic, e porque ele é ótimo para nossas necessidades no Nubank.
Presentation that took place during "IQPC SOA Event", September 2008, São Paulo, Brazil.
A case of a brazilian Telco that implanted SOA using an interesting approach.
Authors: Davi Carvalho (CIO) and Denis Bertoluci (Software Architecture Manager)
Minha apresentação oficial da IBM sobre Linux e Padrões Abertos. Como pode-se economizar com esse elementos, etc. Inclui alguns exemplos de arquiteturas não convencionais de custo muito baixo, como alta disponibilidade por replicação, PC multiusuário, etc.
Microsserviços, por que tão difícil? Um catálogo de padrões para criar serviç...Leonardo Ferreira Leite
Apresentação realizada na Trilha da Indústria da CBSoft 2023.
Resumo: Apresentamos aqui um catálogo de padrões para aprimorar a operacionalização de serviços, o que reduz o tempo de reparo. Tal catálogo é baseado na prática de equipes do Serpro, estatal federal de tecnologia. Contudo, há um ônus considerável para se aplicar todos esses padrões. É possível também a má aplicação e o esquecimento deles. Assim, o catálogo traz reflexões sobre dificuldades em se produzir microsserviços (muitos serviços com constante atualização). Tais reflexões podem basear futuras pesquisas.
Mais informação: https://www.ime.usp.br/~leofl/devops/2023-09-14/chastra-no-cbsoft.html
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integraçõesiMasters
José Vahl, Product Manager Sensedia, ministrou o workshop "APIs bem desenhadas como base para integrações", no PHP Experience 2016.
O iMasters PHP Experience 2016 aconteceu nos dias 21 e 22 de Março de 2015, no Hotel Tivoli em São Paulo-SP
http://phpexperience2016.imasters.com.br/
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
JBoss Fuse Service Works - O Fuse além da integração
Red Hat Day 07/11/2014
1 - Arquitetura de aplicações Java
2 - Soluções de integração
3 - Arquitetura orientada a serviços SOA
5 - Diferença entre JBoss Fuse e JBoss Fuse Service Works
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
Muitas empresas tem adotado uma arquitetura de microserviços em seus projetos, devido a capacidade de fazermos o deploy de cada serviço de forma independente, escalar e manter cada microserviço, além de paralelizar o desenvolvimento entre múltiplos times. Nesse contexto, pretende-se mostrar desafios que temos encontrado na área de qualidade e quais técnicas de desenvolvimento e testes podem ser utilizados.
Obs.: Evolução da apresentação feita originalmente no TDC 2018 (Trilha Testes)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infosimples
Esta apresentação foi feita para um minicurso na Escola Politécnica da USP administrado pela Infosimples. Foram discutidos temas de Infraestrutura com foco em escalabilidade e redundância. Também foram apresentadas as opções comerciais de contratação de infraestrutura. Por fim, uma atividade prática de publicação (deployment) de uma aplicação web foi realizada.
https://infosimples.com/artigos/como-publicar-uma-aplicacao-web-usando-aws
Presentation that took place during "IQPC SOA Event", September 2008, São Paulo, Brazil.
A case of a brazilian Telco that implanted SOA using an interesting approach.
Authors: Davi Carvalho (CIO) and Denis Bertoluci (Software Architecture Manager)
Minha apresentação oficial da IBM sobre Linux e Padrões Abertos. Como pode-se economizar com esse elementos, etc. Inclui alguns exemplos de arquiteturas não convencionais de custo muito baixo, como alta disponibilidade por replicação, PC multiusuário, etc.
Microsserviços, por que tão difícil? Um catálogo de padrões para criar serviç...Leonardo Ferreira Leite
Apresentação realizada na Trilha da Indústria da CBSoft 2023.
Resumo: Apresentamos aqui um catálogo de padrões para aprimorar a operacionalização de serviços, o que reduz o tempo de reparo. Tal catálogo é baseado na prática de equipes do Serpro, estatal federal de tecnologia. Contudo, há um ônus considerável para se aplicar todos esses padrões. É possível também a má aplicação e o esquecimento deles. Assim, o catálogo traz reflexões sobre dificuldades em se produzir microsserviços (muitos serviços com constante atualização). Tais reflexões podem basear futuras pesquisas.
Mais informação: https://www.ime.usp.br/~leofl/devops/2023-09-14/chastra-no-cbsoft.html
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integraçõesiMasters
José Vahl, Product Manager Sensedia, ministrou o workshop "APIs bem desenhadas como base para integrações", no PHP Experience 2016.
O iMasters PHP Experience 2016 aconteceu nos dias 21 e 22 de Março de 2015, no Hotel Tivoli em São Paulo-SP
http://phpexperience2016.imasters.com.br/
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
JBoss Fuse Service Works - O Fuse além da integração
Red Hat Day 07/11/2014
1 - Arquitetura de aplicações Java
2 - Soluções de integração
3 - Arquitetura orientada a serviços SOA
5 - Diferença entre JBoss Fuse e JBoss Fuse Service Works
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
Muitas empresas tem adotado uma arquitetura de microserviços em seus projetos, devido a capacidade de fazermos o deploy de cada serviço de forma independente, escalar e manter cada microserviço, além de paralelizar o desenvolvimento entre múltiplos times. Nesse contexto, pretende-se mostrar desafios que temos encontrado na área de qualidade e quais técnicas de desenvolvimento e testes podem ser utilizados.
Obs.: Evolução da apresentação feita originalmente no TDC 2018 (Trilha Testes)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infosimples
Esta apresentação foi feita para um minicurso na Escola Politécnica da USP administrado pela Infosimples. Foram discutidos temas de Infraestrutura com foco em escalabilidade e redundância. Também foram apresentadas as opções comerciais de contratação de infraestrutura. Por fim, uma atividade prática de publicação (deployment) de uma aplicação web foi realizada.
https://infosimples.com/artigos/como-publicar-uma-aplicacao-web-usando-aws
Encryption Deep Dive: Randomness, Entropy, RNG, PRNG, AES, AES Operational Modes, Data Rotations, Java Encryption APIs, Tradeoffs, challenges, Envelope Encryption, KMS, and much more on all things encryption.
Design is Not Subjective! Software design and Lean UX, Ux, Design Thinking are not that different after all. UML was in the right direction the problem was where we applied. In this video, I will explain why Design is not subjective. Video https://www.youtube.com/watch?v=ijGR6Tbhr54
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
11. Contexto de Business
Quase nehuma “escrita”
Escrita em outros processos
Muito mais lietura do que escrita
Muitas aquisicoes
Necessidade acesso de dados
Necessidade de Escalabilidade
+Cache +Serialicação do que TX
12. Thomas Jefferson (don’t copy the tools)
In matters of
style, swim with
the current;
In matters of
principle, stand
like a rock.
15. Core Principles
Separation of Concerns (SOC)
Loose Coupling
Flexibility
Scalability
Performance
Single Integrated Platform
Focus on Serialization and
cache rather than database.
18. 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…
19. 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
24. Workload não previsivel – Buffer / Spooling
Informações sobre o que esta acontecendo
Auto-Escalabilidade com + workers
Re-Processamento
Durabilidade
Bom para Long Running Jobs
Queues: O melhor das filas
31. Micro-Workers? DDD VS Data Driven
http://diego-pacheco.blogspot.com.br/2015/04/micro-workers-flavor-or-microservices.html
Contract
Impl
Data Data Data
35. Services Architecture / Composição
Localizar Procurar
Exportar
Alertar
Exportar Pesquisa Integração
+15 SOA Services
+API as Services
Single Purpose Services
N workers per ServiceAPI Business 1 API Business 2 API Business 3 API Business 4
38. 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.
40. 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
41. Lições Aprendidas
Wins VS Aprendizados
Focando SOA com principios
Isolamento Fisico
Abstracoes
Refactoring
Upgrades Tech
Performance
Queues Long Run
Composição por Código para cenários simples
Versionamento por coding e não por
branches.
Isolamento de servers, threads pools, cache e
máquinas.
Soluções OSS muito maduras
Automação não estava 1000%
Issues com Automação de BD
Queues sendo pesadas para Light sync
ActiveMQ e messageria no geral é muito
associado ao hardware e dados, em um
cenário de mudanças precisa estar sempre
tunando.
Timeouts escondem issues
Messageria com DLQ é ruim, melhor usar
solução de log centralizado como ELK.
Cache Local é bom, mas pode explodir
serviço, logo é melhor ter um data grid
distribuido como Coherence.
42. Microservices, SOA
e o melhor das Filas
@diego_pacheco
Software Architect | Agile Coach
Obrigado!