Devo containerizzare gli script 'job' di Python?

1

Abbiamo una soluzione di pianificazione python che al momento carica dinamicamente i moduli python per eseguire ogni lavoro in un processo separato.

I lavori sono piuttosto pesanti e contengono alcuni modelli di Tensorflow che elaborano i dati recuperati da unità o database condivisi e li inseriscono nei database.

Ho il compito di mantenere la soluzione di pianificazione e stavo considerando se la containerizzazione di ogni script di "lavoro", utilizzando Docker, sia una buona idea. La soluzione di pianificazione eseguirà quindi i contenitori utilizzando l'interfaccia Python di Docker.

Mi piace Docker e ritengo che segrega ogni lavoro in modo appropriato e fornisca un ambiente di produzione più pulito di quello di scaricare un carico di script in una directory. Sembra anche che renderebbe più semplice testare e distribuire i lavori: push source e Dockerfile su server, build e voilà ordinati. Sono preoccupato per quanto sia mantenibile e performante, nella mia esperienza i contenitori sono abbastanza grandi solo per la fonte, specialmente se si utilizza nvidia-docker ...

TLDR: la pacchettizzazione degli script di "job" di Python è buona prassi o eccessivo?

    
posta T Humbug 05.04.2018 - 15:42
fonte

1 risposta

4

Dalle informazioni che ci presenti qui, è difficile giudicare se abbia senso usare Docker.

Da ciò che scrivi:

We have a python scheduling solution which, at the moment dynamically loads python modules to run each job in a separate process.

Che cosa porterebbe sul tavolo uno scenario ancoraggio?

Se si progetta per la finestra mobile, si otterrebbe l'obiettivo di un contenitore che esegue un lavoro un (non è necessario caricare in modo dinamico). La forza di Docker è proprio questo: virtualizzare a livello di processo. Per raggiungere questo obiettivo tramite docker è necessario progettare le immagini per ogni "processo".

La domanda è, se è meno costoso mantenere le immagini del docker o separare la parte che carica dinamicamente in semplici script python che sono altrimenti avviati.

The scheduling solution would then run the containers using Docker's Python interface.

Questo non ha senso per me. Se vuoi disaccoppiare le cose con la finestra mobile, il tuo programmatore dovrebbe essere ignaro del fatto, che Docker (o qualsiasi altra cosa) è coinvolto affatto.

    
risposta data 05.04.2018 - 16:31
fonte

Leggi altre domande sui tag