皆様、いかがお過ごしでしょうか?
オークファンで基盤技術を担当している @gessy0129 です
今回はシステムがカオスになる要因
というかオークファンのシステムの中でこれはカオスだと思ったものを発表したいと思います
1. mount, mount, mount, mount
大量のデータを効率よく使うために一台のサーバを複数台のサーバでmount して使用しています
結果、あるサーバがどのサーバにmount されてるのか分からなくなってきました。。。
ヒドいものだと10台位のサーバから利用されているのではないかと思います
解決策
EFS やS3に移行をしていっています
2. ドキュメントはどこ?
弊社は数年前からQiita:teamを利用し、最近kibelaに載せ替えました
それ以外にも有象無象のチャットツールを頻繁に変更したり、ドキュメント置き場を変更したりしてきています
チャットツールの変遷だけでも、Skype -> Talknote -> Slack と遷移しています
また、ドキュメント置き場もQiita:teamやら、GoogleDrive、Redmineのwiki、MicrosoftのSharepointなど様々です
結果、 開発時にドキュメントは残す ということは習慣づき、レビューでもドキュメントのレビューが入りますが、
運用時にドキュメントを探さないで再度ドキュメントを構築する という事になっています
解決策
ドキュメントを探すことを習慣づけてます
それ、kibelaにあるよ!が合言葉
3. 車輪の再発明
古いシステムをリビルドしたい!
よくある欲求だと思います
しかし、10年以上運営しているとシステム自体がかなり巨大化しており、全部のシステムをリビルドするのは莫大な時間とコストがかかります
そこでやりがちなのが、 特定の機能だけをリビルドする というものです
結果、なにが起きるか?
リビルド中も何故かその機能のPDCAは走り続け、いざリニューアルをしようとした時に古いものにはあるけど新しいものにはない
そんな事がよくあります
そして、じゃぁ、古いところにあるものは古い方を使い、新しいものは新しく作るものだけにしよう
こうして、同等の機能が持つものが2つ動くことになります
解決策
頭を抱えてます。。。
4. /etc/hosts がいっぱい
弊社、内部DNSは用意してないので、サーバーを見る時はIPアドレス直指定が過去のルールでした
しかし、プログラム内にIPアドレスがいっぱいあるとよく分からなくなってくる
そう考えた昔の担当者がいたのでしょう
/etc/hosts
にいっぱい情報が書いてあって、そこを内部DNSとしています
しかもこの内部DNS、書き方のルールが統一されていない
例ですが同じIPアドレスなのにこんな風に書き方が違うのです
192.101.11.52 kensaku.aucfan.naibu
192.101.11.52 search.aucfan.private
解決策
AWSが素晴らしいことにinternal なRoute53を提供してるので、現在そこに移行中
ただ、おいおいマジか。。はまだあります。。。
まとめ
カオスになる要因は他にもいろいろあると思います
しかし、長年運営しているといろいろと弊害も出てきます
その弊害を対応していくといろんな技術が身につくので弊社へのエントリーぜひお待ちしております!