Enviar búsqueda
Cargar
LINE 2016 エンジニアインターン 03
•
1 recomendación
•
25,918 vistas
LINE Corporation
Seguir
LINE 2016 エンジニアインターン 03
Leer menos
Leer más
Internet
Denunciar
Compartir
Denunciar
Compartir
1 de 31
Recomendados
LINE 2016 エンジニアインターン 01
LINE 2016 エンジニアインターン 01
LINE Corporation
LINE 2016 エンジニアインターン 02
LINE 2016 エンジニアインターン 02
LINE Corporation
Webアプリケーション上で 起きている問題の可視化
Webアプリケーション上で 起きている問題の可視化
LINE Corporation
Intern2015 01
Intern2015 01
LINE Corporation
【PlayFab】ログインと同時にいろんなデータを取得する方法
【PlayFab】ログインと同時にいろんなデータを取得する方法
TakuyaNakajo
Wordvolcano
Wordvolcano
Hiromichi Koga
JAWS-UG CLI #19 LT - VM Import by AWS CLI
JAWS-UG CLI #19 LT - VM Import by AWS CLI
Nobuhiro Nakayama
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Masahiro Nagano
Recomendados
LINE 2016 エンジニアインターン 01
LINE 2016 エンジニアインターン 01
LINE Corporation
LINE 2016 エンジニアインターン 02
LINE 2016 エンジニアインターン 02
LINE Corporation
Webアプリケーション上で 起きている問題の可視化
Webアプリケーション上で 起きている問題の可視化
LINE Corporation
Intern2015 01
Intern2015 01
LINE Corporation
【PlayFab】ログインと同時にいろんなデータを取得する方法
【PlayFab】ログインと同時にいろんなデータを取得する方法
TakuyaNakajo
Wordvolcano
Wordvolcano
Hiromichi Koga
JAWS-UG CLI #19 LT - VM Import by AWS CLI
JAWS-UG CLI #19 LT - VM Import by AWS CLI
Nobuhiro Nakayama
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Masahiro Nagano
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
dcubeio
Inside of Baremetal Server Deployment on Private Cloud
Inside of Baremetal Server Deployment on Private Cloud
LINE Corporation
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
Masahiro Nagano
Devlove mackerel
Devlove mackerel
Daisuke Kasuya
AWS VM import / export ハンズオン
AWS VM import / export ハンズオン
Emma Haruka Iwao
Behind-the-Scenes and Goals of LINE Summer Internship Program
Behind-the-Scenes and Goals of LINE Summer Internship Program
LINE Corporation
Ansible softlayer
Ansible softlayer
Hideaki Tokida
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
Yukihiko SAWANOBORI
ActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのか
Yoichi Toyota
[jjug] Java と Benchmark
[jjug] Java と Benchmark
Tokuhiro Matsuno
WP Booster WordBench Tokyo 20120701
WP Booster WordBench Tokyo 20120701
Hiromichi Koga
CIデモ環境 構築手順書
CIデモ環境 構築手順書
VirtualTech Japan Inc.
Office365最新動向と運用管理tips
Office365最新動向と運用管理tips
Mari Miyakawa
Cedec2013 photon network engine
Cedec2013 photon network engine
GMO GlobalSign Holdings K.K.
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
Ayumu Kawaguchi
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
エピック・ゲームズ・ジャパン Epic Games Japan
Amplify Studioを使ってみた
Amplify Studioを使ってみた
虎の穴 開発室
200人での対戦も可能!?Photon 新SDKについて
200人での対戦も可能!?Photon 新SDKについて
Photon運営事務局
[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい
エピック・ゲームズ・ジャパン Epic Games Japan
Contao Open Source CMS -- Contao 4.0に向けて
Contao Open Source CMS -- Contao 4.0に向けて
Takahiro Kambe
Unity開発ロードマップ最新情報
Unity開発ロードマップ最新情報
UnityTechnologiesJapan002
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
Unity Technologies Japan K.K.
Más contenido relacionado
La actualidad más candente
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
dcubeio
Inside of Baremetal Server Deployment on Private Cloud
Inside of Baremetal Server Deployment on Private Cloud
LINE Corporation
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
Masahiro Nagano
Devlove mackerel
Devlove mackerel
Daisuke Kasuya
AWS VM import / export ハンズオン
AWS VM import / export ハンズオン
Emma Haruka Iwao
Behind-the-Scenes and Goals of LINE Summer Internship Program
Behind-the-Scenes and Goals of LINE Summer Internship Program
LINE Corporation
Ansible softlayer
Ansible softlayer
Hideaki Tokida
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
Yukihiko SAWANOBORI
ActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのか
Yoichi Toyota
[jjug] Java と Benchmark
[jjug] Java と Benchmark
Tokuhiro Matsuno
WP Booster WordBench Tokyo 20120701
WP Booster WordBench Tokyo 20120701
Hiromichi Koga
La actualidad más candente
(11)
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
Inside of Baremetal Server Deployment on Private Cloud
Inside of Baremetal Server Deployment on Private Cloud
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
Devlove mackerel
Devlove mackerel
AWS VM import / export ハンズオン
AWS VM import / export ハンズオン
Behind-the-Scenes and Goals of LINE Summer Internship Program
Behind-the-Scenes and Goals of LINE Summer Internship Program
Ansible softlayer
Ansible softlayer
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
ActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのか
[jjug] Java と Benchmark
[jjug] Java と Benchmark
WP Booster WordBench Tokyo 20120701
WP Booster WordBench Tokyo 20120701
Similar a LINE 2016 エンジニアインターン 03
CIデモ環境 構築手順書
CIデモ環境 構築手順書
VirtualTech Japan Inc.
Office365最新動向と運用管理tips
Office365最新動向と運用管理tips
Mari Miyakawa
Cedec2013 photon network engine
Cedec2013 photon network engine
GMO GlobalSign Holdings K.K.
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
Ayumu Kawaguchi
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
エピック・ゲームズ・ジャパン Epic Games Japan
Amplify Studioを使ってみた
Amplify Studioを使ってみた
虎の穴 開発室
200人での対戦も可能!?Photon 新SDKについて
200人での対戦も可能!?Photon 新SDKについて
Photon運営事務局
[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい
エピック・ゲームズ・ジャパン Epic Games Japan
Contao Open Source CMS -- Contao 4.0に向けて
Contao Open Source CMS -- Contao 4.0に向けて
Takahiro Kambe
Unity開発ロードマップ最新情報
Unity開発ロードマップ最新情報
UnityTechnologiesJapan002
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
Unity Technologies Japan K.K.
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介
Makoto Haruyama
Redmine Applied for Large Scale
Redmine Applied for Large Scale
Rakuten Group, Inc.
[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part I
[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part I
Tatsuhiko Tanaka
Clrh 111015 wf45
Clrh 111015 wf45
Tomoyuki Obi
GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)
GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)
GMO GlobalSign Holdings K.K.
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
decode2016
kintoneの新機能を開発するお仕事
kintoneの新機能を開発するお仕事
Cybozu, Inc.
DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~
DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~
decode2016
【CEDEC2018】開発計画に役に立つUnityロードマップ
【CEDEC2018】開発計画に役に立つUnityロードマップ
Unity Technologies Japan K.K.
Similar a LINE 2016 エンジニアインターン 03
(20)
CIデモ環境 構築手順書
CIデモ環境 構築手順書
Office365最新動向と運用管理tips
Office365最新動向と運用管理tips
Cedec2013 photon network engine
Cedec2013 photon network engine
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
Amplify Studioを使ってみた
Amplify Studioを使ってみた
200人での対戦も可能!?Photon 新SDKについて
200人での対戦も可能!?Photon 新SDKについて
[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい
Contao Open Source CMS -- Contao 4.0に向けて
Contao Open Source CMS -- Contao 4.0に向けて
Unity開発ロードマップ最新情報
Unity開発ロードマップ最新情報
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介
Redmine Applied for Large Scale
Redmine Applied for Large Scale
[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part I
[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part I
Clrh 111015 wf45
Clrh 111015 wf45
GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)
GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
kintoneの新機能を開発するお仕事
kintoneの新機能を開発するお仕事
DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~
DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~
【CEDEC2018】開発計画に役に立つUnityロードマップ
【CEDEC2018】開発計画に役に立つUnityロードマップ
Más de LINE Corporation
JJUG CCC 2018 Fall 懇親会LT
JJUG CCC 2018 Fall 懇親会LT
LINE Corporation
Reduce dependency on Rx with Kotlin Coroutines
Reduce dependency on Rx with Kotlin Coroutines
LINE Corporation
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
LINE Corporation
Use Kotlin scripts and Clova SDK to build your Clova extension
Use Kotlin scripts and Clova SDK to build your Clova extension
LINE Corporation
The Magic of LINE 購物 Testing
The Magic of LINE 購物 Testing
LINE Corporation
GA Test Automation
GA Test Automation
LINE Corporation
UI Automation Test with JUnit5
UI Automation Test with JUnit5
LINE Corporation
Feature Detection for UI Testing
Feature Detection for UI Testing
LINE Corporation
LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享
LINE Corporation
LINE 技術合作夥伴與應用分享
LINE 技術合作夥伴與應用分享
LINE Corporation
LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣
LINE Corporation
日本開發者大會短講分享
日本開發者大會短講分享
LINE Corporation
LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享
LINE Corporation
在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed Kubernetes
LINE Corporation
LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧
LINE Corporation
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE Corporation
LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享
LINE Corporation
LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗
LINE Corporation
LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Corporation
Keynote - LINE 的技術策略佈局與跨國產品開發
Keynote - LINE 的技術策略佈局與跨國產品開發
LINE Corporation
Más de LINE Corporation
(20)
JJUG CCC 2018 Fall 懇親会LT
JJUG CCC 2018 Fall 懇親会LT
Reduce dependency on Rx with Kotlin Coroutines
Reduce dependency on Rx with Kotlin Coroutines
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
Use Kotlin scripts and Clova SDK to build your Clova extension
Use Kotlin scripts and Clova SDK to build your Clova extension
The Magic of LINE 購物 Testing
The Magic of LINE 購物 Testing
GA Test Automation
GA Test Automation
UI Automation Test with JUnit5
UI Automation Test with JUnit5
Feature Detection for UI Testing
Feature Detection for UI Testing
LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享
LINE 技術合作夥伴與應用分享
LINE 技術合作夥伴與應用分享
LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣
日本開發者大會短講分享
日本開發者大會短講分享
LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享
在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed Kubernetes
LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享
LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗
LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務
Keynote - LINE 的技術策略佈局與跨國產品開發
Keynote - LINE 的技術策略佈局與跨國產品開發
LINE 2016 エンジニアインターン 03
1.
LINE internship 2016 最終発表 開発2センター
LINEゲーム開発1室
2.
やったこと • Game Cloud
UI への Upgrade Button の追加 • オートスケーリングシステムのUI作成
3.
Upgrade Component Button
4.
Game Cloud Service Components - Alpha -
Beta - Release - … Game CoreAuthBilling ¥ - 複数のContainerを含む
5.
¥ ¥ Game Cloud
6.
問題点 - Upgrade
Component Game Core V1AuthBilling Game Coreに すごい機能を追加した、 アップグレードしよう
7.
問題点 - Upgrade
Component Game Core V1 Game Coreに すごい機能を追加した、 アップグレードしよう 1. Docker Imageのビルド Task Game Core V2
8.
問題点 - Upgrade
Component Game Core V1 Game Coreに すごい機能を追加した、 アップグレードしよう 2. Componentの追加 Task Game Core V2
9.
問題点 - Upgrade
Component Game Core V1 Game Coreに すごい機能を追加した、 アップグレードしよう 2. Componentの追加 Task Game Core V2
10.
問題点 - Upgrade
Component Game Core V1 Game Coreに すごい機能を追加した、 アップグレードしよう 3. 設定をコピー Task Game Core V2
11.
問題点 - Upgrade
Component Game Core V1 Game Coreに すごい機能を追加した、 アップグレードしよう 3. 設定をコピー Task Game Core V2
12.
問題点 - Upgrade
Component Game Core V1 Game Coreに すごい機能を追加した、 アップグレードしよう 3. 設定をコピー Task Game Core V2 人間のやることではない → ワンクリッックでやりたい
13.
Upgrade Button: 実装 •
前述のタスクを行うJenkins Serverはチューターさんが 用意してくれた • クリックでそのAPIを呼び出し、ビルド・デプロイが終 了するまで待つ
14.
Upgrade Button: 実装 service.buildComponent(settings) .then((resp)
=> { return pollBuildUrl(resp) }).then((resp) => { return pollBuildResult(resp) }).then((resp) => { if (err) showErr(err) success(resp) }) • ComponentのビルドAPIは「 ビルドキューID」を返す • すぐにビルドが始まるわけ ではない • ビルドが開始すると、ビルド の情報が得られるJenkinsの ページのURLが入手できるよ うになる • 結果を待つ
15.
Upgrade Button
16.
misc
17.
Gearbox-UI
18.
Auto Scaling Game CoreAuthBilling アップグレードしたら ユーザーがたくさん 接続してきた
19.
Auto Scaling Game CoreAuthBilling アップグレードしたら ユーザーがたくさん 接続してきた 炎上
20.
Auto Scaling Game Core
x 4AuthBilling アップグレードしたら ユーザーがたくさん 接続してきた コンテナ数を増やす
21.
Auto Scaling Game Core
x 4AuthBilling アップグレードしたら ユーザーがたくさん 接続してきた コンテナ数を増やす 人間のやることではない
22.
åAuto Scaling -
Gearbox AuthBilling CPU使用率が 80%を 超えました Predicator Game Core
23.
Auto Scaling -
Gearbox AuthBilling Predicator Scaler コンテナ数 増やします Game Core x 4 CPU使用率が 80%を 超えました
24.
åGearbox: AutoScaling System Container Data
Collector CPU Usage Memory Usage … Predicator CPU is Busy! CPU Usage > 75%? Do Scale out Settings is …Scaler
25.
Gearbox: AutoScaling System
26.
問題点 • UIがない • Elasticsearchから直 接データを取得・設 定するのは辛い //
Get Scaler Strategy curl -XGET -d' { "query": { "bool": { "must": [{ "term": { "serviceId": "LGTMTM" } }, { "term": { "phase": "RELEASE" } }, { "term": { "componentId": "COMP1" } }] } } } ' http://elasticsearch/gearbox_release_configuration/scaler_s trategy/_search
27.
問題点 • UIがない • Elasticsearchから直 接データを取得・設 定するのは辛い //
Get Scaler Strategy curl -XGET -d' { "query": { "bool": { "must": [{ "term": { "serviceId": "LGTMTM" } }, { "term": { "phase": "RELEASE" } }, { "term": { "componentId": "COMP1" } }] } } } ' http://elasticsearch/gearbox_release_configuration/scaler_s trategy/_search // Result { "took": 1, "timed_out": false, "_shards": { "total": 6, "successful": 6, "failed": 0 }, "hits": { "total": 1, "max_score": 1, "hits": [ { "_index": "gearbox_release_configuration", "_type": "scaler_strategy", "_id": "1", "_score": 1, "_source": { "serviceId": "LGTMTM", "phase": "RELEASE", "componentId": "COMP1", "emailRecipients": [ "foo@linecorp.com" ], "hostRole": "CUSTOM", "scaleOutPolicy": { "scaleBy": "Count", "scaleFactor": 1, "containerNumberLimit": 50 } } } ] } }
28.
問題点 • UIがない • Elasticsearchから直 接データを取得・設 定するのは辛い //
Get Scaler Strategy curl -XGET -d' { "query": { "bool": { "must": [{ "term": { "serviceId": "LGTMTM" } }, { "term": { "phase": "RELEASE" } }, { "term": { "componentId": "COMP1" } }] } } } ' http://elasticsearch/gearbox_release_configuration/scaler_s trategy/_searchUIを作った
29.
demo
30.
Future work • テストを書く
(結構書いた) • Gearbox UIのGameCloud UI (Knife) への埋め込み • Gearbox UI自体は独立したReact Componentなのでそ れほど難しくないはず • スケーリング条件の可視化 • CPU使用率グラフがどうなるとスケールするのか…… みたいなツールチップを出したい • ツールチップだけ作った Enzyme + AVA
31.
Thank you for
listening!
Notas del editor
順番に説明するよ〜
コンポーネントのアップグレードを行うボタン。コンポーネントって何? Game Cloudの説明をします
Game CloudはLINE Game用のAWSのようなもの。 ゲームをServiceという単位、その中の機能をComponentとして持つ。 ComponentはContainerという実際のサーバー(仮想)を複数持ちうる。
たくさんのゲームを管理しやすい。
コンポーネントのアップグレードについて。 ゲームに新機能を追加した時の現在のアップグレード手順。
Docker Imageと呼ばれる雛形を作る。 Dockerfileという設定ファイルから作成。
Docker Imageを利用してServiceにComponentを追加する。 この作業にはServiceの設定ファイルの変更をする必要がある。
設定を旧verからコピー。例えばデータベースとの接続方法とか。 これもServiceの設定ファイル変更が主
実際に動作チェックを行う。うまくいったら切り替え。これも設定ファイルの変更が必要。
人間がやる作業ではない
設定ファイルを変更する仕組みはチューターさんが作ってくれた。 ボタンがやることはその仕組みを呼び出して、成功を待つ作業。
実装。コンポーネントをビルドして!というとビルド待ちになる。 ビルドが開始すると情報取得用のURLを取得できる。まずここが1回目の待ち 実際にビルドが完了するまで待つことも必要。Promiseを使うと結構綺麗に書けた。
GIF
ちょっとしたtweakもした。 ツールチップの追加。かわいい。
次はオートスケーリングのUI。オートスケーリングのシステムの名前がGearboxなので Gearbox-UI。
オートスケーリングって何? まずはスケーリングから。ある日新機能を追加したらたくさんの人が接続してきた。
対処しないとサーバーが落ちて炎上する。
ここでコンテナ数を増やす。ユーザーのアクセスは4つのコンテナに分散されて処理されるのでたくさんのアクセスに耐えられる。これがスケーリング。
でもいちいち人が増えたのをチェックしてコンテナを増やすコマンドを人間がするの? いやなので自動化しましょう。それでオートスケーリング。
実際のGearboxの仕組み。Predicatorが監視役。
Predicatorがやばいと思ったらScalerにコンテナを増やせと命令を送る。するとScalerが様々な処理をしてくれてコンテナが増える。人が入らない!
もう少し詳しいGearboxの仕組み。データを集めるDataCollector。そのデータを利用して条件判断をするPredicator。実際のスケーリングを行うScaler。
Gearboxの実装手法。 「DataCollectorが集めたデータ 「どの条件でPredicatorがやばいと判断するか」「Scalerがどうスケールするか」は全て同じElasticsearchというデータベースに入れられている。
仕組みはある。でもUIがない。 今はElasticsearchのAPIを叩いて直接設定やその取得をしないといけない。 実際叩くと右の感じ。長い。
結果。明らかにヤバい。
じゃあUIを作ろう。作りました。
デモ。
これから。まずテストを書く。将来的な変更で元々ある機能が壊れないことを保証するため。 前半で述べたUIへの埋め込み。Gearbox-UIは独立したReact Componentなのでそこまで難しくないと思う。 スケーリング条件の可視化。CPUがずっと80%以上なら〜みたいな条件をグラフで表示すると直感的に分かりやすそう。ツールチップだけ作った。I'm Tooltip!
完