Slide 1

Slide 1 text

2019/7/24 Alpaca Japan Shinya Sasaki AlpacaJapanの機械学習環境になぜ Rancherが必要なのか?

Slide 2

Slide 2 text

Who? Shinya Sasaki Head of Infrastructure Engineering at AlpacaJapan Co., Ltd. Osaka, Japan 2

Slide 3

Slide 3 text

Alpaca Japan 3 3 3 金融 x 機械学習 がテーマのスタートアップ 主な提供サービス/プロダクト ❖ 銀行・証券会社・信託銀行を中心に 金融機関向けのトレーディング AI技術で多くの実績を保持 「相場予測モデルの構築」 のプロジェクトで 協業 「AlpacaSearch for kabu.com」 
 相互に類似している銘柄のチャートパターン を表示
 「AI外貨予測」「AI外貨積立」 
 指定した外貨の為替の変動を予測し、予測 した日に一定金額を積立 可能
 主要マーケットの短期予測 をリアルタイムで表示 
 
 弊社の大規模データ処理 の技術やディープラーニン グ技術を活用したアプリ ケーション


Slide 4

Slide 4 text

Top-10 Artificial Intelligence Startups in Japan 4 https://www.nanalyze.com/2019/02/artificial-intelligence-japan/

Slide 5

Slide 5 text

The Fintech 250: The Top Fintech Startups Of 2018 5 https://www.cbinsights.com/research/fintech-250-startups-most-promising/

Slide 6

Slide 6 text

日経6/5 6

Slide 7

Slide 7 text

Agenda 1. AlpacaJapanの市場予測 2. AlpacaJapanのインフラ 3. Kubernetes運用の課題 4. Rancherでの課題解決 5. まとめ

Slide 8

Slide 8 text

Agenda 1. AlpacaJapanの市場予測 2. AlpacaJapanのインフラ 3. Kubernetes運用の課題 4. Rancherでの課題解決 5. まとめ

Slide 9

Slide 9 text

このあとの動きを予測する 9 ? ? ? ? ? ?

Slide 10

Slide 10 text

下落 10

Slide 11

Slide 11 text

テクニカルトレーダーの着目点 11

Slide 12

Slide 12 text

市場予測 = 値動きの前兆となるパターンを捉える 12

Slide 13

Slide 13 text

パターン探し 13 仮にパターンが分かっていたとしても ハードロジックをプログラムするには条件が多様 or 曖昧すぎる 未知のパターンを見つけたい → 機械学習

Slide 14

Slide 14 text

関連性の把握 14 Tick

Slide 15

Slide 15 text

Tick? 15 https://kotobank.jp/word/ティック-574561

Slide 16

Slide 16 text

Tickパターンの解析 ● 大量のTickデータから発生パターンを解析し、どのようなパターンが発生したときにプライス が上がるか・下がるかを予測 ● 大量のTickパターンを四六時中監視するのは、人間には不可能に近い 16 Tick発生パターン 学 習 マーケットの上げ・下げをTickの発生パ ターンから予測するモデル

Slide 17

Slide 17 text

予測モデルの作成 17 予測モデルの 出力を変換 ①時系列データの準備 ②処理済みデータ ③学習済みのモデル (Deep Learning) ④最終調整

Slide 18

Slide 18 text

18

Slide 19

Slide 19 text

Agenda 1. AlpacaJapanの市場予測 2. AlpacaJapanのインフラ 3. Kubernetes運用の課題 4. Rancherでの課題解決 5. まとめ

Slide 20

Slide 20 text

AlpacaJapanのインフラ 基本的にはKubernetes上に構築 (移行中のもありますが) • 予測モデル作成 • GPUが大量に必要 • バッチ処理 • 大量データの集計 • CPUが大量に必要 • サービス提供 • 結果をユーザに提供 • Webアプリケーション 20 オンプレ Amazon EKS Amazon EKS

Slide 21

Slide 21 text

マネージドKubernetesサービスがあるの にRancherっている?

