ガジェット通信

見たことのないものを見に行こう

Go言語で開発、ダイエットアプリ、ドメイン駆動設計(DDD)…注目の医療ベンチャーのCTOが未来の医療を創るテクノロジーを語った

DATE:
  • ガジェット通信を≫

会員数10万人以上の医療専用サイトのインフラをGo言語で再構築

最初に登壇したのは、メドピア執行役員CTOの福村彰展氏。
講演タイトルは「Go言語選定からの新サービス開発の裏舞台」。

福村氏は2012年3月にメドピアに入社し、2014年にCTOに就任。前職のSNS企業では新サービスの開発などに携わっていた。

メドピアは現役の医師が社長を務めている、会員数が10万人以上の医療専用サイトを運営している会社である。日本の医師の人数は31万人といわれている。つまり3人に1人が利用しているサービスだ。

医師専用サイト「MedPeer」は多数のサービスを提供しているが、その中で核となるのが薬剤評価掲示板である。医師による医薬品の口コミや添付情報がいつでも閲覧できるというサービスだ。

また各分野のエキスパートが応える「Meet the Experts(症例相談)」は、対象疾患数は50領域を越える。「400人ものエキスパートがいる。その中には著名な先生もおり、まさに質にこだわったサービスとなっている」と福村氏。

医師同士がニュースを見合うMedPeer Newsも提供。そのほかにも専門領域からプライベートまであらゆる話題を会員同士でディスカッションできる「ディスカッション」サービスを提供。さらに2カ月前より「イシコメ」というサービスもβ版で提供を開始した。

これは全国の医師が実名で世の中の医療・ヘルスケアニュースをピックアップしてコメントするというサービスで、「ちまたにあふれる健康情報・医療現場の実態など、普段聞けない医師の本音を届けるメディアとなっている」と福村氏は言い切る。

医師にとって各製薬会社が作製する添付文書をはじめ、発信する情報は非常に有用である。しかしこれまではこれを閲覧するには、医師は各社のホームページに行き、各社ごとに異なるIDでログインするしか方法がなかった。

オウンドメディアをもつ製薬会社は何十社もある。そのたびに医師はログインをしなければならず、大変だった。そこで医療関係者専門の情報収集支援サービスを展開している、NTTドコモグループの日本アルトマークと提携。複数の医療サイトで共通して利用可能な認証プラットフォームを構築し、医療関係者の共通IDを提供していくことに取り組んでいる。

会員数が増えるにつれ、メドピアには次のような課題が出てきた。第一は「メドピアの既存サービスシステムはモノリシックで巨大・複雑になっていること」。第二は「責務をうまく分けることが難しい状態になっていたこと」である。

これらの課題を解決するために、「静的型付けでよい言語がないのか探した」と福村氏は説明する。そこで注目したのが、Go言語である。

「Goは静的型付け言語で標準ライブラリが充実していること。思想がシンプルで、環境の構築もシンプルにできる。だが、一番の決め手は、Go言語をやりたいというエンジニアの熱意だった」と福村氏は採用の経緯を説明する。

また開発を楽にするため、GitからGitHubに移行し、コンテナー管理ソフトウェア「Docker」を使っている。また業務支援ツールはSlackを採用し、業務効率化を図った。

16年に新サービスとしてリリースしたMedPeerキャリアはすでにこの新アーキテクチャ上で運用。順次、この新アーキテクトにサービスを載せ替えていく。

「今は認証プラットフォームづくりにまい進しており、製薬会社の各社HPに一つのIDでログインできる世界を目指している。その後、面白い展開を考えている。医師の負担が軽くなれば、医療品質が上がり、患者さんも幸せになる。それに貢献していけるのが面白い」。最後にこう語り、福村氏はセッションを締めた。

米国にも展開、60万超のユーザーを持つダイエットアプリ「あすけん」

次に登壇したのは、ウィット あすけん事業部システム統括の服巻和繁氏。
セッションは健康・ダイエットアプリ『あすけん』の取り組みについて。

あすけん」は利用者数67万人超の健康・ダイエットサービスである。67万人というのは、ヘルスケア業界の中では大きな数字だ。

ユーザーは朝昼晩の食事の内容を、10万件以上のメニューから選んで登録するだけ。それで摂取カロリー、そして14種類の栄養素の過不足と食事バランスもグラフで表示される。しかも自動で管理栄養士からのアドバイスも表示される。

アドバイスのパターンは組み合わせのロジックで20万通り。その人の食事記録に応じた食事改善内容が提供される。さらに昨年より、ダイアリー機能も導入。

「ダイエットは1人で黙々とやるイメージがあるが、ユーザー同士がお互い『いいね』と褒めながらやっていくのが継続につながる。楽しくダイエットしてほしいですかから」と服巻氏は語る。

