SlideShare a Scribd company logo
© IBM Corporation 1
Amalgam8
アマルガメイトとよんでください
© IBM Corporation 2
⾃⼰紹介 ~
名前: 天野 武彦
所属:IBM 東京ソフトウェア開発研究所
主な活動: 先端クラウド技術の推進・啓蒙
(エリア: Cloud Foundry, DevOps, OpenStack, OpenWhisk, Blockchain 等)
趣味: ⽬下のところ育児に没頭
Twitter: @ibmamnt
ブログ: http://amanoblog.wordpress.com
© IBM Corporation 3
text
クラウド時代のアプリケーション・サービス開発
–変化のないシス
テムはすぐに飽
きられてしまう
–かといって、今
のシステム開発
だと3〜6ヶ⽉
リリースサイク
ルが限界
–ためしてみたら
あぼーん!
© IBM Corporation 4
text
Amalgam8 とは
–WEBアプリケーション、マイクロサービスのための「アプリケーショ
ン・スイッチ」
• OSI (Open Systems Interconnection) の世界でいう Layer-7 にあたるもの
–以下のことが出来ます(2017年5⽉末時点)
• コンテンツ、及びバージョンベースのルーティング
• Gremlin ベースの試験
amalgam8 = amalgamate
1.〈会社などを〉合同[合併]する.
2.〈異種族・思想などを〉混交[融合]する.
http://ejje.weblio.jp/content/amalgamate
© IBM Corporation 5
text
マイクロサービス界隈でよくきくカナリア試験とか
–カナリア
• 「毒物に敏感なので、⼀緒に⼊ればすぐに反
応してくれる 」(警視庁第三機動隊・遠塚
章弘警部補)」( 地下鉄サリン事件 TBS
ニュースから転載)
出典:http://www.academia.dk/Blog/a-canary-in-a-
coal-mine-in-the-19th-century-and/
© IBM Corporation 6
カナリアリリース
95%
traffic
5
%
• 更新をカナリアクラスタ
にデプロイ
• 受け入れ試験実施
• 少しのトラフィックをカナ
リアクラスタに流し、順次
増やしていく
Primary
Cluster
Canary
Cluster
2. 新しいサービスのデプロイと試験
• 100% のトラフィックを
カナリアクラスタに送信
• 古いプライマリークラスタは
廃棄
• 必要があればロールバック
100%
traffic
(Old)
Primary
Cluster
New
Primary
Cluster
3. 試験が終われば完全スイッチ
• デプロイ準備
• カナリアクラスタ作成
• カナリアリリースの準備
Primary
Cluster
100%
traffic
Canary
Cluster
1. アップグレード準備
新しいサービスの機能を、⼀部ユーザに対してだけ先⾏リリース、その
後全リリース。Facebookでは、Dark Launchと呼ばれている
© IBM Corporation 7
text
こうけ?
LB
ロードバランサーです。
ラウンドロビンしかしな
いけどw
サービス
サービス
LB
サービス
サービス
サービス
新サービス
99個
1個
カナリア試験を
するためには
サービス増やし
て対応(コスト
には⽬をつぶ
る)
© IBM Corporation 8
text
コンテンツベース、バージョンベースのルーティングとは?
–コンテンツベース
• ヘッダーの値に “TEST” が含まれ
ていたら試験中サービスにルー
ティング
• それ以外は現在のリリースされて
いるサービスにルーティング
–バージョンベース
• 70%のトラフィックはB
• 30%のトラフィックはB’
© IBM Corporation 9
text
helloworld デモ
–デフォルトでは v1 に接続
–25% のトラフィックを v2 にルー
ティング
結果:1000回呼び出し
V1
V2
デフォルト
25%こっち
$ a8ctl route-list
+-------------+-----------------+-------------------+
| Service | Default Version | Version Selectors |
+-------------+-----------------+-------------------+
| helloworld | v1 | v2(weight=0.25) |
+-------------+-----------------+-------------------+
※詳細は後ほど!
$ bash test.sh | sort | uniq -c
745 v1
255 v2
$ curl http://$GATEWAY_URL/helloworld/hello
Hello version: v1, container: 88bbf66c46ea
$ curl http://$GATEWAY_URL/helloworld/hello
Hello version: v1, container: 88bbf66c46ea
$ curl http://$GATEWAY_URL/helloworld/hello
Hello version: v2, container: 6eeaa2cfad45
だいたい25%
© IBM Corporation 10
text
amalgam8 のアーキテクチャ
Controller
– ルールの管理
Registry
–管理対象の(マイクロ)サービ
ス登録
Sidecar
– ルーティング実⾏サービス
• サービス内部 or
• サービス外部
© IBM Corporation 11
text
ルーティング ルール
–baseルール
• destination: ルーティング先
• priority: 数字 このプライオリティ順にルールを評
価
• match: 適⽤ルール
– source : トラフィックの元
– header : https ヘッダーフィルター (例:user=json )
–backends ルール
• tags : (tags=v2 → v2 にルーティング)
– ※タグ名はサービス登録時に指定
• weight : ルーティングの重み ( wight=0.25 → 25%)
–action ルール(サービスの試験に利⽤)
• duration: delay を⼊れる(試験のため)
• abort
amnt@vanadium:~
$ a8ctl route-list
+-------------+-----------------+-------------------+
| Service | Default Version | Version Selectors |
+-------------+-----------------+-------------------+
| reviews | v3 | v2(user="jason") |
| ratings | v1 | |
| details | v1 | |
| helloworld | v1 | v2(weight=0.25) |
| productpage | v1 | |
+-------------+-----------------+-------------------+
© IBM Corporation 12
text
Sidecar
– アプリケーション・サービ
スの Registry への登録(⾃
動)
– Controller からの情報を
使って Proxy を管理
• Envoy を採⽤
• https://lyft.github.io/envoy/
–リクエストをルールに従っ
てルーティング Envoy
© IBM Corporation 13
text
Sidecar の使い⽅
– Sidecar コンポーネントを
アプリケーションにDocker
イメージに組み込みます
–(Kubernetes のみ)アプ
リケーションはそのままで
Sidecar イメージをHelper
コンテナとして使います
Sidecar
App(v1)
App(v1)
testing
default
testing
Sidecar
App(v1)default
testing App(v1)
testing
SidecarSidecar
service(v1)
service(v1)
testing
SidecarSidecar
SidecarSidecar
© IBM Corporation 14
text
Sidecarの導⼊
–Dockerfile にa8sidecarの導⼊⾏を追加する
FROM <somebaseimage>
RUN curl -sSL https://github.com/amalgam8/amalgam8/releases/download/${VERSION}/a8sidecar.sh | sh
## Install your app stuff here
## script_to_launch_sidecar_and_app
※ supervisor を利⽤して sidecar にアプリケーションの管理をさせることも
できる。この場合 healthcheck の機能がつく
© IBM Corporation 15
text
他のサービスの呼び出しのためアプリケーションを修正する
必要があります
–他のサービス呼び出しは
http://localhost:6479/サービス名/APIパス
に変更します
© IBM Corporation 16
text
Gremlin試験機能
–sidecar の追加機能
• 遅延を発⽣させる
• 0.7の確率で http 503 を返す
–ちょっとした “Chaos
Monkey” の代わりに使え
ます
https://commons.wikimedia.org/wiki/File:Gre
mlinStripeByInti.jpg
© IBM Corporation 17
text
まとめ
–amalgam8 はマイクロサービス開発とオペレーションに役⽴ちます。
• コンテナのためのアプリケーションスイッチ
–様々なコンテナプラットフォームで稼働するので、Platform 及び
language Agnostic です。
–参考サイト:
• https://www.amalgam8.io/
© IBM Corporation 18
text
さて、とある⽇の amalgam8 slack の会話
なぬ! istio プロジェクトに移⾏ですと!
© IBM Corporation 19
text
GlueCon 2017 のアジェンダ
5/24 に Google と IBM 共同で
発表するようです。
しばらく待ちましょう!
次回は istio.io の何かを題材に
したいと思います。
© IBM Corporation 20
text
おしまい

