FJCS for OSS OpenStackパブリッククラウドの品質確保の取り組み

FJCS for OSS OpenStackパブリッククラウドの品質確保の取り組み

日本OpenStackユーザー会 第43回勉強会(https://openstack-jp.connpass.com/event/144972/)での発表資料です

D5a83165b9644ddf8718fc32c577e74e?s=128

Noboru Iwamatsu

September 09, 2019
Tweet

Transcript

  1. FUJITSU Cloud Service for OSS: OpenStack パブリッククラウドの品質確保の取り組み 2019/9/9 日本OpenStackユーザ会第43回勉強会 0

    富士通株式会社 クラウドサービス事業本部)ファウンデーションサービス事業部)技術戦略部 岩松 昇、松木 辰真 Copyright 2019 FUJITSU LIMITED
  2. 自己紹介 ◼ 岩松 昇 (いわまつ のぼる) n_iwamatsu@jp.fujitsu.com ◼ FUJITSU Cloud

    Service for OSSのOpenStack基盤の設計・開発責任者 ◼ 富士通研究所入社、OS・仮想化・クラウドの研究に従事した後、2016年より現所属で クラウド基盤開発の指揮を執る。 ◼ オープンソースとは開発者として10数年の関わり • OpenStack, Xen, Linux, QEMU, cobbler, MidoNetなどにコントリビュート ◼ 最近の発表 • OpenStack Days Tokyo 2019 「FUJITSU Cloud Service for OSSにおけるOpenStack ユーザーストーリーズ」 • OpenStack Days Tokyo 2018 「FUJITSU Cloud Service for OSSを支えるコンテナとCI/CD技術」 • Ansible Night Tokyo 2017.12 「OpenStackをAnsibleで操る!」 • OpenStack Summit Sydney 2018 「Lift-and-Shift Enterprise Workloads to K5 Bare Metal Service」 Copyright 2019 FUJITSU LIMITED 1
  3. アウトライン ◼ FUJITSU Cloud Service for OSS とは ◼ OpenStack準拠のパブリッククラウド!

    ◼ 品質確保のための基盤設計 ◼ 「すぐに直せる」ための基盤設計 ◼ FJCS for OSSにおけるOpenStack CI/CD ◼ 全ログのリアルタイム分析 ◼ OpenStack 機能・性能テストに関する取り組み ◼ FJCS for OSSにおけるTempest活用 ◼ Rallyによる性能測定とスケーラビリティ試験 Copyright 2019 FUJITSU LIMITED 2
  4. FUJITSU Cloud Service for OSS とは ◼ FJCS for OSSはOpenStack準拠のパブリッククラウド!

    Copyright 2019 FUJITSU LIMITED 3
  5. 富士通のクラウドサービスラインアップ Copyright 2019 FUJITSU LIMITED OSSベースのクラウドサービス FUJITSU Cloud Service for

    OSS VMware社の製品群ベースのクラウドサービス FUJITSU Cloud Service for VMware •ベアメタルサーバ+ESXi •VCF(VMware Cloud Foundation) •LCP(Local Cloud Platform) •NIFCLOUD Microsoft社のAzureを活用したクラウドサービス FUJITSU Cloud Service for Microsoft Azure Amazon社のAWSを活用したクラウドサービス FUJITSU Cloud Service for AWS :自社クラウド (当社がクラウド基盤を構築/運用) :パートナークラウド (パートナークラウドに当社サービスを付加して再販) 4
  6. 自社クラウドは標準技術により提供 FUJITSU Cloud Service for OSS KVM OpenStack ◆オープンソースによるクラウド FUJITSU

    Cloud Service for VMware VMware Cloud Foundation ESXi ◆VMwareをベースとするクラウド オープンソースをベースとする エンタープライズITソリューション 業界標準の仮想化技術により 既存資産のクラウド移行を支援 ベンダーロックインのない標準技術でクラウドを継続的に提供 Copyright 2019 FUJITSU LIMITED 5
  7. FUJITSU Cloud Service for OSS とは ◼ 2015年9月提供開始 ◼ 旧称:

    FUJITSU Cloud Service K5 ◼ OpenStackベース(+独自拡張)のIaaS ◼ 2018年6月に基盤刷新&名称変更 ◼ OpenStackを最新化、そのまま利用 「OpenStack準拠」のパブリッククラウド Copyright 2019 FUJITSU LIMITED http://jp.fujitsu.com/solutions/cloud/k5/ オープンソースをベースとする国産クラウド 6
  8. FUJITSU Cloud Service for OSS: オープンソースとベンダー協業により自社クラウドを提供 ◼ RedHat社との協業によりOpenStack基盤を刷新 ◼ RHOSPによりサービスを提供、

    2019年10月にRHOSP13(Queens)へ更新予定 ◼ RHEL AUS* 提供によりシステムの長期運用を サポート *Advanced Mission Critical Update Support ビジネスパートナーの最新・最高技術を高度にインテグレーション Copyright 2019 FUJITSU LIMITED 7
  9. FUJITSU Cloud Service for OSS: OpenStack準拠のサービス群 Copyright 2019 FUJITSU LIMITED

    仮想マシンとベアメタル 仮想ネットワーク • FWaaS • OctaviaによるLBaaS 認証・証明書管理 オブジェクトストレージ • SwiftとS3互換、DR対応 オーケストレーション • FWaaS/LBaaS対応 https://www.openstack.org/project-mascots/ 仮想マシン・ベアメタル • Ironicによるベアメタル • GPGPUインスタンス対応 ブロックストレージ ・イメージ • All Flash Storage • データ持ち込みサービス 8
  10. FUJITSU Cloud Service for OSS 品質確保のための基盤設計 ◼ すぐ「直せる」アーキテクチャーへの変更 ◼ 基盤全体のSoftware-Defined化

    ◼ コンテナ化と自動化 ◼ 全ログのリアルタイム分析 Copyright 2019 FUJITSU LIMITED 9
  11. FUJITSU Cloud Service for OSS: クラウド基盤の設計方針 Copyright 2019 FUJITSU LIMITED

    ◼ ブラックボックスの集合体の安定運用が課題 ◼ クラウド基盤は要件・問題を事前把握できない クラウド基盤 Open Stack Multi-vendor Hardware Hypervisor お客様システム VM … VM お客様システム VM VM お客様のワークロードを事前定義できない ブラックボックス部品、バグ・未成熟箇所あり 増設やバージョンアップで特性が動的に変わる ◼ 問題を即時検出し「すぐ直せる」ことが目標 ◼ インフラ全体をすぐに設定変更できる→ データセンターインフラのSoftware-Defined化 ◼ デリバリーコスト・時間を短縮する → サービスをコンテナ化し、自動配備を実現 ◼ 即座に問題を見つけ出しトラブルシュートできる → 全ログをリアルタイム分析 10
  12. FUJITSU Cloud Service for OSS: データセンターインフラのSoftware-Defined化 ◼データセンター内の論理区画作成をソフトウェアで実現 ◼ IP Fabricにより、サーバー/ストレージラック群のL2/L3ネットワークを論理分割

    ◼ 論理分割されたネットワークにサーバー/ストレージを自動でプロビジョニング Copyright 2019 FUJITSU LIMITED … … Pod#0 (C-Plane) Pod#1 (Compute) Pod#2 (Compute) Pod#31 (Object) Scalable and Flexible 11
  13. FUJITSU Cloud Service for OSS: サービスのコンテナ化と自動配備 ◼ クラウド基盤全体をDockerコンテナ化し、Ansibleで管理 ◼ 管理サービス群をOpenStack+Dockerで構築、Ansibleで運用保守を統一

    ◼ 年間250回を超えるOpenStackのアップデートを実現! Copyright 2019 FUJITSU LIMITED … … Pod#0 (C-Plane) Pod#1 (Compute) Pod#2 (Compute) Pod#31 (Object) Scalable and Flexible 管理サービス用OpenStack お客様提供OpenStack 管理サービス コンテナ 管理サービス コンテナ お客様システム DB AP Web お客様システム KVS AP LB AP AP … 12
  14. FUJITSU Cloud Service for OSS: サービスのコンテナ化と自動配備: Kollaの採用 Copyright 2019 FUJITSU

    LIMITED ◼FUJITSU Cloud for OSSは、OpenStackの配備にKollaを採用 ◼ Kollaとは Docker と Ansible によりOpenStackを配備するツール ◼Kollaをカスタマイズし、RHOSPの柔軟な配備を実現 ◼ RHOSPの標準配備範囲を超えるコントローラー配備や大規模クラスタ化を実現 ◼ 配備やコンテナ更新だけでなく、設定変更やローリングアップデートなどにも適用 13
  15. FUJITSU Cloud Service for OSS: Kolla – Kolla と Kolla-Ansible

    ◼ Kolla ➔ OpenStack用 Dockerfile(詳細にカスタマイズ可能) が集まったもの ◼ Kolla-Ansible ➔ OpenStack用 Ansible Playbook/Role が集まったもの ◼ Kollaがつくったコンテナイメージ を Kolla-Ansibleで配備・設定する Copyright 2019 FUJITSU LIMITED Kolla Kolla-Ansible 14
  16. FUJITSU Cloud Service for OSS: Kolla/Kolla-AnsibleによるOpenStack構築 Copyright 2019 FUJITSU LIMITED

    配備対象ホスト Dockerコンテナ App Conf Log Conf dir Log dir bind mount Jenkins Docker Ansible Ansible Docker Registry Image Image Image イメージ作成 OpenStack 設定ファイル更新 Image Pull/Run指示 ※Jenkins等のCI/CD支援ツールと 組み合わせて使う 15
  17. FUJITSU Cloud Service for OSS: Kolla/Kolla-AnsibleによるOpenStack構築 Copyright 2019 FUJITSU LIMITED

    Jenkins Docker Ansible Ansible Docker Registry Image Image Image イメージ作成 OpenStack設定 Docker操作指示 イメージPull 16
  18. FUJITSU Cloud Service for OSS: Kolla/Kolla-Ansibleによるデリバリ ◼ 開発環境で試験済みのKollaを商用環境と同期しデプロイ ◼ Kolla-ansible,

    vars files, Jenkins jobをGithubで同期 ◼ Docker image はVPN経由で Docker push Copyright 2019 FUJITSU LIMITED Jenkins Docker Ansible Ansible Docker Registry Image Image Image Jenkins Docker Ansible Ansible Docker Registry Image Image Image 商用環境 開発環境 … 17
  19. FUJITSU Cloud Service for OSS: 全ログのリアルタイム分析: 基盤ログの集約と解析 ◼ クラウド基盤を構成する100種類以上、数 100コンテナのログをElasticsearchに集約

    ◼ Elasticsearchは、Elastic社が開発している オープンソースの全文検索エンジン ◼ 1日400GBのログを常時分析し1年保存 ◼ OpenStackのモジュール間の複雑な 呼び出しをリアルタイムでインデックス化 ◼ 数10のモジュールが処理毎に異なる呼び出し、 1API呼び出しで数100行のログ Copyright 2019 FUJITSU LIMITED Identity API Queue Data base Conductor OpenStack log log log log log log Elasticsearch Request-id User-id Instance-id Scheduler Compute Users 18
  20. FUJITSU Cloud Service for OSS: 全ログのリアルタイム分析: ログのインデックス化例 Copyright 2019 FUJITSU

    LIMITED ◼ OpenStackログの一例 2018-07-31 10:13:20.066 36 INFO nova.osapi_compute.wsgi.server [req- 34378379-fad7-4b54-acf5-16d53dd0e1a8 983461ab3c3a447bbd55d8c8a9fbeff0 43906b4ccf124514b26d8a551419ac9f – 31ac69683b234ddb80f753a2a1a0450a 31ac69683b234ddb80f753a2a1a0450a] 10.101.4.138,10.101.4.49 "POST /v2.1/43906b4ccf124514b26d8a551419ac9f/os-keypairs HTTP/1.1" status: 200 len: 2597 time: 0.3791530 Loglevel Domain ID Request URI データ構造化 19
  21. FUJITSU Cloud Service for OSS: 全ログのリアルタイム分析: ダッシュボード例 Copyright 2019 FUJITSU

    LIMITED ◼ API単位、利用者単位、ホスト単位での挙動をリアルタイムで可視化 インシデントに対して、数分で何が起きたかを特定 20
  22. OpenStack 機能・性能テスト に関する取り組み Copyright 2019 FUJITSU LIMITED 21

  23. 自己紹介 ◼松木 辰真(まつき たつま)matsuki.tatsuma@fujitsu.com ◼ クラウドサービス事業本部)ファウンデーションサービス事業部)技術戦略部 ◼ OpenStack歴5年(icehouse~) ◼ 2016年~

    FUJITSU Cloud Service for OSSの構築・テスト・トラブルシュー ト等を担当 Copyright 2019 FUJITSU LIMITED 22
  24. 背景&アウトライン 1. Tempestで FJCS for OSS をテストする ◼ FJCS for

    OSSでのTempest利用と課題 → Tempest自体をdebug可に ◼ OpenStack RBACへのTempestの対応 → Patroleの活用 2. Rallyで FJCS for OSS の性能をテストする ◼ ユーザ数が増加した場合のAPIの応答性能を測定する ◼ Compute1000台~規模の環境を構築して性能をテストする Copyright 2019 FUJITSU LIMITED 23 ◼OpenStackをパブリッククラウドとして提供する! ◼どういう使われ方をするのか、どれくらい使われるのか分からない
  25. 1. Tempestで FJCS for OSS をテストする ① 課題① テスト結果のデバッグに非常に時間がかかる ②

    課題② テスト結果の管理 ③ 課題③ 独自RBACへのtempest対応 Copyright 2019 FUJITSU LIMITED 24
  26. Tempestとは ◼ TempestによるAPIテスト全自動化 ◼ https://github.com/openstack/tempest ◼ OpenStackコミュニティが提供する公式APIテストツール ◼ 既に構築されたOpenStackクラウド基盤に対して実行することで、APIテストを自動実行。 ◼

    OpenStackの主要機能に対応、プラグインでテスト項目を追加 Copyright 2019 FUJITSU LIMITED FJCS for OSS (OpenStack) Tempest API requests response 25
  27. FJCS for OSSでのTempest利用 ◼ OpenStack主要機能以外のテストコードはプラグインとして追加 ◼ 全43種のtempest pluginが存在 ◼ 実際に追加したプラグイン

    • heat-tempest-plugin, neutron-tempest-plugin, octavia-tempest-plugin, neutron-lbaas-tempest-plugin, cinder-tempest-plugin, keystone-tempest- plugin, barbican-tempest-plugin Copyright 2019 FUJITSU LIMITED APIテスト総数: 2,678 1回のテストの実行時間: 約50分 (並列数: 10) 1回のテストで発行するAPIリクエスト: 約28,000リクエスト 26
  28. 課題① Tempest自体のデバッグに時間がかかる ◼問題個所の切り分けが大変 ① Tempest設定の問題 ② Tempestコードの問題 ③ OpenStack設定の問題 ④

    OpenStackコードの問題 Copyright 2019 FUJITSU LIMITED OpenStack Tempest API requests response Config Config ① ② ④ ③ 7割 3割 27
  29. tempestの設定項目が多い ◼ 100以上の設定項目を埋めなければならない Copyright 2019 FUJITSU LIMITED … [compute-feature-enabled] live_migration

    = True resize = True vnc_console = True attach_encrypted_volume = False block_migration_for_live_migration = False snapshot = True scheduler_available_filters = ComputeFilter,AvailabilityZoneFilter,PciPassthroughFilter,AggregateIns tanceExtraSpecsFilter,RamFilter,DiskFilter,ComputeCapabilitiesFilter,I magePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinity Filter volume_backed_live_migration = True … tempest.conf 28
  30. tempestコード自体に問題ある場合もある ◼ 特に、Heatのテストはバグが多い ◼ メンテされていないので、tempest からは除外された。。 ◼ 特定の設定がtempestで考慮されていない ◼ 例えば、Ironicとの混在環境、Neutron

    LBaaS proxyなど Copyright 2019 FUJITSU LIMITED … ・ The Heat API tests have been removed from tempest, they were unmaintained. The future direction of api test for heat is their in-tree Gabbi tests … https://docs.openstack.org/releasenotes/tempest/v16.1.0.html 29
  31. なぜテストが失敗したのかが分かりにくい ◼ 失敗したテスト結果にはTracebackのみが出力される。 Copyright 2019 FUJITSU LIMITED "Traceback (most recent

    call last): File ""/usr/share/rally/.rally/verification/verifier- 133eb54b-bf50-438e-a253-523f0e5395aa/extensions/neutron- lbaas/neutron_lbaas/tests/tempest/v2/api/test_health_monitor_admin.py"", line 98, in test_create_health_monitor_for_another_tenant_id_field self.assertEqual(hm.get('tenant_id'), tenantid) File ""/usr/share/rally/.rally/verification/verifier-133eb54b-bf50-438e-a253- 523f0e5395aa/.venv/lib/python2.7/site-packages/testtools/testcase.py"", line 411, in assertEqual self.assertThat(observed, matcher, message) File ""/usr/share/rally/.rally/verification/verifier-133eb54b-bf50-438e-a253- 523f0e5395aa/.venv/lib/python2.7/site-packages/testtools/testcase.py"", line 498, in assertThat raise mismatch_errortesttools.matchers._impl.MismatchError: !=:reference = u'39f98f6a49f34ebfbef887130c2fc89a'actual = '6bcea418-ac41-4e53-bded-a30680080b5a'" どのAPIの実行で失敗したのか?API実行時のパラメータは何か? 30
  32. 失敗したテストのデバッグ ◼ Tempest & OpenStackのログをチェックしていく地道な作業 Copyright 2019 FUJITSU LIMITED OpenStack

    Tempest DEBUGログ テスト結果 DEBUGログ Check Check 再現性の確認 31
  33. 2019-08-27 02:17:29.160 171 INFO tempest.lib.common.rest_client [req-97d8a2ca-980b-4c43-a938-d99dceeaeb0e ] Request (AgentsAdminTestJSON:test_list_agents): 200

    GET https://openstack.test.local:8774/v2.1/e2499c5c7de74fc89aa50d3d3e606d17/os- agents 0.026s Tempestログの構造化 Copyright 2019 FUJITSU LIMITED ◼ Tempestログの一例 テスト名 データ構造化 リクエストID 32
  34. TempestログとOpenStackログを一元管理 ◼ リクエストID検索で素早く原因にたどり着く(こういう仕組みは必ず必要) Copyright 2019 FUJITSU LIMITED OpenStack Tempest DEBUGログ

    テスト結果 DEBUGログ Elasticsearch 検索 33 req-xxxx
  35. 課題② テスト結果の管理 ◼ tempestのテスト結果は標準出力に出力されるのみ! Copyright 2019 FUJITSU LIMITED … {5}

    tempest.api.compute.admin.test_flavors_access_negative.FlavorsAccessNegativeTestJSON.test_add_flavor_access_duplicate [0.724767s] ... ok {5} tempest.api.compute.admin.test_flavors_access_negative.FlavorsAccessNegativeTestJSON.test_flavor_access_list_with_public_flavor [0.215968s] ... ok {3} tempest.api.compute.admin.test_aggregates_negative.AggregatesAdminNegativeTestJSON.test_aggregate_add_host_as_user [0.338389s] ... ok {1} tempest.api.compute.admin.test_aggregates.AggregatesAdminTestJSON.test_aggregate_add_host_get_details [0.690649s] ... ok {3} tempest.api.compute.admin.test_aggregates_negative.AggregatesAdminNegativeTestJSON.test_aggregate_add_non_exist_host [0.186233s] ... ok {3} tempest.api.compute.admin.test_aggregates_negative.AggregatesAdminNegativeTestJSON.test_aggregate_create_aggregate_name_length_exceeds_25 5 [0.033513s] ... ok {3} tempest.api.compute.admin.test_aggregates_negative.AggregatesAdminNegativeTestJSON.test_aggregate_create_aggregate_name_length_less_than_ 1 [0.025815s] ... ok … テスト結果を管理(保管、集計、比較)できない! 34
  36. Rallyを利用してDBにテスト結果を格納 ◼ Rallyによるテスト実行(rally verify) ◼ テスト結果をDBで管理、レポートの出力(HTML, JSON) Copyright 2019 FUJITSU

    LIMITED https://github.com/openstack/rally 35
  37. Elasticsearchへ格納し、検索・比較を容易に! ◼ rally verify report (JSON出力)の結果を Elasticsearchへポスト Copyright 2019 FUJITSU

    LIMITED 過去のテスト結果と 比較できるように! 36
  38. FJCS for OSSのPre-set role機能 ◼ FJCS for OSS では、事前定義したロールをユーザに提供し、RBACを実現 Copyright

    2019 FUJITSU LIMITED https://doc.cloud.global.fujitsu.com/lib/iaas/jp/api-presetrole/v3/api-presetrole/index.html?jp-east-3 37
  39. OpenStack RBAC と Tempest Patrole plugin ◼ OpenStack RBAC(Role-Based Access

    Control)とは ◼ Keystone の Role 機能を使って、UserのAPIアクセス権を制御する機能。 ◼ OpenStackでは、APIに対応するaction名と許可するRoleを policy.yamlに記述する • APIとactionは1対1対応ではなく、ドキュメントが不十分 • 1 APIから複数APIを呼ぶ(例: novaのinstance作成など)ので、それらの整合も必要 ◼ Tempest Patrole plugin ◼ https://docs.openstack.org/patrole/latest/index.html • 通常のTempestはカスタムRoleには未対応だが、Patroleを使えばAPIがPolicy.yamlに則った 動きをしているかをチェックできる。 OpenStackはPolicyのカスタマイズには不十分だが、 for OSSではカスタマイズしまくり、Tempestで試験できるようにしてみた。 Copyright 2019 FUJITSU LIMITED 38
  40. PolicyファイルをカスタマイズしてRBACを実現 ◼ policy.yamlをカスタマイズしてOpenStackに適用 Copyright 2019 FUJITSU LIMITED OpenStack policy.yaml cpf_adminロール

    cpf_observerロール Server Create Server Create Success! Unauthorized! カスタマイズ 39
  41. "os_compute_api:servers:create": "rule:admin_or_owner“ "os_compute_api:servers:create:forced_host": "rule:admin_api" 課題③独自Policyにtempestでは対応できない ◼ Tempestは、デフォルトpolicyを暗に想定したコードになっている。 Copyright 2019 FUJITSU

    LIMITED カスタマイズ [auth] admin_username = admin tempest_roles = <カスタムロール> policy.yaml tempest.conf _member_相当ロールでないといけない 40
  42. Patroleを使ったRBACのテスト ◼ Patrole を使えばPolicy設定のテストができる Copyright 2019 FUJITSU LIMITED OpenStack Tempest

    + Patrole API requests response policy.json OpenStackが期待通りの 応答をするかをチェック 41
  43. Patroleを使ったRBACのテスト ◼ Patroleによるテストの仕組み ◼ Actual = Expected なら Success ◼

    Actual ≠ Expected なら Fail Copyright 2019 FUJITSU LIMITED … [Rules]: os_compute_api:os-pause-server:pause, [Expected]: Allowed, [Actual]: Allowed [Rules]: os_compute_api:servers:reboot, [Expected]: Allowed, [Actual]: Allowed [Rules]: os_compute_api:os-server-tags:show, [Expected]: Allowed, [Actual]: Allowed [Rules]: os_compute_api:os-server-tags:delete_all, [Expected]: Allowed, [Actual]: Allowed [Rules]: os_compute_api:os-hypervisors, [Expected]: Denied, [Actual]: Denied … patrole.log 42
  44. Patroleを使ったRBACテストの問題点 ◼ policyファイルを入力にすること ◼ 網羅性(Octavia, Barbican, Heatなどがない) Copyright 2019 FUJITSU

    LIMITED FJCS for OSS Tempest + Patrole API requests response policy.json policyの書き方が 間違っていると どうしようもない! すべてのAPIを テストできない 43
  45. 2. Rallyで FJCS for OSS の性能をテストする ① RallyでAPIの応答性能を測定する ② Compute1000台~規模の環境を構築して性能をテストする

    Copyright 2019 FUJITSU LIMITED 44
  46. ユーザ数、Compute数増加を想定したテストが必要 ◼ ユーザ数・ノード数は、サービス開始後に徐々に増加していく! Copyright 2019 FUJITSU LIMITED 45 Compute +

    増設! Controller ・・・ 増加! API ユーザ 性能テストを実施
  47. Rallyを使ってFJCS for OSSの性能をテストする ◼ Rallyはコントロールプレーン側の性能を測定するためのベンチマークツール ◼ APIの応答時間の評価 ◼ VM起動時間の評価 など

    Copyright 2019 FUJITSU LIMITED FJCS for OSS (OpenStack) Rally API requests ・ 並列度指定 ・ レート指定 ・ 回数指定 46
  48. OpenStack APIの性能測定結果例 ◼ RallyベンチマークによるKeystone(認証機能)の性能確認 Copyright 2019 FUJITSU LIMITED 0 0.2

    0.4 0.6 0.8 1 1.2 1.4 0 50 100 150 200 250 300 Response time(sec) Concurrency(ユーザ数) Keystone Authetication Average 95th 99th 47
  49. Containers Containers Compute 1000台~規模の環境を構築する ◼ Fake Compute Driver + Kolla-ansibleでComputeを大量起動

    Copyright 2019 FUJITSU LIMITED https://docs.openstack.org/kolla-ansible/latest/reference/compute/nova-fake-driver.html Controller Compute nova-compute Container nova-compute Container nova-compute Container nova-compute Container nova-compute Container nova-compute Container Containers ・・・ ・・・ ・・・ 48
  50. Fake Compute Driverの動作概要 ◼ Computeは実際には何も動作しないが、動作しているかのように振る舞う Copyright 2019 FUJITSU LIMITED Boot

    request Client ・ Authentication ・ Scheduling ・ Commitment Boot a VM Update VM status to running VM boot request Boot response Controller Compute Status check 49
  51. Fake Compute+Rally による性能測定 ◼Fake computeを利用し、仮想的に1000台~規模環境を構築 Copyright 2019 FUJITSU LIMITED Concurrency

    Average complete time (sec) 95th percentile of complete time (sec) 99th percentile of complete time (sec) Success rate 10 14.994 19.308 34.733 1 (N=100) 30 86.952 230.569 302.513 0.943 (N=300) 40 not complete not complete not complete 0 (N=400) 50 Scheduler multiple workers support https://review.opendev.org/#/c/159382/
  52. まとめ 1. Tempestで FJCS for OSS をテストする 1. tempest自体にバグや設定ミスがある場合が非常に多い 2.

    デバッグしやすくする仕組みが必須 3. RBACのテストは非常に手間になる 2. Rallyで FJCS for OSS の性能をテストする 1. Controllerの性能を計測して定量的に評価できる(RabbitMQ, Galera等) 2. Fake computeを使えば仮想的に大規模環境での性能をテストできる Copyright 2019 FUJITSU LIMITED 51
  53. 52 Copyright 2019 FUJITSU LIMITED