Your SlideShare is downloading. ×
0
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Plone talk 201308_terada
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Plone talk 201308_terada

543

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
543
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. ©2013 CMScom info@cmscom.jp Ploneを使った大規模環境でのCMSソリューション CMSコミュニケーションズ代表 / Advisory Board Member of Plone Foundation 寺田 学 terada@cmscom.jp / terada@plone.org http://www.cmscom.jp 2013年8月7日 at Plone Talk 2013.08 オープンソースCMSを使った 大規模サイト構 築のノウハウをお伝えします
  2. 1 最初に ©2013 CMScom info@cmscom.jp 大規模エンタープライズ CMS とか言いますが・・・。
  3. 1 最初に ©2013 CMScom info@cmscom.jp どこが? どう使っている? にお声たえしたいと思います。
  4. 1 最初に ©2013 CMScom info@cmscom.jp 本日のテーマは システム構築のパターン説明、指針解説 コンテンツ編集・承認を多人数でするた めの方策 などを、解説します。
  5. 自己紹介 ©2013 CMScom info@cmscom.jp •寺田 学 @terapyon •Advisory Board Member of Plone Foundation •一般社団法人PyCon JP 代表理事 •Ploneコアコミッター、Zopeコアコミッター •(株)CMSコミュニケーションズ代表 http://www.cmscom.jp •一橋大学大学院 社会学研究科 地球社会専攻 元客員准教授 •Plone/Zopeの専業Webシステム構築・コンサルティング •大学や政府系サイトなどを手がけています •独自にWeb検索システムの構築もしています •書籍(共著) 2
  6. 2 書籍紹介 ©2013 CMScom info@cmscom.jp 4 Book 多くのヒントが 書かれています
  7. アジェンダ ©2013 CMScom info@cmscom.jp •問題提起(大規模とは?) •システム構成 •ユーザ認証、ワークフロー •改ざんを防ぐ方策 •クラウド技術の活用
  8. 3 問題提起 ©2013 CMScom info@cmscom.jp •大規模って何をさすの? •閲覧数がそれなりに多い •ユーザ人数が多い •データの量が多い •情報の承認フローを持ちたい •すぐにデータを反映
  9. 3 問題提起 ©2013 CMScom info@cmscom.jp •その他にも •改ざんを防ぎたい •ユーザごとに表示内容を変えたい
  10. Plone (スタンドアローン) 1台の物理サーバ又はクラウドサーバ 4 システム構成 ©2013 CMScom info@cmscom.jp 最小構成 管理者 管理用アクセス パスワード必要 Apache (Webサーバ) Ploneコアシステム (アプリケーションサーバ) ZODB (データベースサーバ) 閲覧者 閲覧者
  11. 4 システム構成 ©2013 CMScom info@cmscom.jp 大規模構成 管理者 Apache (Webサーバ) Ploneコアシステム (アプリケーションサーバ) MySQL/PostgreSQL (スレーブ) (データベースサーバ) 閲覧者 閲覧者 Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Apache (Webサーバ)(ログイン用) Varnish (キャッシュサーバ) Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Varnish (キャッシュサーバ) HAProxy (ロードバランサ) MySQL/PostgreSQL (マスター) (データベースサーバ) Memcached (一時保存ファイル) LDAP (ユーザディレクトリ) 外部SSO 認証サーバ
  12. 4 システム構成 ©2013 CMScom info@cmscom.jp よくある構成 管理者 管理用アクセス パスワード必要 Apache (Webサーバ) Ploneコアシステム (アプリケーションサーバ) ZODB (データベースサーバ) 閲覧者 閲覧者 Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Apache (Webサーバ)(ログイン用) Varnish (キャッシュサーバ)
  13. 4 システム構成 ©2013 CMScom info@cmscom.jp よくある構成 管理者 管理用アクセス パスワード必要 Apache (Webサーバ) Ploneコアシステム (アプリケーションサーバ) ZODB (データベースサーバ) 閲覧者 閲覧者 Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Apache (Webサーバ)(ログイン用) Varnish (キャッシュサーバ) Plone (ZEOインスタンス)
  14. 1台の物理サーバ又はクラウドサーバ 4 システム構成 ©2013 CMScom info@cmscom.jp よくある構成 管理者 管理用アクセス パスワード必要 Apache (Webサーバ) Ploneコアシステム (アプリケーションサーバ) ZODB (データベースサーバ) 閲覧者 閲覧者 Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Apache (Webサーバ)(ログイン用) 1台の物理サーバ又はクラウドサーバ 1台の物理サーバ又はクラウドサーバ Varnish (キャッシュサーバ)
  15. 4 システム構成 ©2013 CMScom info@cmscom.jp よくある構成 管理者 管理用アクセス パスワード必要 Apache (Webサーバ) Ploneコアシステム (アプリケーションサーバ) ZODB (データベースサーバ) 閲覧者 閲覧者 Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Apache (Webサーバ)(ログイン用) Varnish (キャッシュサーバ)
  16. 4 システム構成 ©2013 CMScom info@cmscom.jp 大規模構成 管理者 Apache (Webサーバ) Ploneコアシステム (アプリケーションサーバ) MySQL/PostgreSQL (スレーブ) (データベースサーバ) 閲覧者 閲覧者 Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Apache (Webサーバ)(ログイン用) Varnish (キャッシュサーバ) Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Varnish (キャッシュサーバ) HAProxy (ロードバランサ) MySQL/PostgreSQL (マスター) (データベースサーバ) Memcached (一時保存ファイル) LDAP (ユーザディレクトリ) 外部SSO 認証サーバ
  17. 4 システム構成 ©2013 CMScom info@cmscom.jp •Apache(Webサーバ) •HTTPリクエストを受け取るフロント サーバ •Varnish(キャッシュサーバ) •コンテンツのページキャッシュ •HAProxy(ロードバランサ) •セッション機能付きロードバランサ
  18. 4 システム構成 ©2013 CMScom info@cmscom.jp 大規模構成 管理者 Apache (Webサーバ) Ploneコアシステム (アプリケーションサーバ) MySQL/PostgreSQL (スレーブ) (データベースサーバ) 閲覧者 閲覧者 Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Apache (Webサーバ)(ログイン用) Varnish (キャッシュサーバ) Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Varnish (キャッシュサーバ) HAProxy (ロードバランサ) MySQL/PostgreSQL (マスター) (データベースサーバ) Memcached (一時保存ファイル) LDAP (ユーザディレクトリ) 外部SSO 認証サーバ
  19. 4 システム構成 ©2013 CMScom info@cmscom.jp •MySQL/PostgreSQL(データベース サーバ) •FileStorage(Data.fs)の代わりに、 RelStorageを使用し、RDBMSにコ ンテンツを保存 •Memcached •一時的なデータの保存
  20. 4 システム構成 ©2013 CMScom info@cmscom.jp 大規模構成 管理者 Apache (Webサーバ) Ploneコアシステム (アプリケーションサーバ) MySQL/PostgreSQL (スレーブ) (データベースサーバ) 閲覧者 閲覧者 Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Apache (Webサーバ)(ログイン用) Varnish (キャッシュサーバ) Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Varnish (キャッシュサーバ) HAProxy (ロードバランサ) MySQL/PostgreSQL (マスター) (データベースサーバ) Memcached (一時保存ファイル) LDAP (ユーザディレクトリ) 外部SSO 認証サーバ
  21. 4 システム構成 ©2013 CMScom info@cmscom.jp •外部SSO •シングルサインオンシステムとの連携 •LDAP •ユーザ情報の一元化 •人事データ等が別途管理されている場 合
  22. 4 システム構成 ©2013 CMScom info@cmscom.jp 大規模構成 管理者 Apache (Webサーバ) Ploneコアシステム (アプリケーションサーバ) MySQL/PostgreSQL (スレーブ) (データベースサーバ) 閲覧者 閲覧者 Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Apache (Webサーバ)(ログイン用) Varnish (キャッシュサーバ) Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Varnish (キャッシュサーバ) HAProxy (ロードバランサ) MySQL/PostgreSQL (マスター) (データベースサーバ) Memcached (一時保存ファイル) LDAP (ユーザディレクトリ) 外部SSO 認証サーバ
  23. 4 システム構成 ©2013 CMScom info@cmscom.jp •部分的に置き換えも可能 •Apache → nginx •Varnish → Squid / Apache •HAProxy → ロードバランサ •MySQL → NEO •LDAP → 独自認証システム
  24. 4 システム構成 ©2013 CMScom info@cmscom.jp •キャッシュサーバ •画像/CSS/JavaScriptなどデータ •動的データ •キャッシュサーバのデータを更新 •Purgeしたい
  25. 4 システム構成 ©2013 CMScom info@cmscom.jp •実際問題どこまでやればいいの?? •最終的には実際に使い始めないとどう なのかは分からないが・・。
  26. 4 システム構成 ©2013 CMScom info@cmscom.jp •その他ポイント •zope.conf(buildout.cfg)出来ること •検討項目は? •単純に閲覧が多い? •更新が多い? •CPUコア数・メモリ量に応じた配分
  27. 4 システム構成+α ©2013 CMScom info@cmscom.jp •他の対策は? •ESIの活用 •CDN(アカマイ/CloudFrontなど)使用 •データベースの分割 •ハードウエアの増強
  28. 4 システム構成 ©2013 CMScom info@cmscom.jp •Plone 4以降 •以前のバージョンに比べ早い •blob化 / Python2.6 or 2.7の活用 •テンプレートの見直し
  29. 4 システム構成 ©2013 CMScom info@cmscom.jp •ちなみに、SSL対応したければ、フロン トに立ててあるApacheで対応するだけ •アプリケーションサーバには、内部アク セスとして、8080ポートなどで通信を 行うので、従来通りとする
  30. 4 システム構成 ©2013 CMScom info@cmscom.jp 大規模構成 管理者 Apache (Webサーバ) Ploneコアシステム (アプリケーションサーバ) MySQL/PostgreSQL (スレーブ) (データベースサーバ) 閲覧者 閲覧者 Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Apache (Webサーバ)(ログイン用) Varnish (キャッシュサーバ) Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Varnish (キャッシュサーバ) HAProxy (ロードバランサ) MySQL/PostgreSQL (マスター) (データベースサーバ) Memcached (一時保存ファイル) LDAP (ユーザディレクトリ) 外部SSO 認証サーバ
  31. 4 システム構成(まとめ) ©2013 CMScom info@cmscom.jp •実績のあるオープンソースアプリ活用 •Plone自体がコミュニティーで支援 •全世界のエンジニアで協力し問題点解決!!
  32. 5 ユーザ認証・ワークフロー ©2013 CMScom info@cmscom.jp •Ploneにはユーザ認証の仕組みがある •Ploneにはワークフローの仕組みがある
  33. 5 ユーザ認証 ©2013 CMScom info@cmscom.jp •LDAPなど既存のディレクトリシステム との連携が可能 •SQL等の外部DB連携によるユーザ認証 も可能 •PAS(PluggableAuthService)と呼ば れる、アドオンの仕組みがある
  34. 5 ユーザ認証 ©2013 CMScom info@cmscom.jp •SSO(シングルサインオン)の対応も可能 •多くの大学や組織が持っている、各種 システムとの連携が出来る
  35. 5 ユーザ認証 ©2013 CMScom info@cmscom.jp •ユーザ認証は何のために行う? •コンテンツの編集作業 •公開承認作業 •システムの管理 •閲覧管理 •その他、何かの動作を許可する前提
  36. 5 ユーザ認証 ©2013 CMScom info@cmscom.jp •ログイン出来たら操作を許可? •どのようにログインユーザと操作を結び つけるのか?
  37. 5 ユーザ認証 ©2013 CMScom info@cmscom.jp •権限関係の関連キーワード •ユーザ •グループ •ロール(役割) •パーミッション(権限) •上記の4つの組み合わせにより操作許可
  38. 5 ユーザ認証 ©2013 CMScom info@cmscom.jp パーミッションとロール ユーザとロール
  39. 5 ユーザ認証 ©2013 CMScom info@cmscom.jp •権限関係の関連キーワード その2 •ローカルロール •オブジェクト単位の共有設定 •上位継承 •ワークフローの状態(State)による条件 •複数のワークフロー •コンテンツタイプごと/フォルダごと
  40. 5 ユーザ認証 ©2013 CMScom info@cmscom.jp 共有設定
  41. 5 ユーザ認証 ©2013 CMScom info@cmscom.jp •操作許可までの動き •ユーザはロールを持っている •ロールに応じたパーミッションがマッ ピングされ、操作の許可がされる •共有設定で指定のオブジェクトにロー ルが割り当てる • 例えば編集の際のパーミッション(Modify Portal Content)はEditorロールを持つユーザに許可
  42. 5 ユーザ認証 ©2013 CMScom info@cmscom.jp •その他 •複数の認証システムの組合せが可能 •IPアドレスによるユーザ認証も可能
  43. 5 ワークフロー ©2013 CMScom info@cmscom.jp •デフォルトで複数のワークフローがある •自由にカスタマイズが可能 •独自のワークフローの記述が出来る •ZMI / XML / CSVなどで •コンテンツタイプごとに使用するワーク フローが選択できる
  44. 5 ワークフロー ©2013 CMScom info@cmscom.jp 2段階承認の例 非表示中 内部承認待ち 最終承認待ち 公開中 内部公開中 提出 内部公開 公開 承認 状態(State): コンテンツの状態を表す 遷移(Transition): ワークフローの遷移を表す
  45. 5 ワークフロー ©2013 CMScom info@cmscom.jp •状態(State)は、コンテンツの状態を表す •パーミッション(権限) - ロール(役割)の マッピングを上書きし、閲覧権限や編 集権限などを状態によって変化させる
  46. 5 ワークフロー ©2013 CMScom info@cmscom.jp 2段階承認の例 非表示中 内部承認待ち 最終承認待ち 公開中 内部公開中 提出 内部公開 公開 承認 状態(State): コンテンツの状態を表す 遷移(Transition): ワークフローの遷移を表す
  47. 5 ワークフロー ©2013 CMScom info@cmscom.jp •遷移(Transition)は、ワークフローの遷 移を表す •別の状態(State)に遷移させるもの •遷移の条件を以下の方法で決める •パーミッション(権限) •ロール(役割) •スクリプト(条件を記載したPython)
  48. 5 ワークフロー ©2013 CMScom info@cmscom.jp 2段階承認の例 非表示中 内部承認待ち 最終承認待ち 公開中 内部公開中 提出 内部公開 公開 承認 状態(State): コンテンツの状態を表す 遷移(Transition): ワークフローの遷移を表す
  49. 5 ユーザ認証・ワークフロー(まとめ) ©2013 CMScom info@cmscom.jp •状態(State)と遷移(Transition)を理解 すれば、ワークフローは作れる •ユーザに操作を許可させるには、ユーザ が持つロールを経由して行う •認証と操作許可は完全に分離されている
  50. 6 改ざんを防ぐ方策 ©2013 CMScom info@cmscom.jp •ログインアカウントをきっちり管理 •定期的にパスワードを変更する •認証を外部にまかせて、信頼を担保(SSO など)
  51. 6 改ざんを防ぐ方策 ©2013 CMScom info@cmscom.jp •ログインさせない •指定のIPアドレスからのみ接続許可 •データベースを読み取り専用(リードオン リー)モードで使う
  52. 6 改ざんを防ぐ方策 ©2013 CMScom info@cmscom.jp 大規模構成 管理者 Apache (Webサーバ) Ploneコアシステム (アプリケーションサーバ) MySQL/PostgreSQL (スレーブ) (データベースサーバ) 閲覧者 閲覧者 Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Apache (Webサーバ)(ログイン用) Varnish (キャッシュサーバ) Ploneコアシステム (アプリケーションサーバ) Ploneコアシステム (アプリケーションサーバ) Varnish (キャッシュサーバ) HAProxy (ロードバランサ) MySQL/PostgreSQL (マスター) (データベースサーバ) Memcached (一時保存ファイル) LDAP (ユーザディレクトリ) 読み取り専用 ログインURL禁止 IP制限
  53. 7 クラウドサーバの活用 ©2013 CMScom info@cmscom.jp •IaaSと言われる、ほとんどのクラウド サーバで運用可能 •アプリケーションサーバの増強には、ク ラウド環境は手軽で簡単 •テスト・ステージングサーバを立ち上げ るのがすぐに出来便利
  54. 7 クラウドサーバの活用 ©2013 CMScom info@cmscom.jp •PaaSでもPloneが動作する環境はある •個々に癖があるので注意が必要
  55. 7 クラウドサーバの活用 ©2013 CMScom info@cmscom.jp •選定のポイント •柔軟にアプリケーションサーバが増や せるか? •OSイメージでバックアップする方法が あるか? •課金体系は、使用するアプリケーショ ンに合っているか?
  56. 8 Plone流 ©2013 CMScom info@cmscom.jp •Ploneには文化がある!! •使う側、カスタマイズする側、管理側 に、この文化が適用出来れば最強!!
  57. 8 Plone流 ©2013 CMScom info@cmscom.jp •オープンソースの活用で、長期間メンテ ナンスが可能なシステム構築を・・。
  58. 8 Plone流 ©2013 CMScom info@cmscom.jp 10年以上進化をし続けている Ploneに感謝!! ご清澄ありがとうございました。

×