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

Post on 07-Feb-2017

381 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

OpenStack関連セッション

1

OpenStack Summit Barcelona 2016 参加報告

神尾皓 立見祐介

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

高橋拓也

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

北田駿也

OpenStack on Kubernetes

木下裕太

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

2017年1月30日

2

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

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

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

苦労、教訓、など軽く話す(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化

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.

1クラスタ

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

コンピュートノード

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

66

認証サービス

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

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

ダッシュボード

ボリュームサービス

ダッシュボード

認証サービス

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

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

ボリュームサービス

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

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

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

Virtual MachineVirtual Machine

Virtual MachineVirtual Machine

Virtual Machine

etcetc

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

1クラスタ

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

コンピュートノード

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

77

認証サービス

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

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

ダッシュボード

ボリュームサービス

ダッシュボード

認証サービス

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

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

ボリュームサービス

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

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

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

Virtual MachineVirtual Machine

Virtual MachineVirtual Machine

Virtual Machine

etcetc

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

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

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

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

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

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

8

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台程度

ー>熟練の人なら余裕

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

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

Chef (チラッ

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でセットアップ

オペレータ

手動でセットアップ

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化

16

ChefServer

Keystone

Glance

Cinder

Neutron

Nova

Horizon

ChefWorkstation

ComputeCompute

ComputeCompute

ComputeCompute

Compute

その他クラスタ

その他クラスタ

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

Chefでセットアップ

オペレータ

コントローラ群の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でデプロイするのは大変• デプロイ対象の種類が多く、設定すべきRole、設定値も増えデプロイ方法が複雑化してしまった。

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

19

Ansible (チラッ

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

OpenStack 3年目

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

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化

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を実行するのは人なので、• 実行し忘れによる変更漏れや、• 古い変更のデプロイなど、が発生

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

24

Chef (チラッ

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

OpenStack 4年目

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

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

ステージング

定期的なテスト

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

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

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

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

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

• > 設定が複雑化

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

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

• > 設定が簡略化

27

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• 初回デプロイは少し大変• 初回デプロイ後の変更は自動化できる

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

30

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

4年間の教訓・まとめ

31

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

Copyright © 2017 Yahoo Japan Corporation. All Rights Reserved.

4年間の教訓・まとめ

32

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

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

= 1900 コントローラノード

+ 5200 コンピュートノード

を20人で運用

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.

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

top related