これ僕.com:行動分析学マニアがおくる行動戦略

意図と行動のギャップから生じる「不自由さ」への挑戦。果たして僕たちに自由はあるのか?

Webサービスを公開し、運用するために

会社でプログラミングはしてるけど、プライベートでWebサービスを作って公開するには、どうすればいいんだか・・・という過去の私みたいな人のために。

とりあえず、前提として。

  • Webサービスを構築するためのある程度のスキルはある
  • 何を作りたいかも決まっている
  • でも、自分でゼロからスタートして公開までの段取りがよく分からん

1.開発言語、フレームワーク、データベースを決める

何はともあれ。持ってるスキルにあっているものが良いと思うけど、新しい言語やフレームワークにチャレンジするのも楽しいかも。お好きなものをどうぞ。ただ、all in oneなフレームワークだと、色々揃えなくてもいいから楽。
言語を決めたら、それに合わせた開発環境を用意して、Hello Worldが動く程度には動作を確認しておく。
私の場合は

2.バージョン管理できる環境を整える

やっぱり開発するならバージョン管理システムを導入しておきたいところ。cvsでもsubversionでも最近流行りのGitでもいいので、開発を始める前に整えておく。
私の場合は

3.時間の使い方を考える

これまでやらなかったことをやるということは、その分、何かが出来なくなるということなので、生活のどの辺りの時間を開発に割り当てるか考えよう。
平日の場合、休日の場合のそれぞれで。
私の場合(O.SHI.GO.TOのリリース以前で現在は違う)

  • 平日
    • 早起きしてノートPCを持ち歩き、出社前の1時間くらいをカフェで
    • 仕様を考えるのは主に電車の中
    • 読書の時間が減った
  • 休日
    • 土日のどちらかは5時間以上を確保
      • 平日にやった作業を形にする
    • 何が減ったのかな・・・将棋と睡眠とダラダラWebを見ている時間?

4.プレッシャーをかける

プライベートな時間をつかった開発で、一番難しいのは形になるまで作り込むことだと思う。ちょっとだけやって放置してしまうことが多い。仕事と違って、強制力のある締め切りなどがないから、何が何でもやるということまで持っていくのが難しい。
なので、上手く自分にプレッシャーをかける方法があるといい。Blogを持っているなら○月○日にリリースしますと宣言したり、Award on Railsのようなコンテストの締め切りを意識してみるとか。
私の場合

  • GWが始まった時に、GW最終日にO.SHI.GO.TOをリリースするとブログで宣言した

5.Webサービスを稼働させる環境を用意する

開発も進んである程度形になってきたら、Webサービスを公開するためのサーバーを用意しよう。パッと思いつく選択肢は

だろうか。個人的には自前サーバーは大変そうだなぁ、と思う。小回りはきくだろうけど、停電したりとか、24時間稼働するマシンが部屋にあるストレスとか。Google App Engineなんかはお手軽に始められそうなので、とっかかりとしては良い選択肢かもしれない。ただし、言語等が決まってしまうかもしれないので、その辺を許容できれば。
レンタルサーバーの場合、その中で選択肢がいくつかに分かれるけど、コスト的に個人で許容できるのは

  • 共有サーバー
  • VPS

あたりじゃないだろうか。共有サーバーは、やれることがある程度決まってしまう場合が多そうだ。VPSは仮想ではあるが、root権限を貰えるので、専用サーバーを丸々一台使っているのと変わらない感覚。だけど、その分コストは高い。
ちなみに共有サーバーやGoogle App Engineなど、開発言語が制限されてしまうケースもあるので、選定だけは開発前にやっておいた方がいいかも。私はRailsありきで探したけど・・・。
私の場合

6.どうやって周知するか考えよう

せっかく公開したんなら、なるべく多くの人に使ってもらいたい。そのためにも、まずは知ってもらうことから始める。手段としては、

など。こちらの記事が参考になるんじゃなかろうか。
私の場合

7.バックアップをどうするか考えよう

Webサービスを運用し始めて、一番守るべきはデータとソースコード。これがあれば、何かあっても復活することができる。こいつらをどうバックアップするかを考えておこう。時間軸にそったバックアップと、物理的なバックアップの2種類があった方がいい。
私の場合

  • データベースは毎日エクスポート
  • ソースコードレンタルサーバー上にリポジトリを置いて、最新コードがローカルとサーバーの2箇所に存在するようにしている
  • 物理的な障害に備えて、使えるねっとのDailyバックアップオプションを利用(月500円)

8.毎日チェックすることを決めよう

公開後は稼働状況をチェックしたい。ログをみてエラーがないかとか、ユーザー数はどう推移しているかとか。
公開したWebサービスにバグがあっても、それをユーザーが教えてくれるとは限らない。大抵の場合は、それで使うのを止めてしまうんじゃないだろうか。だから、なるべくログをチェックして、エラーが発生していないかチェックするようにしよう。
ユーザー数の推移などは、増えていけばモチベーションになるし、減っていけば何かを改善しなければならないと思える。登録ユーザー数と、アクティブユーザー数の両方を確認しておきたい。利用状況を把握するために、ユーザー数に加えて、登録されたデータ数などもみると良いかもしれない。


うーん、10個まで書こうと思ったけど、力尽きた。他にも色々ありそうなので、逆に教えていただけるとありがたい。