SlideShare una empresa de Scribd logo
1 de 31
LINE internship 2016
最終発表
開発2センター LINEゲーム開発1室
やったこと
• Game Cloud UI への Upgrade Button の追加
• オートスケーリングシステムのUI作成
Upgrade Component Button
Game Cloud
Service
Components
- Alpha
- Beta
- Release
- …
Game CoreAuthBilling
¥
- 複数のContainerを含む
¥
¥
Game Cloud
問題点 - Upgrade Component
Game Core V1AuthBilling
Game Coreに
すごい機能を追加した、
アップグレードしよう
問題点 - Upgrade Component
Game Core V1
Game Coreに
すごい機能を追加した、
アップグレードしよう
1. Docker Imageのビルド
Task
Game Core V2
問題点 - Upgrade Component
Game Core V1
Game Coreに
すごい機能を追加した、
アップグレードしよう
2. Componentの追加
Task
Game Core V2
問題点 - Upgrade Component
Game Core V1
Game Coreに
すごい機能を追加した、
アップグレードしよう
2. Componentの追加
Task
Game Core V2
問題点 - Upgrade Component
Game Core V1
Game Coreに
すごい機能を追加した、
アップグレードしよう
3. 設定をコピー
Task
Game Core V2
問題点 - Upgrade Component
Game Core V1
Game Coreに
すごい機能を追加した、
アップグレードしよう
3. 設定をコピー
Task
Game Core V2
問題点 - Upgrade Component
Game Core V1
Game Coreに
すごい機能を追加した、
アップグレードしよう
3. 設定をコピー
Task
Game Core V2
人間のやることではない
→ ワンクリッックでやりたい
Upgrade Button: 実装
• 前述のタスクを行うJenkins Serverはチューターさんが
用意してくれた
• クリックでそのAPIを呼び出し、ビルド・デプロイが終
了するまで待つ
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が入手できるよ
うになる
• 結果を待つ
Upgrade Button
misc
Gearbox-UI
Auto Scaling
Game CoreAuthBilling
アップグレードしたら
ユーザーがたくさん
接続してきた
Auto Scaling
Game CoreAuthBilling
アップグレードしたら
ユーザーがたくさん
接続してきた
炎上
Auto Scaling
Game Core x 4AuthBilling
アップグレードしたら
ユーザーがたくさん
接続してきた
コンテナ数を増やす
Auto Scaling
Game Core x 4AuthBilling
アップグレードしたら
ユーザーがたくさん
接続してきた
コンテナ数を増やす
人間のやることではない
åAuto Scaling - Gearbox
AuthBilling
CPU使用率が
80%を
超えました
Predicator
Game Core
Auto Scaling - Gearbox
AuthBilling
Predicator
Scaler
コンテナ数
増やします
Game Core x 4
CPU使用率が
80%を
超えました
åGearbox: AutoScaling System
Container
Data Collector
CPU Usage
Memory Usage
…
Predicator
CPU is Busy!
CPU Usage > 75%?
Do Scale out
Settings is …Scaler
Gearbox: AutoScaling System
問題点
• 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
問題点
• 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
}
}
}
]
}
}
問題点
• 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を作った
demo
Future work
• テストを書く (結構書いた)
• Gearbox UIのGameCloud UI (Knife) への埋め込み
• Gearbox UI自体は独立したReact Componentなのでそ
れほど難しくないはず
• スケーリング条件の可視化
• CPU使用率グラフがどうなるとスケールするのか……
みたいなツールチップを出したい
• ツールチップだけ作った
Enzyme + AVA
Thank you for listening!

Más contenido relacionado

La actualidad más candente

Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化dcubeio
 
Inside of Baremetal Server Deployment on Private Cloud
Inside of Baremetal Server Deployment on Private CloudInside of Baremetal Server Deployment on Private Cloud
Inside of Baremetal Server Deployment on Private CloudLINE Corporation
 
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015Masahiro Nagano
 
AWS VM import / export ハンズオン
AWS VM import / export ハンズオン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 ProgramBehind-the-Scenes and Goals of LINE Summer Internship Program
Behind-the-Scenes and Goals of LINE Summer Internship ProgramLINE Corporation
 
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳するMarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳するYukihiko SAWANOBORI
 
ActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのかActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのかYoichi Toyota
 
