Geautomatiseerde bestandsoverdracht met MASV en Docker

door Ankit Verma | 9 november 2021

Als u het type persoon bent dat regelmatig met grote bestanden werkt, zult u baat hebben bij automatische bestandsoverdracht. U kunt een editor zijn die zijn videoworkflow moet verbeteren (meer hierover hieronder); een fotograaf die hi-res beelden naar klanten stuurt; of zelfs een game-ontwikkelaar die FBX- of OBJ-bestanden verpakt en deelt.

Geautomatiseerde bestandsoverdracht gaat over gemak. Het verplaatsen van bestanden en het wachten op uploads/downloads vreet aan je dag. Mijn filosofie is dat geen enkele taak die meerdere keren per dag wordt uitgevoerd handmatig zou moeten worden uitgevoerd (als je het kunt vermijden).

Met de lancering van onze TransferAgent op Dockerwil het team van MASV het hebben over geautomatiseerde bestandsoverdracht en uw workflow voor het verzenden en ontvangen van bestanden.

Een snelle intro

David Postlethwaite kopfoto

Mijn naam is David Postlethwaite en ik hou ervan code te schrijven om mijn werk voor mij te doen. Als voormalig DevOps Engineer - nu Developer Advocate bij MASV - bestond mijn dagelijkse werk uit het schrijven van de automatische workflows voor het bouwen van code, het uitrollen van code, het uitvoeren van integratietests en het optimaliseren van images voor cloud delivery. Een van de belangrijkste redenen waarom ik bij MASV ben gaan werken, was omdat zij dezelfde automatiseringsmethodologie omarmden. Dat omvat ook de prachtige TransferAgent tool die het team heeft gebouwd met onze geautomatiseerde bestandsoverdracht mogelijkheid.

Wat is MASV TransferAgent

MASV is een service voor het delen van bestanden gericht op snelle levering van zware bestanden en geautomatiseerde bestandsoverdracht. We hebben een web app, een desktop client, en een API. Gebruikers bleven maar vragen om onze API te gebruiken, en na verloop van tijd realiseerden we ons dat we een eenvoudigere oplossing nodig hadden voor mensen die gewoon aan de slag wilden. Dat was toen we creëerden TransferAgent.

De MASV TransferAgent is een tool ontworpen om onze web API te abstraheren voor onze gebruikers. Het ondersteunt het uploaden en downloaden van meerdere pakketten tegelijkertijd zonder dat onze gebruikers hoeven te zoeken naar wachtrijen, bandbreedte beperkingen, en allerlei rare bestandssysteem eigenaardigheden. TransferAgent werkte zo goed dat we besloten om onze desktop client er omheen te bouwen. Zodat we een snelle doorlooptijd hebben voor onze gebruikers en de best mogelijke versie van onze tooling op de markt kunnen brengen.

Wat zijn Docker Containers?

iconik media management samenwerking

Wat is een Container? | App Containerisatie door Docker

Een van de dingen waar een nieuwe automatiseerder tegenaan zal lopen is Docker en containerisatie. Hieronder staat een blurb van Docker:

Een container is een standaardeenheid van software die code en al zijn afhankelijkheden verpakt zodat de toepassing snel en betrouwbaar van de ene computeromgeving naar de andere kan draaien.

Je kunt een container zien als zijn eigen op zichzelf staande applicatie. Zolang er een container-engine is (in ons geval Docker) zal die op zichzelf staande toepassing altijd op dezelfde manier draaien, ongeacht de hardware waarop hij staat. Uw team en het mijne hoeven zich niet langer zorgen te maken over incompatibiliteit tussen Windows, Mac en Linux. Containers stellen ons in staat ons te concentreren op het bouwen van de beste applicatie. Uw team hoeft zich alleen maar bezig te houden met hoe de applicatie gebruikt moet worden (en niet waar u hem draait).

Wat ons aantrok in het adopteren van containers is hoe ze compatibiliteitsproblemen tussen platformen kunnen oplossen en workflows kunnen verbeteren. Voordat een bedrijf containers implementeerde, had het bijvoorbeeld drie afzonderlijke on-premise servers waarop hun website draaide. Elk van die servers wordt handmatig beheerd door een sysadmin. Op een dag wordt er een bug in de applicatie geïntroduceerd waarvoor een pakketupdate van de leverancier nodig is en handmatige configuratiebestanden moeten worden gewijzigd. De systeembeheerder voert alle wijzigingen op elke server door, maar mist een enkele regel in een van de configuratiebestanden. Nu werken slechts twee van de drie servers.

Stel je nu eens voor dat deze drie servers Docker zouden draaien met de website in een container. Een ontwikkelaar brengt een nieuwe functie uit waarvoor een nieuwe afhankelijkheid nodig is. Voorheen zou dit de server breken omdat het de afhankelijkheid mist. In plaats daarvan crasht het Docker image en weigert het te draaien. Dit maakt een gemakkelijke terugkeer naar de vorige versie mogelijk. De oplossing voor alle drie de servers is nu om een bestand op één plaats te wijzigen en de Docker container opnieuw te bouwen. Dan kunnen alle servers de juiste versie gebruiken.

MASV + Docker

"Kunnen we niet?" is een uitdrukking die ik eerder heb gehoord als we het hebben over het minimaliseren van de hoeveelheid werk die nodig is. De essentie is om uit te vinden of we iets aan het over-engineeren zijn. Door Docker builds toe te voegen, kunnen we onze gebruikers sturen om allemaal dezelfde versie van TransferAgent te gebruiken. Met de meeste van onze gebruikers gericht op de Linux-versie, maakt dit het mogelijk om bugmeldingen vooral te richten op één besturingssysteem, aangezien Docker draait op Mac, Linux en Windows. Met andere woorden, Docker stelt ons in staat om onze bug vector te verkleinen. 

Let op: Wij zijn niet het verwijderen van alle builds voor de platformen die we momenteel gebruiken en ondersteunen. 

Docker containers zijn ongelooflijk makkelijk te updaten. Je kunt op je `latest` container tag blijven, die de nieuwste versie zal downloaden als je opnieuw opstart. Of je kan zelfs ons semver patroon volgen en updaten wanneer je het nodig hebt.

Als u hoopt te werken aan het bouwen van een app of script rond onze TransferAgent app, dan hoeft u zich geen zorgen te maken over compatibiliteitsproblemen aan de TransferAgent kant. Een gemakkelijke overdracht tussen Mac, Linux, en Windows is wat we hopen te bieden.

Videobewerking en automatisering

Video editors zijn een groeiende groep professionals die op zoek zijn naar het automatiseren van hun workflows. Docker kan allerlei soorten tools ondersteunen, van FFmpeg, handremen zelfs TransferAgent. Met de juiste scripts en bestanden op de juiste plaats kunnen deze hulpmiddelen rendering, afwerking en uiteindelijke automatische bestandsoverdracht tot een koud kunstje maken.

Als je een video editor, videograaf, of een soort van tech verslaafde bent, heb je waarschijnlijk wel wat extra hardware liggen waar je Docker op kunt zetten. Of het nu een Raspberry Pi is, je eigen NAS thuis, of zelfs een oude laptop die je in de hoek weggooit. 

We hopen dat u op de hoogte blijft van het volgende artikel waarin we TransferAgent aan de praat krijgen op Docker en aan ons denkt voor uw volgende bestandsoverdracht.

Bekijk onze Docs voor ontwikkelaars

Als je klaar bent om MASV te proberen, hier aanmelden en krijg 100 GB gratis bij uw overdracht.