Automatisierte Dateiübertragung mit MASV und Docker

von Ankit Verma | 9.11.2021

Wenn Sie regelmäßig mit großen Dateien arbeiten, werden Sie von der automatischen Dateiübertragung profitieren. Sie könnten ein Cutter sein, der seinen Video-Workflow verbessern muss (mehr dazu weiter unten); ein Fotograf, der hochauflösende Bilder an Kunden sendet; oder sogar ein Spieleentwickler, der FBX- oder OBJ-Dateien verpackt und weitergibt.

Bei der automatisierten Dateiübertragung geht es um Bequemlichkeit. Das Verschieben von Dateien und das Warten auf Uploads/Downloads fressen den Tag auf. Meine Philosophie ist, dass keine Aufgabe, die mehrmals am Tag durchgeführt wird, manuell erledigt werden muss (wenn es sich vermeiden lässt).

Mit dem Einführung unseres TransferAgenten auf Dockermöchte das Team von MASV über die automatisierte Dateiübertragung und Ihren Arbeitsablauf beim Senden und Empfangen von Dateien sprechen.

Eine kurze Einführung

David Postlethwaite Kopfbild

Mein Name ist David Postlethwaite und ich liebe es, Code zu schreiben, der meine Arbeit für mich erledigt. Als ehemaliger DevOps-Ingenieur - jetzt Developer Advocate bei MASV - bestand mein Arbeitsalltag darin, die automatischen Workflows für die Codeerstellung, die Codebereitstellung, die Durchführung von Integrationstests und die Optimierung von Images für die Cloud-Bereitstellung zu schreiben. Einer der Hauptgründe, warum ich bei MASV eingestiegen bin, war, dass dort dieselbe Automatisierungsmethodik angewandt wird. Dazu gehört auch das wunderbare TransferAgent-Tool, das das Team mit unserer automatisierten Dateiübertragungsfunktion entwickelt hat.

Was ist MASV TransferAgent

MASV ist ein File-Sharing-Dienst mit dem Schwerpunkt auf der schnellen Übermittlung großer Dateien und automatisierten Dateiübertragungen. Wir haben eine Web-App, einen Desktop-Client und eine API. Immer wieder meldeten sich Nutzer, die unsere API nutzen wollten, und mit der Zeit wurde uns klar, dass wir eine einfachere Lösung für Leute brauchten, die einfach loslegen wollten. Das war der Zeitpunkt, an dem wir TransferAgent.

Der MASV TransferAgent ist ein Tool, das unsere Web-API für unsere Benutzer abstrahiert. Es unterstützt das gleichzeitige Hoch- und Herunterladen mehrerer Pakete, ohne dass sich unsere Benutzer mit Warteschlangen, Bandbreitenbeschränkungen und allen möglichen seltsamen Dateisystemproblemen auseinandersetzen müssen. TransferAgent funktionierte so gut, dass wir beschlossen, unseren Desktop-Client darauf aufzubauen. So können wir unseren Nutzern eine schnelle Bearbeitungszeit bieten und die bestmögliche Version unseres Tools auf den Markt bringen.

Was sind Docker-Container?

iconik Medienmanagement Zusammenarbeit

Was ist ein Container? | Containerisierung von Anwendungen durch Docker

Eines der Dinge, mit denen ein neuer Automatisierer konfrontiert wird, ist Docker und Containerisierung. Unten ist eine Klappentext von Docker:

Ein Container ist eine Standard-Softwareeinheit, die den Code und alle seine Abhängigkeiten verpackt, damit die Anwendung schnell und zuverlässig in einer anderen Computerumgebung ausgeführt werden kann.

Man kann sich einen Container als eine in sich geschlossene Anwendung vorstellen. Solange es eine Container-Engine gibt (in unserem Fall Docker), wird diese in sich geschlossene Anwendung immer auf die gleiche Weise ausgeführt, unabhängig von der Hardware, auf der sie läuft. Ihr Team und meines müssen sich nicht mehr um Inkompatibilitäten zwischen Windows, Mac und Linux kümmern. Mit Containern können wir uns auf die Entwicklung der besten Anwendung konzentrieren. Ihr Team muss sich nur darum kümmern, wie die Anwendung genutzt wird (und nicht, wo sie ausgeführt wird).

