Weitere ähnliche Inhalte
Ähnlich wie Plone talk 201308_terada (20)
Mehr von Manabu Terada (20)
Plone talk 201308_terada
- 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
- 8. 3 問題提起
©2013 CMScom info@cmscom.jp
•大規模って何をさすの?
•閲覧数がそれなりに多い
•ユーザ人数が多い
•データの量が多い
•情報の承認フローを持ちたい
•すぐにデータを反映
- 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
認証サーバ
- 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したい
- 26. 4 システム構成
©2013 CMScom info@cmscom.jp
•その他ポイント
•zope.conf(buildout.cfg)出来ること
•検討項目は?
•単純に閲覧が多い?
•更新が多い?
•CPUコア数・メモリ量に応じた配分
- 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
認証サーバ
- 33. 5 ユーザ認証
©2013 CMScom info@cmscom.jp
•LDAPなど既存のディレクトリシステム
との連携が可能
•SQL等の外部DB連携によるユーザ認証
も可能
•PAS(PluggableAuthService)と呼ば
れる、アドオンの仕組みがある
- 35. 5 ユーザ認証
©2013 CMScom info@cmscom.jp
•ユーザ認証は何のために行う?
•コンテンツの編集作業
•公開承認作業
•システムの管理
•閲覧管理
•その他、何かの動作を許可する前提
- 37. 5 ユーザ認証
©2013 CMScom info@cmscom.jp
•権限関係の関連キーワード
•ユーザ
•グループ
•ロール(役割)
•パーミッション(権限)
•上記の4つの組み合わせにより操作許可
- 39. 5 ユーザ認証
©2013 CMScom info@cmscom.jp
•権限関係の関連キーワード その2
•ローカルロール
•オブジェクト単位の共有設定
•上位継承
•ワークフローの状態(State)による条件
•複数のワークフロー
•コンテンツタイプごと/フォルダごと
- 41. 5 ユーザ認証
©2013 CMScom info@cmscom.jp
•操作許可までの動き
•ユーザはロールを持っている
•ロールに応じたパーミッションがマッ
ピングされ、操作の許可がされる
•共有設定で指定のオブジェクトにロー
ルが割り当てる
• 例えば編集の際のパーミッション(Modify Portal
Content)はEditorロールを持つユーザに許可
- 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): ワークフローの遷移を表す
- 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と言われる、ほとんどのクラウド
サーバで運用可能
•アプリケーションサーバの増強には、ク
ラウド環境は手軽で簡単
•テスト・ステージングサーバを立ち上げ
るのがすぐに出来便利
- 55. 7 クラウドサーバの活用
©2013 CMScom info@cmscom.jp
•選定のポイント
•柔軟にアプリケーションサーバが増や
せるか?
•OSイメージでバックアップする方法が
あるか?
•課金体系は、使用するアプリケーショ
ンに合っているか?