Slide 22

Slide 22 text

マネージドKubernetesサービスがあるの にRancherっている? いらんやろ

Slide 23

Slide 23 text

Agenda 1. AlpacaJapanの市場予測 2. AlpacaJapanのインフラ 3. Kubernetes運用の課題 4. Rancherでの課題解決 5. まとめ

Slide 24

Slide 24 text

kubernetes運用を始めると出てきた課題 24 1. クラスタの増加 2. 利用ユーザの増加 3. 利用シーンの増加

Slide 25

Slide 25 text

1. クラスタの増加 どのレベルでクラスタをつくるか? • シングルクラスタ • 1つ、もしくはある程度大きなクラスタで運用 • 用途ごとにNamespaceを分ける • マルチクラスタ • 用途ごとに個々にクラスタをつくる • サービスごと • 環境(Production、Staging、Development)ごと 25

Slide 26

Slide 26 text

1. クラスタの増加 どのレベルでクラスタをつくるか? • シングルクラスタ • 1つ、もしくはある程度大きなクラスタで運用 • 用途ごとにNamespaceを分ける • マルチクラスタ • 用途にごと個々にクラスタをつくる • サービスごと • 環境(Production、Staging、Development)ごと 26

Slide 27

Slide 27 text

シングルクラスタのデメリット • バージョンアップ等のメンテナンス、障害時の影響大 • 作業調整が大変 • 影響が把握できない • ポリシーの管理が複雑 • セキュリティグループ、IAMポリシー • 現状、コンテナレベルの制御はちょっと手間 • AWSアカウントは分けれない 27

Slide 28

Slide 28 text

マルチクラスタのデメリット • 複数のAPI URL、kubeconfig • コスト増 • EKSはクラスタだけで費用が発生
 • 0.20 USD/hour (2019.07現在)
 • 16k/month くらい
 
 • ワーカーノードのリソースにムダが出やすい 28

Slide 29

Slide 29 text

2. 利用ユーザの増加 • 運用負荷の増加 • 利用方法の説明 • クラスタ追加時のアクセス方法の通知 • kubeconfigの配布 • アクセス権 • ユーザごとに権限を変えたい • Namespaceレベル • リソースレベル • RW/RO → RBAC 29

Slide 30

Slide 30 text

EKSでのユーザアクセス制限 1. AWS側でIAMユーザを作成 2. kubernetes側でRBAC設定適用 3. kubernetes側でconfigmap/aws-authを編集し、IAM ユーザに紐づけ 30 $ kubectl edit -n kube-system configmap/aws-auth • 問題点 • aws-authはワーカーノードのIAMロールも含まれるので、Git管理しにくい • あとから確認しにくい https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/add-user-role.html

Slide 31

Slide 31 text

3. 利用シーンの増加 • 環境の違い • 普段はセットアップされたローカルPC or Macからkubectlを実行 • 一時的にローカル環境使えない場合とか • ユーザーごとのKubernetes理解度、利用頻度の違い • kubectl? なにそれ? • このコンテナ実行したいだけなんだけど • このyaml実行したいだけなんだけど 31

Slide 32

Slide 32 text

Agenda 1. AlpacaJapanの市場予測 2. AlpacaJapanのインフラ 3. Kubernetes運用の課題 4. Rancherでの課題解決 5. まとめ

Slide 33

Slide 33 text

1. クラスタの増加への対応 • 複数のAPI URL、kubeconfig • コスト増 • EKSはクラスタだけで費用が発生
 • 0.20 USD/hour (2019.07現在)
 • 16k/month くらい
 
 • ワーカーノードのリソースにムダが出やすい 33

Slide 34

Slide 34 text

1. クラスタの増加への対応 • 複数のAPI URL、kubeconfig • コスト増 • EKSはクラスタだけで費用が発生
 • 0.20 USD/hour (2019.07現在)
 • 16k/month くらい
 
 • ワーカーノードのリソースにムダが出やすい 34 RancherのURLさえわかっていれば

