58
aozorahackの これまでと サーバ移転について 2016/07/30 株式会社達人出版会 / aozorahack 高橋征義

aozorahack hackathon #1

Embed Size (px)

Citation preview

aozorahackのこれまでと

サーバ移転について2016/07/30

株式会社達人出版会 / aozorahack高橋征義

自己紹介● 高橋征義● 株式会社達人出版会代表

● 電子書籍の制作と販売● 一般社団法人日本Rubyの会代表● Re:VIEWコミッタ● 『たのしいRuby』など

私と青空文庫● aozora4reader (2010-)

● 青空文庫形式テキストファイルをSonyReader向けのPDFに変換する– https://github.com/takahashim/aozora

4reader● フォーマットの仕様がよく分からず難

儀した● Code for 青空文庫の運営に参加

本日のお話

本日のお話の流れ

● aozorahackについて● Code for 青空文庫

● サーバ移転計画の話● ハッカソンについて

● 青空文庫に関する資料

青空文庫について● 毎週のように使っている● たまに使う● 昔使っていたことがある● 今回はじめて聞いた

http://www.aozora.gr.jp/

http://www.aozora.gr.jp/cards/001779/card56649.html

http://www.aozora.gr.jp/cards/001779/files/56649_59494.html

aozorahack

githubのorganization

https://github.com/aozorahack

青空文庫に関連する

レポジトリを集約

aozorahackの経緯

2015/05/30

Code for 青空文庫アイデアソン #1

https://atnd.org/events/66230

aozorahack● アイデアソンのフォローアップ用

● その場で命名・発足● アイデアソンと関係なくても、青空文庫に関連するものであれば追加していく流れ

Code for 青空文庫開催のきっかけ

サーバ移転

いわゆる「青空文庫」のサイトが

移転するわけではない

青空文庫とは

http://www.aozora.gr.jp/

「インターネットの電子図書館、青空文庫へようこそ。」

http://www.aozora.gr.jp/guide/aozora_bunko_hayawakari.html

青空文庫とは

「青空文庫は、誰にでもアクセスできる自由な電子本を、図書館のようにインターネット上に集めようとする活動です。」

「図書館」という比喩● 青空文庫は「図書館」なのか?

http://www.aozora.gr.jp/aozora_bunkono_shikumi.html

http://www.aozora.gr.jp/aozora_bunkono_shikumi.html

「運営について」● 耕作員または工作員のみなさま● 呼びかけ人● 点検グループ● 広報● 会計● Web管理● 外部協力者のみなさま

「運営について」● 耕作員または工作員のみなさま 入力・校正● 呼びかけ人 顧問● 点検グループ 受付・受領・ファイル変換● 広報 渉外● 会計 資金管理● Web管理● 外部協力者のみなさま

読み手からは「図書館」に見える

運営している人たちにとってはちょっと違う

青空文庫と図書館の関係

● 読者にとっては図書館であっても、それだけではない

● 入力をする人がいる● 校正をする人がいる● 書誌情報とURLをリンクさせる● ⇒一種の「出版(者|社)」でもあるのでは

● 新しいコンテンツを「創作」していなくてもpublishingはしている

● 新しい翻訳作品が公開されたりもする

青空文庫≒図書館+出版(者|社)

● 図書館的な機能● 著作権保護期間完了済み等の自由に配布できるコン

テンツを公開する● ⇒静的ファイルの配信サービス的なもの

● 出版(者|社)的な機能● 入力・校正の状態を管理する● 入力済み・校正済みのファイルを管理する● ⇒機能としてはCMS的なもの

現状のしくみ公開コンテンツ

(静的ファイルツ)

入力・校正管理(CMS+状態管理)

配信Webサーバ・レンタルサーバ・静的ファイル

管理用Webサーバ・自前物理サーバ・DB内蔵

図書館部分

出版部分

現状のしくみ公開コンテンツ

(静的ファイルツ)

入力・校正管理(CMS+状態管理)

配信Webサーバ・レンタルサーバ・静的ファイル

管理用Webサーバ・自前物理サーバ・DB内蔵

図書館部分

出版部分

↑こちらが移転する

サーバ移転の計画

管理用Webサーバ● 入力校正管理サーバ

