2017.04.17 kusanagi for cpi リリース記念セミナー · 多言語化 restful api...
TRANSCRIPT
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