2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1...

60
KUSANAGI for CPI リリース記念セミナー 2017.04.17 KDDIウェブコミュニケーションズ 阿部正幸

Transcript of 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1...

Page 1: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

KUSANAGI for CPI リリース記念セミナー 2017.04.17

KDDIウェブコミュニケーションズ 阿部正幸

Page 2: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

阿部 正幸(あべ まさゆき) KDDIウェブコミュニケーションズ ● ACE01/SmartRelease プロジェクトマネージャー ● エバンジェリスト ● CPIスタッフブログ編集長 ● ANNAI 社外取締役 ● テックアカデミー講師

Page 3: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

Venture Since 1998

Web Service Hosting

Page 4: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)
Page 5: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)
Page 6: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)
Page 7: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

3,240 円 全国の書店 / Amazonで販売中

Page 8: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

Drupalとは

Page 9: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)
Page 10: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

Drupalとは、世界で使われているオープンソース CMS。主に政府系サイトや、企業サイトに

使われることが多いのが特徴。

Page 11: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

Drupal8について ● SQLビルダー Views ● 多言語化 ● RESTful API ● 強力なキャッシュ機能 ● 豊富なモジュールとAPI

Page 12: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

DrupalとWordPressの違い

Page 13: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

WordPress vs Drupal

引用: https://www.bigtunainteractive.com/wordpress-vs-drupal

Page 14: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

● テーママーケット WordPressには、魅力的なテーマが多いが、Drupalの場合テーマを 買うことはない。Starterテーマを使い、カスタム開発するのが基本 ● 構築時間 WordPressは最小限のコンテンツタイプを持ち一般的な ウェブサイトを構築する場合、非常に簡単に構築できます。 Drupalは、WordPress構築の2~3倍の工数がかかります。 ● アプリケーション開発 Drupalは、複雑なプロジェクトのための、より堅牢な機能を 備えています。企業レベルのセキュリティが必要な場合はDrupalの 選択が必要でしょう。 ● 多言語対応 多国籍、多言語対応サイトはDrupalで簡単に構築できます。

Page 15: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

Gartner’s 2016 Magic Quadrant for Web Content Management

Page 16: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

Drupal8について ● SQLビルダー Views ● 多言語化 ● RESTful API ● 強力なキャッシュ機能 ● 豊富なモジュールとAPI

Page 17: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

Drupal8について ● SQLビルダー Views ● 多言語化 ● RESTful API ● 強力なキャッシュ機能 ● 豊富なモジュールとAPI

Page 18: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

CMS

これまでのCMS

Page 19: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

IoT

iPhone App

Signage

Android App

a Company

Product B

Recruit Event

IR

Product A

Corporate

Campaing

Blog

増え続けるサイトとシステム

Page 20: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

Prodcut

CMS RESTサーバー

Event

Blog

Corporate

Application

Other System

担当者

これからのCMS

Page 21: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

(Back end) (Front end)

JSON JS HTML

CSS

JSONの読み込み

CMS

Page 22: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)
Page 23: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)
Page 24: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

REST API仕様書

Page 25: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

REST APIよりJSON取得

Page 26: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

JSONを画面表示

Fetch API

Page 27: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

Drupal8について ● SQLビルダー Views ● 多言語化 ● RESTful API(標準装備) ● 強力なキャッシュ機能 ● 豊富なモジュールとAPI

Page 28: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)
Page 29: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

CMSは インタラクティブ と マルチチャネルプラットフォーム の

ための API に急速に進化

Page 30: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

for に導入する

Page 31: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

on for

Page 32: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

サーバー構築

on for

Page 33: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

サーバー起動

プライム様 本当にありがとうございます!!

on for

Page 34: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)
Page 35: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)
Page 36: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)
Page 37: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

Σ(゚Д゚)ファッ!!

Page 38: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

ちなみに Drupal8 + AWS t2.nano

Page 39: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

