Ambassador Labsは、Developer Control Plane(DCP)のリリースを発表した。DCPは、Kubernetesベースのサービスの全ての開発と運用をサポートするツールを統合して提供する。これには、Argo、Telepresence、Envoy Proxyなどの人気のあるCloud Native Computing Foundation(CNCF)ツールが含まれている。
DCPは、必要なツールを管理するための単一のインターフェイスを提供することにより、コードシップ実行ワークフローを簡素化することを目的としている。コントロールプレーン内に統合されているのは、GitHub、GitLab、DataDog、Docker、Jenkinsなどの他の一般的なツールを備えた多数のCNCFプロジェクトである。
DCPとTelepresenceの統合により、ローカル開発ワークフローがシンプルになる。Telepresenceを使うと、開発者のマシンからのローカルコードを実行することで、リモートサービスやデータストアに対してテストできる。これは、Kubernetesクラスタで実行されているポッドの双方向ネットワークプロキシを作成することで実行される。このポッドは、Kubernetes環境からローカルで実行中のプロセスにデータをプロキシする。これにより、新しい変更を検証およびテストするために必要なすべてのサービスをローカルで実行する必要がなくなる。
変更をデプロイする準備ができたら、DCPはArgoおよびEdge Stackと統合して、カナリアリリースを簡素化する。Argoは、GitOpsスタイルの継続的デプロイ、カナリア、ブルーグリーンデプロイといった戦略をサポートするツールの集合である。Edge Stackは、サーキットブレーク、プログレッシブデリバリ、レート制限などのトラフィックシェーピング方法をサポートするKubernetes向けのAPIゲートウェイである。
これらのツールを使うと、カスタムリソース(CRD)を定義して、増分ロールアウトを定義できる。このCRDの例は、最初にトラフィックの20%を新しいバージョンに送信するロールアウトの宣言を表している。
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: rollout-canary
spec:
replicas: 5
revisionHistoryLimit: 2
selector:
matchLabels:
app: rollout-canary
template:
metadata:
labels:
app: rollout-canary
spec:
containers:
- name: rollouts-demo
image: argoproj/rollouts-demo:blue
imagePullPolicy: Always
ports:
- containerPort: 8080
strategy:
canary:
steps:
- setWeight: 20
# The following pause step will pause the rollout indefinitely until manually resumed.
# Rollouts can be manually resumed by running `kubectl argo rollouts promote ROLLOUT`
- pause: {}
- setWeight: 40
- pause: {duration: 40s}
- setWeight: 60
- pause: {duration: 20s}
- setWeight: 80
- pause: {duration: 20s}
サービスがデプロイされると、サービスカタログを使って、アクティブなサービスを検出できる。Emissary-IngressおよびEdgeStackとの統合により、サービス検出とL7トラフィック管理ができるようになる。アノテーションを使って、サービスにメタデータを追加できる。次のコマンドは、所有者アノテーションをサービスに追加する。kubectl annotate service MYSERVICE a8r.io/owner="sallydev"
サービス固有のビューは、これらのコンポーネントのための統合されたインターフェースを提供する。Preview URLsオプションを使用すると、Telepresenceを介したローカルテストができるようになる。Argoを介したデプロイは、Rolloutsオプションを使って実行できる。アノテーションがページに表示され、Slackチャネル、APIドキュメント、ログを指定できる。
Ambassador開発者コントロールプレーンは無料で利用できる。サービスカタログを使うためには、Edge Stackバージョン1.12以降とAPI Gateway 1.13以降をクラスタ内にインストールする必要がある。Slackおよび毎週の営業時間でサポートを利用できる。