More Related Content

PDF
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
PDF
Amazon ECSアップデート
PDF
AWS Black Belt Tech シリーズ 2015 - AWS Data Pipeline
PDF
TerraformでECS+ECRする話
PDF
Amazon ECS事始め
PPTX
Aws 分散負荷テストツールを使ってapp runnerをスケールさせる(デモ動画削除)
PDF
Spark Streaming + Amazon Kinesis
PDF
ニワトリでもわかるECS入門
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
Amazon ECSアップデート
AWS Black Belt Tech シリーズ 2015 - AWS Data Pipeline
TerraformでECS+ECRする話
Amazon ECS事始め
Aws 分散負荷テストツールを使ってapp runnerをスケールさせる(デモ動画削除)
Spark Streaming + Amazon Kinesis
ニワトリでもわかるECS入門

What's hot (20)

PPTX
継続的12章
PDF
Application Deployment on AWS
PDF
re:invent 2016 新サービスで変わる AWS運用
PPTX
CloudWatch Eventsを使った ECSのAutoScaling
PDF
CTO Night & Day Morning Session "Auto Scaling & Spot Instances Deep Dive"
PDF
AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS
PDF
AWS Startup Use Cases 2015
PPTX
2016年8月のAWSサービスアップデートまとめ
PDF
AWS Black Belt Techシリーズ AWS Data Pipeline
PDF
AWSでDockerを扱うためのベストプラクティス
PPTX
CloudWatch Logsについて
PDF
20160526 AWSサービスアップデート
PDF
AWS Black Belt Techシリーズ AWS Lambda
PDF
Run Spark on EMRってどんな仕組みになってるの?
PPTX
同じサービスを ECSとOpsWorksで 運用してみた
PPTX
AWS Batch Fargate対応は何をもたらすか
PDF
画像処理をAWS LambdaのPythonで!
PDF
Amazon s3へのデータ転送における課題とその対処法を一挙紹介
PDF
2016年11月のAWSサービスアップデートまとめ
PDF
AWS Black Belt Online Seminar 2017 Deployment on AWS
継続的12章
Application Deployment on AWS
re:invent 2016 新サービスで変わる AWS運用
CloudWatch Eventsを使った ECSのAutoScaling
CTO Night & Day Morning Session "Auto Scaling & Spot Instances Deep Dive"
AWS Summit New York 2016 Recap : AWS Application Load Balancer and Amazon ECS
AWS Startup Use Cases 2015
2016年8月のAWSサービスアップデートまとめ
AWS Black Belt Techシリーズ AWS Data Pipeline
AWSでDockerを扱うためのベストプラクティス
CloudWatch Logsについて
20160526 AWSサービスアップデート
AWS Black Belt Techシリーズ AWS Lambda
Run Spark on EMRってどんな仕組みになってるの?
同じサービスを ECSとOpsWorksで 運用してみた
AWS Batch Fargate対応は何をもたらすか
画像処理をAWS LambdaのPythonで!
Amazon s3へのデータ転送における課題とその対処法を一挙紹介
2016年11月のAWSサービスアップデートまとめ
AWS Black Belt Online Seminar 2017 Deployment on AWS
Ad