WP Booster WordBench Tokyo 20120701
WP Booster WordBench Tokyo 20120701WP Booster WordBench Tokyo 20120701
WP Booster WordBench Tokyo 20120701Hiromichi Koga
 

La actualidad más candente (11)

Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
 
Inside of Baremetal Server Deployment on Private Cloud
Inside of Baremetal Server Deployment on Private CloudInside of Baremetal Server Deployment on Private Cloud
Inside of Baremetal Server Deployment on Private Cloud
 
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
 
Devlove mackerel
Devlove mackerelDevlove mackerel
Devlove mackerel
 
AWS VM import / export ハンズオン
AWS VM import / export ハンズオン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 ProgramBehind-the-Scenes and Goals of LINE Summer Internship Program
Behind-the-Scenes and Goals of LINE Summer Internship Program
 
Ansible softlayer
Ansible softlayer Ansible softlayer
Ansible softlayer
 
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳するMarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
MarketPlaceのAMIをPackerで作る時、 Chefは3度配膳する
 
ActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのかActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのか
 
[jjug] Java と Benchmark
[jjug] Java と Benchmark[jjug] Java と Benchmark
[jjug] Java と Benchmark
 
WP Booster WordBench Tokyo 20120701
WP Booster WordBench Tokyo 20120701WP Booster WordBench Tokyo 20120701
WP Booster WordBench Tokyo 20120701
 

Similar a LINE 2016 エンジニアインターン 03

Office365最新動向と運用管理tips
Office365最新動向と運用管理tipsOffice365最新動向と運用管理tips
Office365最新動向と運用管理tipsMari Miyakawa
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーAyumu Kawaguchi
 
Amplify Studioを使ってみた
Amplify Studioを使ってみたAmplify Studioを使ってみた
Amplify Studioを使ってみた虎の穴 開発室
 
200人での対戦も可能!?Photon 新SDKについて
200人での対戦も可能!?Photon 新SDKについて200人での対戦も可能!?Photon 新SDKについて
200人での対戦も可能!?Photon 新SDKについてPhoton運営事務局
 
Contao Open Source CMS -- Contao 4.0に向けて
Contao Open Source CMS -- Contao 4.0に向けてContao Open Source CMS -- Contao 4.0に向けて
Contao Open Source CMS -- Contao 4.0に向けてTakahiro Kambe
 
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術Unity Technologies Japan K.K.
 
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Makoto Haruyama
 
