O documento introduz o time NS-Integration da Netshoes, responsável por integrar sistemas como STEP, Ábacos e BCC através de APIs REST e arquitetura de microserviços. A abordagem adotada visa garantir escalabilidade, manutenção contínua e foco no produto através de serviços independentes e desacoplados. As boas práticas incluem testes automatizados, code coverage e ferramentas como Sonar para qualidade de código.
2. Introdução
NSI ou Netshoes Integration é o
nome do time que hoje é
responsável por prover
integrações sistemicas entre os
diversos sistemas da Netshoes
como STEP, Ábacos, BCC, ATG.
Bem-vindo!
0
1
3. Missão
A nossa missão é solucionar os problemas de comunicação
entre os sistemas, como PRODUTO X LOJA ou PREÇO X
LOJA, garantindo feedback rápido aos sistemas, áreas de
negócio e usuários.
0
3
4. CATALOG
Gestão do catálogo de
produtos e tudo o que o
compões como Marca,
Departamento, Atributos,
Configurações, Classificação,
Categoriazação
SERVICE ATG
Integração de produtos e
preços com a loja, realizando
a orquestração da
composição do produtos,
críticas e gestão de reenvio
PRICE
Integração de preços entre o
Ábacos e a Loja, mantendo o
preço atualizado online.
Produtos
Hoje o NSI é composto por diversos microservices
1
8
SERVICE MKP
Integração com o catálogo de
produtos do Marketplace,
realizando o matching de
produtos entre o catálogo
Netshoes e Sellers.
SERVICE ÁBACOS
Mantem o Ábacos atualizado
com o catálogo de produtos
do Marketplace
CRITICIZES MANAGER
Gerencia as críticas das
integrações
RESERVE MANAGER
Sistema de reserva que gerencia
consumo de dados para cada
sistema
TASK MANAGER
Gerencia tarefas agendadas
para que sejam executadas
garantindo um feedback da
tarefa
5. Primeiramente, não optamos pela tradicional
solução de integração onde temos um sistemão
com integrações baseadas em arquiteturas
monolíticas fazendo o uso de SOAP, tudo no
BANCO DE DADOS e a velha troca de
arquivos XML .
Solução
6. O que tem dado certo em arquiteturas
complexas com muitos sistemas se
comunicando, grande volume de dados,
garantia na entrega?
REST API e Microservices
Vamos ao bom e velho
trabalho de arquitetura
7. Empresas que precisam trocar grande volume
de dados com um grande ecosistema sistemico
tem mostrado que isso funciona, veja:
Quem tem usado isso?
8. 01 Protocolo de rede muito utilizado
HTTP
03 Alta Performance
Web Proxy (localização geográfica)
04 Alta Disponibilidade
Load Balancers como serviço
Escalabilidade
Web Cache
02
05 Permite evolução sem parar o sistema
Load Balancers
Porque REST?
1
9
06 Permite evolução sem quebrar os clientes
JSON, XML, HTML
07 Segurança
Oauth, HTTPS, TLS
9. Queremos integrar e manter o baixo acoplamento
Mapeando recursos que possam ficar transparentes para os clientes
Porque REST?
1
9
uuid
type
entity
Resource
code
department
attrbiutes
Product
code
name
Department
category
sku_code
list_price
sale_price
Price
17. Porque Microservices?
1
9
O Microservices é uma estratégia de arquitetura de software que vem sendo aplicada faz
alguns anos com o objetivo de tornar os serviços mais escaláveis. As aplicações monolíticas
estão perdendo espaço para os projetos orientados a serviço. Essa mudança deve-se a
necessidade dos negócios atuais de crescerem rapidamente e de forma dinâmica. Ao projetar
esse novo modelo arquitetural princípios de orientação a objetos, padrões, desacoplamento e
responsabilidades se tornam fundamentais além de testes unitários integrados e suporte ao
ciclo inteligente de DevOps.
• Combina com agilidade
• Estabelece pequenos serviços que possam funcionar de forma independente
• Garante a entrega continua e agilidade na atualização de partes do aplicação
• Favorece testes automatizados para que possa provisionar ou atualizar com segurança uma nova
versão
http://www.ramonduraes.net/2015/05/10/introduo-ao-conceito-de-microservices/
18. 01 Delegar responsabilidade específicas para cada componente
02 Escala na horizontal
03 Permite manutenção continua sem afetar o ecosistema
Porque Microservices?
1
9
04 Foco no produto e na evolução de novas features
05 Baixo custo de infraestrutura
06 Facilita a automação e reduz o trabalho operacional/manual, permite o DevOps