Flockerの背後にいるClusterHQはPowerstripを発表した。ライセンスはApacheライセンス。これは、Docker拡張をプロトタイプするためのツールだ。PowerstripはDockerのコマンドラインインターフェース(CLI)とDockerのデーモンの間のプロキシとして動作し、DockerのAPIを拡張する。この仕組みの大きな利点は、Docker CLIをラップするのではなく。Dockerのインターフェースを拡張することで、FlockerやWeaveのようなDockerアドインを簡単に構成できるようになることだ。
‘アダプタ’という言葉はPowerstripで動作するプロトタイプとその後に開発される‘拡張’の間の違いを示す。プレフックアダプタはDocker APIの呼び出しをフックする。ポストフックアダプタはAPIの戻り値をインターセプトする。Powerstrip自体はPythonで書かれているが、アダプタはどのような言語でも開発可能だ。複数のアダプタを連鎖させることもできる。こうすることでDocker CLIをラップするツールで引き起こされる衝突を回避するできる。
Powerstrip自体はDockerのイメージをデリバリする。アダプタはHTTPのエンドポイントだけ実装する必要があるだけなので、コンテナ内で実装できる。PowerstripはAPIのエンドポイントには一切セキュリティの実装がされていないため、‘非公開で安全な開発環境のみ’で使用することが強く推奨されている。
このプロジェクトのターゲットはDockerの拡張を書きたい人です。エンドユーザではありません。Powerstripのアダプタについてのセクションを見てください。Dockerで使えるアダプタを一覧しています。
FlockerとWeaveは両方ともDocker CLIをラップしているツールだ。従って、一緒に構成することはできなかった(またはFigのようなアプリ構成ツールを使う必要があった)。Weaveworksのチームはすでにpowerstrip-weaveを発表している。これは、Powerstripのアダプタを実装したものだ。そのすぐ後、 WeaveとFlockerがひとつのアプリケーションに対してネットワークとボリュームの管理を提供するというデモが発表された。WeaveworksのCEOであるAlexis Richardson氏はこの動きについて“コンテナの移行のようなユースケースにぴったり”と説明している。ClusterHQの発表には、Crate demo and Figを使ったpowerstrip-weaveの動画とデモが掲載されている。
DockerのCTOのSolomon Hykes氏はこのプロジェクトに大喜びだ。
Dockerの標準APIを壊さないで拡張する方法は大きな需要があります。数多くのDockerのコントリビュータが協力しています。Powerstripは彼らの試みを促進するのを手助けするでしょう。パッチも必要ありません。Dockerを毎回再構築する必要もありません。これは大きな時間節約になります。素早く正しい設計をするのにも役に立つでしょう。Dockerをカスタマイズしたい人は必携です。
PowerstripをGoへ移植する試みも既になされている。Docker開発の中核部分に馴染む小さな実装になりそうだ。Powerstripはプロトタイプの仕組みを提供するだけでなく、Docker拡張のシステム自体のプロトタイプにもなるかもしれない。