基本的に無料だが、月額300円でプレミアム機能を提供している。プレミアム機能には1食ごとにアドバイスがもらえることに併せ、独自メニューなどが登録できるMyメニュー機能を用意。そのほか、よく食べるメニューをセットで登録し、一発入力できるMyセット機能がある。この機能を使えば、よく食べる朝ごはんなどを簡単に入力できるようになる。

あすけんではどのようなダイエット効果が得られるのか。「BMI25以上の人があすけんを使い続けると、3カ月で3.5kg程度減量するという結果が出ている」と服巻氏。

また食事改善効果についても、女子栄養大学との共同検証によると、あすけんの利用前後で食事内容を比較するとエネルギー系の栄養素は減少し、その半面ビタミンやミネラルは増加する結果が得られたという。

あすけんがリリースされたのは2007年。今年で9年目となった。2014年にiPhoneアプリを無料化し、Androidアプリも無料版をリリースしたところ、会員数が55万人に。2016年1月現在、月間ユーザー数は70万人、月間PVは4000万PV。1分当たりのサーバリクエスト数がピークで1万5000というサービスに成長している。

だが「喜んでばかりはいられない」と服巻氏。あすけんは使われる時間帯が決まっているため、どうしてもアクセスが集中する。「遅延が起こってしまい、タイムアウトすることもたびたびあった」と振り返る。

遅延の原因は、データベースのレプリケーション。「オンプレミス環境でのハイパーバイザによる運用をしており、MySQLの2台構成で回していた。ユーザーが増えるにつれ、マスターからスレーブへのレプリケーションが遅れてリードができないという状況が起こっていた。つまり単純にユーザー数の増加に対応しきれなかったため」と原因を説明する。

そのほかにも問題はあった。長年サービスを提供してきたあすけんにはレコーディングデータが2億レコード以上あり、負荷が増えていた。またメニュー登録やアドバイス出力なども、データベースI/Oコストが高かった。

それほどまでにI/Oコストが高まる要因となっていたのが、「バックエンドでは1メニュー当たり53種類の栄養価をサポートしていたこと」と服巻氏は明かす。つまりデータベースサーバのI/O性能が限界になったとうわけだ。

そこで対策としてまずはサーバ台数を増やすことを検討。しかし納品が2カ月以上かかる上、導入コストも相当かかる。「サービスは1日1200人ぐらいのペースで増えており、サーバ台数を増やすという方法は採用できない。アプリケーションで解決することになった」と説明。

まずは問題となっているMySQLのデータを別のDBMSに移行することにした。そこで選択したのがMariaDBである。MariaDBはMySQL5.5ベースに新機能が追加されたRDBMS。「各LinuxディストリビューションやGoogleで採用されているということもあるが、何よりMySQLと後方互換性があるため」とその理由を述べる。

それだけではない。SpiderというMariaDB10.0.4から公式にバンドルされた分散ストレージエンジンがあることも、採用した理由だ。2週間ぐらいテストをした結果、このSpiderストレージエンジンでシャードすることになった。

また当時お世話になっていたデータセンターにも問題が発生し、AWSに引っ越しすることに。今回、構築したインフラの良いところは、増強の度合いが細かく設定でき、常に最適化を図れるところ。これにより、安定稼働ができるようになった。

ウィットでは昨年10月にデータ連携APIの提供を開始した。摂取カロリーなどいくつかのデータは無料提供するほか、39種類の栄養価は個別に選択可能だという。「OpenID Connect認証方式を採用しており、非常に使いやすい環境になっている」と服巻氏は説明する。ヘルスケア系事業を検討する企業はこのAPIを使って新たなサービスを展開することも可能だ。

また、あすけんは2016年に米国に展開を予定している。日本よりも肥満率の高い米国で展開することで、さらにサービスの拡大に期待が高まる。

JavaScriptでニコチン依存症を治療するアプリ「CureApp禁煙」を開発

最後に登壇したのは、同イベントの企画・運営をしたキュア・アップ 取締役CTOの鈴木晋氏。タイトルは「医師の思考をコードにするためのドメイン駆動設計(DDD)」。副題にマルチプラットフォームで動くJavaScriptの実践とついており、今回はその話を中心に話した。

キュア・アップは、2014年7月に鈴木氏と佐竹氏という二人の医師が立ち上げた治療アプリの開発会社である。近年、生活習慣が原因で病気になる人が増えている。生活習慣は病院外のことなので、医師が介入するのは難しかった。

