yahoo! japan meetup #8 (インフラ技術カンファレンス)lt②

35
Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved. OpenStack関連セッション 1 OpenStack Summit Barcelona 2016 参加報告 神尾皓 立見祐介 Ansibleによるおっちょこちょいの運用自動化 高橋拓也 4年間、OpenStackをデプロイし てみた(ry 北田駿也 OpenStack on Kubernetes 木下裕太

Upload: yahoo

Post on 07-Feb-2017

381 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

OpenStack関連セッション

1

OpenStack Summit Barcelona 2016 参加報告

神尾皓 立見祐介

Ansibleによるおっちょこちょいの運用自動化

高橋拓也

4年間、OpenStackをデプロイしてみた(ry

北田駿也

OpenStack on Kubernetes

木下裕太

Page 2: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

2017年1月30日

2

クラウドオペレーション 北田 駿也(27)

4年間、OpenStackのデプロイをしてみたので、

今までのデプロイ方法の移り変わりや、

苦労、教訓、など軽く話す(LT)。

Page 3: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

目次

3

• 基礎知識編: OpenStackとは?

• OpenStack 1年目: 手動デプロイ、途中からコンピュートノードのChef化

• OpenStack 2年目: コントローラ群のChef化、だがしかし、、

• OpenStack 3年目: コントローラ群のAnsible化、だがしかし、、

• OpenStack 4年目: コントローラ群のChef化再び

• OpenStack 今年: Kubernetes化

Page 4: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

基礎知識編: OpenStack

とは?

Page 5: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

OpenStackとは?

= OSS= IaaSを提供するマイクロサービス群= ヤフーのプライベートクラウド

Page 6: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

1クラスタ

コンピュートノード群 サーバ50 ~ 500台コントローラ群 サーバ6~50台

コンピュートノード

OpenStackをデプロイするということ

66

認証サービス

ディスクイメージサービス

ネットワークサービス コンピュートサービス

ダッシュボード

ボリュームサービス

ダッシュボード

認証サービス

ディスクイメージサービス

ネットワークサービス コンピュートサービス

ボリュームサービス

データベースデータベース

メッセージングサービスメッセージングサービス

コンピュートノードコンピュートノードコンピュートノードコンピュートノードコンピュートノード

Virtual MachineVirtual Machine

Virtual MachineVirtual Machine

Virtual Machine

etcetc

Page 7: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

1クラスタ

コンピュートノード群 サーバ50 ~ 500台コントローラ群 サーバ6~50台

コンピュートノード

OpenStackをデプロイするということ

77

認証サービス

ディスクイメージサービス

ネットワークサービス コンピュートサービス

ダッシュボード

ボリュームサービス

ダッシュボード

認証サービス

ディスクイメージサービス

ネットワークサービス コンピュートサービス

ボリュームサービス

データベースデータベース

メッセージングサービスメッセージングサービス

コンピュートノードコンピュートノードコンピュートノードコンピュートノードコンピュートノード

Virtual MachineVirtual Machine

Virtual MachineVirtual Machine

Virtual Machine

etcetc

これら全てのサーバに、パッケージインストール、設定ファイル配置、デーモン起動、カーネル設定、監視設定などを行う

Page 8: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

利用しているデプロイツール

• 手• なんでもできる万能ツール• 心を込めて各サーバをセットアップする事ができる

• Chef• 各サーバの構成情報はChefサーバに集約される• 各サーバはその構成情報に従ってセットアップされる

• Ansible• 各サーバの構成情報は手元ファイルで管理される• SSHごしに各サーバのセットアップやオペレートができる

8

Page 9: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

OpenStack 1年目

手動デプロイ、途中からコンピュートノードのChef化

Page 10: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

OpenStackの手動デプロイ

コントローラ群: 10台程度

ー>熟練の人なら余裕

コンピュートノード群: 数百台

ー>みんなでがんばって構築。。。10

Page 11: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

OpenStackの手動デプロイ

コントローラ群: 10台程度

ー>熟練の人なら余裕

コンピュートノード群: 数百台

ー>みんなでがんばって構築。。。11

Chef (チラッ

Page 12: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

コンピュートノードのChef化

12

ChefServer

Keystone

Glance

Cinder

Neutron

Nova

Horizon

ChefWorkstation

ComputeCompute

ComputeCompute

ComputeCompute

Compute

その他クラスタ

その他クラスタ

CookbookやRole設定をアップロード

Chefでセットアップ

オペレータ

手動でセットアップ

Page 13: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

1年目の教訓

• 手動デプロイ• 再現性がなく、作成者によって品質がマチマチ

• 心がこもるが、さばける台数に限界がある

• Chefでデプロイ• 再現性があり、誰でもデプロイ可能• 大量のサーバを簡単にデプロイ

13

Page 14: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

OpenStack 2年目

コントローラ群のChef化、だがしかし、、

Page 15: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

コントローラ群のChef化

全コンポーネントのパッケージ、設定ファイルをChefで配置できるようになった!

15

Page 16: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

コントローラ群のChef化

16

ChefServer

Keystone

Glance

Cinder

Neutron

Nova

Horizon

ChefWorkstation

ComputeCompute

ComputeCompute

ComputeCompute

Compute

その他クラスタ

その他クラスタ

CookbookやRole設定をアップロード

Chefでセットアップ

オペレータ

コントローラ群のChef化

Page 17: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

だがしかし、、

1. Chefでデプロイしたサービスが動かない1. コンポーネントが多く、設定すべき変数やロール

も多く複雑化していた2. 複雑性が手動とたいして変わらない

2. 手動で動くところまで修正するはめに

3. 最終的に手動デプロイに落ち着いた。。

17

Page 18: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

2年目の教訓

• マイクロサービス群をChefでデプロイするのは大変• デプロイ対象の種類が多く、設定すべきRole、設定値も増えデプロイ方法が複雑化してしまった。

• 複雑化したデプロイフローは流行らない• デプロイフローも定義できると楽そう

18

Page 19: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

2年目の教訓

• マイクロサービス群をChefでデプロイするのは大変• デプロイ対象の種類が多く、設定すべきRole、設定値も増えデプロイ方法が複雑化してしまった。

• 複雑化したデプロイフローは流行らない• デプロイフローも定義できると楽そう

19

Ansible (チラッ

Page 20: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

OpenStack 3年目

コントローラ群のAnsible化、だがしかし、、

Page 21: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

コントローラ群のAnsible化

21

ChefServer

Keystone

Glance

Cinder

Neutron

Nova

Horizon

ChefWorkstation

ComputeCompute

ComputeCompute

ComputeCompute

Compute

その他クラスタ

その他クラスタ

CookbookやRole設定をアップロード

Chefでセットアップ

オペレータ

コントローラ群のAnsible化

Page 22: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

だがしかし、、、

1. Ansibleで設定を巻いた後に、手動で変更を加えられることが何度かあった。。次のAnsible実行時まで気づず、そのまま上書きされることも。。

2. Ansibleの実行忘れで、設定の反映漏れが何度か。。

22

Page 23: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

3年目の教訓

• Ansibleでデプロイフローを制御• マイクロサービス群でもデプロイが簡単

• しかし、Ansibleを実行するのは人なので、• 実行し忘れによる変更漏れや、• 古い変更のデプロイなど、が発生

• デプロイはすべて自動化すべき

23

Page 24: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

3年目の教訓

• Ansibleでデプロイフローを制御• マイクロサービス群でもデプロイが簡単

• しかし、Ansibleを実行するのは人なので、• 実行し忘れによる変更漏れや、• 古い変更のデプロイなど、が発生

• デプロイはすべて自動化すべき

24

Chef (チラッ

Page 25: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

OpenStack 4年目

コントローラ群のChef化再び

Page 26: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

すべてをChef化し、定期デプロイへ

2626

ChefServer

Keystone

Glance

Cinder

Neutron

Nova

Horizon

ComputeCompute

ComputeCompute

ComputeCompute

Compute

その他クラスタ

その他クラスタ

GithubにPushされたCookbookやRoleを自動アップロード

初回デプロイ後は、定期的にデプロイされる

オペレータ

Github

Jenkins

ステージング

定期的なテスト

Page 27: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

Chef Before(2年前) After(現在)

Role, CookBookの設計思想が変わった!

Before• 各マイクロサービスに対してそれぞれのRoleを定義

• 変数もそれぞれのRoleで細かく定義

• > 設定が複雑化

After• 1クラスタに対して1Roleを定義 (AnsibleのInventryFileに近い)

• 変数はなるべく自動生成

• > 設定が簡略化

27

Page 28: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

4年目の教訓

• すべてをChef化し、定期デプロイ• 初回デプロイは少し大変• その後の変更はGithubにPushしたら、自動でデプロイされるので楽

28

Page 29: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

まとめ

Page 30: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

デプロイツール・まとめ

• 手• なんでもできる万能ツール(人によってまちまち)• デプロイできる台数に限界がある

• Chef• 初回デプロイは少し大変• 初回デプロイ後の変更は自動化できる

• Ansible• デプロイフローを組み立てられる• 実行し忘れや、実行間違いが怖い

30

Page 31: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

4年間の教訓・まとめ

31

デプロイを自動化すると楽!

Page 32: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

4年間の教訓・まとめ

32

デプロイを自動化すると楽!

現在のデプロイ規模: 65000VM on 40クラスタ

= 1900 コントローラノード

+ 5200 コンピュートノード

を20人で運用

Page 33: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

OpenStack 今年

Kubernetes化 つづく

Page 34: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

ご清聴ありがとうございました!

34

• 基礎知識編: OpenStackとは?

• OpenStack 1年目: 手動デプロイ、途中からコンピュートノードのChef化

• OpenStack 2年目: コントローラ群のChef化、だがしかし、、

• OpenStack 3年目: コントローラ群のAnsible化、だがしかし、、

• OpenStack 4年目: コントローラ群のChef化再び

• OpenStack 今年: Kubernetes化

Page 35: Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT②

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

ありがとうございました!