fbpx

MongoDBの開発事例: Coursedog #MongoDB #開発事例 #海外事例

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

本ブログは、MongoDB社のブログでMongoDB社のSiya Raj Purohitさんが執筆し2021年1月7日に公開された「Build with MongoDB: Coursedog」の日本語翻訳です。

昔、Nicholas Diao氏とJustin Wenig氏は、コロンビア大学の学部課程プログラムに参加し、初めてコンピューターサイエンスの講義に出席できると期待に胸を膨らませていました。履修登録の手続きをしたところ、幸いにも、履修が認められました。しかし、初日に教室に行ってみると、悲しい知らせが待っていました。この講義を担当するはずの教授に別の予定が入っていたのです。すぐに判明したのは、そのようなケースが珍しくないということでした。彼らの大学と同じように、多くの大学では、講義の複雑なスケジューリングに対応できるソフトウェアがなかったのです。2人は自らの手でこの問題を解決しようと決意します。

身近な問題を解決しようと大学生が始めたプロジェクトはY Combinatorの支援を得てCoursedogいう企業へと成長し、高等教育機関向けのカリキュラム管理支援プラットフォームを実現します。Coursedogは、70を超える大学と契約を交わし、学生への履修科目の提案、講義のスケジューリング、講義内容の公開に関する手法をモダナイズしています。

Coursedogは420万ドルの資金を調達し、すぐにMongoDBでシステムの開発を始めました。創業者の2人は最近、Forbesの『世界を変える「30歳未満の30人」』にも選ばれています。

今回のMongoDBの開発事例では、Nicholas Diao氏にお話を伺い、大学の在学中に事業を始めときのことや、プロトタイプの開発を通じてPMF(プロダクトマーケットフィット)を達成したときのことをお聞きしました。また、同社がMongoDBプラットフォームでどのように事業を拡大してきたのかという点についても話題に取り上げられました。

Siya Raj Purohit:大学の在学中にCoursedogを設立したと伺っています。実際に経験された問題を解決しようとプラットフォームを開発されたわけですが、それはどのような問題だったのでしょうか。

Nicholas Diao氏:共同創業者のWenigと私はあるコンピューターサイエンスの講義を履修しようとしていました。講義の初日に教科書とコーヒー、スナックを手に教室に行ったのですが、教授がいません。講義を担当するはずの教授に別の予定が入っていたのです。
21世紀の世界で一体どうしたらこんな問題が起こるのかと、コンピューターサイエンスを専攻する者として不思議でなりませんでした。
そして、システムが何らかのかたちで自動化されていれば、大学の講義のスケジューリングもスムーズに処理されるのではないかと考えました。しかし、実際には、過度の業務を抱えた数人の教務管理者がMicrosoft Excelのスプレッドシートを使いながら暗い部屋にこもって手作業で講義のスケジューリングをしていたのです。これではミスが出て当然です。大学の教務管理者としても時間を有効に活用できません。
スケジューリングのプロセスを詳細に把握するべく、Wenigと私は、大学の教務管理者400人から500人近くと会話をしましたが、見た目よりその内容はずっと複雑で、単位の取得に必要な科目を履修しようとする学生と学生自身の能力に計り知れない影響を及ぼすものでした。そしてこれはほぼ無視されている問題だと気付きました。
コロンビア大学ロースクールを設計パートナーに迎えた私たちは、この問題を解決するべくシンプルなプロトタイプの開発に着手し、すべての大学が利用できるようシステムの改良を進めました。

Siya Raj Purohit:最初のプロトタイプはどのようなものでしたか。

Nicholas Diao氏:シンプルなHTML、CSS、JavaScript、Node.JSサーバーをMongoDBデータベースと組み合わせて使用しました。MongoDBを選択した理由の1つに、その柔軟性の高さがありました。我々は日々、学習とイテレーションを繰り返していたからです。そして数か月後には、コロンビア大学ロースクールから得た推薦を基に、ブリガムヤング大学と初の正式な契約を結びました。
2019年の冬には、スタートアップ企業を育てるY Combinatorのプログラムに参加します。このプログラムを修了してからは、シリーズAの資金調達で400万ドルを調達し、現在では、70を超える教育機関と取引をしており、カリキュラムの管理、イベントの管理、カタログの管理に特化した3つの製品も新たにリリースしています。私たちのチームは、3つの国にまたがる40人以上のメンバーから構成されています。

Siya Raj Purohit:テクノロジースタックはどのように構成されているのですか。

Nicholas Diao氏:MongoDB、Express.js、Vue.js、Node.jsから成るMEVNスタックの構成を採用しており、アーキテクチャにはAWSを使用しています。

