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