Slide 35

Slide 35 text

1. クラスタの増加への対応 • 複数のAPI URL、kubeconfig • コスト増 • EKSはクラスタだけで費用が発生
 • 0.20 USD/hour (2019.07現在)
 • 16k/month くらい
 
 • ワーカーノードのリソースにムダが出やすい 35 しゃあない

Slide 36

Slide 36 text

マルチクラスタの課題への対応 • 複数のAPI URL、kubeconfig • コスト増 • EKSはクラスタだけで費用が発生
 • 0.20 USD/hour (2019.07現在)
 • 16k/month くらい
 
 • ワーカーノードのリソースにムダが出やすい 36 Spotinst社のOceanを利用

Slide 37

Slide 37 text

Ocean Spotinst社が提供する、EKSのワーカーノードにスポットインスタンスを活用し、運用負荷や利用料金を削減し てくれるサービス。 コンテナの負荷状況に応じてスケール、ノードサイズの決定等を自動で行ってくれる。 37 Jobリクエスト インスタンス起動 ノード登録

Slide 38

Slide 38 text

2. 利用ユーザの増加への対応 • 運用負荷の増加 • 利用方法の説明 • クラスタ追加時のアクセス方法の通知 • kubeconfigの配布 • アクセス権 • ユーザごとに権限を変えたい • Namespaceレベル • リソースレベル • RW/RO → RBAC 38

Slide 39

Slide 39 text

2. 利用ユーザの増加への対応 • 運用負荷の増加 • 利用方法の説明 • クラスタ追加時のアクセス方法の通知 • kubeconfigの配布 • アクセス権 • ユーザごとに権限を変えたい • Namespaceレベル • リソースレベル • RW/RO → RBAC 39 外部認証に対応 クラスタごと、プロジェクトごと にユーザ権限が設定可能

Slide 40

Slide 40 text

2. 利用ユーザの増加への対応 • 運用負荷の増加 • 利用方法の説明 • クラスタ追加時のアクセス方法の通知 • kubeconfigの配布 • アクセス権 • ユーザごとに権限を変えたい • Namespaceレベル • リソースレベル • RW/RO → RBAC 40 ユーザに権限を付与すれば、 アクセス可能なクラスタ /プロ ジェクトのみ表示

Slide 41

Slide 41 text

3. 利用シーンの増加への対応 • 環境の違い • 普段はセットアップされたローカルPC or Macからkubectlを実行 • 一時的にローカル環境使えない場合とか • ユーザーごとのKubernetes理解度、利用頻度の違い • kubectl? なにそれ? • このコンテナ実行したいだけなんだけど • このyaml実行したいだけなんだけど 41

Slide 42

Slide 42 text

3. 利用シーンの増加への対応 • 環境の違い • 普段はセットアップされたローカルPC or Macからkubectlを実行 • 一時的にローカル環境使えない場合とか • ユーザーごとのKubernetes理解度、利用頻度の違い • kubectl? なにそれ? • このコンテナ実行したいだけなんだけど • このyaml実行したいだけなんだけど 42 ブラウザ上でのkubectl yamlファイルのコピペ GUIでのコンテナ、パラメータ指定 複数のデプロイ方法に対応

Slide 43

Slide 43 text

現在の構成 43

Slide 44

Slide 44 text

Agenda 1. AlpacaJapanの市場予測 2. AlpacaJapanのインフラ 3. Kubernetes運用の課題 4. Rancherでの課題解決 5. まとめ

Slide 45

Slide 45 text

まとめ • マネージドKubernetesを使っていても出てくる課題 • クラスタの増加 • 利用ユーザの増加 • 利用シーンの増加 • Rancherと組み合わせることでこれらの課題に対応できた 45

Slide 46

Slide 46 text

46 We're hiring!! https://www.wantedly.com/companies/alpacadb ● Web Engineer ● Infrastructure Engineer ● ML/AI Engineer ● Fintech Engineer

Slide 47

Slide 47 text

Thank you