「スマートフォンなら介入できるのではと仮説を立てた。医療知識を実装したアプリが行動を促したり、認知に作用し、行動原理を変えることで生活習慣を変えて、病気が良くなる。医者と連携できるアプリがあれば、病気が治っていくのではと考えた」と語る。

すでに海外では糖尿病の分野で成果が出ているアプリがあり、保険適用になっているモノもあるという。「私たちもそこを目指している」と鈴木氏は意気込む。

現在、鈴木氏たちが開発している「CureApp禁煙」アプリはニコチン依存症を対象としている。ニコチン依存性は「身体的依存」と「心理的依存」の2つのタイプがあるが、特に後者の心理的依存がターゲットだ。身体的依存は1カ月ぐらい経つと消えていくが、心理的依存は生活に染みついているので、考え方を変えていかなければ、依存症から抜け出せないからだ。

そこで「CureApp禁煙」はチャットと日記、動画、マイデータという4つの機能を提供。これらの機能により、看護師が教育をしてくれたり、吸いたいときの相談役になってきたり、豆知識をくれたり、日記を付けることもできたりする。またその日記は医師に送られ、禁煙外来の時にフィードバックがもらえるようにもなる。

「私たちはアプリを処方することで、24時間介入し、禁煙へと導くことを目指している」と語る。「CureApp禁煙」アプリは現在、慶応義塾大学呼吸器内科学教室およびその関連病院を中心に臨床試験を実施している。

では「CureApp禁煙」ではどんな技術が採用されているのか。同社ではこのアプリを提供するため、医師向けの管理画面、Botの配信サーバなどのシステムを開発している(※以下の構成システム参照)。これらすべてのシステムはすべてJavaScriptが用いられている

その理由について鈴木氏は、「自分が好きというのも大きな理由だが、マルチプラットフォームであることが採用の理由だ」と語る。

Webブラウザはもちろん、サーバ(Node.jsなど)でも動く。スマートフォン(Titanium、PhoneGap、ReactNativeなど)向けの技術にも使え、Electronいう技術を使えば、デスクトップアプリも作れる。

しかもWebエンジニアにとって非常にポピュラーな言語である。また進化し続けており、ES2015という新しいバージョンも使えるようになっている。React/fluxなどの新しいパラダイムの源にもなっている。

「サーバとクライアントでコードを共有して開発をスピードアップできるのでは」と考えたことも、採用を決めた理由だと挙げる。同システムのインフラのアーキテクチャは、UI層、アプリ層(コントローラ)、ドメイン層(モデル)、インフラ層(DB)で構成されている。

そのうちの「ドメイン層を共有することに成功した」と鈴木氏は言い切る。仕組みはこうだ。医者のサイト、botエンジン、bot配信サーバ、アプリ、管理サイトなどの各サービス及びドメインは別々のレポジトリに格納し、それがCureApp禁煙ドメインという別なレポジトリを参照するという設計になっており、利用する際は、Node.JSのサービスであるpackage.jsonにプライベートレポジトリの依存関係を記述する。

そうすれば各サービスを呼び出すことができる。ドメインを共有するメリットは、医療の知識に関する概念が一カ所にまとめることができるため、知識の断片化がなくなることだ。

またファイルの読み込みについては、BrowserifyなどのPackagerを利用している。インフラ層へのアクセスはHTTPリクエストに限定し、REST.APIサーバを介することにしていると鈴木氏は説明する。REST APIサーバでモデルの永続化を完結できるようにすることで、HTTPリクエスと部分の差異を吸収すれば、プラットフォーム依存しなくなる。

マルチプラットフォームで動くHTTPリクエストには、superagentを採用している。「最近、fetchという技術にも注目しており、使ってみたいと思っている」と鈴木氏は語る。またREST APIサーバの構築においては、コードを1行も書かなくてもできるオープンソースのLoopBackを採用。

永続化するDBを選ぶことが選択でき、DB層にも依存しない。メモリに保存する方法もあり、テストなどに使えるという。またAPI Explorerもあって、提供しているAPIもすぐわかるというメリットもある。

CureAppの開発は少数精鋭で行っており、すべてGitHubで公開し、プルリクエストとレビューを実施している。またGitHubに連携したチケットベースのタスクアサインwaffle.ioを採用し、CircleCIでテストとデプロイを行っている。

また誰もが参加しやすいような仕組みを作っているという。「次回は『医師の思考をコードにするためのDDD本編』を予定しているので、ご期待ください」と語り、セッションを終えた。

医療・ヘルスケア分野のITは、人の役に立つことに携われることが一番の魅力。これからもさまざまなサービスが登場してくると考えられる。ITエンジニアにとって要注目の分野だ。

カテゴリー : デジタル・IT タグ :
CodeIQ MAGAZINEの記事一覧をみる ▶
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。

TOP