Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

もう2度と止まらせない

1,513 views

Published on

IDCフロンティアにおけるオートスケール

Published in: Internet
  • Be the first to comment

  • Be the first to like this

もう2度と止まらせない

  1. 1. もう2度と止まらせない 2017/02/11 SpeeeKaigi #2 shogo.hashimoto
  2. 2. ・橋本将吾 ・サーバエンジニア ・VICOLLEというサービスをローンチしました! https://www.vicolle.jp ・Java好きです(Androidアプリ趣味でつくったり) ・最近はジムいくのが趣味です 自己紹介
  3. 3. そうだスケールしよう! VICOLLEを紹介したらトラフィックが急増した! さぁサーバを増やすんだ〜〜 DEMO
  4. 4. インフラは大変 ・ユーザは増え続ける ・データも増え続ける ・サーバは死ぬ でもユーザは待ってくれない
  5. 5. サーバは止まりやすい ・トラフィックがサーバの処理量を超える ・デプロイ時にWebサーバ、アプリケーションサーバが停止する ・メンテナンスのテスト時にバランサーから外す ・OSアップデート ・インフラ操作のミス ・など
  6. 6. 某ブログで「無駄なインフラコストはバグ」と言われるくらい 札束で解決は最終手段 クラウドならスケールとシュリンクはやろう
  7. 7. 前プロジェクトのメディアでは・・・ スケールアウトに関してはサーバを作成しておいて、 トリガーによってサーバを起動する。起動するだけだから速い! Google Analytics CloudStack 監視サーバ Ruby App1 App2 App3 App4 稼働中 起動中 停止中 Analytics-APIによりリアルタイムの セッション数を定期的に取得
  8. 8. これでもいいのだけど・・・ 停止中サーバのアップデートするのが面倒・・・ バランサーから外す => 起動 => アップデート(設定変更) => 停止・・・・ その他にも・・・><
  9. 9. 改善
  10. 10. やりたいこと ・アプリケーションやミドルウェア設定なら起動時に最新の状態にする (テンプレートの再作成はOSアップデートくらい) ・手動、自動が可能 ・AWSのAutoScalingっぽいことがやりたい ・ABテストやメンテナンステストなど環境切り分けもできる (ブルーグリーンデプロイメント)
  11. 11. スケールのアーキテクチャ 管理ツール テンプレート バランサー CloudStack APP APP-AUTO サーバ作成タスク サーバ負荷チェック起動タスク
  12. 12. サーバ作成タスク 【タスクの引数】 サーバグループ名 ・API ・WEB インスタンスのタイプ ・1core 2core・・・・ ・1GB 2GB・・・・
  13. 13. サーバ作成タスク インスタンスの作成 戻り値:新しいインスタンスのID 新しいインスタンスのIPアドレス を取得し、バランサーに追加
  14. 14. サーバ起動タスク(CentOS7) ・サーバ起動時に自動でJenkinsの起動タスクを叩く
  15. 15. サーバ起動タスク(CentOS7) Jenkinsからサーバ初期タスクを実行する アプリケーションのコピー ・Rails ・Puma ・bundle install ミドルウェアの設定 ・nginx設定更新、起動 などなど
  16. 16. スケールアウトできたか見てみる さてはて・・・
  17. 17. スケールインさせてますか? スケールアウトだけやって満足してはいけないと思う。 スケールイン(シュリンク)をしないのはバグと一緒だと思います。 事業コストが余計にかかるのはエンジニアの責任でしょう!
  18. 18. 今後の構想 自作なのでやりたい放題できる メトリックスをより良い精度でやりたい スケールアウトとスケールアップのハイブリットで! 現状キックから3-5分 => 3分以内 => 1分以内にしたい ブルーグリーンデプロイ、ABテスト GUI操作(Jujuのようなもの)

×