- 営業職
- テレワーク リモートワーク
- 企画職 リモートワーク
- Other occupations (2)
- Development
- Business
【開発者インタビュー】1,500万ダウンロード『ルナルナ』を支えるクラウドシステム開発技術 ~ユーザーに素早く価値を届ける~
Photo by Javier Allegue Barros on Unsplash
1,500万ダウンロードを突破し、多くのユーザーに利用される『ルナルナ』は2000年にフィーチャーフォン向けサービスとしてスタートし、ライフステージや悩みに合わせて女性の一生をサポートしています。
今回は、『ルナルナ』が素早くユーザーに価値を届けるための開発体制の構築について、2015年から5年間に渡り『ルナルナ』に携わってきた開発者に聞きました。
『ルナルナ』の開発におけるターニングポイント
―現在の『ルナルナ』の開発・運用環境について教えてください。
『ルナルナ』は現在クラウド環境で開発を行っていますが、オンプレミス※からクラウド環境に移行する大規模なサービスリニューアルがターニングポイントになったと考えています。
私が『ルナルナ』の開発メンバーとして加わったタイミングは、ちょうどオンプレミスからMicrosot Azureのクラウド環境に移行した直後でした。当時はクラウドに移行したてということもあり、従来の作業フローからの変更点も多く、これから作業を円滑に進めて行くためのフローも整っていない状態でした。最初の半年から1年程度は移行した運用環境のことを勉強しながら、サービスを安定的に運用し、改善していくために、企画者から上がってくる要求にオフショア拠点である中国の開発者と連携しながら対応する日々でした。
クラウド環境に移行したことで、2週間程度の短期間で開発・実装とテストを繰り返し行っていくアジャイル開発を取り入れることになったため、リニューアル以前よりも開発への依頼がとても増えました。開発を円滑に進めるために、フロー整備を行い、世の中の変化やユーザーのニーズに素早く応える体制を構築しました。その結果、サービスの改善速度が上がったり、情報メディアなどのサブサービスを複数立ち上げるなどの効果が表れてきました。
クラウドに環境を移行した最大の目的は“ユーザーが求める機能やサービスを利用することによって得られる利点を、より多く、早く届けられる体制を実現すること”ですが、同時にクラウド自体も変化に富んだシステムであることから、当社サービスに携わる関係者一同が日々その目標に向かって現在も業務に励んでいます。
―当時、クラウド環境への移行のハードルは大きかったのでしょうか?
当時は大きなハードルがありました。開発言語がJavaからC#に変わったことで、既存のシステムを開発していたチームとは別にクラウド環境での開発を進めるためのチームを作って、元のシステムと同じように動作するサービスを一から作り直すようなイメージです。また、元のシステムを開発していた開発者もクラウド移行後に対応ができるよう、同時進行で勉強をし直していました。
今でこそ、新規でサービスを作る際にはクラウドでの開発が一般的となっていますが、当時は開発・運用環境にクラウドを選択する企業はそこまで多くなく、クラウドシステム自体も安定していない状態でした。そのため、実装を行ってみて初めて分かる不具合などもあったので、それを解消するトラブルシューティングの実績も多く溜まっていきました。『ルナルナ』をクラウド環境に移行したことによるトラブルシューティングの実績は、他社が持っていない開発における強みとなる部分だと考えています。
大きなハードルはありつつも、当社では『ルナルナ』に限らずあらゆるサービスでユーザーのニーズに応えるために最適な開発環境を模索し、積極的にチャレンジする文化が根付いていたことも、まだ世の中で実績が少ないクラウド環境への移行に舵を切る後押しになったと思います。
サービスにあまり変更を加えずオンプレミスのシステムで確実に運用していくという選択肢もある中、当時『ルナルナ』はスピーディに開発を進めて行くことでユーザーに価値を提供していく道を選びました。ただし、多くのユーザーに利用されている健康についての大切な情報をお預かりするサービスということもあり、リニューアル後2年間程度は安定したオンプレミスの環境も平行利用しつつ、何段階かに分けてクラウド環境に完全移行する形を取りました。
―クラウド環境へ移行したことによる利点は?
『ルナルナ』をはじめとして、当社のB to Cサービスの多くがユーザーに価値を素早く届けることを目的にクラウドでの開発・運用体制を構築してきましたが、この知見は当社が取引先企業の開発を担う際にも生かされています。
オンプレミスで運営しているサービスをクラウド環境に移行する際は、複数あるクラウドシステムのうちどのクラウド環境を選択するかという点が悩むポイントになると思います。また、現在のサービスの機能要件を満たせるのかを見極めるために時間がかかります。
当社では『ルナルナ』や『music.jp』等、様々な分野の200を超えるサービスを運営しており、各々の目的に合わせたクラウド環境を選択し、開発を行ってきました。そのため新しくサービスを始める際にも、サービスをオンプレミスからクラウド環境に移行する際にも、知見を基に最適な環境を選択し、開発を進めることができます。
『ルナルナ』の大規模トランザクション処理技術
―『ルナルナ』のような多くのユーザーを抱えるサービスならではの運用の難しさや工夫はありますか?
現在アプリダウンロード数が1,500万を超える『ルナルナ』だからこそのトラブルが大小問わず発生しましたが、そのたびにトラブルシューティングを行い、再び発生することがないよう対策を行うサイクルを繰り返していくことが、安定したサービスの提供に繋がっています。
例えばクラウドに移行後、一部のシステムでは秒間に1000以上のリクエストを超えるなどしてアクセスが集中してサービスが利用しづらい状態になってしまうというトラブルを何度か繰り返している時期がありました。要因として、ユーザーがサービスにアクセスすることで発生する一連の動作データ(トランザクション)がサービスの機能が定期的に拡張されていくなかで、当初の設計では問題がなかった部分が総合的に性能不足になってしまったことなどが挙げられます。その課題に対しては定期的に調整と改善を行ってきました。
具体的な改善策として、まずはピークタイムにどれくらいのユーザーがアクセスしているのかや、どのような操作パターンの比率が多いのか、といったデータを過去にさかのぼって調査を行えるようにしました。これには、株式会社はてなの「Mackerel」というサービスを活用しています。
これによって直近のアクセス傾向や今後の予測をもとに瞬間的にどの程度のデータを処理しなければならないのかを算出し、その値をもとにサービスに意図的にデータ処理の負荷をかける「負荷テスト」を繰り返し実施しています今後もあらゆる状況を想定したシステムを構築することを目標にこの取り組みを現在もすすめています。
クラウド環境の特性上、サービスの機能は複数のシステムで構成するかたちを取ることが多いため、一ヶ所のサーバーにアクセスが集中するのではなく、役割ごとに複数のサーバーが存在するなかで、そのすべてが連携してパフォーマンスを発揮できるようにするのが難しいところでもありました。
先ほどもお話しましたが、これまで多くのユーザーを抱えるサービスを運営し、トラブルシューティングを繰り返し、知見を溜めてきたことこそ当社の強みであり、安定したサービス提供を実現するための重要なポイントだと思います。
サービスの幅を広げ更なる価値の提供へ
―『ルナルナ』の開発について今後の展望を教えてください。
これまでB to Cのサービスとして成長してきた『ルナルナ』ですが、現在では医療機関で医師にルナルナで記録した基礎体温や月経周期などの健康情報を提示できる連携システム「ルナルナ メディコ」が800以上の医療機関に導入されています。「ルナルナ メディコ」を始めとした医療機関向けのシステムは、コンシューマー向けサービスの設計とは違う性質を持っているため、開発者にとっては新たな挑戦です。今はシステムを導入している医療機関の医師にフィードバックをいただきながら、医師にとっての使いやすさと利便性の向上を目指しています。
また、サービスが保有するユーザーの膨大なデータを様々な機関と繋ぎ、利活用することでユーザーに価値を還元していけるようにデータをセキュアかつスムーズに繋ぐシステムを開発していくことも今後の課題であると認識しています。
『ルナルナ』は、ユーザーのライフステージや悩みに合わせて女性の一生をサポートするサービスとして、今後もユーザーにより早く、価値を提供できるよう努めていきます。
※自社の中で情報システムを保有し、自社内の設備によって運用する体制を指す。