Google Cloud
Anthos Day
Deep-dive into Anthos on GCPGoogle Cloud Japan, アプリケーション プラットフォーム スペシャリスト, 篠原一徳
About me
篠原 一徳
アプリケーション プラットフォーム スペシャリスト
専門分野: Anthos, k8s, Serverless, CI / CD
Twitter: @kazshinohara
猫とカメラと旅が好き
Anthos とは?
OSS をベースにした、アプリケーションのモダナイゼーションのためのプラットフォーム
Anthos を導入することで Google Kubernetes Engine(a.k.a GKE)を GCP に加え、オンプレミス、他社クラウドでも利用出来る他、
サービスメッシュ、サーバーレスなどモダナイゼーションに有用な
機能が提供される
サービス・新機能をタイムリーに市場投入 ...
- 高速なリリース サイクル
- 追加・変更に強い
ビジネス規模の拡大に併せて …
- 容易に拡張
- 高可用性の維持・向上
Agility
Flexibility
Scalability
1
2
3
Durability4
モダナイゼーションの目的とは?
モノリスなアプリケー
ションをより小さな
サービスに分割
マイクロサービス化
コンテナを利用し、
アプリをインフラから分
離
インフラ管理を
極力少なくし、
開発に集中
作業ステップや
人為ミスを削減
リリースをより
簡単に、早く
マネージドサービスを最
大限活用し Toil を抱えない
マイクロサービス化インフラとアプリの疎
結合化サーバーレス 自動化
マネージドサービス活用
モダナイゼーションに向けた技術観点でのアプローチ
Anthos のコアコンポーネント
Anthos GKE on VMware Anthos GKE Anthos GKE
on ***コンテナ管理
ポリシー管理 Anthos Config Management
サービス メッシュ Anthos Service Mesh
GKE Hubクラスタ管理
Cloud Run for Anthosサーバーレス
Google Cloud Platform (GCP) オンプレミス 他社クラウド
Anthos が提供する価値
1. App Modernization
モダンなアプリケーションに最適化されたプラットフォーム
2. Operation Consistency
ハイブリッド・マルチクラウド環境における
オペレーションの一貫性
App Modernization
Anthos GKE on VMware Anthos GKE Anthos GKE
on ***コンテナ管理
ポリシー管理 Anthos Config Management
サービス メッシュ Anthos Service Mesh
GKE Hubクラスタ管理
Cloud Run for Anthosサーバーレス
Google Cloud Platform (GCP) オンプレミス 他社クラウド
Operation Consistency
Anthos GKE on VMware Anthos GKE Anthos GKE
on ***コンテナ管理
ポリシー管理 Anthos Config Management
サービス メッシュ Anthos Service Mesh
GKE Hubクラスタ管理
Cloud Run for Anthosサーバーレス
Google Cloud Platform (GCP) オンプレミス 他社クラウド
Anthos のライセンスモデル
Anthos Hybridオンプレミス、GCP 双方で
Anthos の機能が利用可能な
ライセンス
Anthos on GCPGCP 上でのみ Anthos の機能が利用可能な
ライセンス
Anthos on GCP で提供される機能
昨年 4 月にアナウンスされた GKE Advanced の一部機能が Anthos にマージ
● Cloud Run for Anthos (f.k.a Cloud Run on GKE)● Anthos Service Mesh (a.k.a ASM)● Anthos Config Management (a.k.a ACM)● GKE Hub● Binary Authorization
2020.1.30 時点の情報
Anthos Service Mesh (ASM)
Google が提供するフルマネージドの サービスメッシュ
Istio 互換の API, コントロール
プレーンを Google が管理
Stackdriver とネイティブな連携
セキュリティ
可観測性
トラフィックコント
ロール
Istio のアーキテクチャ
一般的に Istio のコントロール プレーンは
データプレーンと同じ Kubernetes のクラスタ上で動作する
主なコンポーネント
● Pilot○ トラフィック コントロール
● Citadel○ mTLS 用の CA
● Mixer○ メトリクス収集
● Envoy ○ サイドカープロキシ
CitadelPilot Mixer
Service A Service B
Envoy Envoy
Config toEnvoys
Telemetry
TLS certs to Envoys
Control Plane
Data Plane
Single Kubernetes Cluster
mTLS
HTTP, gRPC, TCP
ASM のアーキテクチャ
Traffic Director
Service A Service B
Envoy Envoy
Config toEnvoys (xDSv2 APIs)
TLS certs to Envoys
Telemetry
Mesh CA
HTTP, gRPC, TCP
mTLS
Managed backends
OSS 版 Istio や Istio on GKE と違い、
コントロール プレーンがユーザー クラスタから
分離され、Google 管理となる
● Istio Pilot >> Traffic Director
● Istio Citadel >> Mesh CA
● Istio Mixer >> Managed backends
BetaAlpha Beta
Anthos GKE Single Cluster
Data Plane
Control Plane managed by Google
ASM - トラフィック コントロール
Traffic split 機能によりCanary リリース やBlue / Green デプロイメントを実現
Timeout, Retry, Fault Injection, Circuit Breaker を使ったアプリケーションのレジリエンシーの向上
service_b v2
service_b v1
service_b v1
Canary
5%
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: service_b
spec:
hosts:
- service_b
http:
- route:
- destination:
host: service_b
subset: v1
weight: 95
- destination:
host: service_b
subset: v2
weight: 5
Service A95%
Cloud Run の特徴
高速なデプロイ
ステートレスなコンテナ
高速に 0 to N スケール
数秒でデプロイ
サーバーレス・ネイティブ
管理するサーバーはなし
コードに集中
言語やライブラリの制約なし
高いポータビリティ
どこでも同じ 開発エクスペリエンス
フルマネージでも Anthos GKE のクラスタ上でも
Knative API の一貫性
ロックインの排除
Cloud Run でコンテナをシンプルに使う
Kubernetes
コードを書く
$ docker build
$ docker push
$ kubectl apply -f deployment.yml
$ kubectl apply -f service.yaml
$ kubectl apply -f hautoscal.yaml
他にも監視・ロギングの設定とか...
Cloud Run
コードを書く
$ docker build
$ docker push
$ gcloud run deploy..
Cloud Run のリソースモデル
Revision A-1
Revision A-2
Revision A-3
Revision B-1
Revision B-2
ContainerInstanceContainer
InstanceContainerInstance
Requests
Service A
Service B
ServiceCloud Run の主リソース
Service 毎に Endpoint を提供
Revisionデプロイするごとに生成される
コンテナ イメージとデプロイ時に指定される環境変数
やパラメーターから構成される。
Container Instance実際にリクエストを受けるコンテナ、requests 数に応じ
て自動的にスケール
Anthos GKE Cluster
Fully managed vs for Anthos
Cloud Run Cloud Run for Anthos
課金 Pay per use Anthos license
変更可能なマシンスペック
Memory Memory, CPU, GPU, networking
URLs and SSL Automatic HTTPS URL Manual SSL Certificate
サービスへのアクセス制御
Invoker IAM role External or Internal
VPC へのアクセス No Yes
ユースケース
external
● Web site
● API endpoint
● Mobile backend
● Webhook
internal
● Between Microservices
● Asynchronous tasks
Anthos Config ManagementNamespace や Quota、RoleBinding 等 の設定を
ハイブリッドな Kubernetes 環境に自動的に展開
● 設定をオンプレやクラウドのクラスタ間で同期
● コンプライアンス ポリシーを継続的に適用
● セキュリティ/監査を Policy as code で
Anthos Config Management の仕組み
Gitrepository
k8s クラスタ運用者セキュリティ担当者
① 新しいポリシー(コード )を コミット
Anthos GKE on GCP Anthos GKE on VMware
各クラスタには Config Management Operator がインストールされる
② 各クラスタは対象の Git リポジトリを定期的に確認しており、コードに変更があった場合は、当該変更をクラスタに自動的に反映する
GitOps with Anthos
Kubernetes を中心にした開発では主に以下 3 つのコードを適切に
管理する必要がある
● アプリケーションのコード
● k8s の ワークロードのマニフェスト
○ e.g. deployment, service● k8s の クラスタ自体のマニフェスト
○ e.g. namespace, rolebinding, quota
コードの管理
3 つのコードをどこの Git リポジトリで管理するか?
やり方は複数あるが、全て別の Git レポジトリで管理すると
以下のようなメリットがある
● アプリケーションとインフラのコードを綺麗に分離
● Git の log に複数の関心事が混ざらない
● リポジトリへのアクセス管理がシンプルに
GitOps with Anthos の例
ACM
namespace
quota
rolebinding
deployment
service
k8s cluster manifest
k8s workloadmanifest
App code
Infra Engineer
Sync
Developer Cloud Build Container Registry
ChangeCommit
ChangeCommit
Sync
Triggerbuild
image
Anthos GKE
まとめ
Anthos はアプリケーションのモダナイゼーションのためのプラットフォーム
Hybrid と on GCP、2 つのライセンスモデル
GKE(k8s)を中核に OSS をベースにしたサービスメッシュやサーバーレスなど
モダナイゼーションに有用な機能を提供
1
2
3