Special
» 2021年03月03日 10時00分 公開

“地球を見守る”JAXA職員が、クラウドのスキルを磨く プログラミング経験“ほぼゼロ”でも「3日間で何とかなる」ハッカソンの神髄

[ITmedia]
PR

 宇宙航空分野の基礎研究から開発・利用までを一貫して手掛けている、宇宙航空研究開発機構(JAXA)。小惑星探査機「はやぶさ2」が、小惑星「リュウグウ」で採取したサンプルを地球に持ち帰った──という快挙に、日本中が湧いたのも記憶に新しいが、こうした宇宙探査だけでなく、人工衛星による“地球の見守り”も担っている。

 そうしたJAXAの中にある組織の一つ「衛星利用運用センター」に属し、衛星が取得したミッションデータを処理する複数システムのインフラ共通化を推進しているメンバーたちが、Microsoftの「Azure Light-up ワークショップ」に挑戦した。3日間という短期間で「実用最小限の製品」(Minimum Viable Product)を専門家とともにハッカソン形式で作り上げるというものだ。

 インフラ共通化の推進にあたり、自ら実現したいことを叶えるために、クラウドなどの最新テクノロジーをどのように使えばよいかを体験したい。そうして、将来のプロジェクトに際してより実現の可能性を広げたい──そんな期待から、ワークショップに参加した。

 ハッカソンに参加するまで「プログラミングの経験はほとんどなかった」と話すのは、JAXAの村松英之氏(第一宇宙技術部門 衛星利用運用センター 主任研究開発員)。3日間という“短期集中”のスケジュールで、成功体験を得られたのか。

photo JAXAの村松英之氏(第一宇宙技術部門 衛星利用運用センター 主任研究開発員)

クラウドに精通したプロの助言で、完成形のイメージが明確に

 ハッカソンに挑んだ村松氏らは、数あるJAXAの組織のうち、衛星利用運用センターに所属している。同センターが抱える業務の中でも、村松氏らは普段、データ処理・保存・提供を行うためのシステムのインフラ共通化を進めている。

 村松氏らは「クラウドについての理解・スキルを磨きたい」と思い、ハッカソンに臨んだ。クラウドについては、インフラの導入・運用コストを削減でき、より開発のほうに注力できるのではないか、という期待があったという。

 ハッカソンでは、実際に村松氏らが運用しているシステムの中から、クラウドによる試作に適したものを選び、それと同様のものを制作することにした。あくまで試作であって、実際に運用するわけではないが、全く業務に関係がないソフトウェアを試作するよりも、普段使用しているのと近いものを試作したほうが有意義だ、という判断だった。

 「いくつか検討したシステムはあったが、できるだけ集中して結果を出せるようにしたかった」と振り返るのは、ハッカソンをサポートしたゼンアーキテクツCTOの三宅和之氏。「対象となるシステムのスコープは小さく、効果は可能な限り大きく──ビジネスインパクトのあるものを形にし、成功体験を得てもらうことが重要だった」と強調する。

photo ゼンアーキテクツCTOの三宅和之氏

 検討の結果、ハッカソンの対象に選ばれたのは「自動アラートシステム」だった。自動アラートシステムとは、人工衛星がさまざまなセンサーを駆使して取得したデータを、人が見て分かるような状態(物理量)に変換・処理する中で、エラーが生じた場合にアラートを通知する仕組みだ。

 選定の理由は、同システムが試作に適した規模だったからだ。その上で試作の際は、単に現行のシステムと同じものを作るのではなく、将来を見据え、より利便性を高められるような機能、拡張性を盛り込むことを目指した。

 実際の自動アラートシステムでは、1日に数千件の通知が届いている。その大半はシステムステータスの通知など「アラート以外のもの」で、早急に対応が必要な「レッド」のアラートは年に数回程度しかないが、見逃すことは避けなければならない。

 しかし現行のシステムでは、通知方法はメールのみ。村松氏は「われわれのチームでは、Microsoft 365(旧Office 365)を導入していて、Microsoft Teamsなどがコミュニケーション手段として使われている。そこでメールだけでなく、Teamsやモバイルアプリなど、さまざまな方法で通知したいと考えた」と話す。

 ハッカソンでは、まずこのようなアイデアを出し合った。村松氏は「ハッカソンに参加する前は、クラウドでどこまでできるのか、というイメージがつかなかった」と回想する。クラウド活用の経験が少ないゆえにアイデアが出しづらい、というのは、こうした事例では“壁”になりがちだ。

 だが「実際に手を動かす前段階のアイデアソンで、クラウドに精通している三宅氏から助言をいただいた。(浮かんだアイデアに対し)クラウドのどの機能を組み合わせて利用するべきかを、適切にピックアップしていただいたので、完成形のイメージをつかめた」(村松氏)という。

