>100 Views
January 30, 17
スライド概要
2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp
OpenStack関連セッション OpenStack Summit Barcelona 2016 参加報告 Ansibleによるおっちょこちょいの運用自動化 高橋拓也 神尾皓 立見祐介 4年間、OpenStackをデプロイし てみた(ry OpenStack on Kubernetes 木下裕太 北田駿也 1 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
4年間、OpenStackのデプロイをしてみたので、 今までのデプロイ方法の移り変わりや、 苦労、教訓、など軽く話す(LT)。 2017年1月30日 クラウドオペレーション 北田 駿也(27) 2 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
目次 3 • 基礎知識編: OpenStackとは? • • • OpenStack 1年目: 手動デプロイ、途中からコンピュートノードのChef化 OpenStack 2年目: コントローラ群のChef化、だがしかし、、 OpenStack 3年目: コントローラ群のAnsible化、だがしかし、、 • • OpenStack 4年目: コントローラ群のChef化再び OpenStack 今年: Kubernetes化 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
基礎知識編: OpenStack とは? Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
OpenStackとは? = OSS = IaaSを提供するマイクロサービス群 = ヤフーのプライベートクラウド Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
OpenStackをデプロイするということ 1クラスタ コントローラ群 サーバ6~50台 コンピュートノード群 サーバ50 ~ 500台 ダッシュボード ダッシュボード コンピュートノード コンピュートノード コンピュートノード コンピュートノード コンピュートノード コンピュートノード 認証サービス 認証サービス ディスクイメージサービス ディスクイメージサービス ボリュームサービス ボリュームサービス ネットワークサービス ネットワークサービス コンピュートサービス コンピュートサービス データベース データベース メッセージングサービス メッセージングサービス etc etc 6 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved. Virtual Machine Virtual Machine Virtual Machine Virtual Machine Virtual Machine
OpenStackをデプロイするということ 1クラスタ コントローラ群 サーバ6~50台 コンピュートノード群 サーバ50 ~ 500台 ダッシュボード ダッシュボード コンピュートノード コンピュートノード コンピュートノード コンピュートノード コンピュートノード コンピュートノード 認証サービス 認証サービス ディスクイメージサービス ディスクイメージサービス ボリュームサービス ボリュームサービス ネットワークサービス ネットワークサービス コンピュートサービス コンピュートサービス データベース データベース メッセージングサービス メッセージングサービス etc etc 7 Virtual Machine Virtual Machine Virtual Machine Virtual Machine Virtual Machine これら全てのサーバに、パッケージインス トール、設定ファイル配置、デーモン起動、 カーネル設定、監視設定などを行う Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
利用しているデプロイツール 8 • 手 • Chef • Ansible • • • • • • なんでもできる万能ツール 心を込めて各サーバをセットアップする事ができる 各サーバの構成情報はChefサーバに集約される 各サーバはその構成情報に従ってセットアップされる 各サーバの構成情報は手元ファイルで管理される SSHごしに各サーバのセットアップやオペレートができる Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
OpenStack 1年目 手動デプロイ、途中からコンピュートノードのChef化 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
OpenStackの手動デプロイ コントローラ群: 10台程度 ー>熟練の人なら余裕 コンピュートノード群: 数百台 ー>みんなでがんばって構築。。。 10 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
OpenStackの手動デプロイ コントローラ群: 10台程度 ー>熟練の人なら余裕 Chef コンピュートノード群: 数百台 ー>みんなでがんばって構築。。。 11 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved. (チラッ
コンピュートノードのChef化 CookbookやRole設定をアップロード ChefServer オペレータ ChefWorkstation Keystone 手動でセット アップ Glance Cinder Neutron Nova Horizon 12 その他クラスタ Compute Compute Compute Compute Compute Compute Compute Chefでセットアップ Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved. その他クラスタ
1年目の教訓 • 手動デプロイ • 再現性がなく、作成者によって品質がマチ マチ • 心がこもるが、さばける台数に限界がある • Chefでデプロイ • 再現性があり、誰でもデプロイ可能 • 大量のサーバを簡単にデプロイ 13 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
OpenStack 2年目 コントローラ群のChef化、だがしかし、、 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
コントローラ群のChef化 全コンポーネントのパッケージ、設定 ファイルをChefで配置できるように なった! 15 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
コントローラ群のChef化 CookbookやRole設定をアップロード ChefServer オペレータ ChefWorkstation コントローラ 群のChef化 Keystone Glance Cinder Neutron Nova Horizon 16 その他クラスタ Compute Compute Compute Compute Compute Compute Compute Chefでセットアップ Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved. その他クラスタ
だがしかし、、 1. Chefでデプロイしたサービスが動かない 1. コンポーネントが多く、設定すべき変数やロール も多く複雑化していた 2. 複雑性が手動とたいして変わらない 2. 手動で動くところまで修正するはめに 3. 最終的に手動デプロイに落ち着いた。。 17 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
2年目の教訓 • マイクロサービス群をChefでデプロイ するのは大変 • デプロイ対象の種類が多く、設定すべ きRole、設定値も増えデプロイ方法が 複雑化してしまった。 • 複雑化したデプロイフローは流行らない • デプロイフローも定義できると楽そう 18 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
2年目の教訓 • マイクロサービス群をChefでデプロイ するのは大変 • デプロイ対象の種類が多く、設定すべ Ansible (チラッ きRole、設定値も増えデプロイ方法が 複雑化してしまった。 • 複雑化したデプロイフローは流行らない • デプロイフローも定義できると楽そう 19 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
OpenStack 3年目 コントローラ群のAnsible化、だがしかし、、 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
コントローラ群のAnsible化 CookbookやRole設定をアップロード ChefServer オペレータ ChefWorkstation コントローラ群 のAnsible化 Keystone Glance Cinder Neutron Nova Horizon 21 その他クラスタ Compute Compute Compute Compute Compute Compute Compute Chefでセットアップ Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved. その他クラスタ
だがしかし、、、 1. Ansibleで設定を巻いた後に、手動で 変更を加えられることが何度かあっ た。。 次のAnsible実行時まで気づず、その まま上書きされることも。。 2. Ansibleの実行忘れで、設定の反映漏 れが何度か。。 22 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
3年目の教訓 • Ansibleでデプロイフローを制御 • マイクロサービス群でもデプロイが簡単 • しかし、Ansibleを実行するのは人なので、 • • 実行し忘れによる変更漏れや、 古い変更のデプロイなど、が発生 • デプロイはすべて自動化すべき 23 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
3年目の教訓 • Ansibleでデプロイフローを制御 • マイクロサービス群でもデプロイが簡単 • しかし、Ansibleを実行するのは人なので、 Chef • • 実行し忘れによる変更漏れや、 古い変更のデプロイなど、が発生 • デプロイはすべて自動化すべき 24 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved. (チラッ
OpenStack 4年目 コントローラ群のChef化再び Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
すべてをChef化し、定期デプロイへ GithubにPushされたCookbookやRoleを自動アップロード ChefServer Github オペレータ Jenkins その他クラスタ ステージング Keystone 定期的なテスト Glance Cinder Neutron Nova Horizon 26 Compute Compute Compute Compute Compute Compute Compute その他クラスタ 初回デプロイ後は、定期的にデプロイされる Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
Chef Before(2年前) After(現在) Role, CookBookの設計思想が変わった! Before • • • 各マイクロサービスに対してそれぞれのRoleを定義 変数もそれぞれのRoleで細かく定義 > 設定が複雑化 After • • • 27 1クラスタに対して1Roleを定義 (AnsibleのInventryFileに近い) 変数はなるべく自動生成 > 設定が簡略化 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
4年目の教訓 • すべてをChef化し、定期デプロイ • 初回デプロイは少し大変 • その後の変更はGithubにPushした ら、自動でデプロイされるので楽 28 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
まとめ Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
デプロイツール・まとめ • 手 • Chef • 30 • • • • なんでもできる万能ツール(人によってまちまち) デプロイできる台数に限界がある 初回デプロイは少し大変 初回デプロイ後の変更は自動化できる Ansible • • デプロイフローを組み立てられる 実行し忘れや、実行間違いが怖い Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
4年間の教訓・まとめ デプロイを自動化すると楽! 31 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
4年間の教訓・まとめ デプロイを自動化すると楽! 現在のデプロイ規模: 65000VM on 40クラスタ = 1900 コントローラノード + 5200 コンピュートノード を20人で運用 32 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
OpenStack 今年 Kubernetes化 つづく Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
ご清聴ありがとうございました! 34 • 基礎知識編: OpenStackとは? • • • OpenStack 1年目: 手動デプロイ、途中からコンピュートノードのChef化 OpenStack 2年目: コントローラ群のChef化、だがしかし、、 OpenStack 3年目: コントローラ群のAnsible化、だがしかし、、 • • OpenStack 4年目: コントローラ群のChef化再び OpenStack 今年: Kubernetes化 Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.
ありがとうございました! Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.