2011年12月18日日曜日

Twitterの「必読」URL抽出サービス リリースしました

「多量のtweetの中から面白そうな情報だけ選択したい」そのために、作成しました。
サービス概要
  • tweet中「必読」という文字列とURLがあれば抽出します。
  • 短縮URLの場合展開し、URLをカウントします。
  • 過去1日、1週間、1ヶ月のURLカウント数のtop20がリスト表示されます。
  • URL先の内容については関知しません。ご了承ください。

システム構成
  • 言語:Perl
    使い慣れているので。Perlでのobject指向の書き方を勉強し、他のスクリプト言語への移行も計画中
  • DB
    MySQLを使用
  • WAF(Web Application Framework):Amon2
    CatalystMojolicious::liteも勉強してみたが、結局、YAPC::AsiaでAmon2の作者の方の発表を聴いて身近に感じたから。後、簡単そうだったので。
  • PaaS:dotcloud
    PerlやMySQLが使えるPaaS。fluxflexもperl対応しているようだが、今はdotcloudの方がCPANモジュールinstallなど使いやすそうなので
  • バージョン管理
    dotcloudで、バージョン管理していないようなので、githubを利用

進め方
  1. サイト企画
  2. Twitter APIの学習
  3. 言語の選択
  4. WAFの選択
  5. サーバ(IaaS,PaaS)の選択
  6. バージョン管理方法の選択
    今回はgithubを使用
  7. コード作成
  8. 動作確認、デザイン修正
  9. デバッグ
  10. google analytics設定
  11. 免責などの記載
  12. favicon作成
    favicon generatorを使用
  13. 連絡先のtwitterを準備
  14. DNS切り替え
    myDNSを使用
  15. URL監視設定
    cmanを利用
  16. リリース、周知

ハマりポイント
  • dotcloudがいまいち安定しない
    • 正しくコンテンツをpushをしてもサイトが正しく表示されない事、ssh接続ができない事が何回かあった。その時には別アカウントを作成して、切り分けを実施した。結局、別アカウントだと正常に動いた。Forumでも同様の質問があり、supportに連絡してほしいという結論になっていた。
    • で、やっと動作したかと思ったら、翌日には動かなくなっていた。この時はrestartを実施して、復旧した。
  • (今回は不要だったが)apacheでamon2を動かす方法がよくわからなかった
    • dotcloudの運用を諦めて自分のサーバ上で構築を検討していた際、既存の環境のapacheでamon2を動かす方法を調べてたがまだ情報少ない。結局はapacheでPSGIを動かす方法となるのだが、正常動作確認には至らなかった。

todo
  • logの確認、デバッグ
  • サイトの安全性チェック
    googleでできそう。
  • 公式RT対応

今後
  • 本サービスのチューニングやってみたい。ボトルネックでてくるぐらいまでになってくれれば。。。
  • 今回のdotcloud+amon2の組み合わせを使って、他サービスも作ってみたい。作成時間は短縮できるハズ。
  • WAFを使っていない作成済のサービスをAamon2を使って再構築。
  • 他PaaSを利用してみたい。
    Rubyでnode.js勉強して、Herokunode ninjaなど。
  • NoSQLも
    Cassandra、mongoDBあたり試せるようなサービス考え中。

変更履歴
  • 2012/8/26 githubを追記
このエントリーをはてなブックマークに追加