[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part I
[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part I[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part I
[2000/10] .NET Technical Briefing 2000 / Visual Studio .NET Part ITatsuhiko Tanaka
 
GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)
GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)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 を 使いこなして、自動化対応 エンジニア になろう!!INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!decode2016
 
kintoneの新機能を開発するお仕事
kintoneの新機能を開発するお仕事kintoneの新機能を開発するお仕事
kintoneの新機能を開発するお仕事Cybozu, Inc.
 
DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~
DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~
DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~decode2016
 
【CEDEC2018】開発計画に役に立つUnityロードマップ
【CEDEC2018】開発計画に役に立つUnityロードマップ【CEDEC2018】開発計画に役に立つUnityロードマップ
【CEDEC2018】開発計画に役に立つUnityロードマップUnity Technologies Japan K.K.
 

Similar a LINE 2016 エンジニアインターン 03 (20)

CIデモ環境 構築手順書
CIデモ環境 構築手順書CIデモ環境 構築手順書
CIデモ環境 構築手順書
 
Office365最新動向と運用管理tips
Office365最新動向と運用管理tipsOffice365最新動向と運用管理tips
Office365最新動向と運用管理tips
 
Cedec2013 photon network engine
Cedec2013 photon network engineCedec2013 photon network engine
Cedec2013 photon network engine
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
 
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
 
Amplify Studioを使ってみた
Amplify Studioを使ってみたAmplify Studioを使ってみた
Amplify Studioを使ってみた
 
200人での対戦も可能!?Photon 新SDKについて
200人での対戦も可能!?Photon 新SDKについて200人での対戦も可能!?Photon 新SDKについて
200人での対戦も可能!?Photon 新SDKについて
 
[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい
 
Contao Open Source CMS -- Contao 4.0に向けて
Contao Open Source CMS -- Contao 4.0に向けてContao Open Source CMS -- Contao 4.0に向けて
Contao Open Source CMS -- Contao 4.0に向けて
 
Unity開発ロードマップ最新情報
Unity開発ロードマップ最新情報Unity開発ロードマップ最新情報
Unity開発ロードマップ最新情報
 
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
 
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介
 
Redmine Applied for Large Scale
Redmine Applied  for Large ScaleRedmine 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[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 wf45Clrh 111015 wf45
Clrh 111015 wf45
 
GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)
GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)
GMOアプリクラウドではじめる Photon Server v4 (2016/4/20 発表資料)
 
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
 
kintoneの新機能を開発するお仕事
kintoneの新機能を開発するお仕事kintoneの新機能を開発するお仕事
kintoneの新機能を開発するお仕事
 
DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~
DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~
DEV-003_新しく生まれ変わったデータ アクセス テクノロジ ~Entity Framework Core 1.0 の全貌~
 
【CEDEC2018】開発計画に役に立つUnityロードマップ
【CEDEC2018】開発計画に役に立つUnityロードマップ【CEDEC2018】開発計画に役に立つUnityロードマップ
【CEDEC2018】開発計画に役に立つUnityロードマップ
 

Más de LINE Corporation

JJUG CCC 2018 Fall 懇親会LT
JJUG CCC 2018 Fall 懇親会LTJJUG CCC 2018 Fall 懇親会LT
JJUG CCC 2018 Fall 懇親会LTLINE Corporation
 
Reduce dependency on Rx with Kotlin Coroutines
Reduce dependency on Rx with Kotlin CoroutinesReduce dependency on Rx with Kotlin Coroutines
Reduce dependency on Rx with Kotlin CoroutinesLINE Corporation
 
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
Kotlin/NativeでAndroidのNativeメソッドを実装してみた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 extensionUse Kotlin scripts and Clova SDK to build your Clova extension
Use Kotlin scripts and Clova SDK to build your Clova extensionLINE Corporation
 
The Magic of LINE 購物 Testing
The Magic of LINE 購物 TestingThe Magic of LINE 購物 Testing
The Magic of LINE 購物 TestingLINE Corporation
 
UI Automation Test with JUnit5
UI Automation Test with JUnit5UI Automation Test with JUnit5
UI Automation Test with JUnit5LINE Corporation
 
Feature Detection for UI Testing
Feature Detection for UI TestingFeature Detection for UI Testing
Feature Detection for UI TestingLINE Corporation
 
LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享LINE Corporation
 
​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享LINE Corporation
 
LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣LINE Corporation
 
日本開發者大會短講分享
日本開發者大會短講分享日本開發者大會短講分享
日本開發者大會短講分享LINE Corporation
 
LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享LINE Corporation
 
在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed Kubernetes在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed KubernetesLINE Corporation
 
LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧LINE Corporation
 
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹LINE Corporation
 
LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享LINE Corporation
 
LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗LINE Corporation
 
LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務LINE Corporation
 
Keynote - ​LINE 的技術策略佈局與跨國產品開發
Keynote - ​LINE 的技術策略佈局與跨國產品開發Keynote - ​LINE 的技術策略佈局與跨國產品開發
Keynote - ​LINE 的技術策略佈局與跨國產品開發LINE Corporation
 

Más de LINE Corporation (20)

JJUG CCC 2018 Fall 懇親会LT
JJUG CCC 2018 Fall 懇親会LTJJUG CCC 2018 Fall 懇親会LT
JJUG CCC 2018 Fall 懇親会LT
 
Reduce dependency on Rx with Kotlin Coroutines
Reduce dependency on Rx with Kotlin CoroutinesReduce dependency on Rx with Kotlin Coroutines
Reduce dependency on Rx with Kotlin Coroutines
 
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
Kotlin/NativeでAndroidのNativeメソッドを実装してみた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 extensionUse 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 購物 TestingThe Magic of LINE 購物 Testing
The Magic of LINE 購物 Testing
 
GA Test Automation
GA Test AutomationGA Test Automation
GA Test Automation
 
UI Automation Test with JUnit5
UI Automation Test with JUnit5UI Automation Test with JUnit5
UI Automation Test with JUnit5
 
Feature Detection for UI Testing
Feature Detection for UI TestingFeature Detection for UI Testing
Feature Detection for UI Testing
 
LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享
 
​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享
 
LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣
 
日本開發者大會短講分享
日本開發者大會短講分享日本開發者大會短講分享
日本開發者大會短講分享
 
LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享
 
在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed Kubernetes在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed Kubernetes
 
LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧
 
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
 
LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享
 
LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗
 
LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務
 
Keynote - ​LINE 的技術策略佈局與跨國產品開發
Keynote - ​LINE 的技術策略佈局與跨國產品開發Keynote - ​LINE 的技術策略佈局與跨國產品開發
Keynote - ​LINE 的技術策略佈局與跨國產品開發
 

LINE 2016 エンジニアインターン 03

Notas del editor

  1. 順番に説明するよ〜
  2. コンポーネントのアップグレードを行うボタン。コンポーネントって何? Game Cloudの説明をします
  3. Game CloudはLINE Game用のAWSのようなもの。 ゲームをServiceという単位、その中の機能をComponentとして持つ。 ComponentはContainerという実際のサーバー(仮想)を複数持ちうる。
  4. たくさんのゲームを管理しやすい。
  5. コンポーネントのアップグレードについて。 ゲームに新機能を追加した時の現在のアップグレード手順。
  6. Docker Imageと呼ばれる雛形を作る。 Dockerfileという設定ファイルから作成。
  7. Docker Imageを利用してServiceにComponentを追加する。 この作業にはServiceの設定ファイルの変更をする必要がある。
  8. 設定を旧verからコピー。例えばデータベースとの接続方法とか。 これもServiceの設定ファイル変更が主
  9. 実際に動作チェックを行う。うまくいったら切り替え。これも設定ファイルの変更が必要。
  10. 人間がやる作業ではない
  11. 設定ファイルを変更する仕組みはチューターさんが作ってくれた。 ボタンがやることはその仕組みを呼び出して、成功を待つ作業。
  12. 実装。コンポーネントをビルドして!というとビルド待ちになる。 ビルドが開始すると情報取得用のURLを取得できる。まずここが1回目の待ち 実際にビルドが完了するまで待つことも必要。Promiseを使うと結構綺麗に書けた。
  13. GIF
  14. ちょっとしたtweakもした。 ツールチップの追加。かわいい。
  15. 次はオートスケーリングのUI。オートスケーリングのシステムの名前がGearboxなので Gearbox-UI。
  16. オートスケーリングって何? まずはスケーリングから。ある日新機能を追加したらたくさんの人が接続してきた。
  17. 対処しないとサーバーが落ちて炎上する。
  18. ここでコンテナ数を増やす。ユーザーのアクセスは4つのコンテナに分散されて処理されるのでたくさんのアクセスに耐えられる。これがスケーリング。
  19. でもいちいち人が増えたのをチェックしてコンテナを増やすコマンドを人間がするの? いやなので自動化しましょう。それでオートスケーリング。
  20. 実際のGearboxの仕組み。Predicatorが監視役。
  21. Predicatorがやばいと思ったらScalerにコンテナを増やせと命令を送る。するとScalerが様々な処理をしてくれてコンテナが増える。人が入らない!
  22. もう少し詳しいGearboxの仕組み。データを集めるDataCollector。そのデータを利用して条件判断をするPredicator。実際のスケーリングを行うScaler。
  23. Gearboxの実装手法。 「DataCollectorが集めたデータ 「どの条件でPredicatorがやばいと判断するか」「Scalerがどうスケールするか」は全て同じElasticsearchというデータベースに入れられている。
  24. 仕組みはある。でもUIがない。 今はElasticsearchのAPIを叩いて直接設定やその取得をしないといけない。 実際叩くと右の感じ。長い。
  25. 結果。明らかにヤバい。
  26. じゃあUIを作ろう。作りました。
  27. デモ。
  28. これから。まずテストを書く。将来的な変更で元々ある機能が壊れないことを保証するため。 前半で述べたUIへの埋め込み。Gearbox-UIは独立したReact Componentなのでそこまで難しくないと思う。 スケーリング条件の可視化。CPUがずっと80%以上なら〜みたいな条件をグラフで表示すると直感的に分かりやすそう。ツールチップだけ作った。I'm Tooltip!