fbpx

[和訳] “Cool Hacks” 注目株: DART #docker

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

本稿は Cool Hacks Spotlight: DART (2018/7/10) の和訳です。

Dockerコンテナプラットフォームは世界中でミッションクリティカルな業務をサポートしています。Dockerのプラットフォームは、NASAのThe Planetary Defense Coordination Office(直訳:惑星防衛調整室)における全人類に影響を及ぼしかねないある重要な任務を支えています! それは地球付近に存在する小惑星を追跡および分析し、その小惑星が地球の軌道上にある場合には、どのようにその小惑星の軌道制御を行うかを決定するミッションです。 

NASAとジョンズ・ホプキンス大学応用物理学研究所が共同で進めている、Double Asteroid Redirection Test (DART:二重惑星の進路変更テスト) において、チームはこの種のミッションの影響力と期待できる効果を計るため、有害となる可能性のある小惑星を選びました。

この任務で使用するソフトウェアの開発は容易なものではありません。宇宙は厳しいのです! 宇宙を再起動するわけにはいかないので、与えられたチャンスは1度きりです。宇宙物理学の制約は、放射線の乱流効果のため、非常に狭い帯域幅と低密度のメモリにつながります。ソフトウェアチームはDockerを利用することで一体何を解決したかったのでしょうか?それはハードウェア不足です。プロジェクトで使用する開発システムはとても高額(300,000ドル)なので、すべての開発者にシステムが行き渡りません。30の開発者の間でシェアできるシステムは5つのみのため、これが時間的制約となり生産性を損ないます。

ハードウェアエミュレーションを実現するため、開発者は自身のラップトップパソコンで作業しつつ、テストのみをプロジェクト専用のハードウェアで行うというCool Hackを開発しました。コンテナ内でX11サーバとVNCサーバを活用することで、セキュリティ上の制約を守りながらも、どの外部コンテナからもGUIへのアクセスを可能にしました。

チームは、フライトソフトウェアをはじめ、テストベッドソフトウェア、RubyによるオープンソースGUIグラウンドシステムCOSMOS、そしてDocker環境の個別のコンポーネントからなる4つのサービススタックによる開発環境をデプロイしました。コンテナネットワーキングモデル(CNM)を活用することで、フライトソフトウェアコンテナをテストベッドコンテナに接続します。テストベッドコンテナはCOSMOSコンテナに接続し、ラジオとして機能します。そして最後にCOSMOSコンテナはVNCコンテナに接続し、Openbox経由でGUIを提供します。これによりハードウェアのエミュレーションを達成し、それぞれの開発者が自身のマシンで作業できるので、開発時間とリソースを何か月分も縮めることに成功しました。

NASAの3ステップ計画についてもっと知るための講演を見る:

  1. 宇宙船を作る
  2. ターゲットに命中させる
  3. 世界を救う

the DockerCon 18 Cool Hacks - automated hardware testing using docker for space

DockerConサンフランシスコ2018での動画を見る:

もっと知りたい方は:

新規CTA