2008年03月
2008年03月31日
2008年03月30日
現在、社内で、自社開発したサービスが四つほど稼動している。
また、サーバの種類も、レンタルサーバ、専用サーバ、社内サーバと増えてきている。
その結果、プログラムの改良などを行った場合の、それを置き換える手順が、
ややこしくなってきた。そこで、Rubyの勉強も兼ねて、
サーバプログラムの更新を自動化する仕組みを構築した。
以下のような仕組みからなる。
・三種類のパッケージ(「テスト用」「運用用」「配布用」)を簡単に作る仕組み
これまでは、テストサーバを構築する際に、運用用のパッケージの設定を
手動で変更したりしていた。しかし、そういうことをすると、良くミスするし、
ストレスにもなる。
・テストサーバのプログラムを更新する仕組み
・運用サーバの開始、停止、再起動の仕組み
・運用サーバのプログラムを更新する仕組み
運用サーバ上のファイルを更新する。
途中で失敗しても大丈夫なように、適切にバックアップを取ったり、
また、リビジョン番号、バージョン番号(後述)の記録なども行う。
・配布用パッケージを更新する仕組み
配布用のパッケージを、○○○-0.5.40.zip のようなファイルにして
配布用エリアにアップロードする。
・リビジョン番号、バージョン番号を埋め込む仕組み
運用用パッケージや配布用パッケージには、リビジョン番号とバージョン番号を
埋め込む。リビジョン番号は、Subversionのリビジョン番号で、
これを入れておくことによって、いつでも古いバージョンに戻せるようになる。
また、バージョン番号は、0.5.40 といったような可読性の高い番号で、
配布用パッケージの名前付けに使用する。
バージョン番号は、パッケージを作るたびに自動的にインクリメントされる。
また、リビジョン番号取得時に、現状のソースコードが、リポジトリと同期が
取れているか調べる仕組みを持つ。
Subversionのリビジョン番号を取得したり、リポジトリと同期が
取れているか調べる部分は、SVNkit(http://svnkit.com/index.html)
というJavaのライブラリを使った。
このライブラリはなかなか完成度が高そうだ。他でも使えるかもしれない。
また、サーバの種類も、レンタルサーバ、専用サーバ、社内サーバと増えてきている。
その結果、プログラムの改良などを行った場合の、それを置き換える手順が、
ややこしくなってきた。そこで、Rubyの勉強も兼ねて、
サーバプログラムの更新を自動化する仕組みを構築した。
以下のような仕組みからなる。
・三種類のパッケージ(「テスト用」「運用用」「配布用」)を簡単に作る仕組み
これまでは、テストサーバを構築する際に、運用用のパッケージの設定を
手動で変更したりしていた。しかし、そういうことをすると、良くミスするし、
ストレスにもなる。
・テストサーバのプログラムを更新する仕組み
・運用サーバの開始、停止、再起動の仕組み
・運用サーバのプログラムを更新する仕組み
運用サーバ上のファイルを更新する。
途中で失敗しても大丈夫なように、適切にバックアップを取ったり、
また、リビジョン番号、バージョン番号(後述)の記録なども行う。
・配布用パッケージを更新する仕組み
配布用のパッケージを、○○○-0.5.40.zip のようなファイルにして
配布用エリアにアップロードする。
・リビジョン番号、バージョン番号を埋め込む仕組み
運用用パッケージや配布用パッケージには、リビジョン番号とバージョン番号を
埋め込む。リビジョン番号は、Subversionのリビジョン番号で、
これを入れておくことによって、いつでも古いバージョンに戻せるようになる。
また、バージョン番号は、0.5.40 といったような可読性の高い番号で、
配布用パッケージの名前付けに使用する。
バージョン番号は、パッケージを作るたびに自動的にインクリメントされる。
また、リビジョン番号取得時に、現状のソースコードが、リポジトリと同期が
取れているか調べる仕組みを持つ。
Subversionのリビジョン番号を取得したり、リポジトリと同期が
取れているか調べる部分は、SVNkit(http://svnkit.com/index.html)
というJavaのライブラリを使った。
このライブラリはなかなか完成度が高そうだ。他でも使えるかもしれない。
2008年03月28日
仕事の経過報告を行った。
ここのところ調査していた内容について報告した。
だいたい理解していただいた感じだ。適切なアドバイスもいただいた。
こういうふうに仕事が進むと、仕事が楽しくなる。
帰ってからは、2007年度分のデータのバックアップを行った。
開発用のデータは、自動的にオンラインストレージにバックアップする
仕組みを作っている。
それ以外のデータのバックアップ用にハードディスクがあって、
気が向いたときに、ノートPCのデータを同期するようにしている。
さらに、もう一台ハードディスクがあって、二ヶ月に一回くらい、
バックアップ用のハードディスクの内容を同期するようにしている。
ちなみに、プログラマ二年目くらいのときは、
作ったものに一切バックアップを取ってなくて、それでやっていけることが
少し誇らしくもあったのだけれど、今は、もう駄目だなあ。
でも、そのかわりに、手間をかけずにバックアップを取る仕組みを構築している。
ここのところ調査していた内容について報告した。
だいたい理解していただいた感じだ。適切なアドバイスもいただいた。
こういうふうに仕事が進むと、仕事が楽しくなる。
帰ってからは、2007年度分のデータのバックアップを行った。
開発用のデータは、自動的にオンラインストレージにバックアップする
仕組みを作っている。
それ以外のデータのバックアップ用にハードディスクがあって、
気が向いたときに、ノートPCのデータを同期するようにしている。
さらに、もう一台ハードディスクがあって、二ヶ月に一回くらい、
バックアップ用のハードディスクの内容を同期するようにしている。
ちなみに、プログラマ二年目くらいのときは、
作ったものに一切バックアップを取ってなくて、それでやっていけることが
少し誇らしくもあったのだけれど、今は、もう駄目だなあ。
でも、そのかわりに、手間をかけずにバックアップを取る仕組みを構築している。
2008年03月24日
これまでは、共用サーバにknowledge-flowのドメインを割り当てていたのだが、
そこではhttpsが使えない(もしかしたら使えるかもしれないが)ので、
サービスをすべて専用サーバに移行させることにした。
ホームページデータの移行、httpsの設定、メールサーバの構築、
Firewallの設定見直しなどを行った。
あと、ついでにVNCの設定なども行った。
(Firefoxでサイトを自動巡回してキャプチャを取る仕組みがあるのだが、
それをこのサーバで動かしたかったので。)
作業中、/etc/hostsを書き換えてネットワークを再起動したらサーバに
つながらなくなってしまい焦った。
幸いマシンを再起動してもらったらつながるようになったが、
設定変更を依頼すると5250円かかるらしいので、今後気をつけたいと思う。
最近はサーバの設定もだいぶ簡単になった。
しかし、それでもところどころつまづくところはある。
こういう作業で重要なのは、一度調べたこと(つまづいて解決いたこと)を、
自分の中で蓄積していく仕組みだと思う。
そこではhttpsが使えない(もしかしたら使えるかもしれないが)ので、
サービスをすべて専用サーバに移行させることにした。
ホームページデータの移行、httpsの設定、メールサーバの構築、
Firewallの設定見直しなどを行った。
あと、ついでにVNCの設定なども行った。
(Firefoxでサイトを自動巡回してキャプチャを取る仕組みがあるのだが、
それをこのサーバで動かしたかったので。)
作業中、/etc/hostsを書き換えてネットワークを再起動したらサーバに
つながらなくなってしまい焦った。
幸いマシンを再起動してもらったらつながるようになったが、
設定変更を依頼すると5250円かかるらしいので、今後気をつけたいと思う。
最近はサーバの設定もだいぶ簡単になった。
しかし、それでもところどころつまづくところはある。
こういう作業で重要なのは、一度調べたこと(つまづいて解決いたこと)を、
自分の中で蓄積していく仕組みだと思う。





















