Automating API Delivery 1

https://learning.oreilly.com/library/view/automating-api-delivery/9781633438781/

1 What is APIOps?

この章では以下の内容を扱います
・APIの設計と提供のスケーリングの課題
・APIのためのDevOpsとGitOpsの組み合わせとしてのAPIOps
・APIOpsの原則
・OpenAPIを用いたAPIOpsの利点と課題

APIOpsとは、APIデリバリーのワークフローを自動化することで、API製品の設計、構築、テスト、デプロイをより効率的に行うことだと考えることができる。
APIOpsは、継続的インテグレーション/継続的デリバリー(CI/CD)パイプラインにおけるAPI定義とAPI設定ファイルの管理に自動化を導入する。

The DevOps Handbook, 2nd Edition
3つの原則
・バリューストリームにおいて、価値のある仕事を左から右へ迅速に流すことを可能にする
・問題を素早く検出し修正するために、フィードバックを逆方向に流すことを可能にする
・高い信頼関係のある職場環境を構築するために、継続的な学習、共有、実験の文化を可能にする

DevOpsのプラクティス
・Version control
 バージョン管理
・Continuous integration and continuous delivery (CI/CD) 
 継続的インテグレーションと継続的デリバリー (CI/CD)
・Infrastructure as code (IaC) 
 コードとしてのインフラ (IaC)
・Configuration as code (CaC) 
 コードとしての構成 (CaC)
・Continuous monitoring and measurement 
 継続的な監視と測定
・Learning from failure
 失敗から学ぶ

GitOpsは、クラウドネイティブ・アプリケーションのアプリケーションとインフラの変更を管理する、開発者に優しい方法だ。
GitOpsモデルでは、エンジニアはGitを使ってシステム構成を管理し、システムの望ましい状態を保存・更新する。
デリバリー・パイプラインは自動的に実行され、Gitの状態仕様を必要な環境に適用する。UIを介した設定の手動変更は認められておらず、エンジニアはGitのプルリクエスト(PR)を介してのみ変更を加えることができる。

GitOps4つの原則
・Declarative
 宣言的
・Versioned and immutable
 バージョン管理され、不変
・Pulled automatically
 自動的に取得される
・Continuously reconciled
 継続的に調整される

API仕様フォーマット
本書で議論しているAPIOpsの原則のいくつかは、これらのAPIフォーマットのいくつかに確実に適用できる。
・OpenAPI
 https://www.openapis.org
・RAML(RESTful API Modeling Language)
 https://raml.org
・API Blueprint
 https://apiblueprint.org
・AsyncAPI
 https://www.asyncapi.com/en
・gRPC
 https://grpc.io

API製品は、APIコンシューマーの問題を解決する機能を公開する、パッケージ化されたAPIソリューションである。
それは安全で、優れたドキュメントとサポートチャンネルでパッケージ化されている
本書で議論されるAPIOpsの原則と実践は、API製品を対象としている。

APIライフサイクルの定義
・Plan and design 
 計画と設計
・Build
 構築
・Deploy and test
 デプロイとテスト
・Publish
 公開
・Operate
 運用

本書では、マイクロサービスアーキテクチャ向けのRESTful API製品の構築という文脈でAPIOpsを論じる。

この本でAPI仕様という言葉を使うとき、OpenAPI仕様(OAS)のことを指している。

OpenAPI.Tools
https://openapi.tools

OpenAPIによるAPIOpsの6つの原則
・デザインファーストアプローチを使用してAPI開発を行う。
・API定義をバージョン管理に保存する。
・API標準の遵守を自動化する。
・実装が設計に一致していることを確認するためにAPI適合性チェックを実行する。
・宣言的なAPI構成をバージョン管理に保存する。
・APIゲートウェイ構成の望ましい状態と実際の状態を継続的に調整する。

Book

The DevOps Handbook, 2nd Edition
https://learning.oreilly.com/library/view/the-devops-handbook/9781098182281/

Accelerate
https://learning.oreilly.com/library/view/accelerate/9781457191435/

GitOps and Kubernetes
https://learning.oreilly.com/library/view/gitops-and-kubernetes/9781617297274/

Enterprise API Management
https://learning.oreilly.com/library/view/enterprise-api-management/9781787284432/

memoO'REILLY Learning

Posted by shi-n