Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sistemas Distribuidos Escaláveis com Microserviços

reinaldob
November 28, 2015

Sistemas Distribuidos Escaláveis com Microserviços

Sistemas Distribuidos Escaláveis com Microserviços

reinaldob

November 28, 2015
Tweet

More Decks by reinaldob

Other Decks in Technology

Transcript

  1. @reinaldob • Programador na Spree Commerce Inc. • Empresa focada

    em eCommerce • Equipe distribuída • 99% home office
  2. Trabalho • Vários times mexendo no mesmo código • 1

    app importante e estável send “deployada" junto com 1 app que muda frequentemente • API junto com APP, requisitos de segurança diferentes • etc…
  3. Sem bala de prata • Estudar o contexto • Perfil

    da equipe de Dev • Equipe Devops • Conways law • Tamanho dos times • Melhores protocolos • A lista é grande…
  4. Storefront Wombat Order Payment Shipment Fulfilment Replicate ready, complete, paid

    ready, approved, rejected ready, delivered, completed completed, cancelled Order Payment Shipment Fulfilment ready, complete, paid ready, approved, rejected ready, delivered, completed completed, cancelled
  5. Order pedido incluso pronto -> pago pago -> cancelado pago

    -> completo Email de confirmação Contas a receber Email, Baixa do contas a receber Email, Baixa do estoque
  6. Integrações • STOREFRONT INTEGRATIONS • BigCommerce • Magento • NuORDER

    • Shopify • ACCOUNTING AND ERP • Abacos • Netsuite • Odoo • Quickbooks Desktop • Quickbooks Integration • Microsoft Dynamics • FULFILLMENT AND INVENTORY • Aftership • DotCom • Fifth Gear • Fosdick • MDS Fulfillment • COMMUNICATION AND CUSTOMER SERVICE • Amazon SES • Bronto • Desk.com • ExactTarget • MailChimp • Mandrill • DATA, ANALYTICS, AND CRM INTEGRATIONS • Amazon S3 • Highrise • Jirafe • MK Data Services • Salesforce • SugarCRM • POINT OF SALE (POS) • Square • Vend • AccuPOS • LightSpeed • Microsoft RMS
  7. Push API Wombat Engine Integrations Storefront (client) HTTP SNS/SQS HTTP

    SQS Push API Push API Wombat Engine Wombat Engine Integrations Integrations SQS
  8. Wombat Engine • Rails • Redis • Shoryuken(SQS) • Mongo

    • Controle de acesso (throttle) usando SQS • Docker
  9. SQS • Assíncrono • Várias filas para cada processo •

    Dividir o numero de mensagens por min, regulando o bottleneck por cliente • Visibility Timeout • https://github.com/phstc/shoryuken
  10. Engine Listener Evento SQS O bjeto + Evento Objeto +

    Evento Erro ou Throttle Persistência SQS REDIS Controle de Throttle Notificações SQS Delivery SQS Status Objeto + Evento
  11. Ganhamos • Integrações Dinâmicas • Liberdade pra habilitar quantos nodes

    precisar por integração, dependendo do nível de uso • Delegamos o trabalho pra AWS, menos devops • Garantia de falha e multi-AZ • Deploys separados \o/
  12. Perdemos • Ambiente local é complexo de montar • Testes

    complexos e demorados, nosso ambiente de CI é bem hackeado • Dependencia da AWS