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/