2013年9月30日(月)から10月6日(日)までブラジルの首都ブラジリアでPlone Conference 2013が開催されました。本稿では、今回から3回の予定で、参加者視点のレポートをお届けします。
イベント概要
Plone Conference の概要
PythonベースのCMSツールである、Plone。このPloneの開発元であるNPO法人Plone Foundationは、年に一度のカンファレンスイベントを開催しています。カンファレンスは、毎年世界のいずれかの都市で地元のオーガナイザーを中心に運営されます。 主催者となるオーガナイザーは、開催地の企業が中心になる場合や地元のユーザ会が中心になって行う場合があります。今回のカンファレンスは、地元のユーザ会組織である、python brasilが中心になって開催されました。
昨年のオランダArnhemに続いて今年のPloneカンファレンスは、ブラジルの首都ブラジリアで行われました。 ( 昨年(2012年)の参加者レポート 、2010年の参加レポートもぜひご参照ください)。 今回のPloneカンファレンスは、いつもと様相が違い、ブラジルの最大規模のPythonイベントである、python brasil [9]と一緒に行われました。python brasilは今回で9回目になるそうです。
概要は次のとおりです。
|
日程
|
会場
|
参加者
|
チュートリアル
|
2013年9月30日(月) - 10月1日(火)
|
ブラジリア - ESAF
|
約170人
|
カンファレンス
|
2013年10月2日(水) - 10月4日(金)
|
ブラジリア - Ulysses Guimaraes Convention Center
|
約500人
|
開発スプリント
|
2013年10月5日(土) - 10月6日(日)
|
ブラジリア Nova Central Sindical de Trabalhadores
|
約100人
|
Caipirinhaスプリント
|
2013年10月8日(火) - 10月11日(金)
|
ジョアンペソア(Joao Pessoa) Xenius Hotel
| |
カンファレンストラック数は次のとおりです。
- キーノート:6回
- 英語:2~3トラック
- ポルトガル語:3~4トラック
- ライトニングトーク:2回
なぜ、参加したか?
そもそも、どうしてわざわざ地球の裏側のブラジルで開催されたカンファレンスに参加したのか?ということについて触れておきます。 筆者はPloneカンファレンスには2008年のワシントンDCでの開催から2011年の1回を除き、毎回参加しています。そういう意味では、私が参加するのは「当たり前」と考えたのですが、今回はブラジルということで、あまりにも遠いので躊躇しました。
しかし、主に次の理由で参加を決めました。
- 昨年から私自身がPlone Foundaitonのアドバイザリーボードメンバーになったこと
- 日本で開催されているPythonイベントである、 PyCon JPと同規模またはそれ以上の規模のPythonイベントが併設されていること
- Ploneカンファレンスは毎年会社でスポンサーをしており、今年もスポンサーシップしたこと
- オープンソースが盛んに使われているという、南米を自分自身で見てみたかったこと
実際に参加してみて、現地でいろいろな人の話を直接聴くことの重要性を改めて感じました。
Ploneとは
Ploneは高機能CMS(コンテンツマネージメントシステム)の一つで、オープンソースで制作されたWebフレームワークです。プログラミング言語PythonとWebアプリケーションサーバZopeをベースに開発されており、オブジェクトデータベース、Webサーバー、ワークフローなどの機能を標準搭載しています。
スケジュール・旅行行程
私は、カンファレンスデーである10月2日(水)から、開発スプリントの1日目である10月5日(土)まで参加をしてきました。
旅行行程
ブラジルまでは日本から乗り換えなしで行ける飛行機はありません。さらに、首都のブラジリアへの国際便もほとんど飛んでいません。ブラジリアには、リオデジャネイロまたはサンパウロを経由して入ることになります。
私は、アメリカのシカゴを経由することにしました。アメリカの各都市経由やドバイ経由、オーストラリア経由など様々な選択肢があったのですが、日本からの飛行時間や乗り換えの少なさなどからシカゴを選択しました。シカゴを経由した後は、サンパウロを経由しました。
往路は、土曜日に日本を出発したこともあり、土日はシカゴやその周辺で観光をしました。
復路は、日曜日に現地ブラジリアを出発し、シカゴで乗り換え(約5時間)をし、東京成田に戻ってきました。
少なく見積もっても30時間、自宅から現地ホテルまで約2日間の旅行行程になります。
ブラジリアの治安はブラジルの中では良いほうだということですが、心配もあり、カンファレンス主催者がおすすめしているホテルの中でも、ある程度良いランクのホテルに5泊6日しました。ブラジルでは、英語もほとんど伝わらないのですが、さすがにホテルのカウンターでは英語でやりとりすることができました。
本稿のシリーズの最後に、ブラジル訪問の注意点をまとめています。詳しくはそちらをご覧ください。
カンファレンス初日(Day1)
前日にブラジリアへ入り、当日の朝早くから会場へ行き、受付をし毎回参加している顔なじみのメンバーと挨拶をしました。いつもの顔を見ると、Ploneカンファレンスが始まるんだなと実感しました。
受付は、多少の行列ができていましたが、今回はスピーカーとして、さらにスポンサーとしての受付窓口に並びました。私の名札がなかなか見つからなかったのですが、主催者の中心人物が、すぐに確認をしてくれて、スポンサーシップのお礼を言われ、無事に名札を手できました。
大きな会場でブラジリアの中心にあり、東京で言うと有楽町の東京フォーラムという感じの場所です。そのため、カンファレンスエリアに入る時に必ず会場スタッフによる名札のチェックが行われていました。
カンファレンスの雰囲気
毎年のPloneカンファレンスと大きく違う雰囲気を感じました。python brasilが併設されていることもあり、多くの地元ブラジルの方がいました。
言語については、ポルトガル語がメイン言語として話が始まりましたが、メイン会場では英語への同時通訳があり、逆にキーノートが英語の場合にはポルトガル語への同時通訳が提供されていました。
トラック数は同時に6トラックがあり、いままでのPloneカンファレンスよりも大規模でした。もちろん、Plone以外の話題も数多くありましたが、残念ながらポルトガル語での発表が多く、いくつかのセッションを聞きましたが、内容が分からず楽しむことができませんでした。
他には、オープニングから、政府関係者などが壇上に座り、オープンソースへの支援や素晴らしさを話していました。
さらに、例年のPloneカンファレンスと違うのは、コーヒータイム(おやつなどの提供も)がなかったことです(コーヒーについては無料で小さな物がいつでももらえましたが)。パーティーが別に開催されたことも驚きました。例年は、チケット購入者のすべてがパーティーに参加できる形になっています。
セッションについては、すべてのセッションが30分間と短く内容が薄い感じもしましたが、ポイントが抑えられている点や長時間英語を理解するという難しさはなく楽しめました。
キーノート
今回のカンファレンスでは、キーノートが1日2回ずつ、計6回ありました。
- State of Plone
- Big Data
- How It Happened (Pyramid)
- JavaScript
- Walt Disney Studio
- Show Pyrotecnico
私が参加したキーノートについて紹介します。
キーノート紹介1
State of Plone (スピーカー:Eric Steele / Paul Roeland)
毎年Ploneカンファレンスで話している内容です。今のPloneを知るには毎年気になるキーノートです。
リリースマネージャーである、Eric Steele氏とPlone Foundation Presidentである、Paul Roeland氏の2人の発表でした。
まずは、盛大なカンファレンスの開催に感謝し、ブラジルのユーザグループへのお礼がありました。それとともに、ブラジル内に多くのPloneサイトが存在し、多く利用されている現状に感謝していました。
Paul氏は、Plone Foundationの1年間の活動を紹介しました。Plone Foundationの概要説明、12個のチームに分けた活動、特にアクセシビリティへの取り組みやUIチームといった、新たに活動が始まったチームを取り上げました。 各チームがうまく機能し、関連しあうことで強固な体制がとれているようです。
次に、Eric氏による、Ploneのロードマップ、次期メジャーバージョンアップであるPlone5への取り組みの紹介がありました。Plone5の大きな変更点としては、次の事柄があります。
- Dexterityコンテンツタイプを標準に採用
- Plone4までは、Archetypesベースだった
- UI(ユーザインターフェース)の刷新
- Diazoがより使いやすくなる
- ツールバー(緑の編集バー)がコンテンツエリアからページ再上部に移動
- テンプレート/管理画面のHTML5化
- TinyMCE4の採用やドラッグ&ドロップでの画像挿入
- 他
- Skinレイヤーの廃止
- 古くから残っている、portal_skinの使用をやめる
- セキュリティ対策の強化
- XSSやJavaScriptなどへの対応
- テストカバレッジを上げる
-
- さらにスピードアップを図る
-
詳しくは、Eric氏が書いたドキュメントが参考になります。
他には、学習コストを下げる試みや、Webブラウザ操作でモデル定義ができる点、デザインテーマの編集もWebブラウザ経由で可能にする技術の標準化なども紹介しました。
来年にはリリースが予定されているPlone5への期待が高まるキーノートでした。
このキーノートの最後には、世界各国で行われたイベントの紹介、開発スプリントの紹介があり、東京で2013年2月に開催されたPlone Educational Symposium in Tokyo 2013も紹介しました。
キーノート紹介2
How It Happened(スピーカー:Paul Everitt)[発表資料]
Zopeコーポレーションの共同創業者である、Paul Everitt氏のPythonとの関わりの歴史の紹介でした。1994年の初めてのPython Workshopの開催に始まり、続いて会社を設立、その後Zopeの前身であるboboの開発から、Zopeをオープンソースにした話など、これまでのできごとを振り返りました。その中で多くのことを学び、OSSの素晴らしさなども一緒に共感するようになったようです。
その後も、2004年にはPlone Foundationが立ち上がり、2010年にはWebフレームワークであるPyramidが開発されました。そして今、ここブラジリアでPlone Conference 2013が開かれ、python brasil [9] と併設されていることの素晴らしさを強調していました。
過去の経験から多くのものを学び、OSSによる多くのコラボレーション、多くのイノベーションが生まれて今がある。このことへの感謝を表していたことが印象的でした。
開発が始まってすでに10年が経過しているPloneやZopeから改めて学ぶことも多く、また最近勢いを増しているPyramidの今後の活動についても気になる発表でした。
キーノート紹介3
Walt Disney Studio(スピーカー : Paul Hildebrandt)
アメリカのウォルト・ディズニー(Walt Disney)社のオープンソース、特にPythonへの取組みについての講演です。この講演ではビデオ撮影や録音が禁止されていました。
ウォルト・ディズニー社では、Pythonを多く採用しているそうです。社内でどのようにPythonを使っているのか、オープンソースとどのように関わっているのかという点について話がありました。
社内には大きく2つのチームがあり、アニメーションを作るチームとサーバなどのシステムを管理するチームに分かれていて、あわせて約60人程度のスタッフがいます。そのどちらのチームでもPythonを積極的に使っているようです。
実際の使用例としては、PyQtを使ったアニメーション作成補助ツールのGUIアプリを開発した事例があるとのこと。さらに、オープンソースへのフィードバックも積極的に行うようになってきているようです。
今回の講演については、上司に対してこのようなイベントがありセッションを持ちたいという話をしたらすぐに許可が出たそうです。OSSイベントへの関与も今後は積極的に行っていくとのことですから、期待しましょう。
様々なアニメーションを用いながら楽しい講演でした。
ここからは、私が聞いたセッションを順番に紹介していきます。
セッション紹介1
VirtualHostMonster + nginx - hosting 250+ Plone sites from 4 different plone installations in a single hostname(スピーカー : Everton Foscarini)
地元ブラジルでの事例の話を聞きました。多くのシステムやバラバラに作られた仕組みをどのようにURLにマッピングして、うまく同じ様に見せるのかという話です。アプリケーションの話ではなく、HTTPサーバやURLマッピング、キャッシュなどシステム周りの話を取り上げていました。
Ploneのベースになっている、ZopeはアプリケーションサーバでHTTP通信を受け付けるのですが、フロントのApacheやnginxなどと連携してURLを組み立てる仕組みがあります。 VHM(Virtual Host Monster)といわれるURLをマッピングする仕組みを用いることで、Plone上のURLの上位を書き換えることができます。それをうまく用いることで、複数のPloneと1つのURLをマッピングしているとのことです。
さらに、Ploneだけでは大量のアクセスに耐えられないので、Varnishによるキャッシュは必須事項として入れているとのことです。PloneにはZODBというオブジェクトデータベースが内蔵されていて、コンテツデータはすべてZODBに入るのですが、大きなサイトになるとデータベースの量が増大し、パフォーマンスが出ないことがあります。それを防ぐために、ZODBをコンテンツのパス毎に分割する技術も紹介していました。
私の仕事でも複数台のPloneを扱うことや、バーチャルホストなどURLをマッピングする技術を使っています。同じような悩みを、様々な技術で解決している事例を聞けたのは参考になりましたし、私が普段考えていることと大きく違わないことの確認になったことも良かったです。
セッション紹介2
High-availability, high-performance(スピーカー:Guido Stevens)[発表資料]
一つ前で紹介したセッションと同様に、普段から仕事で客先から質問を受けることの多い、高可用性/ハイパフォーマンスに関しての話でした。Ploneでどのように高可用性を保つのかという話題です。シングルポイントオブフェイラー(SPOF)をどのように無くすかについて、Ploneの仕組みの応用などを紹介しました。
PloneのベースにあるZopeには、アプリケーションサーバを複数にするZEOという仕組みがあります。キャッシュサーバにはVarnishを用いることでハイパフォーマンスへの助けをし、HAProxyでロードバランシングする話なども紹介していました。データベース部分は、最近オープンソース化されたZODBを複数にリプリケーションしてくれるZRSを用いることや、バックエンドのストレージにRDBMSを使う、RelStrageを用いる方法も言及していました。これらを組み合せることでSPOFを無くすことができるということでした。
ただし、Plone 4から標準導入されたバイナリファイルのストレージであるblobstrageにどのように対処するか、またロードバランサがSPOFになるので別の仕組みが必要になるという課題が残っているので工夫も必要だということでした。
Webサービスは公開すると落としたくない、しかし高価なハードやソフトへの投資は避けたいというニーズに答えるためにも重要なことだと思います。私自身も同様の課題に取り組んでいるので、共感でき、情報共有できたのでためになるセッションでした。
セッション紹介3
Understanding Plone Security(スピーカー:Fabiano Weimar dos Santos)
セキュリティに強いと言われるPloneですが、実際にどのような仕組みになっているのかを解説するセッションでした。
繰り返しになりますが、PloneはZopeというアプリケーションサーバの上で開発されているCMSパッケージです。ZopeはPythonというライトウエイトランゲージで開発されています。つまり、Zopeのセキュリティを理解し、Pythonが開発言語レベルでセキュリティ対策がされていることが重要なことになります。
このセッションでは、OWASP (Open Web Application Security Project)が公開しているTop10への対策をPloneではどのように行っているか、ということを説明しました。
Ploneはほぼ正確にこれらのものに対応しているため、安心して使えるということでした。
次に、Ploneの認証の仕組みであるPlone PASを紹介しました。
Plone本体コードとは分離して認証の仕組みを提供し、Zopeが持つセキュリティの仕組みに乗せることで、セキュアに保つようにしています。Zopeのセキュリティモデルは、ユーザ/グループ(User/Group)・ロール(role)・権限(permission)で管理されていることや、メソッドへのアクセス権の指定方法、コンテンツのワークフローによる状態の変更の話など、多くのポイントの紹介となり難しいセッションだったと思います。
しかし、Plone/Zope のセキュリティ関係のトレーニングをきちんと受ければ、安全に開発を進められるし、そのように実際にできているということでした。
私自身普段から説明が難しいと感じている、Ploneのセキュリティの話ですが、ポイントがきっちりとまとまっていてわかりやすかったです。
セッション紹介4
Collective.cover one year later(スピーカー:Andre Nogueira, Hector Velarde)[発表資料]
Ploneのアドオンである、collective.coverの紹介を行うセッションでした。
ページの複数の要素(画像や動画、リスト形式の情報など)を、まとめて表示してくれるコンテンツを作るためのプロダクトです。旧来、ContentPanelsやCollageという同じようなプロダクトがありました。これらの置換えになり、最新版のPloneでも動作を保証しているものです。さらに、AJAXを使って並び替えを行ったり、レスポンシブデザインへの対応も進んでおり、最新の技術が多く取り込まれています。
使い方のデモの動画がYouTubeにあります
ぜひとも使いたいプロダクトの一つになりました。
残念ながら、このプロダクトは日本語に翻訳されていませんでした。3日後の開発スプリントの際には、開発者から日本語化への協力依頼を受け日本のコミュニティで協力したいということを約束してきました。協力者募集中ですので、興味のある方はご連絡ください。
セッション紹介5
State of Pyramid(スピーカー:Paul Everitt)[発表資料]
Zopeコーポレーションの共同設立者の一人でもあり、日本にもZope/Ploneの普及の為に来日したことがある、Paul Everitt氏のセッションでした。最近、彼はPythonベースの軽量フレームワークであるPyramidのエバンジェリストとして動いていることが多いようです。
PythonのWebフレームワークといえば、DjangoやFlaskの名前がまず挙がることが多いですが、日本でもイベントなどでPyramidが紹介されることが多くなってきており、普及が進みつつあるようです。
PyramidはZopeの流れを組んでいたり、バックエンドにZODBが使えるなどPlone使いにとっても親和性の高いフレームワークです。当社でも積極的な採用をしています。
コミュニティベースでの開発を行っている点や、テンプレートエンジンやバックエンドデータベースなどを選択でき、部分的にうまく使える仕組みになっていることが、Pyramidの良い点であると思います。
会場に居た、DjangoユーザやFlaskユーザにPyramidを使うことを強く勧めるシーンなどは、講演者であるPaulの意欲的な点が見て取れる面白いセッションでした。
Plone Foundation ミーティング
年に一度のPlone最大のイベントである、Ploneカンファレンスの際に、Plone Foundationのミーティングが開催されます。これは、Plone Foundationが年間に行ってきた事業などを報告し、さらに予算の報告、決算の承認をミーティング参加者と共に行うものです。 今回は、来年度のBaordメンバーの承認もこのミーティングで行われ、 新たなBoardメンバー7人が決まりました。
Plone Foundationは、Ploneの知財管理などを主要な業務としていますが、より多くのユーザ獲得のためのマーケティング活動も積極的に行っています。今年は、日本で行われたPythonイベントである、PyCon APAC 2013 in JPをスポンサーとして支援しており、WebサイトにはPloneロゴが掲載されています。
いち企業が独占的に権利を所有するものではないPloneにとって、オープンソースの健全性という意味でもPlone Fondationの存在は大きなものです。この様に年に一度、みなに顔を見せて報告や次年度以降のことを話し合うのは、とても重要で意義のあることだと思います。
和やかな雰囲気の中、会議は1時間程度で終わり、最後には「今夜のソーシャルイベントは?」という質問がでました。ソーシャルイベントとは、日本語にすれば飲み会とか二次会のことです。「今夜もみんなで飲みに行こう」と、楽しい話で終わりました。
余談ですが、私を含めPloneカンファレンスへの参加者の半数程度は、お酒が大好きで、毎晩のように深酒をして、人によっては朝からカンファレンスに来ない人もいます。飲み会に参加していると揶揄している人もいるくらいです。
ソーシャルイベントへ
揶揄されることもあるとはいえ、ソーシャルイベントはカンファレンスの重要なイベント一つ。もちろん私も参加しました。
毎年カンファレンスに来ている仲間とともに、タクシーでオープンテラスのピザ屋さんへ向かい、多国籍な飲み会を楽しみました。そこにいた方々の国籍をざっとあげると、オーストラリア、フィンランド、スロベニア、アメリカ、アルゼンチン、スペイン、イタリアなど……、たくさんの国の方がいました。
久しぶりに会う仲間たちと話が盛り上がります。最近の仕事は何をしているのか、今回のカンファレンスはどうか、ブラジルの話、各国の事情など、話題が尽きることはありませんでした。
このような仲間ができ、普段は離れている仲間たちと一緒に仕事やコミュニティを盛り上げていける幸せを感じる初日でした。
次回予告
本稿では、カンファレンスの全体像、カンファレンスの初日(Day1)の内容をお届けしました。
次回は、カンファレンス2日目、3日目と開発スプリントについてお届けします。