Was uns zur Einführung von Containern bewogen hat, ist die Tatsache, dass sie Kompatibilitätsprobleme zwischen Plattformen lösen und Arbeitsabläufe verbessern können. Vor der Einführung von Containern hatte ein Unternehmen beispielsweise drei separate Server vor Ort, auf denen seine Website lief. Jeder dieser Server wird manuell von einem Systemadministrator verwaltet. Eines Tages wird ein Fehler in die Anwendung eingeführt, der eine Aktualisierung der Herstellerpakete und manuelle Konfigurationsdateien erfordert. Der Systemadministrator nimmt alle Änderungen auf jedem Server vor, vergisst aber eine einzige Zeile in einer der Konfigurationsdateien. Jetzt funktionieren nur noch zwei von drei Servern.

Stellen Sie sich nun vor, auf diesen drei Servern würde Docker laufen, und die Website befände sich in einem Container. Ein Entwickler bringt eine neue Funktion heraus, die eine neue Abhängigkeit erfordert. Zuvor würde dies den Server zum Absturz bringen, da ihm die Abhängigkeit fehlt. Stattdessen stürzt das Docker-Image ab und weigert sich, zu laufen. So kann leicht auf die vorherige Version zurückgegriffen werden. Die Lösung für alle drei Server besteht nun darin, eine Datei an einer Stelle zu ändern und den Docker-Container neu zu erstellen. Dann können alle Server die richtige Version verwenden.

MASV + Docker

"Können wir nicht?" ist ein Satz, den ich schon öfter gehört habe, wenn es um die Minimierung des Arbeitsaufwands geht. Es geht im Wesentlichen darum, herauszufinden, ob wir etwas übertechnisieren. Durch das Hinzufügen von Docker-Builds können wir unsere Benutzer anweisen, alle die gleiche Version von TransferAgent zu verwenden. Da die meisten unserer Benutzer auf die Linux-Version ausgerichtet sind, können Fehlerberichte hauptsächlich ein Betriebssystem betreffen, da Docker auf Mac, Linux und Windows läuft. Mit anderen Worten, Docker ermöglicht es uns, unseren Fehlervektor zu reduzieren. 

Anmerkung: Wir sind nicht Entfernung aller Builds für die Plattformen, die wir derzeit verwenden und unterstützen. 

Docker-Container sind unglaublich einfach zu aktualisieren. Sie können auf Ihrem `latest` Container-Tag bleiben, der die neueste Version herunterlädt, wenn Sie neu starten. Oder Sie können sogar unserem Semver-Muster folgen und nach Bedarf aktualisieren.

Wenn Sie daran arbeiten wollen, eine App oder ein Skript um unsere TransferAgent App herum zu entwickeln, dann müssen Sie sich keine Sorgen über Kompatibilitätsprobleme auf der TransferAgent Seite machen. Eine einfache Übertragung zwischen Mac, Linux und Windows ist das, was wir hoffen, zu bieten.

Videobearbeitung und Automatisierung

Videobearbeiter sind eine wachsende Gruppe von Fachleuten, die ihre Arbeitsabläufe automatisieren möchten. Docker kann alle Arten von Tools unterstützen, von FFmpeg, Handbremseund sogar TransferAgent. Mit den richtigen Skripten und Dateien an der richtigen Stelle machen diese Tools das Rendern, die Nachbearbeitung und die abschließende automatische Dateiübertragung zu einem Kinderspiel.

Wenn Sie ein Videobearbeiter, Videofilmer oder sonst ein Technikfan sind, haben Sie wahrscheinlich noch zusätzliche Hardware herumliegen, auf der Sie Docker installieren können. Sei es ein Raspberry Pi, Ihr eigenes NAS zu Hause oder sogar ein alter Laptop, den Sie in die Ecke stellen. 

Wir hoffen, Sie bleiben dran für den nächsten Artikel, in dem wir TransferAgent auf Docker zum Laufen bringen und denken Sie an uns für Ihre nächste Dateiübertragung.

Sehen Sie sich unsere Developer Docs an

Wenn Sie bereit sind, MASV auszuprobieren, sich hier anmelden und erhalten Sie 100 GB kostenlos für Ihre Übertragung.