スケーラブルな WordPress 実装を Kubernetes 上にデプロイする  

Kubernetes の能力を最大限に活用して、IBM Cloud Kubernetes Service から WordPress をホストする

By Animesh Singh, Tommy Li

Description

6000 万を超える Web サイトをサポートしている WordPress は、世界で最もよく使われている Web サイト管理およびブログ・システムです。WordPress は根本的に、最もよく使われている Web プログラミング言語の 1 つに数えられる PHP をベースに作成されていて、バックエンド・データベースとして MySQL を使用します。Kubernetes はオープンソースのコンテナー管理システムです。コードを貢献している個々の開発者の数に基づく GitHub プロジェクトのランキングでは、Kubernetes がトップ 10 にランキングされています。WordPress と Kubernetes という 2 つの大規模オープンソース・プロジェクトを統合して最大のメリットをもたらすことは、開発者にとって難しいけれどもやりがいのある課題です。

Overview

開発者は、最も優れたアプリケーションを作成することを目指すものです。この目標を達成するためには、優れたツールとプラットフォームを使用することが重要となります。このコード・パターンでは、Kubernetes クラスターの能力を最大限に活用する方法を説明し、世界で最もよく使われている Web サイト・フレームワークを、世界で最もよく使われているコンテナー・オーケストレーション・プラットフォーム上にデプロイするのがいかに簡単なことであるかを実証します。

このコード・パターンでは、WordPress を IBM Cloud Kubernetes Service の Kubernetes クラスター上でホストする際の完全なロードマップを含め、段階ごとに手順を進めていきます。各コンポーネントは、個々のコンテナー内、またはコンテナーのグループ内で稼動します。

WordPress は典型的な多層アプリを象徴し、コンポーネントごとに固有のコンテナーを割り当てます。これらのコンテナーが WordPress のフロントエンド層を形成し、MySQL コンテナーが WordPress のデータベース/バックエンド層となります。WordPress のフロントエンド層では、IBM Cloud のサービスとしての MySQL を利用できます。

Flow

  1. ユーザーが Web インターフェースを使用して WordPress を操作します。WordPress の各コンテナーはユーザーに対し、HTTP/HTTPS を使用して応答します。
  2. ユーザーがいずれかの WordPress コンテナーに POST リクエストを送信すると、通常は、WordPress がその変更リクエストを MySQL データベースに送信します。MySQL データベースはセキュリティーを確保するために、POST リクエストのデータを永続ディスクに保管します。MySQL コンテナーに加え、IBM Cloud の Compose MySQL サービスを利用することもできます。認証と認可が完了すると、パスワード (MD5 で暗号化) や e-メール・アドレスなどの WordPress ユーザー情報が作成されて MySQL 内に保管されます。Web サイト、ブログ、タグ、カテゴリーやその他のデータも MySQL 内に保管されます。
  3. ユーザーはテーマ、プラグイン、画像、ドキュメントをアップロードすることもできます。テキスト以外のデータ (PDF、動画、MP3 など) もアップロードできます。
  4. テーマ、プラグイン、PDF、動画、MP3 などは、WordPress ポッドに接続された永続ボリューム内に保管されます。
  5. ユーザーが WordPress の Web サイトまたはブログにアクセスします。WordPress コア (つまり、WordPress の「ブレイン」) は、まず index.php を呼び出し、その後に他の必要な PHP スクリプトを呼び出します。
  6. WordPress が MySQL データベースにアクセスして Web サイト、ブログ、タグ、カテゴリーなどを取得します。
  7. WordPress コアが永続ボリュームからテーマ、ドキュメント、画像などを取得し、これらの要素をデータベースから取得したデータに結合した上で、結果のページをユーザーに表示します。

Instructions

このコード・パターンに取り組む準備はできましたか?アプリケーションを起動して使用する方法について詳しくは、README を参照してください。

Related Blogs

Call for Code 2019 応募に向けて個別オンライン相談会の予約受付開始

皆さん、こんにちは。IBM デベロッパーアドボケイト戸倉彩です。 グローバルハッカソンは目標をもって仲間と一緒 […]

続けて読む Call for Code 2019 応募に向けて個別オンライン相談会の予約受付開始

IBM Developer Dojo – 6月イベントスケジュール

皆さん、こんにちは。IBMデベロッパーアドボケイト戸倉です。 5月にスタートした毎週水曜日にIBM渋谷オフィス […]

続けて読む IBM Developer Dojo – 6月イベントスケジュール

Related Links