Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RancherDay2019-AlpacaJapan.pdf

sasaki
July 24, 2019

 RancherDay2019-AlpacaJapan.pdf

sasaki

July 24, 2019
Tweet

More Decks by sasaki

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. Alpaca Japan
    3
    3 3
    金融 x 機械学習 がテーマのスタートアップ
    主な提供サービス/プロダクト
    ❖ 銀行・証券会社・信託銀行を中心に 金融機関向けのトレーディング
    AI技術で多くの実績を保持
    「相場予測モデルの構築」
    のプロジェクトで
    協業
    「AlpacaSearch for kabu.com」

    相互に類似している銘柄のチャートパターン
    を表示

    「AI外貨予測」「AI外貨積立」

    指定した外貨の為替の変動を予測し、予測
    した日に一定金額を積立
    可能

    主要マーケットの短期予測
    をリアルタイムで表示


    弊社の大規模データ処理
    の技術やディープラーニン
    グ技術を活用したアプリ
    ケーション


    View Slide

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

    View Slide

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

    View Slide

  6. 日経6/5
    6

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. 下落
    10

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  14. 関連性の把握
    14
    Tick

    View Slide

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

    View Slide

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


    マーケットの上げ・下げをTickの発生パ
    ターンから予測するモデル

    View Slide

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

    View Slide

  18. 18

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  28. マルチクラスタのデメリット
    • 複数のAPI URL、kubeconfig
    • コスト増
    • EKSはクラスタだけで費用が発生

    • 0.20 USD/hour (2019.07現在)

    • 16k/month くらい


    • ワーカーノードのリソースにムダが出やすい
    28

    View Slide

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

    View Slide

  30. 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

    View Slide

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

    View Slide

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

    View Slide

  33. 1. クラスタの増加への対応
    • 複数のAPI URL、kubeconfig
    • コスト増
    • EKSはクラスタだけで費用が発生

    • 0.20 USD/hour (2019.07現在)

    • 16k/month くらい


    • ワーカーノードのリソースにムダが出やすい
    33

    View Slide

  34. 1. クラスタの増加への対応
    • 複数のAPI URL、kubeconfig
    • コスト増
    • EKSはクラスタだけで費用が発生

    • 0.20 USD/hour (2019.07現在)

    • 16k/month くらい


    • ワーカーノードのリソースにムダが出やすい
    34
    RancherのURLさえわかっていれば

    View Slide

  35. 1. クラスタの増加への対応
    • 複数のAPI URL、kubeconfig
    • コスト増
    • EKSはクラスタだけで費用が発生

    • 0.20 USD/hour (2019.07現在)

    • 16k/month くらい


    • ワーカーノードのリソースにムダが出やすい
    35
    しゃあない

    View Slide

  36. マルチクラスタの課題への対応
    • 複数のAPI URL、kubeconfig
    • コスト増
    • EKSはクラスタだけで費用が発生

    • 0.20 USD/hour (2019.07現在)

    • 16k/month くらい


    • ワーカーノードのリソースにムダが出やすい
    36
    Spotinst社のOceanを利用

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  43. 現在の構成
    43

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  47. Thank you

    View Slide