Siya Raj Purohit:Coursedogを設立した当時はまだコロンビア大学の学生だったとのことですが、MongoDBを選択した理由は何ですか。

Nicholas Diao氏:MongoDBを使って開発を始めた理由はいくつかありますが、早い段階ですぐにデモ版を開発してお客様から早急にフィードバックを得たかったのです。
複雑な問題に取り組んでいることは理解していましたが、最終的なデータ構造がどうなるのかわかりません。そこで必要になったのが、できるだけ柔軟性が高く、繰り返しイテレーションの可能なデータベースであり、たどり着いた結論は、クラウドにホストされた非SQLのデータベースでした。そして候補となるデータベースのトップがMongoDBだったというわけです。
MongoDBを選択したのは大正解でした。データモデルには数多くの変更を加えましたが、ソリューションの複雑さにMongoDBは耐えてくれました。しかも、他のどのデータベースよりも使いやすかったのです。弊社のチームが特に気に入っている点として、MongoDBの持つ機能が挙げられます。たとえば、経済学の講義の場合、教室の広さや定員、対象の学部などの要素をユーザーは知る必要があります。これらの要素すべてを管理するので、異なるデータオブジェクトの間に複数の関係が存在することになります。SQLデータベースと複雑なフィルターによって提供される非常に強力な結合機能をMongoDBで実現できます。イテレーションを繰り返すことで、必要な要素はすべて実現できました。時間をかけて複雑な目的を実現するために必要な機能が、MongoDBにはすべて備わっています。
MongoDBのテクニカルアドバイザーと会話をしたときのことですが、そこで初めて集約パイプラインという機能があるのを知ったのです。このときの会話のおかげで、順調なスタートを切る足掛かりができました。また、MongoDBのドキュメントは非常に詳しく、スケーリングの課題にも十分対応できました。

Siya Raj Purohit:貴社のソリューションは、現在では70を超える大学で採用されているとのことですが、スケーリングはMongoDBでどのように実現しているのでしょうか。

Nicholas Diao氏:スケーリングの実現は容易でした。MongoDBの持つシームレスな性質と高い柔軟性、利用しやすいコミュニケーション機能のおかげです。使用しているデータの量やパフォーマンスのメトリックは明確に把握でき、通知はタイムリーです。
ありがたいことに、特定のメトリックが80%に達すると、MongoDBから通知が届きます。DevOpsのチームやインフラストラクチャのチームが監視を行う上でこの機能が大いに役立っています。教室の予約が80%に達すると、その旨がユーザーに通知されるといったように、この機能からさまざまな手掛かりや合図の情報を送れるようになっています。
一般に1つの学校で150から200のデータタイプが存在しますが、このような状況でデータの増加に対応してシステムの規模を拡張してきました。この過程において、MongoDBには必要とされる柔軟性とカスタマイズ性があることがわかったのです。
この点は、アーキテクチャツールとして使っているAWSとは対照的です。AWSで同じことをするのはずっと難しくなります。たとえば、通知の内容を変更する場合(または通知を設定する場合)、難解なAWSのオンラインドキュメントを読まなければなりません。サイトにおいて変更を加える箇所は30近くにもなります。これに対し、MongoDBの場合は、バックエンドの管理がずっと簡単です。それゆえ、MongoDBなら、本来の業務に集中できるのです。

Siya Raj Purohit:起業をしてその会社のCTOになりたいと考えている大学生に向けてアドバイスをお願いいたします。

Nicholas Diao氏:在学中に習得しておくべき最も重要なスキルはコラボレーションのスキルです。学校で行われているのは、テストや論文、プロブレムセットをはじめとするコンテンツを重視した評価ですが、実際のキャリアで本当に重要になるのは、他者と共同で作業のできるコラボレーションの能力があるかどうかです。Wenigと私は、他の勤勉で優秀な人々との間に強力なパートナーシップを築き、彼らの協力を得て、Coursedogのビジネスを軌道に乗せることに成功しましたが、このようなパートナーシップがなければ、事業は失敗に終わっていたでしょう。長期的に重要になるのは、周囲の人たちと協力してうまく物事を進めていく能力があるかどうかです。プロブレムセットや研究に関してどのような評価を得るかではありません。この点を大学生の皆さんには知っておいて欲しいのです。
もう1つアドバイスを授けましょう。何かソリューションを開発するときは、身近なところから小さく始めるのがベストです。周りにいる人々が抱えている問題の解決からスタートするのです。Coursedogの場合がまさにそうでした。大きな成功を収めている企業は個人的な問題の解決から出発してそこから事業を広げています。

新規CTA