paperboy & co.でやったこと
paperboy & co.(以下、ペパボ)に入社して6ヶ月が経ちました。
ちなみにペパボはどんなことをやっているかというと、サイトのホスティングやドメインの提供など、主にインターネットの場所を提供することをやっています。
僕は担当しているサービスは昔からあるサービスでレガシーコードなのです。
で、この6ヶ月で業務をやりつつ開発環境の改善をけっこう頑張ってやっていました。
入社当時はどんな状態かというと、以下のような感じです。
一つの環境をみんなで開発していた
サーバ上のファイルにsambaでアクセスして開発していました。
誰かがファイルを変更していると同じファイルは触れません。
FTPで手動でファイルをアップロードしていた
デプロイの自動化ができておらず、FTPクライアントで手動でアップロードしていました。
バージョン管理ツールの本来の使い方ができていない
本来であれば、バージョン管理ツールのリポジトリからチェックアウトしたファイルを本番にデプロイするべきですが、ファイルをFTPで手動でアップロードしたあとにコミットしていました。
バージョン管理というよりは、バックアップ的なツールとして使われていました。
テストがない
テストがないので、ソースを修正したときの影響範囲がわかりません。
この環境を改善しようということで、半年間改善してきました。
現在は以下のような感じです。
個別に開発環境が持てるようになった
各個人でバーチャルホストを切って開発ができるようになりました。
VMを立ち上げてそこで開発することもできます。
VMの作成には、ペパボのテクニカルマネージャーのmizzyさんがつくったmaglicaを使っています。
webistranoでデプロイ自動化
ボタンクリックでデプロイができるようになりました!
SVNからGitへ移行
SVNよりGitのほうが使いやすい!
GitHubも使えますしね。
GItHubでの運用
ペパボではGitHubで運用しているサービスが多く、GitHubで運用していくことにしました。
それまで僕自身はGitHubを使ったことがなかったのですが、ショートカットやpull requestがとてもいい感じで気にいっています。
テスト自動化
基本的にはwebテストでやっています。
レガシーコードをテストができる形に書き直すのはコストがかかるので。
seleniumを使って書いたテストをJenkinsで自動化して実行しています。
結果はIRCに通知されます。
といった感じです。
苦労したところ
GitHubへの移行のところでけっこう苦労しました。
パスワードファイルは上げない方針だったのでソースファイルからそれらしいところを探して、外部ファイル化しました。
また、リポジトリと運用中のソースにけっこう差異があったので、その対応もけっこう大変でした。
基本的には、運用中のファイルを正として、よくわからない部分は既存の仕組みを知っている人に聞いたりして解決していきました。
次に、デプロイ自動化のところがけっこう大変でした。
webistranoのファイル構成は、DocumentRootがcurrentフォルダになります。
DocumentRootが変わると動かない部分がでてきたので、その部分を地道に直していきました。
これからやっていくこと
システムが古いので、ミドルウェアのバージョン上げたりしないと今後が厳しいかなといったところです。
まあ、その辺りは僕より詳しい人がいるので、僕はがりがりコード直していく感じになると思います。
あとは、レガシーコードというサバンナをオアシスに変えていけるように、テストを充実させていかないとなーと思っています。