$30 off During Our Annual Pro Sale. View Details »

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.

Claudio Eduardo de Oliveira

August 24, 2021
Tweet

More Decks by Claudio Eduardo de Oliveira

Other Decks in Programming

Transcript

  1. Pipeline de
    APIs para o
    século XXI

    View Slide

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

    View Slide

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

    View Slide

  4. Agenda
    4
    ● Fundamentação
    ○ OpenAPI
    ○ git
    ○ GitOPS
    ● CI
    ○ Argo Workflow
    ○ Argo Events
    ● CD
    ○ Argo CD

    View Slide

  5. OpenAPI
    Tudo começa aqui!!!
    5

    View Slide


  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

    View Slide

  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

    View Slide

  8. Estabelecimento
    de contrato
    Quando um artefato
    OpenAPI é produzido é
    estabelecido um contrato,
    clientes se “espelham” no
    contrato para implementar
    suas aplicações
    8

    View Slide

  9. Automação
    Alguém faz isso pra
    você!!!
    9

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  13. GitOps
    Guarde suas coisas!!!
    13

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  17. Ferramentas
    Let’s do it!!
    17

    View Slide

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

    View Slide

  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

    View Slide

  20. Spectral
    20

    View Slide

  21. Spectral
    21

    View Slide

  22. 22
    Fluxo de Aprovação

    View Slide

  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

    View Slide

  24. Catalogo
    Torne suas APIs
    “acháveis”
    24

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  28. 28

    View Slide

  29. 29

    View Slide

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

    View Slide

  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

    View Slide

  32. 32

    View Slide

  33. 33

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  37. 37

    View Slide

  38. 38

    View Slide

  39. Testing
    Validando o
    comportamento da API
    39

    View Slide

  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

    View Slide

  41. 41

    View Slide

  42. 42

    View Slide

  43. Pipelines
    43

    View Slide

  44. 44

    View Slide

  45. 45

    View Slide

  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

    View Slide

  47. 47

    View Slide

  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

    View Slide

  49. 49

    View Slide

  50. 50

    View Slide

  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

    View Slide

  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

    View Slide

  53. Contatos
    53
    Cláudio de Oliveira
    Tech Lead
    @claudioed
    Marcelo Marinho
    Especialista em Desenvolvimento
    https://www.linkedin.com/in/marcelo-marinho-4b728928/

    View Slide

  54. 54

    View Slide