Similar to Amalgam8 application switch for cloud native services (20)

PDF
Japan Container Days: 「今こそKubernetes。最高の仕事道具で使いこなそう」by capsmalt
PDF
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
PDF
ハイブリットクラウド環境におけるモダンアプリケーション開発
PDF
クラウド開発に役立つ OSS あれこれ
PPTX
作られては消えていく泡のように儚いクラスタの運用話
PPTX
やっぱコンテナ好きやねん Serverless Meet Up #02.pptx
PDF
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
PPTX
Docker & Kubernetes基礎
PDF
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
PDF
Innovation eggcloudnative
PDF
AWS Black Belt Online Seminar 2017 Docker on AWS
PDF
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
PDF
SpinnakerとKayentaで 高速・安全なデプロイ!
PPTX
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
PDF
VMware が考えるコンテナと Kubernetes の世界
PPTX
【Serverless Days】マルチクラウド環境における持続的コスト最適化サイクルの実践.pptx
PDF
これからのクラウドネイティブアプリケーションの話をしよう
PDF
捕鯨!詳解docker
PDF
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
PDF
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
Japan Container Days: 「今こそKubernetes。最高の仕事道具で使いこなそう」by capsmalt
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
ハイブリットクラウド環境におけるモダンアプリケーション開発
クラウド開発に役立つ OSS あれこれ
作られては消えていく泡のように儚いクラスタの運用話
やっぱコンテナ好きやねん Serverless Meet Up #02.pptx
Cloud Native をやっていくにはどう学んでいくかをみんなで考えてみる
Docker & Kubernetes基礎
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Innovation eggcloudnative
AWS Black Belt Online Seminar 2017 Docker on AWS
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
SpinnakerとKayentaで 高速・安全なデプロイ!
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
VMware が考えるコンテナと Kubernetes の世界
【Serverless Days】マルチクラウド環境における持続的コスト最適化サイクルの実践.pptx
これからのクラウドネイティブアプリケーションの話をしよう
捕鯨!詳解docker
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
Ad

