MASVとDockerによるファイル転送の自動化

by Ankit Verma|2021年11月09日

大容量のファイルを日常的に扱う方であれば、ファイル転送の自動化は有益です。ビデオのワークフローを改善する必要のある編集者(詳細は後述)、高解像度の画像をクライアントに送る写真家、FBXやOBJファイルをパッケージ化して共有するゲーム開発者などが考えられます。

ファイル転送の自動化は、利便性を重視しています。ファイルを移動したり、アップロードやダウンロードを待ったりすることは、1日を無駄にすることになります。私の哲学は、1日に何度も行う作業を、(避けられるなら)手動で行うべきではないということです。

とのことです。 TransferAgentの立ち上げドッカー今回は、ファイル転送の自動化と、ファイル送受信のワークフローについてお話したいと思います。

簡単な紹介

David Postlethwaiteのヘッドショット

私の名前は デビッド・ポスルスウェイト 私は、自分の仕事をしてくれるコードを書くのが大好きです。以前はDevOpsエンジニアとして、現在はMASVのDeveloper Advocateとして、コードのビルド、コードのデプロイ、統合テストの実行、クラウド配信のためのイメージの最適化などの自動ワークフローを書くことが私の毎日の仕事でした。私がMASVに入社した主な理由の一つは、MASVが同じ自動化手法を採用していたからです。MASVでは、自動ファイル転送機能を備えたTransferAgentという素晴らしいツールが開発されています。

MASV TransferAgentとは

MASVは ファイル共有サービス は、重いファイルの高速配信やファイル転送の自動化に重点を置いています。当社にはウェブアプリ、デスクトップクライアント、そしてAPIがあります。ユーザーからはAPIの利用を希望する声が寄せられていましたが、そのうちに、すぐに使い始めたい人のためにもっと簡単なソリューションが必要だと気づきました。それが、私たちが TransferAgent.

MASV TransferAgentは、ウェブAPIを抽象化してユーザーに提供するためのツールです。TransferAgentは複数のパッケージを同時にアップロードしたりダウンロードしたりすることができ、ユーザーはキューや帯域幅の制限、ファイルシステムの癖などを把握する必要がありません。TransferAgentは非常にうまく機能したので、私たちはデスクトップ・クライアントをこれに基づいて構築することにしました。これにより、ユーザーへの迅速な対応と、可能な限り最高のバージョンのツールを市場に送り出すことができるようになりました。

Dockerコンテナとは?

iconik メディアマネジメント・コラボレーション

コンテナとは? | Dockerによるアプリのコンテナ化

新しいオートメーターが遭遇することの一つに、Dockerとコンテナ化があります。以下は ドッカーからの紹介文:

コンテナとは、ソフトウェアの標準的な単位で、コードとその依存関係をすべてパッケージ化したもので、アプリケーションがあるコンピューティング環境から別のコンピューティング環境へ迅速かつ確実に移行できるようにするものです。

コンテナは、自給自足のアプリケーションと考えることができます。コンテナエンジン(ここではDocker)がある限り、その自己完結型のアプリケーションは、どのようなハードウェアであっても常に同じように動作します。あなたのチームも私のチームも、もはやWindows、Mac、Linux間の非互換性を心配する必要はありません。コンテナのおかげで、最高のアプリケーションを作ることに集中できます。あなたのチームは、アプリケーションをどのように使用するか(どこで実行するかではなく)だけを気にすればよいのです。

私たちがコンテナを採用したのは、プラットフォーム間の互換性の問題を解決し、ワークフローを改善できるからです。例えば、コンテナを導入する前の企業では、Webサイトを運用するオンプレミスのサーバーが3台に分かれていました。それらのサーバーは、それぞれシスアドが手動で管理しています。ある日、アプリケーションにバグが発生し、ベンダーによるパッケージのアップデートと手動による設定ファイルの変更が必要になります。システム管理者は、それぞれのサーバーですべての変更を行いましたが、設定ファイルの1行を間違えてしまいました。その結果、3台のサーバーのうち2台しか動作しなくなってしまいました。

さて、この3台のサーバーがDockerを起動していて、コンテナの中にWebサイトが入っているとします。ある開発者が、新しい依存関係を必要とする新機能を発表しました。以前であれば、依存関係がないため、サーバーが壊れてしまいます。代わりに、Dockerイメージがクラッシュし、実行を拒否します。以前のバージョンに簡単に戻せるようになりました。3台のサーバの修正方法は、1箇所のファイルを変更し、Dockerコンテナを再構築することです。そうすれば、すべてのサーバーが適切なバージョンを利用できるようになります。

MASV + Docker

"Can we not? "という言葉は、必要な作業量を最小限にするための話で、以前にも聞いたことがあります。この言葉の本質は、何かをオーバーエンジニアリングしていないかどうかを見極めることにあります。Dockerビルドを追加することで、ユーザーに同じバージョンのTransferAgentを使ってもらうことができます。ユーザーのほとんどがLinuxバージョンを使用しているため、DockerはMac、Linux、Windowsで動作するため、バグレポートも1つのOSを対象としたものが多くなります。言い換えれば、Dockerは私たちのバグベクトルを減らすことができるのです。 

注意してください。 私たちは ではなく 現在使用・サポートしているプラットフォーム用のビルドをすべて削除しました。 

Dockerコンテナは驚くほど簡単にアップデートできます。最新のバージョンをダウンロードする `latest` コンテナタグに留まることができます。あるいは、私たちのsemverパターンに従って、必要に応じてアップデートすることもできます。

TransferAgentアプリを中心としたアプリやスクリプトを作りたいと考えている方は、TransferAgent側の互換性の問題を心配する必要はありません。Mac、Linux、Windowsの間で簡単に転送できるようにしたいと考えています。

ビデオ編集とオートメーション

ビデオ編集者は、ワークフローの自動化を検討しているプロのグループとして増えています。Dockerは、以下のようなあらゆる種類のツールをサポートします。 FFmpeg, ハンドブレーキや、TransferAgentもあります。これらのツールは、適切なスクリプトとファイルを適切な場所に配置することで、レンダリング、仕上げ、最終的な自動ファイル転送を簡単に行うことができます。

もしあなたがビデオ編集者、ビデオグラファー、あるいは何らかの技術マニアであれば、おそらくDockerをインストールするための余分なハードウェアを持っていることでしょう。それがRaspberry Piであれ、自宅のNASであれ、あるいは隅っこに置いてある古いラップトップであれ。 

次回の記事では、TransferAgentをDocker上で稼働させていますので、ぜひご期待ください。また、次回のファイル転送の際には、私たちをご利用ください。

デベロッパードキュメントを見る

MASVを試してみたいと思ったら サインアップはこちら をクリックすると、100GBが無料で転送されます。