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

Pipeline de APIs para o século XXI

Pipeline de APIs para o século XXI

Nesta palestra vamos dar alguns exemplos de como criar um pipeline de APIs utilizando algumas ferramentas de automação e práticas deste século, vamos utilizar de conceitos de CI / CD e GitOps, e mostrar na prática como é possível utilizar ferramentas para aplicar validações automáticas como linters e promoção de ambientes utilizando GitOps com Argo Workflow / Argo CD.

E3c2bac7a4a04823dda122cf243edd01?s=128

Claudio Eduardo de Oliveira

August 24, 2021
Tweet

Transcript

  1. Pipeline de APIs para o século XXI

  2. Hello! I am Marcelo Marinho Development Specialist @luizalabs 2

  3. Hello! I am Cláudio de Oliveira Tech Lead API Team

    @luizalabs 3
  4. Agenda 4 • Fundamentação ◦ OpenAPI ◦ git ◦ GitOPS

    • CI ◦ Argo Workflow ◦ Argo Events • CD ◦ Argo CD
  5. OpenAPI Tudo começa aqui!!! 5

  6. “ The OpenAPI Specification (OAS) defines a standard, programming language-agnostic

    interface description for HTTP APIs, which allows both humans and computers to discover and understand the capabilities of a service without requiring access to source code, additional documentation, or inspection of network traffic 6 https://spec.openapis.org/oas/latest.html
  7. 7 A idéia principal é fazer com que as outras

    pessoas possam usar suas funções providas por um serviço sem a necessidade de entender nos detalhes a implementação
  8. Estabelecimento de contrato Quando um artefato OpenAPI é produzido é

    estabelecido um contrato, clientes se “espelham” no contrato para implementar suas aplicações 8
  9. Automação Alguém faz isso pra você!!! 9

  10. Automação 10 Retirar processos manuais e prover velocidade e consistência.

  11. 11 https://www.manning.com/books/gitops-and-kubernetes

  12. 12 https://www.manning.com/books/gitops-and-kubernetes

  13. GitOps Guarde suas coisas!!! 13

  14. 14 https://www.manning.com/books/gitops-and-kubernetes

  15. 15 https://www.manning.com/books/gitops-and-kubernetes

  16. 16 https://www.manning.com/books/gitops-and-kubernetes

  17. Ferramentas Let’s do it!! 17

  18. 1. Fluxo de aprovação de contratos

  19. Fluxo de Aprovação Repósitorio de APIs Criação de um repositório

    central com artefatos de OpenAPIs Git Ferramenta conhecida no ecossistema de desenvolvedores, é possível armazenar um determinado estado em uma fatia de tempo Pull Requests Conhecido padrão no ambiente de desenvolvedores, intenção de tornar um código parte da companhia, no nosso caso APIs 19 Validações automáticas *** Algumas ferramentas podem auxiliar o processo de validação de um artefato OpenAPI
  20. Spectral 20

  21. Spectral 21

  22. 22 Fluxo de Aprovação

  23. Prática de Pull Requests Descentralização de responsabilidades Times com responsabilidades

    no contrato que eles trabalham em geral aumenta a qualidade do artefato produzido Compartilhamento da informação Em geral outras pessoas revisando aumenta a distribuição do conhecimento das APIs da companhia Prática recorrente Essa prática já é comum aos desenvolvedores não é necessário a adição de uma prática/ferramenta desconhecida 23 Validações automáticas Procure utilizar processos automatizados de validação de contrato, em geral a consistência é maior e elimina a possibilidade de erros humanos
  24. Catalogo Torne suas APIs “acháveis” 24

  25. 25 A idéia principal aqui é que sua API seja

    disponibilizada em um catálogo da companhia para que outros times consigam consultar e encontrar serviços já disponibilizados
  26. 26 É importante que o serviço tenha algumas informações como

    estágio de desenvolvimento, time responsável e definição, no nosso caso OpenAPI
  27. 27 Sempre que possível “incorpore” o fluxo de atualização de

    documentação no seu fluxo de pipeline de CI. Dica https://www.youtube.com/watch?v=aIURaocR5D8
  28. 28

  29. 29

  30. Documentação OpenAPI com “esteroídes” 30

  31. 31 O OpenAPI define as operações de uma API, porém

    precisamos de uma ferramenta que nos ajude a deixar a documentação mais fácil de ser lida
  32. 32

  33. 33

  34. Mocking Comece a “enxergar” a implementação da sua API 34

  35. 35 Durante a fase de prototipação da sua API a

    criação de mocks pode permitir que você disponibilize suas APIs para seus consumidores de maneira fictícia e criar um design colaborativo permitindo que outras pessoas possam dar “feedbacks” na construção
  36. 36 O OpenAPI tem uma seção de examples que pode

    ser utilizado para criação/geração de mocks automatizados, além de facilitar o consumo da API deixando ela mais amigável
  37. 37

  38. 38

  39. Testing Validando o comportamento da API 39

  40. 40 A partir de um OpenAPI bem documentado, com a

    seção de examples implementada é possível gerar coleções de postman validando o comportamento da sua API, isso pode ser um bom início para testes de contrato
  41. 41

  42. 42

  43. Pipelines 43

  44. 44

  45. 45

  46. Production Pipeline 46 1 3 5 2 Fluxo de aprovação

    de contratos 4 Criação de documentação da API em formato intuitivo Criaçao de Pull Requests Criação de portal de catálogo de serviços Instalação da API em ambiente de execução API Gateway
  47. 47

  48. Prototyping Pipeline 48 1 3 5 4 2 Fluxo de

    aprovação de contratos Criação de documentação da API em formato intuitivo Criação de artefatos de tests (postman) Criação de portal de catálogo de serviços Criação de Mocks quando API está em estágios iniciais
  49. 49

  50. 50

  51. Próximos passos 51 • Melhores legibilidade dos logs do WF

    • Criar newman-operator para validar os testes criados no flow Prototyping (in progress) • Adicionar trigger no pipeline de prototyping
  52. github 52 • https://github.com/apirator/workflow-api-docs • https://github.com/apirator/workflow-manifests • https://github.com/apirator/workflow-definitions • https://github.com/apirator/workflow-apps

  53. Contatos 53 Cláudio de Oliveira Tech Lead @claudioed Marcelo Marinho

    Especialista em Desenvolvimento https://www.linkedin.com/in/marcelo-marinho-4b728928/
  54. 54