Slide 1

Slide 1 text

Masaya Aoyama CyberAgent adtech studio CyberAgent adtechstudioʹ͓͚Δ ServiceMesh΁ͷϞνϕʔγϣϯͱ՝୊ @Cloud Native Deep Dive #2 MasayaAoyama @amsy810

Slide 2

Slide 2 text

連載「今こそ始めよう!Kubernetes 入門」 @ThinkIT Japan Container Days v18.04 Keynote 登壇 Cloud Native Meetup Tokyo Organizer (+ KubeCon日本人会 + JKD) CKA #138、CKAD #2 OpenStack / Kubernetes Contributor Masaya Aoyama (@amsy810) Infrastructure Engineer

Slide 3

Slide 3 text

2018年9⽉21⽇発売予定 https://bit.ly/k8s-amsy810 Kubernetesの各リソースについて体系的かつ網羅的に説明 Cloud Nativeな開発を促進させる周辺エコシステムについても紹介 ■⽬次案 第1章 なぜKubernetesが必要なのか? 第2章 Kubernetes環境の選択肢 第3章 APIリソースとkubectl 第4章 Workloadsリソース 第5章 Discovery & LBリソース 第6章 Config & Storageリソース 第7章 ClusterリソースとMetadataリソース 第8章 リソース管理とオートスケーリング 第9章 ヘルスチェックとコンテナのライフサイクル 第10章 メンテナンスとノードの停⽌ 第11章 ⾼度で柔軟なスケジューリング 第12章 セキュリティ 第13章 マニフェストの汎⽤化を⾏うオープンソースソフトウェア 第14章 モニタリング 第15章 コンテナログの集約 第16章 CI/CD環境 第17章 マイクロサービスとServiceMesh 第18章 Kubernetesのアーキテクチャ 第19章 Kubernetesとこれから 付録

Slide 4

Slide 4 text

導入に向けたモチベーション 1.レイテンシのモニタリング     2.ロジックの Canary Release     Circuit Brakeとかももちろんしたい

Slide 5

Slide 5 text

端末でWebページを開いたとき DSP Demand Side Platform SSP Supply Side Platform Yahooで検索をしようと Yahooのページを開く 広告枠を埋めるよう SSPにリクエスト

Slide 6

Slide 6 text

SSPからDSPsに対してオークションを実施 DSP Demand Side Platform SSP Supply Side Platform この端末で この広告枠買う?

Slide 7

Slide 7 text

ad-technology system DSP Demand Side Platform SSP Supply Side Platform この端末で この広告枠買う? 男性でYahooをよく利用する人 Yahooだからアダルト広告はだめだな…健全なのがいい すごいコーラ好きな人みたい 広告主にサントミーがいるから100円で入札して 新商品のウルトラコーラを宣伝しよう…

Slide 8

Slide 8 text

ad-technology system DSP Demand Side Platform SSP Supply Side Platform この端末で この広告枠買う? 100円で買う

Slide 9

Slide 9 text

ad-technology system DSP Demand Side Platform SSP Supply Side Platform この端末で この広告枠買う? いつまでも全DSPを待っているとユーザビリティが低下する  = オークションは 100ms で締め切り うーん・・・・ まだ?

Slide 10

Slide 10 text

ad-technology system DSP Demand Side Platform SSP Supply Side Platform この端末で この広告枠買う? マイクロサービスアーキテクチャでは どのコンポーネントがボトルネックになっているか判別しづらい 広告主に関するサービス 予算に関するサービス SSPに関するサービス 広告枠に関するサービス 入札ロジックに関するサービス ユーザに関するサービス ※ イメージ

Slide 11

Slide 11 text

導入に向けたモチベーション 1.レイテンシのモニタリング    100msを超えたリクエストは棄却される = 売上0(サーバ代はかさむ)    マイクロサービスアーキテクチャ内のボトルネック把握 2.ロジックの Canary Release    売上に大きく影響するロジック = 売上マイナス数百万    徐々にロジックを導入できるように    可能ならPod数はそこまで増やしたくない(≠ BlueGreen Deploy)

Slide 12

Slide 12 text

ロジック変更前 DSP Demand Side Platform SSP Supply Side Platform この端末で この広告枠買う? 男性でYahooをよく利用する人 Yahooだからアダルト広告はだめだな…健全なのがいい すごいコーラ好きな人みたい 広告主にサントミーがいるから100円で入札して 新商品のウルトラコーラを宣伝しよう…

Slide 13

Slide 13 text

ロジック変更後 DSP Demand Side Platform SSP Supply Side Platform この端末で この広告枠買う? 男性! 男性はみんな筋トレ好きだからダンベル100%買う! 広告主にマッスル株式会社がいるから 10000円で入札してダンベルを宣伝しよう…

Slide 14

Slide 14 text

Canaryリリースの必要性 DSP Demand Side Platform SSP Supply Side Platform この端末で この広告枠買う? 男性! 男性はみんな筋トレ好きだからダンベル100%買う! 広告主にマッスル株式会社がいるから 10000円で入札してダンベルを宣伝しよう… DSPは多売薄利 ロジックやシステムに問題があるとインパクトが大きい Canaryリリースが必要

Slide 15

Slide 15 text

導入に向けたモチベーション 1.レイテンシのモニタリング    100msを超えたリクエストは棄却される = 売上0(サーバ代はかさむ)    マイクロサービスアーキテクチャ内のボトルネック把握 2.ロジックの Canary Release    売上に大きく影響するロジック = 売上マイナス数百万    徐々にロジックを導入できるように    可能ならPod数はそこまで増やしたくない(≠ BlueGreen Deploy)

Slide 16

Slide 16 text

導入に向けた課題 1.マイクロサービス間のレイテンシをモニタリングするためにレイテンシが増える     そもそもEnvoyプロキシが挟まるのでしょうがない     StgなどではConduitでモニタリングのみ行い傾向調査?     Istio Performance and Scalability WG が対応中       Throughput が + 142 %、Latency (p50) が - 59 % 2.CI/CDのつくりこみ     Deploymentを複数作って Traffic Shiftingする場合     VirtualServiceとDestinationRuleの管理…Deployment削除…

Slide 17

Slide 17 text

Pilot Mixer Istio-Auth Envoy App a Envoy App b Envoy App c Deployment a Deployment b Deployment c Data Plane Control Plane Istioの場合

Slide 18

Slide 18 text

導入に向けた課題 1.マイクロサービス間のレイテンシをモニタリングするためにレイテンシが増える     そもそもEnvoyプロキシが挟まるのでしょうがない     StgなどではConduitでモニタリングのみ行い傾向調査?     Istio Performance and Scalability WG が対応中       Throughput が + 142 %、Latency (p50) が - 59 % 2.CI/CDのつくりこみ     Deploymentを複数作って Traffic Shiftingする場合     VirtualServiceとDestinationRuleの管理…Deployment削除…

Slide 19

Slide 19 text

CI/CDの作り込み 新しいDeploymentを作成(replica=x) DestinationRuleを更新する(subsetを登録) Virtual ServiceでTraffic Shifting(Replica数も可能なら制御) Trafficの割合を徐々に制御 古いDeploymentを削除(or replica=0にする) ロールバック時の挙動どうする? 弊社はGitOps風、Spinnakerや別のツールを使っている場合は?