裏側では大幅なシステムアップデートを行いました。裏側では大幅なシステムアップデートを行いました。(フェーズ1)裏側では大幅なシステムアップデートを行いました。今日はいつもと趣旨を変えて、ひだまりeyesのサイトについての中の人として裏側で何が起こっているのかを書いてみたいと思います。ブログというだけあって、ひだまりeyesへの備忘録を兼ねた日記です。中はこんな感じなんだって思っていただけたら開発者冥利に尽きます。先日の6月3日の夜8時からひだまりeyesサーバーのプログラムを大幅に改修しました。みなさんの画面側では何か変わった?と思われるかも知れませんが、データベース構成などを将来拡張しやすいように、またサーバーに負荷が掛かりにくく致しました。人間の体でいうところのインナーマッスルを強化した感じでしょうか?プログラムというのは最初の設計が一番大切で、いかに将来にわたって安定的に動くのか?変更とかに柔軟に対応出来るか?サーバーに局所的に負荷が掛からないようにするか、数が増えても対応出来るか?というのが大切です。俗に言う美しいプログラムという物です。言いますと、いままではここまで爆発的にひだまりeyesが支持されると思っていなく、その部分の詰めが甘かった部分がありました。そこをじっくり考慮したシステムへの改修です。ひだまりeyesに関わるまでwebシステムというのは普通に動いて当たり前という認識でしたが、こっち側(開発側)に足を突っ込んでみて思ったのは、プログラムというのは全てが理論的に100%正しくないと正常に動かないということです。100%の正しい理論のべき乗の上に成り立っているんですよね。いうと100%純粋の真水でしか動かない、0.001%でも不純物があるとシステムとしてはNGです。(まぁ、現場からいうと100%の純水は理想論ですが、そこに向かってやっております。)プログラムの改修というのは大まかにいうと、運用しながら少しづつ変更してやっていくパターンと水面下で別サーバーを立てて0から作り直してえいやって入れ替えるのと2パターンあるのですが、今回は後者のやり方でした。すごーくリスクが高いのですが、自分の思ったとおりに作ることが可能です。十分なテストと検証をすれば(自分たちにある程度ありきれる目処があれば)こちらの方が数倍以上のメリットがあります。弊社では1ヶ月前から相当な準備をしてテストサーバーで準備を繰り返しました。かの任天堂社長だった天才プログラマー岩田さんはファミコンゲームの名作「MOTHER」にて「いまのプログラムを生かして作ると3年かかる。一から作れば1年以内にできる」と断言。実際、その通りにやりきったそうですが、ひだまりeyesもまさにそんな感じでほぼデータベースの所は1からつくりなおしました。6月3日金曜日午後8時。ひだまりeyesのサイト完全閉鎖。ギアをトップに入れ全力で始める。すべては段取りしていたとはいえ、朝までの限られた時間だから、時間はタップリあるというのに落ち着かない。作業・確認を終え、サービスを再開。その時点で、全て順調に稼働。私とプログラマー一同ほっと一安心。データはパワコンから上がってきてない(夜なので当たり前だが)のでその時を待つ。実際は4時頃から北海道では発電がはじまるのだが、最終メンテナンスがはじまっており、それが終わらないと確認が出来ない。いても立ってもいられず、取り敢えず気を紛らわすためにウォーキングに出る。曇り空だった心ここにあらずのような感じでした。午前6時メンテナンス終了の知らせがスマホに入り、会社へ戻り、パソコンとにらめっこ。いつものひだまりeyesのログイン画面が表示されて、ログインできたときはほっとしました。第二創業みたいな感じ。あとはひたすら全てのパワコンのデータが取得できているか確認する。明らかにいままでよりもきびきびした反応。カメラも問題なく表示される。端末から要求されるタスクにも並列で処理され、システムへの負荷が減る。