「プログラミングの経験がほぼゼロ」でも、確かな手応え

 村松氏は「(ハッカソンに参加するまで)プログラミングの経験は、ほとんどなかった」と話す。Visual BasicやExcelマクロなどで、他の人が作成したものをカスタマイズしたいときに、ネットで調べながら“見よう見まね”で修正する程度だったという。

 そこで、ハッカソンでは「Azure Functions」と呼ばれるサービスを活用した。サーバの構築・運用などを意識せずに使える、いわゆるサーバレスのサービスだ。自力でコードを記述しなければいけない箇所が少なくて済み、用途に応じてあらかじめ用意された機能を「パズルのように組み合わせていく」(村松氏)だけでいい。

 「これまでは、ネットで調べながらコードを書いていても、中身をよく理解できていなかった」と村松氏。「今回は量が少ないからという理由もあるが、ゼンアーキテクツから参加していたAzure Functionsの専門家から説明を受けながら進められたので、コードの意味もある程度、理解できた」と手応えを話す。

 一方、プログラミング経験があったJAXAの南貴博氏(衛星利用運用センター 主任研究開発員)からすると、「(村松氏の作業を)横で見ていて、コーディングというより設定に近いと感じた」という。これに対し、三宅氏は「まさにAzure Functionsの特徴だ」と付け加える。「(記述しなければいけない)処理のほとんどは入出力に関するもの。Azure Functionsでは、プラットフォームとして仕組みが用意されているので、コードを書かなければいけない部分を極小化できる」と力説する。

photo JAXAの南貴博氏(衛星利用運用センター 主任研究開発員)

 ほぼプログラミング経験のなかった村松氏のために、三宅氏がもう1点、気を配った部分がある。アーキテクチャの設計に関する部分だ。Microsoft Azureには、データを受け取る部分には「Event Hubs」、データの蓄積や配信には「Cosmos DB」の「Change Feed」といった機能がある。こうしたクラウドの機能をうまく活用し、重要な部分(業務ロジック)のみ、10〜20行程度のコードを書くだけで動作するように設計した。

 このようにすれば、インフラの運用・保守に関係する部分はクラウドの力を借りる、包含されているサービスを使う、といった省力化により、注力すべき部分に人的リソースを割けるようになる。「結果的にサーバレスを、多めに取り入れた設計になりました」と三宅氏は振り返る。

 また、アラートの通知先を、従来のメールに加え、iOS/Android端末へのプッシュ通知、Microsoft Teamsなどにも適用できるようにした。全てのコードをイチから書く、通知用のアプリを最初から作るとなると、“車輪の再発明”になってしまう。そうではなく「普段から使っているツールを取り入れたほうが、再教育のコストも少なく、使う側にも優しい」と三宅氏は説明する。「OSごとに通知のフォーマットは異なりますが、Azureにはそうした仕様も吸収できる仕組みが備わっている。そうした部分への意識やメンテナンスを考えることなく利用できるよう配慮した」(三宅氏)

将来の「拡張」「機能追加」なども見据えた設計

 工夫はこれだけではない。拡張の余地を残しておくことも重要だった(スケーラービリティ)。人工衛星が取得するデータは膨大だ。機体の数が増えれば、データはさらに増える。これらを選別せずに取り込んでいくためには、システムに拡張性を持たせることは譲れない。クラウドを活用すれば、スモールスタートで、必要に応じて大きな改修なしに対応が可能だ。

 機能の追加・拡張のしやすさにも配慮した。アラートを取得し、Teamsやモバイルアプリに通知する機能だけでは終わらない。将来、蓄積したアラートのデータを分析し、その傾向をAI(人工知能)に学習させ、チャットボットなどの技術も活用して、トラブルが起きた際には解決策などを提案させる──といった機能を追加できるように、アーキテクチャを設計しているという。

photo

 クラウドサービスゆえにインフラの管理・保守をMicrosoft側にお任せできるという、マネージドサービスによる運用負荷の軽減もポイントだ。例えば、今回、データを蓄積するために使用したCosmos DBでは、データベースのインデックスをチューニングする手間が必要ない。インデックス作成を全自動で行ってくれるからだ。増大するデータに対しても、ストレージの追加・拡張を自動で行う。ほぼフルマネージドに近いサービスを受けられるのがメリットだ。

「3日間あれば、これだけのことができる」

 このようにクラウドに精通した三宅氏らのサポートにより、ほとんどコーディング経験をもたなかった村松氏を含む、衛星利用運用センターのメンバーたちは3日間で“成功体験”を得られたのだった。

 「クラウドの機能のおかげで、自分たちでコードを書かなくても任せられる部分が多く便利だと感じた。もともとある機能をパズルのように組み合わせていくだけで、求めていたものが作れた」と村松氏は繰り返し強調する。

 「オンプレミスであれば、こうはいかない。イチから作るため、費用も時間も相当かかってしまう。『クラウドだからこそ、この規模のものをこれだけのスピード感で開発できる』という気付きを得られたのは、貴重な経験だった」(村松氏)

 南氏は「当初は『たった3日間で何ができるんだ』と考えていた。しかし、終わってみると『3日間あれば、これだけのことができるんだ』という感想に変わった」と笑う。

 今回のハッカソン実施を提案した日本マイクロソフトの相原健一氏は「JAXAの皆さまが形にしたいと考えていることを、単なる機能の提示だけでなく、われわれの知見を活用し、どのようにして実現できるかを一緒に考えたかった。今回に限らず、さまざまな機会で寄り添っていければと思う」と話す。

photo 日本マイクロソフトの相原健一氏

 クラウドだからこそ、スピード感をもって、新しい機能を実装できる──。そんな感覚を得られるかは、こうしたハッカソンによる成功体験を得られるかどうかに掛かっている、といえそうだ。

マイクロソフト社によるハッカソンを通したプロトタイプ開発について

興味がございましたら、以下事務局までお問合せください。

Microsoft Azure Light Up Program 事務局:azurelightup@microsoft.com

Copyright © ITmedia, Inc. All Rights Reserved.


提供:日本マイクロソフト株式会社
アイティメディア営業企画/制作:ITmedia ビジネスオンライン編集部/掲載内容有効期限:2021年3月9日

関連リンク