● DB+Webアプリ+バッチ● 入力・校正のステータス管理● 原稿と変換済みファイルの保管

● 現在は物理サーバで稼働中● データセンター内で運用されている(はず)● 現行機は2006年ごろに構築● OS: Turbolinux というレガシー感

管理用Webサーバ

DBファイル

�� � 耕作員 点検グループ 公開サーバへ

HTML生成バッチ管理用アプリ

移転先● さくらのクラウドで検討

● 日本法が適用される● 青空文庫は著作権にセンシティブな活動なので、日本法でないと大変そう

移転先● DBとWebは切り離す

● DBは別サーバにする● バックアップは別に一台用意する● こちらはVPSにするかも

移転先●OSはDebian系に変更● ミドルウェアは更新

●Apache 2.4● PostgreSQL 9.4● PHPは古いままで頑張る…

移転にあたっての問題点

移転にあたっての問題点

● やればできそう● 価格感も現実的なところに落とせそう● 管理サーバは頻繁なアクセスはないのでそれほどパ

フォーマンスもシビアではない● 古いところがあるのは頑張って対応する

● バージョンの更新については特に問題は言われていない

● ある程度は検証済● 単純な技術面ではないところが問題になりそう

現状の具体的な課題● サーバの代替機がない

● データ等のバックアップがあってもそこからリストアする先が確保されていない

● サーバの監視がない● 異常があるかどうかを検出するしく

み・事象発生時の一次対応等のワークフローがない

http://www.aozora.gr.jp/aozora_bunkono_shikumi.html

「運営について」「青空文庫は、インターネット上のボランティア活動です。よく誤解されますが、青空文庫は当初より明確な代表を置いていません。」● 「CEO」がいない● 「CTO」もいない

技術面での中長期的な意志決定を行う主体が

明確な形では存在していない↓

新しいことを判断するのが難しい

その対策●取り付く島もないわけではない

● 問題意識、危機意識は共有できてる● 提案の検討はできるが、抽象的なレベ

ルだと理解が難しい● 具体的なものがあれば検討が進むので

はないか

ハッカソン

ハッカソンの目的● コンテストではない

●優勝賞品とかはない●投票はやりたい

● 新規事業開発とかではない● すごいアイデアやビジネスを求めているわけではない

ハッカソンの目的● 青空文庫に対する活用法の提案● 青空文庫に必要な機能の洗い出し● 青空文庫に興味を持っているエンジニア・クリエイターとの交流

ハッカソンで使えるデータ● 作家別作品一覧拡充版CSV● githubaozorabunko/aozorabunko

作家別作品一覧拡充版CSV● 青空文庫の書誌情報

● http://www.aozora.gr.jp/index_pages/list_person_all_extended_utf8.zip

● DBから毎日生成●ちょっと無理がある構成

–1作品に複数の著者等が関わっている場合、複数レコードになる

● doc/csv.md に説明

aozorabunko (github)● 青空文庫のスナップショット(らしい)● 毎日更新されている●詳細はあまりよく分かってない● でかい

● コピーがあるのでそれを配布した方がはやいかも

その他の仕様

青空文庫形式テキストファイル● 青空文庫のテキストファイルのマークアップ● ルビなどをマークアップできる● 「注記一覧」「組版案内」に説明がある● HTMLへのコンバータは公開されている

● https://github.com/aozorahack/aozora2html● XHTML版はこれで生成されているとのこと

● 仕様は未整備● githubのaozorahack/specsにま

とめられるといいですね(願望)

青空文庫の文字コード● JIS X 0208で包摂

● JIS X 0213化は試験版のみ● テキストファイルはShift_JIS+注記記法

● JIS X 0208にない文字は注記記法で記載● aozora2htmlではUnicodeの数値実体参照に

変換するオプションがある● https://github.com/aozorahack/specs

/blob/master/aozora-text.md で説明

青空文庫サイトの構造● www.aozora.gr.jpのファイルそのものはg

ithubのaozorabuko/aozorabunkoから取得できる● 10GBくらいあるので結構時間がかかる

● 主な階層構造をRAML形式で記述したもの● https://gist.github.com/takahashim/b5c4efceb85a7defb1d572287a2da8d8に置いてみました

まとめ● aozorahackという活動があります● 管理用Webサーバが移転します● ハッカソン頑張りましょう!