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

[CI/CD2023]OSSで構築するOpenAPI開発のCI/CD

 [CI/CD2023]OSSで構築するOpenAPI開発のCI/CD

Wenhan Shi

March 20, 2023
Tweet

More Decks by Wenhan Shi

Other Decks in Technology

Transcript

  1. THE CLOUD NATIVE API PLATFORM 1 THE CLOUD CONNECTIVITY COMPANY

    Wenhan Shi March 2023 OSSで構築する OpenAPI開発のCI/CD
  2. THE CLOUD NATIVE API PLATFORM 2 2 Who am I

    施 文翰(シ ブンカン) Wenhan Shi • 日立製作所 - Linux kernel module development/Support • Red Hat K.K. - GlusterFS/OpenShift Support • Canonical Japan K.K. - Ubuntu/OpenStack/Kubernetes Support • Rancher Lab/SUSE - Rancher Support • Kong Inc. - Solutions Engineer @shi_wenhan [email protected]
  3. THE CLOUD CONNECTIVITY COMPANY 3 © Kong Inc. • 背景

    • OpenAPI Specification(OAS)基礎知識 • CI/CDに登場するOSS ◦ Insomnia ◦ CLI tools(inso, deck, portal) • CI/CDワークフロー Agenda 本日Demoで利用したCI/CDソースコード https://github.com/xibuka/kong-apiops
  4. High Latency Unreliable Connectivity Traffic Anomaly Security Threats Blocked Access

    Control Unscalable API Connectivity © Kong Inc. Confidential & Proprietary
  5. THE CLOUD NATIVE API PLATFORM 11 11 OpenAPI Specification(OAS)とは •

    RESTful Web service(API)を記述、生成、消費、可視化するための仕様 • この仕様はHTTP APIを説明するための標準 • APIの概要 • 利用可能なエンドポイント • Request とResponseの情報 • 認証情報 • Swagger Specificationとも呼ばれる
  6. THE CLOUD NATIVE API PLATFORM 13 13 OpenAPI Specification(OAS)の例 openapi:

    3.0.0 tags: - description: Creates a random UUDI and returns it in a JSON structure name: Generate UUID info: contact: email: [email protected] url: https://konghq.com/ description: A simple service returning a UUID based on https://httpbin.org title: UUID generator based on httpbin.org version: 1.0.0 paths: /uuid: get: operationId: uuid summary: Return a UUID. description: Return a UUID responses: "200": description: A UUID4. tags: - Generate UUID servers: - url: https://httpbin.org エンドポイント (path) と、 サポートされるメソッド (method) メタデータ titleとversionは必須 タグと説明 APIの所在
  7. THE CLOUD CONNECTIVITY COMPANY 17 © Kong Inc. 17 OASのための

    3 mode Design OASの定義内容の編集 Debug リクエストの発行と結果確認 Test テストケースの作成と実行 Insomnia
  8. THE CLOUD CONNECTIVITY COMPANY 18 © Kong Inc. 18 Insomnia

    3 mode - Design DESIGNモード OASのナビゲーションメ ニュー OASエディター、リアルタイム 文法エラーチェック 文法エラーの詳細 OASのプレビュー
  9. THE CLOUD CONNECTIVITY COMPANY 19 © Kong Inc. 19 Insomnia

    3 mode - Debug DEBUGモード リクエストのナビゲーショ ンメニュー 設計したOASに対するリクエ スト。色付きの部分は環境変 数 リクエストに対するレス ポンス 認証情報やヘッダー設定な ど、より高度なリクエストが作 成可能
  10. THE CLOUD CONNECTIVITY COMPANY 20 © Kong Inc. 20 Insomnia

    3 mode - Test TESTモード テストスイート名前 テストの名前と 利用するリクエスト テスト結果 ユニットテストコード
  11. THE CLOUD CONNECTIVITY COMPANY 22 © Kong Inc. 22 inso

    • APIOps のために開発された、InsomniaのCLIツール inso lint spec # API YAML Manifest検証 inso run test # Insomniaで定義したテストを実行 inso export spec # OpenAPI Specficationをエクスポート inso generate config # Kong configやk8s Ingress を生成
  12. THE CLOUD CONNECTIVITY COMPANY 23 © Kong Inc. 23 decK

    • 宣言的な方法で Kong の構成を管理するツール deck ping # Kong Gatewayクラスタの死活確認 deck dump # Kong Gatewayの設定内容をローカルファイルに保存 deck validate # ローカルの設定ファイルの構成を確認 deck diff # ローカルの設定ファイルと Kong Gateway環境にある差分を出力 deck sync # ローカルの設定ファイルを Kong Gateway環境に反映
  13. THE CLOUD CONNECTIVITY COMPANY 24 © Kong Inc. 24 portal

    • 宣言的な方法で Kong のDeveloper Portalの構成を管理するツール portal deploy # ローカルファイルからDeveloper Portalを構成 portal config # 設定内容をローカルファイルに保存 portal init # 設定を初期化
  14. THE CLOUD CONNECTIVITY COMPANY 25 © Kong Inc. 25 Insomnia

    + inso + deck + portal CI/CDワークフロー
  15. THE CLOUD CONNECTIVITY COMPANY 27 © Kong Inc. 27 CI/CD

    - APIOpsの流れ - ケース① - Kong 側
  16. THE CLOUD CONNECTIVITY COMPANY 31 © Kong Inc. 31 CI/CD

    - APIOpsの流れ - ケース② - Kubernetes側
  17. THE CLOUD CONNECTIVITY COMPANY 35 © Kong Inc. 35 まとめ

    - OpenAPI Specification(OAS)基礎知識 - Insomnia - GUIツールで、APIの設計開発からデバッグ&テストまでカバー - Gitレポに全ての設定が保存可能 - CLI tool、inso + decK+portal でAPIOps - コミット&プッシュ後は自動化可能 - Kong gateway - Kubernetes - Dev portal
  18. THE CLOUD CONNECTIVITY COMPANY 36 © Kong Inc. Thank You

    ご不明点、ご相談などございましたら Twitter @shi_wenhan [email protected]