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

Post on 14-Jul-2020

0 views 0 download

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

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

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

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

Venture Since 1998

Web Service Hosting

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

Drupalとは

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

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

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

DrupalとWordPressの違い

WordPress vs Drupal

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

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

Gartner’s 2016 Magic Quadrant for Web Content Management

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

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

CMS

これまでのCMS

IoT

iPhone App

Signage

Android App

a Company

Product B

Recruit Event

IR

Product A

Corporate

Campaing

Blog

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

Prodcut

CMS RESTサーバー

Event

Blog

Corporate

Application

Other System

担当者

これからのCMS

(Back end) (Front end)

JSON JS HTML

CSS

JSONの読み込み

CMS

REST API仕様書

REST APIよりJSON取得

JSONを画面表示

Fetch API

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

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

ための API に急速に進化

for に導入する

on for

サーバー構築

on for

サーバー起動

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

on for

Σ(゚Д゚)ファッ!!

ちなみに Drupal8 + AWS t2.nano

0.064s

ちなみに Drupal8 + AWS t2.nano

+

0.154s

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

/etc/hhvm/php.ini

; hhvm.enable_zend_compat = true

on for

On for

ベンチマーク取得

Devel node create で 50記事投稿

$ 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

続いて

on

on

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

$ 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

Requests per second: 355.83 [#/sec]

● Drupal8 + KUSANAGI + CPI

Requests per second: 423.009 [#/sec]

● Drupal8 + CPI

ベンチマーク結果比較

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

Drupal8 + KUSANAGI + CPI

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

● 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の場合

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

ちなみにAWS t2.nano x Drupal8

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

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

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

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

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

本日の資料

ID:chiyo.abe 阿部 正幸

CPI Line@

http://bit.ly/cpiforkusanagi

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

    スタッフブログ

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