Organizzazione dei tuoi script di avvio delle istanze cloud

Organizza i tuoi script di avvio delle istanze cloud

Separare tra il primo avvio e il riavvio

Molte delle tue attività di machine learning saranno tipicamente, dopo la fase iniziale di esplorazione, confezionate in immagini e distribuite su server on-premise o cloud. Questo faciliterà l’iterazione rapida per costruire l’infrastruttura che supporta l’operazionalizzazione del pipeline MLOps con il coinvolgimento di tutto il team di sviluppo che include scienziati dei dati, insieme a data, software, ingegneri cloud, ecc.

Diagramma di esempio che mostra una distribuzione tipica di attività di machine learning su server (VM = macchina virtuale). Immagine dell'autore

Script di avvio vengono utilizzati per eseguire la configurazione automatica o altre attività all’avvio di un’istanza di server cloud. Questo è noto come user data in AWS EC2, startup scripts in Google Cloud Engine e custom script extensions in Azure Virtual Machine. Il contenuto degli script di avvio può consistere in installazioni, impostazioni dei metadati, variabili di ambiente, ecc. Lo scopo principale è che ogni istanza sia sempre configurata e pronta per servire le applicazioni all’interno o i servizi adiacenti ogni volta che viene avviata.

Come per tutti gli script che scriviamo, dovremmo sempre cercare di renderli ordinati, strutturati e centralizzati in modo da poterli riutilizzare come modelli. Questo renderà più facile la gestione di più applicazioni in diverse istanze nel tuo progetto. Nelle sezioni seguenti, ti mostrerò come puoi farlo.

Prima di iniziare, potresti chiederti, a quale ruolo in un team di scienza dei dati è rivolto questo post? La risposta è dipende. In un’azienda con un team maturo (e un ampio budget), ci saranno ruoli altamente definiti in cui l’ingegnere del cloud o DevOps è responsabile delle distribuzioni. In altre situazioni, i ruoli sono più sfumati e anche uno scienziato dei dati o un ingegnere di machine learning svolge ruoli generalizzati che includono questo.

Anche se le sezioni successive sono specifiche per l’user data di AWS EC2, possono essere facilmente adattate ad altri provider utilizzando lo stesso concetto.

1) Script di avvio per il primo avvio vs riavvio

È abbastanza intuitivo utilizzare gli script di avvio al primo avvio di un’istanza, ma al riavvio? Se stiamo utilizzando istanze su richiesta e non sono destinate a ambienti di produzione (ad esempio, sviluppo, staging, SIT, UAT), ha poco senso finanziario farle funzionare durante il fine settimana o dopo l’orario di ufficio quando…