PloneこのセッションはPloneでのサイト開発の過去,現在と今後についてのセッションです。残念ながらビデオに入っていませんが,いきなりスターウォーズのオープニング最初の部分をまねたビデオでプレゼンテーションがはじまりました。凝った資料が用意されており,見た目にも楽しいセッションでした。ビデオかスライドも実際に確認してみてください。story最初に自身の歴史を振り返っていました。2.0.xでDBを使用したコンテントタイプを作ったりしていたそうです。3.xではbuildout,eggsなどの新しい機能を習得し,パフォーマンスとの闘いの日々を送ってきたことが語られました。以前はPloneで全機能を実装していましたが,現在はCMSのみで使用しているそうです。Framework「Ploneはコンテンツ中心のWebアプリケーションのためのプラットフォームである」と述べられました。Ploneにはさまざまなコンテンツを入れられますが,そのため中身がぐちゃぐちゃになってしまうことがあるという説明がありました。integrationsここでは,Ploneを実際に使用したプロジェクトの例について説明がありました。検索機能の強化には,SolrやPostgreSQLのTsearch2を使用するプロダクトについて紹介がありました。Accessibileで実現しているそうです。Docsの同期をとる仕組みを構築したそうです。他にPloneとrepoze.bfgを組み合わせバックエンドにPostgreSQLを置いて,Webサイトとeコマース,在庫管理,CRMなどの全社システムを作成しており,現在80%まで完成しているそうです。2009でも聞いていましたが,repoze.bfgと組み合わせているというのは挑戦的なシステム構成だと感じました。RelStorageこのセッションは,筆者は聴講できなかったため,1日目のレポートに続き寺田さん(@terapyon)にレポートを執筆していただきました(ありがとうございます⁠)⁠。セッションの内容は,Ploneで使用するデータの保管場所をZope内蔵のZODBというオブジェクトデータベースで使用されているファイルData.fsへの保存ではなく,リレーショナルデータベース(RDB)へ保存を行う仕組みであるRelStorageに関してです。4からは画像,ファイルなどをBLOBストレージに保存するようになりました⁠)⁠。データの保存先としてRDBに保存することも選択肢として使えるようになるのが,このRelStorageです。Hendryx-Parker氏Zopeのストレージについてまず前提となるストレージの種類の簡単な用語の説明がありました。ZODB:Plone(Zope)に標準で付属している,オブジェクト型データベースのパッケージです。ファイルストレージであるData.fsとBLOBストレージをサポートしています。ファイルストレージ:ZODBのオブジェクトが保存されるData.fsファイルのことを示しています。起動時にメモリにインデックス情報が読み込まれます。RelStorage:ZODBのデータ保存先をRDBにするというものです。今回のセッションテーマです。ファイルストレージ(Data.fs)の代わりに使用します。RelStorageとは簡単に言うと,ZODBパッケージにパッチを当てて,ファイルストレージであるData.fsを使わずに,RDBにオブジェクトをpickle化(Pythonのオブジェクトをシリアライズ化)して保存する仕組みです。RelStorageを使用するメリットとして,RDBを使用することで既存のインフラや経験,RDB用のツールを使用できることが挙げられました。クラスター構成によるハイパフォーマンス対応もメリットの一つです。Data.fsを使用するのに比べて,検索インデックスをメモリ上に展開する必要がないため,メモリの消費量を抑えられてPloneの起動時間が短くなるということも利点として述べられました。対応するRDBとしてはMySQやPostgreSQL,Oracleがあげられていました。インストール方法も簡単で,Plone標準でも用いられている,buildoutを使用してインストールを行います。プレゼンテーション資料に設定ファイルの例も記述されていましたので参考にしてください。運用している途中で標準のファイルストレージからRelStorageに変更することも可能で,データ変換のためのzodbconvertというコマンドが用意されています。zodbconvertを使用することにより,MySQLからOracleにRDBを変更することも可能です(面白いですね⁠)⁠。RelStorageの注意点ここまで聞くといいことずくめのように聞こえるRelStorageですが,気をつけるべき点もあります。それは,データベースシステムを別に準備することになり,システム全体がより複雑になることです。設定,チューニングやコンテンツの種類,分量によっては,サーバロードが増える場合やメモリを大量消費する場合もあるとのことです。RDB内にコンテンツは保存されていますが,テキストデータではなくpickleされたデータなので直接は扱いにくいです。zodbpackコマンドによりZODBのパック(古い差分を削除してサイズを小さくする)作業も今まで通り必要になります。RelStorageのデモここで実際に2台のRDBサーバーを立ち上げ,障害によるデータベースの切り替えが発生した状態で問題なくコンテンツにアクセスできるデモが行われました。寺田さん自身一度は試してみる価値がある仕組みだと感じたそうです。使いどころは注意しないと構成を複雑にするだけで良さが出ないとも感じたようです。テーブル構造などがどうなっているのかなど,実際に試してみないと分からない部分が疑問として残ったようですので,ぜひ試してみて詳細をどこかで発表してもらいたいと思います。部内のサイトを作るためにZope/Ploneと出会い,その後必要にかられてPythonを使い始める。Hack-a-thonの主催者の一人でもある。趣味は吹奏楽とレゴとペンシルパズル。2012年の目標は9月にオープンするマレーシアのレゴランドに行くこと。写真はうちのフェレットくろちゃんとくりちゃんです。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。