DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-commerce com APIs

118 views

Published on

Fabio Rosato, Ger. Professional Services da Sensedia, ministrou o workshop "Velocidade e confiabilidade em e-commerce com APIs", no DevCommerce Conference 2016.

O DevCommerce Conference 2016 aconteceu nos dias 06 e 07 de junho de 2016, no Hotel Tivoli em São Paulo-SP
http://devcommerce2016.imasters.com.br/

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
118
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-commerce com APIs

  1. 1. Topic Title Velocidade e confiabilidade em e-commerce com APIs +
  2. 2. Topic Title Fábio Rosato Head of Consulting @Sensedia fabio.rosato@sensedia.com @frosato Carlos Souza Consultor @Sensedia carlos.souza@sensedia.com @12cesarCarlos
  3. 3. Topic Title Fábio Rosato Carlos Souza
  4. 4. Quick Facts ● Plataforma de API Management ● Plataforma de Governança SOA ● Design e estratégia de APIs História Fundada em 2007 Gartner SOA MQ 2009 API Suite 2012 Forrester Report 2016 Bases Campinas São Paulo Rio de Janeiro USA Origens APIs in Brazil Webinars, Articles, Videos, Podcasts, Talks and Workshops Thought LeadershipAPI Experience 2015 - 250 pessoas 2016 - 550 pessoas
  5. 5. Todo negócio é digital API habilita Digital Sensedia suporta sua estratégia de APIs Ativando a transformação digital
  6. 6. WEBINARS: 5 Passos para uma API de Sucesso http://bit.ly/Sensedia_APIdeSucesso Webinar Design de APIs RESTful http://bit.ly/Sensedia_APIsRest Webinar Os Fundamentos da Segurança de APIs http://bit.ly/Sensedia_SegurancaDeApis Webinar Guia Prático de Gerenciamento APIs http://bit.ly/Sensedia_GerenciamentoDeApis Webinar: SOA no mundo das APIs http://bit.ly/Sensedia_SOA Webinar: Ecossistemas Digitais http://bit.ly/Sensedia_EcossistemasDigitais Webinar: Microservices http://bit.ly/Sensedia_microservices Webinar: Repensando o ESB http://bit.ly/25Gw78L APRESENTAÇÕES: http://www.slideshare.net/sensedia /Sensedia /Sensedia /in/Sensedia Conteúdo Adicional
  7. 7. Topic Title Agenda 1. API-first 2. Design & Build 3. Run & Engage
  8. 8. Topic Title Agenda 1. API-first 2. Design & Build 3. Run & Engage
  9. 9. Mobile-first
  10. 10. O que virá depois? Omni CHANNEL
  11. 11. Onde houver uma tela, lá ele estará!
  12. 12. “Plataformização”
  13. 13. “Plataformização”
  14. 14. A ideia das APIs é Descomplicar, provendo um mecanismo simples, seguro, escalável para um desenvolvedor construir suas soluções desacopladas no menor tempo possível.
  15. 15. Forte crescimento de calls de APIs - Exemplo ↑59% ↑158% ↑3.354% Fonte: Sensedia
  16. 16. Tipos de APIs Restricted Restritas a parceiros autorizados Open Abertas para qualquer desenvolvedor Private Uso limitado a equipes internas da empresa
  17. 17. Front-End Backend HTTP/RESTAPI Single Page App (SPA) App-Client Private
  18. 18. Mobile, Wearable Backend HTTP/RESTAPI Mobile, Wearable Apps App-Backend Private
  19. 19. App Backend App Backend HTTP/RESTAPI Integration Architecture App-App Private
  20. 20. Microservice #1 HTTP/RESTAPI Microservice #2 HTTP/RESTAPI Microservice #n HTTP/RESTAPI Application - Backend Webinar Microservices http://bit.ly/Sensedia_microservices Microservices Private
  21. 21. Marketplaces Restricted APIs do Marketplace Publicação de Produtos Atualização de Preço/Estoque Captura de Pedidos Atualização de Tracking
  22. 22. Open Innovation Open
  23. 23. Open Innovation Open Fonte: http://hackathon.ima.sp.gov.br/
  24. 24. Open Innovation Open Fonte: http://hackathon.ima.sp.gov.br/ http://goo.gl/PdKRPfFonte: GPlay: https://goo.gl/vPWMK7
  25. 25. Anti-pattern #1: Bottom-Up “Sistemão” Objetos e Funções REST / JSON Virtudes: ■ Rápido de ser criado ■ Fácil de ser entendido pelos desenvolvedores internos ■ Ferramentas podem agilizar o processo Vícios: ■ Carrega detalhes desnecessários ■ Confuso para desenvolvedores de Apps ■ Inflexível ■ Design ruim com vícios do “sistemão” Bottom Up
  26. 26. Anti-pattern #2: Comitê de Padronização “Sistemão” Objetos REST / JSON Unificados Virtudes: ■ Senso de unificação ■ Compreensível pelos desenvolvedores internos Vícios: ■ Normalmente lento ■ Problemas de aderência ou múltiplos significados ■ Ainda confuso para os desenvolvedores de Apps “Tabelonas” Schemas
  27. 27. Anti-pattern #3: Copycat do Concorrente “Sistemão #1” Objetos REST / JSON == Concorrente “Sistemão #2” Objetos Virtudes: ■ Rápido de ser criado ■ Familiaridade dos desenvolvedores de Apps Vícios: ■ Sem diferenciação ■ Integração interna na marretada
  28. 28. API-first, a história da API ideal
  29. 29. API-first, a história da API ideal > Simplicidade > Reusabilidade > Extensibilidade > Consistência > Manutenabilidade
  30. 30. Plataforma Comercial apps Databases Custom appsSaaS apps SOAP RSS Remote Protocols REST like RPC System Layer Services Layer RESTful Arquiteturas Complexas
  31. 31. BackendAPIFront API Facade Mediate REST API REST API REST API REST API Plataforma Comercial apps Databases Custom appsSaaS apps SOAP RSS Remote Protocols REST like RPC System Layer Services Layer Webinar Design de APIs RESTful http://bit.ly/Sensedia_APIsRest App Microservice #1 Microservice #n RESTful ESB Design Ideal API-First
  32. 32. Topic Title Agenda 1. API-first 2. Design & Build 3. Run & Engage
  33. 33. REST/JSON Versionamento Caching Resources Erros Operações Callbacks Segurança Hypermedia RESTful API Design
  34. 34. RESTful API Design - Flexibilidade & Otimização Filtros e paginação Callbacks
  35. 35. RESTful API Design - Flexibilidade & Otimização Filtros GET /vendas/v2/pedidos?status=concluido GET /pedidos/123AF15J?_fields=numero,data,valor Busca com escopo (subconjuntos): Respostas parciais: GET /search?q=macbook+air Busca Global:
  36. 36. RESTful API Design - Flexibilidade & Otimização Paginação GET /pedidos?_offset=50&_limit=25 Recomendação: Outras opções: Linkedin: Instagram: ?start=50&count=25 ?min_id=3091&max_id=3245&count=25
  37. 37. Já chegamos? Já chegamos? Já chegamos? Já chegamos? Já chegamos? Stop Pooling Me
  38. 38. RESTful API Design - Flexibilidade & Otimização Callbacks Marketplace API ❖ Consulta estoque ❖ Cálculo de frete ❖ Novo pedido recebido https://api.mywebstore.com/v1/estoque https://api.mywebstore.com/v1/frete https://api.mywebstore.com/v1/pedido Chamadas Reversas:
  39. 39. Common Description Language?
  40. 40. Common Description Language?
  41. 41. Anatomia Swagger Informações gerais Versão (da documentação) Path Onde os recursos são definidos Onde as entidades são definidas
  42. 42. Anatomia Swagger Operações (GET, POST…) Tags Parâmetros Respostas
  43. 43. Tools: Swagger Editor
  44. 44. Client Accelerators INTEGRATION INTEGRATION
  45. 45. SDK / Code Snippets Virtudes: ■ Acelera o consumo das APIs ■ Menos erros de implementação Vícios: ■ Você precisa versionar e dar manutenção ■ Erros serão compartilhados
  46. 46. Swagger CodeGen ■ SDK gerada pelo Swagger Codegen ■ Geração de código simples e consistente ■ Menos erros na implementação da SDK ■ Ferramenta Open Source e pode ser customizada
  47. 47. Server Accelerators INTEGRATION INTEGRATION
  48. 48. BackendAPIFront API Facade Mediate REST API REST API REST API REST API Plataforma Comercial apps Databases Custom appsSaaS apps SOAP RSS Remote Protocols REST like RPC System Layer Services Layer Webinar Design de APIs RESTful http://bit.ly/Sensedia_APIsRest App Microservice #1 Microservice #n RESTful ESB API Front API-First
  49. 49. ❖ Proteção contra ataques ❖ Alertas ❖ Autenticação e Autorização ❖ Transformação de Protocolos ❖ Composição de chamadas ❖ Conexões com legados ❖ Gerenciamento de versões DoS Cross-Site Scripting (XSS) SQL Injections XML Treat JSON Treat Ameaças de Identidade Também: ❖ Controle de Quotas ❖ Spike Arest ❖ Anomalias de Tráfego ❖ Desempenho da API ❖ Caching ❖ Rastreabilidade ❖ Calls Tracer ❖ Desempenho do Backend ❖ Smart Design (API-First) ❖ Enriquecimento de Mensagens API Ideal + Mediação, Transformação e Conexão Responsabilidades do API Front
  50. 50. API-Front HTTP/REST Backend * Garantir todas as responsabilidades do API-Front pode ser custoso API Front - Cenário 1
  51. 51. API-Front HTTP/REST Backend ESB * Observe os GAPs que o ESB tem sozinho para essa responsabilidade API Front - Cenário 2
  52. 52. API-Front HTTP/REST Backend API Gateway API Front - Cenário 3
  53. 53. API-Front HTTP/REST Backend API Gateway ● Considere utilizar um API Developers Portal mesmo para os desenvolvedores internos ● Facilitar self-service para onboarding e consumo das APIs ● Simplifica a governança Portal APIs IMA http://hackathon.ima.sp.gov.br/ API Front - Cenário 3
  54. 54. BackendAPIFront API Facade Mediate REST API REST API REST API REST API Arquitetura Futura Mainframe Comercial apps Databases Custom appsSaaS apps SOAP RSS Remote Protocols REST like RPC System Layer Services Layer Webinar Design de APIs RESTful http://bit.ly/Sensedia_APIsRest App Microservice #1 Microservice #n RESTful ESB
  55. 55. BackendAPIFront API Facade Mediate REST API REST API REST API REST API Mainframe Comercial apps Databases Custom appsSaaS apps SOAP RSS Remote Protocols REST like RPC System Layer Services Layer Webinar Design de APIs RESTful http://bit.ly/Sensedia_APIsRest App Microservice #1 Microservice #n RESTful API Gateway ESB Arquitetura Futura
  56. 56. “Mockando” e correndo em paralelo Mock somente em sandbox, nunca em produção! * API Management Suite é uma ferramenta da Sensedia
  57. 57. Swagger CodeGen (server) ■ Esqueleto do backend gerado pelo swagger codegen ■ Geração de código incompleto mas bastante útil. ■ Acelera a criação de API Façade para comunicação com um Backend
  58. 58. ■ Postman ■ SOAP UI ■ Plugins REST para o seu browser Ferramentas para teste da sua API
  59. 59. Seja usuário da sua própria API Eat your own Dog Food
  60. 60. Estratégias de Arquiteturas de Aplicações Escolhendo o estilo arquitetural para expor APIs
  61. 61. Microservices está no Hype
  62. 62. Hype
  63. 63. Cloud Domain-driven design Service- oriented architecture Continuous delivery Elementos chaves para a ascensão dos microservices…
  64. 64. WEB UI EMAIL Adapter URA Adapter Pagamentos Adapter Clientes Pacotes Reservas Avaliações Recomendações PagamentosNotificações DB Adapter REST API Monolítica Arquitetura http://alistair.cockburn.us/Hexagonal+architecture Plataforma de Viagem
  65. 65. Clientes Pacotes Reservas Avaliações Recomendações Pagamentos Notificações Microservices Arquitetura Pagamentos Adapter URA Adapter EMAIL Adapter API Gateway REST API REST API REST API REST API REST API REST/AMPQ API REST/AMQP API WEB UI Plataforma de Viagem
  66. 66. Evolução
  67. 67. Manter e evoluir!
  68. 68. http://www.martinfowler.com/bliki/StranglerApplication.html Strangler Application Application #1 Strangler Application 1
  69. 69. http://www.martinfowler.com/bliki/StranglerApplication.html Application #1 Strangler Application Strangler Application1
  70. 70. Strangle Application Domínios e sub-domínios2 ❖ Conceitos de negócio ❖ Bounded Context ❖ Domain Driven Design Contexto A Contexto B
  71. 71. Strangle Application Microservices 3 Microservice #n Database HTTP/REST
  72. 72. Governança 4 ❖ Definições de padrões mínimos principalmente na fronteira externa da aplicação (contexto de conexão) ❖ Informações para tomadas de decisões em tempo de design e runtime ❖ Importante na medida certa!
  73. 73. Cultura Devops5
  74. 74. Alguns Fatores ● Acertar a integração é o aspecto mais importante da tecnologia associada a microservices. ● Mantenha sua tecnologia de APIs agnóstica (REST HTTP / AMQP) ● Faça seus serviços simples para os consumidores ○ De nada adianta ter um microservice bacana se ele é difícil de ser utilizado ● Esconda os detalhes de implementação internos
  75. 75. Composição - Coreografia Microservice #1 Microservice #2 Microservice #n Banco Relacional Documentos Key/Store Data Base API API API Microservice #c Camada de coreografia Camada de dados
  76. 76. Architectural Safety • Proteja-se dos serviços laranjas podres: aqueles que estragam todos os outros • Os butterflies são potencialmente mais danosos. Monitore! Microservice #1 Microservice #2 Microservice #3REST API REST API REST API Microservice #4 REST API butterfly
  77. 77. Vantagens e desvantagens benefícios e consequências
  78. 78. Módulos com Fronteiras Fortes
  79. 79. Fortes Fronteiras de módulos • Microservices – A dissociação modular de microservices funcionam melhor porque os limites dos módulos são uma barreira para referências entre os módulos – Você até pode ter um grande acoplamento com microservices, mas o esforço certamente será maior – O desafio é definir o domínios e sub- domínios – Funciona bem para equipes isoladas (esquadrões) • Monolítica – É perfeitamente possível ter limites firmes de módulos em sistemas monolíticos, mas requer disciplina e acompanhamento – É mais fácil bular as fronteiras, e esse atalho feito amplamente minam a estrutura modular do sistema e o tornam um “lixo”
  80. 80. Distribuição
  81. 81. Distribuição • Grande desvantagem: – Ser muito distribuído – Desempenho • Latência de rede • Custo de serialização e deserialização • Falácias da computação distribuída* • Dicas (Mitigações): – Aumentar a granularidade das chamadas – Usar chamadas assíncronas • melhoria de desempenho • Porém é: – Difícil de acertar – Difícil de depurar – Confiabilidade • Programa-se para o fracasso e suas consequências * Falácias da computação distribuída: http://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
  82. 82. Implantação Independente
  83. 83. Implantação Independente • Simplicidade – A unidade microservice é mais simples, em tese é mais fácil de implantar – Problemas no microservice, se ele for bem desenhado, tendem a propagar menos impacto no ambiente todo • Scripts de automatização – Quase um pré-requisito: é difícil ser ágil fazendo implantações manuais • Entrega contínua – Redução do tempo de ciclo entre uma ideia e o software em execução – Respostas mais rápida as mudanças do mercado – Vantagem competitiva • Feedbacks mais rápidos – E ciclo de correções mais rápidos
  84. 84. Consistência Eventual #sqn
  85. 85. Consistência Eventual • Causa: descentralização de dados da abordagem • É um efeito colateral para garantir a disponibilidade – Tradeoff entre disponibilidade e consistência dos dados • Cache é importante! – Invalidação de cache é difícil – Dica: Utilize eventos para invalidar cache • Tolerância a inconsistência (teorema de CAP) – Consistency – Availability  – Tolerance to network partitions http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf
  86. 86. Diversidade Tecnológica
  87. 87. Diversidade Tecnológica • Liberdade – Fortalece a as escolhas independentes de tecnologia – Algumas linguagens e tipos de armazenamento de dados são mais adequados para determinados tipos de problemas – O objetivo é resolver o problema através das escolhas mais inteligentes – Experimentações de novas tecnologias • Padronização – As questões de interface (HTTP/REST, AMQP), ferramentas de ambiente e monitoração • Bibliotecas – Mais controle no versionamento de bibliotecas
  88. 88. Complexidade Operacional
  89. 89. Complexidade Operacional • Produtividade – Para algumas equipes pode ser um fardo que mina a produtividade • Tensão – Pequenos módulos independentes e implantações rápidas traz uma pressão adicional para operação • Agilidade – É praticamente impossível garantir um ambiente operacional de dezenas de serviços sem automação • Responsabilidade – A uma tendência da complexidade subir para a camada de interconexões dos serviços • Skills e Ferramentas – Requer algumas competências, habilidades e ferramental • Colaboração – Introduzir uma cultura DevOps: uma maior colaboração entre os desenvolvedores, operações e pessoal de infraestrutura
  90. 90. Complexidade Operacional M onitore!
  91. 91. Topic Title Agenda 1. API-first 2. Design & Build 3. Run & Engage
  92. 92. API Management ■ Gerenciamento centralizado dos consumidores da API ■ Monitoração do tráfego ■ Insights sobre a forma de uso das APIs ■ “APIs como LOBs (Line of Business)” * API Management Suite é uma ferramenta da Sensedia
  93. 93. Self-service Dev Portal
  94. 94. Dev Pipeline Dev Cadastrado Não possui App Possui App, mas nunca utilizou Em integração Em homologa- ção Integrado Running
  95. 95. Developer Engagement Maior Varejista online da América Latina Maior Marketplace da América Latina Maior varejista esportivo online do mundo +2000 Lojas Integradas +300MM calls/mês
  96. 96. ■ Portal de Desenvolvedores ■ Gerenciamento de chamados ○ Zendesk ■ Fórum ■ FAQ ■ SLA ■ TTFHW (Time to first hello world) ■ SDK’s Developer Engagement - Tools and Management
  97. 97. Developer Engagement - Satisfaction
  98. 98. Developer Engagement - Satisfaction
  99. 99. ■ Relatórios de valor ao negócio ■ Classificação dos integradores: ○ Vip ○ Premium ○ Master ○ Gold ○ Platinum ■ Acompanhamentos diversos Developer Engagement - Analytics
  100. 100. Demo
  101. 101. Equipe de APIs - Planos - Roadmap de APIs - Modelo de negócio - Business Insights API Product Owner - Identifica as APIs - Desenha as interfaces - Garante o DX - Data-mapping API Architect - Constrói o API-Front - Conexões e composições API Developer - Apoia o API Architect na análise bottom-up Backend Architect - Publica as APIs - Monitora o uso - Políticas & alertas API Operator - Onboarding dos App Dev - Suporte para os App Dev - Melhoria do API portal - Feedbacks para API PODeveloper Engagement
  102. 102. Move fast API Design API-Front Implementation API-Front Design Publish Developer Feedback Design & Build Try Out Backend Analysis Mockup
  103. 103. Omni CHANNEL API First = Future Proof ■ Design & Build ■ Run & Engage
  104. 104. + Take Away A integração do seu sistema deve ser pensada a partir do dia zero! APIs estão nas agendas e no dia a dia Quanto mais você investir no desenho das APIs, mais atalhos poderá pegar no futuro
  105. 105. Topic Title + Fábio Rosato Head of Consulting @Sensedia fabio.rosato@sensedia.com @frosato Carlos Souza Consultor @Sensedia petterson.andrade@sensedia.com @12cesarCarlos Velocidade e confiabilidade em e- commerce com APIs

×