More from Takehiko Amano (9)

PDF
もうひとつのコンテナ実行環境 runq のご紹介
PDF
Open whisk slackinvite - public
PDF
Garden introduction for dea users public
PDF
OpenWhisk introduction public
PDF
PaaS ×iot! node red勉強会質問箱
PDF
Node red hands on - public
PDF
Node red の導入
PDF
Cloud focker を試してみた public
PDF
Deploy application from web editor 20140326 public
もうひとつのコンテナ実行環境 runq のご紹介
Open whisk slackinvite - public
Garden introduction for dea users public
OpenWhisk introduction public
PaaS ×iot! node red勉強会質問箱
Node red hands on - public
Node red の導入
Cloud focker を試してみた public
Deploy application from web editor 20140326 public

Amalgam8 application switch for cloud native services

  • 1. © IBM Corporation 1 Amalgam8 アマルガメイトとよんでください
  • 2. © IBM Corporation 2 ⾃⼰紹介 ~ 名前: 天野 武彦 所属:IBM 東京ソフトウェア開発研究所 主な活動: 先端クラウド技術の推進・啓蒙 (エリア: Cloud Foundry, DevOps, OpenStack, OpenWhisk, Blockchain 等) 趣味: ⽬下のところ育児に没頭 Twitter: @ibmamnt ブログ: http://amanoblog.wordpress.com
  • 3. © IBM Corporation 3 text クラウド時代のアプリケーション・サービス開発 –変化のないシス テムはすぐに飽 きられてしまう –かといって、今 のシステム開発 だと3〜6ヶ⽉ リリースサイク ルが限界 –ためしてみたら あぼーん!
  • 4. © IBM Corporation 4 text Amalgam8 とは –WEBアプリケーション、マイクロサービスのための「アプリケーショ ン・スイッチ」 • OSI (Open Systems Interconnection) の世界でいう Layer-7 にあたるもの –以下のことが出来ます(2017年5⽉末時点) • コンテンツ、及びバージョンベースのルーティング • Gremlin ベースの試験 amalgam8 = amalgamate 1.〈会社などを〉合同[合併]する. 2.〈異種族・思想などを〉混交[融合]する. http://ejje.weblio.jp/content/amalgamate
  • 5. © IBM Corporation 5 text マイクロサービス界隈でよくきくカナリア試験とか –カナリア • 「毒物に敏感なので、⼀緒に⼊ればすぐに反 応してくれる 」(警視庁第三機動隊・遠塚 章弘警部補)」( 地下鉄サリン事件 TBS ニュースから転載) 出典:http://www.academia.dk/Blog/a-canary-in-a- coal-mine-in-the-19th-century-and/
  • 6. © IBM Corporation 6 カナリアリリース 95% traffic 5 % • 更新をカナリアクラスタ にデプロイ • 受け入れ試験実施 • 少しのトラフィックをカナ リアクラスタに流し、順次 増やしていく Primary Cluster Canary Cluster 2. 新しいサービスのデプロイと試験 • 100% のトラフィックを カナリアクラスタに送信 • 古いプライマリークラスタは 廃棄 • 必要があればロールバック 100% traffic (Old) Primary Cluster New Primary Cluster 3. 試験が終われば完全スイッチ • デプロイ準備 • カナリアクラスタ作成 • カナリアリリースの準備 Primary Cluster 100% traffic Canary Cluster 1. アップグレード準備 新しいサービスの機能を、⼀部ユーザに対してだけ先⾏リリース、その 後全リリース。Facebookでは、Dark Launchと呼ばれている
  • 7. © IBM Corporation 7 text こうけ? LB ロードバランサーです。 ラウンドロビンしかしな いけどw サービス サービス LB サービス サービス サービス 新サービス 99個 1個 カナリア試験を するためには サービス増やし て対応(コスト には⽬をつぶ る)
  • 8. © IBM Corporation 8 text コンテンツベース、バージョンベースのルーティングとは? –コンテンツベース • ヘッダーの値に “TEST” が含まれ ていたら試験中サービスにルー ティング • それ以外は現在のリリースされて いるサービスにルーティング –バージョンベース • 70%のトラフィックはB • 30%のトラフィックはB’
  • 9. © IBM Corporation 9 text helloworld デモ –デフォルトでは v1 に接続 –25% のトラフィックを v2 にルー ティング 結果:1000回呼び出し V1 V2 デフォルト 25%こっち $ a8ctl route-list +-------------+-----------------+-------------------+ | Service | Default Version | Version Selectors | +-------------+-----------------+-------------------+ | helloworld | v1 | v2(weight=0.25) | +-------------+-----------------+-------------------+ ※詳細は後ほど! $ bash test.sh | sort | uniq -c 745 v1 255 v2 $ curl http://$GATEWAY_URL/helloworld/hello Hello version: v1, container: 88bbf66c46ea $ curl http://$GATEWAY_URL/helloworld/hello Hello version: v1, container: 88bbf66c46ea $ curl http://$GATEWAY_URL/helloworld/hello Hello version: v2, container: 6eeaa2cfad45 だいたい25%
  • 10. © IBM Corporation 10 text amalgam8 のアーキテクチャ Controller – ルールの管理 Registry –管理対象の(マイクロ)サービ ス登録 Sidecar – ルーティング実⾏サービス • サービス内部 or • サービス外部
  • 11. © IBM Corporation 11 text ルーティング ルール –baseルール • destination: ルーティング先 • priority: 数字 このプライオリティ順にルールを評 価 • match: 適⽤ルール – source : トラフィックの元 – header : https ヘッダーフィルター (例:user=json ) –backends ルール • tags : (tags=v2 → v2 にルーティング) – ※タグ名はサービス登録時に指定 • weight : ルーティングの重み ( wight=0.25 → 25%) –action ルール(サービスの試験に利⽤) • duration: delay を⼊れる(試験のため) • abort amnt@vanadium:~ $ a8ctl route-list +-------------+-----------------+-------------------+ | Service | Default Version | Version Selectors | +-------------+-----------------+-------------------+ | reviews | v3 | v2(user="jason") | | ratings | v1 | | | details | v1 | | | helloworld | v1 | v2(weight=0.25) | | productpage | v1 | | +-------------+-----------------+-------------------+
  • 12. © IBM Corporation 12 text Sidecar – アプリケーション・サービ スの Registry への登録(⾃ 動) – Controller からの情報を 使って Proxy を管理 • Envoy を採⽤ • https://lyft.github.io/envoy/ –リクエストをルールに従っ てルーティング Envoy
  • 13. © IBM Corporation 13 text Sidecar の使い⽅ – Sidecar コンポーネントを アプリケーションにDocker イメージに組み込みます –(Kubernetes のみ)アプ リケーションはそのままで Sidecar イメージをHelper コンテナとして使います Sidecar App(v1) App(v1) testing default testing Sidecar App(v1)default testing App(v1) testing SidecarSidecar service(v1) service(v1) testing SidecarSidecar SidecarSidecar
  • 14. © IBM Corporation 14 text Sidecarの導⼊ –Dockerfile にa8sidecarの導⼊⾏を追加する FROM <somebaseimage> RUN curl -sSL https://github.com/amalgam8/amalgam8/releases/download/${VERSION}/a8sidecar.sh | sh ## Install your app stuff here ## script_to_launch_sidecar_and_app ※ supervisor を利⽤して sidecar にアプリケーションの管理をさせることも できる。この場合 healthcheck の機能がつく
  • 15. © IBM Corporation 15 text 他のサービスの呼び出しのためアプリケーションを修正する 必要があります –他のサービス呼び出しは http://localhost:6479/サービス名/APIパス に変更します
  • 16. © IBM Corporation 16 text Gremlin試験機能 –sidecar の追加機能 • 遅延を発⽣させる • 0.7の確率で http 503 を返す –ちょっとした “Chaos Monkey” の代わりに使え ます https://commons.wikimedia.org/wiki/File:Gre mlinStripeByInti.jpg
  • 17. © IBM Corporation 17 text まとめ –amalgam8 はマイクロサービス開発とオペレーションに役⽴ちます。 • コンテナのためのアプリケーションスイッチ –様々なコンテナプラットフォームで稼働するので、Platform 及び language Agnostic です。 –参考サイト: • https://www.amalgam8.io/
  • 18. © IBM Corporation 18 text さて、とある⽇の amalgam8 slack の会話 なぬ! istio プロジェクトに移⾏ですと!
  • 19. © IBM Corporation 19 text GlueCon 2017 のアジェンダ 5/24 に Google と IBM 共同で 発表するようです。 しばらく待ちましょう! 次回は istio.io の何かを題材に したいと思います。
  • 20. © IBM Corporation 20 text おしまい