Nello sviluppo cloud, spesso trattiamo lo storage come infinito. Ogni log, backup o dataset che creiamo viene preservato indefinitamente - non perché sia sempre utile, ma perché cancellarlo sembra rischioso. Eppure questa mentalità aumenta silenziosamente sia i costi che l’impatto carbonico.
La verità è: la maggior parte degli oggetti memorizzati non dovrebbe vivere per sempre. Dagli artefatti di build transitori a esportazioni temporanee e dataset analitici di breve durata, molti dei dati che produciamo hanno una vita naturale. La sfida è allineare quel ciclo di vita ai nostri sistemi.
Su DownToZero.Cloud abbiamo progettato DTZ ObjectStore attorno a questo principio. Non si tratta solo di conservare i dati in modo efficiente - si tratta di conservarli responsabilmente.
Ogni oggetto nel cloud consuma più dello spazio su disco. Usa:
Questa attività continua anche per dati che non vengono mai più consultati. In sostanza, il nostro storage ha un’ombra carbonica - e i cicli di vita dei dati non gestiti la fanno crescere nel tempo.
Uno dei principali pattern del Green Software è la Gestione del ciclo di vita dei dati - garantire che le risorse digitali siano allineate alla rilevanza nel mondo reale.
In pratica, questo significa:
Quando applichi questo pattern, i vantaggi vanno oltre la sostenibilità:
Il servizio DTZ ObjectStore è costruito con la gestione del ciclo di vita al suo centro. A differenza dei sistemi di storage tradizionali dove i TTL sono un ripensamento, DTZ integra questa capacità nel flusso di lavoro di creazione degli oggetti.
Allega un TTL quando carichi. Usa una durata relativa (X-DTZ-EXPIRE-IN) o un timestamp assoluto (X-DTZ-EXPIRE-AT). Fornisci la tua API key come X-API-KEY.
Base URL:
https://objectstore.dtz.rocks/api/2022-11-28
Carica con TTL di 24 ore (durata):
curl -X PUT \
"https://objectstore.dtz.rocks/api/2022-11-28/obj/logs/builds/2025-11-05.json" \
-H "X-API-KEY: $DTZ_API_KEY" \
-H "X-DTZ-EXPIRE-IN: P1D" \
--data-binary @build-output.json
Caricamento che scade a un orario fisso (RFC-3339):
curl -X PUT \
"https://objectstore.dtz.rocks/api/2022-11-28/obj/exports/report.csv" \
-H "X-API-KEY: $DTZ_API_KEY" \
-H "X-DTZ-EXPIRE-AT: 2025-12-01T00:00:00Z" \
--data-binary @report.csv
Scarica un oggetto:
curl -s \
"https://objectstore.dtz.rocks/api/2022-11-28/obj/exports/report.csv" \
-H "X-API-KEY: $DTZ_API_KEY" -o report.csv
Controlla i metadata (inclusa l’espirazione calcolata dal server):
curl -I \
"https://objectstore.dtz.rocks/api/2022-11-28/obj/exports/report.csv" \
-H "X-API-KEY: $DTZ_API_KEY"
# Look for headers like:
# X-DTZ-EXPIRATION: 2025-12-01T00:00:00Z
Elenca oggetti per prefisso:
curl -s \
"https://objectstore.dtz.rocks/api/2022-11-28/obj/?prefix=logs/builds/" \
-H "X-API-KEY: $DTZ_API_KEY" \
| jq .
# Response includes per-object fields like key, size, lastModified, and expiration.
Elimina prima del tempo (se necessario):
curl -X DELETE \
"https://objectstore.dtz.rocks/api/2022-11-28/obj/exports/report.csv" \
-H "X-API-KEY: $DTZ_API_KEY"
La cancellazione di ogni oggetto è suddivisa in due fasi. Quando un oggetto raggiunge il suo tempo di scadenza, non è più accessibile tramite l’API, ma rimane presente nel sistema di storage (e a quel punto non viene fatturato). La cancellazione effettiva è programmata in batch durante finestre temporali a basso impatto carbonico per minimizzare l’impronta dei job di background - trasformando l’applicazione delle lifecycle in una leva di sostenibilità, non solo in un’attività operativa.
Il ciclo di vita non riguarda la cancellazione sconsiderata - riguarda la progettazione con uno scopo. Pattern che funzionano bene:
Definisci le regole una volta e lascia che il sistema si ottimizzi continuamente - consumando meno, costando meno e facendo di più con lo stesso budget energetico.
La gestione del ciclo di vita degli oggetti riflette direttamente l’etica del Green Software: cancellare le risorse di storage inutilizzate e impostare politiche di conservazione di default - un piccolo, intenzionale atto di responsabilità che scala.
Su DownToZero.Cloud, qui è dove la buona ingegneria incontra la buona cittadinanza. La nostra missione è permettere agli sviluppatori di progettare per zero sprechi - dove i dati vivono solo per il tempo necessario, e non oltre.
La gestione del ciclo di vita degli oggetti si integra perfettamente nelle pipeline CI/CD. DTZ fornisce GitHub Actions dedicate per caricare e scaricare oggetti con supporto di scadenza integrato:
Esempio: caricare un artefatto di build con scadenza a 30 giorni
- name: Upload build artifact
uses: DownToZero-Cloud/objectstore-upload@main
with:
api_key: ${{ secrets.DTZ_API_KEY }}
name: build.zip
expiration: P30D
Questo rende semplice applicare politiche di lifecycle direttamente nei workflow di deployment - garantendo che gli artefatti temporanei non si accumulino indefinitamente.
Lo storage dovrebbe essere dinamico, non statico.
Integrando la consapevolezza del ciclo di vita nella tua architettura, riduci lo spreco cloud e abbracci un pattern di progettazione sostenibile che beneficia il pianeta, la tua piattaforma e i tuoi utenti allo stesso modo.
DTZ ObjectStore trasforma questo principio in pratica - dando a ogni oggetto una storia, uno scopo e, cosa più importante, una fine.