0.064s

Page 40: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

ちなみに Drupal8 + AWS t2.nano

+

Page 41: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

0.154s

Page 42: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

Drupal8 インストール $ kusanagi provision --drupal8

/etc/hhvm/php.ini

; hhvm.enable_zend_compat = true

on for

Page 43: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

On for

ベンチマーク取得

Page 44: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

Devel node create で 50記事投稿

Page 45: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)
Page 46: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

$ ab -n 1000 -c 100 https://example.com/ Failed requests: 0 Total transferred: 70836000 bytes HTML transferred: 70341000 bytes Requests per second: 355.83 [#/sec] Time per request: 281.035 [ms] Time per request: 2.810 [ms] Transfer rate: 24614.66 [Kbytes/sec]

Apache Benchを取得

on for

Page 47: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

続いて

on

Page 48: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

on

サーバー環境 CentOS Linux release 7.3 PHP 7.0.17 MariaDB 5.5.52 Apache/2.4.6 ※ パラメーターはデフォルト値

Page 49: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

$ ab -n 1000 -c 100 https://example.com/ Failed requests: 0 Total transferred: 70180000 bytes HTML transferred: 69598000 bytes Requests per second: 423.09 [#/sec] Time per request: 236.355 [ms] Time per request: 2.364 [ms] Transfer rate: 28996.69 [Kbytes/sec]

Apache Benchを取得

on

Page 50: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

Requests per second: 355.83 [#/sec]

● Drupal8 + KUSANAGI + CPI

Requests per second: 423.009 [#/sec]

● Drupal8 + CPI

ベンチマーク結果比較

LAMP環境が早い結果になった。 あれ…… 、原因を調べると……

Page 51: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

Drupal8 + KUSANAGI + CPI

 KUSANAGI環境ではOpcacheが無効だった

Page 52: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

● WordPress + CPI Requests per second: 10.64 [#/sec]

● WordPress + KUSANAGI + CPI Requests per second: 61.03 [#/sec]

● WordPress + KUSANAGI(fcache)+ CPI Requests per second: 452.86 [#/sec]

WordPressの場合

Page 53: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

3つの環境を比べてみると

● WordPress + KUSANAGI(fcache) Requests per second: 452.86 [#/sec]

Requests per second: 355.83 [#/sec] ● Drupal8 + KUSANAGI(Page cache無し)

Requests per second: 423.009 [#/sec] ● Drupal8 + CPI

Page 54: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

ちなみにAWS t2.nano x Drupal8

Page 55: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日) x 30(月) = 1,036,800,000

この400(Requests per second)という数値はCMSの 性能というよりは、キャッシュのパフォーマンス。 1台のサーバーマシーンが出せるパフォーマンスは、 出ているのではないか。

Page 56: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

考察 1 キャッシュや、サーバーチューニングの知識が 無くてもKUSANAGIを使うことで、 サーバーマシーンの性能を引き出すことができる。 さらにサーバーや、ネットワークの冗長化を することで、より高トラフィックをさばける環境が 実現できる。

Page 57: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

考察 2 基本キャッシュはanonymousに対する技術。 ログインユーザーに対するキャッシュは、個別設定 が必要なので、複雑な対応が必要。 Drupal8では、BigPipeや、Cache APIが用意 されており、ログインユーザーに対するキャッシュの 設定が可能。 (と簡単そうに言ったが実際はハマリどころ多い)

Page 58: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)
Page 59: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

月額 9,000円 から利用可能

Page 60: 2017.04.17 KUSANAGI for CPI リリース記念セミナー · 考察 1 それぞれの環境で、400 (Requests per second) を取得 月間のPVに換算すると 400(rps) x 86,400(日)

本日の資料

ID:chiyo.abe 阿部 正幸

CPI Line@

http://bit.ly/cpiforkusanagi

お気軽にフォローください

    スタッフブログ

http://shared-blog.kddi-web.com