Oggi AWS annuncia la disponibilità di aggiornamenti di versione sul posto per Flusso di lavoro gestito da Amazon per Apache Airflow (Amazon MWAA). Questo miglioramento consente di aggiornare senza problemi gli ambienti Apache Airflow versione 2.x esistenti alle nuove versioni disponibili mantenendo la cronologia di esecuzione del flusso di lavoro e le configurazioni dell'ambiente. Ora puoi sfruttare le funzionalità più recenti della piattaforma Apache Airflow senza dover creare un ambiente Amazon MWAA completamente nuovo.
Fino ad ora, se volevi aggiornare il tuo ambiente Amazon MWAA a una versione diversa di Apache Airflow, dovevi seguire le Migrazione dell'ambiente Amazon MWAA Istruzioni. Ciò ha comportato la creazione di un nuovo ambiente Amazon MWAA e quindi la migrazione di tutte le configurazioni e Grafici aciclici diretti (DAG) ad esso. Se era necessario conservare anche la cronologia delle esecuzioni del gruppo di disponibilità del database, era necessario eseguire un backup del database dei metadati e quindi ripristinare tale backup nell'ambiente appena creato. Questo processo era soggetto a errori, manuale e comportava costi aggiuntivi per mantenere due ambienti Amazon MWAA separati fino a quando non potevi verificare il nuovo e rimuovere le autorizzazioni del vecchio.
In questo post, forniamo una panoramica della funzionalità di aggiornamento della versione sul posto, esploriamo i casi d'uso applicabili, dettagliamo i passaggi per usarla e forniamo indicazioni aggiuntive sulle sue capacità.
Panoramica della soluzione
Gli aggiornamenti della versione sul posto recentemente introdotti da Amazon MWAA forniscono una transizione semplificata dagli ambienti esistenti basati su Apache Airflow versione 2.x alle versioni più recenti di Apache Airflow disponibili. Amazon MWAA gestisce l'intero processo di aggiornamento, dal provisioning di nuove versioni di Apache Airflow all'aggiornamento del database dei metadati. In caso di errore di aggiornamento, Amazon MWAA è progettato per eseguire il rollback alla versione stabile precedente utilizzando lo snapshot del database dei metadati associato.
L'aggiornamento degli ambienti esistenti su Amazon MWAA è un processo semplice. Puoi aggiornare i tuoi ambienti Apache Airflow 2.0 e successivi esistenti su Amazon MWAA con pochi clic sulla console Amazon MWAA, utilizzando l'API Amazon MWAA, il Interfaccia della riga di comando di AWS (AWS CLI) o utilizzando strumenti come AWS CloudFormazione, le Kit di sviluppo cloud AWS (AWS CDK) o Terraform. Questa funzionalità è disponibile in tutte le regioni Amazon MWAA attualmente supportate.
Sulla console Amazon MWAA, modifica semplicemente l'ambiente e seleziona una versione disponibile di Apache Airflow superiore alla versione corrente del tuo ambiente esistente. Puoi anche usare il Aggiorna ambiente API e specifica la nuova versione di Apache Airflow per attivare un processo di aggiornamento. Per ulteriori informazioni sugli aggiornamenti della versione sul posto, fare riferimento a Aggiornamento della versione Apache Airflow dalla documentazione di Amazon MWAA.
Durante un aggiornamento, Amazon MWAA crea innanzitutto uno snapshot del database dei metadati dell'ambiente esistente, che funge quindi da base per un nuovo database. Successivamente, tutti i componenti di Apache Airflow (server web, scheduler e worker) vengono aggiornati. Infine, il database dei metadati appena creato viene aggiornato, completando di fatto la transizione al nuovo ambiente.
Casi d'uso applicabili
Dovresti prendere in considerazione l'aggiornamento della tua versione di Apache Airflow su Amazon MWAA se i tuoi flussi di lavoro esistenti possono adattarsi alla modifica ed è disponibile una nuova versione con funzionalità o miglioramenti in linea con il tuo caso d'uso. Eseguendo l'aggiornamento, puoi sfruttare le funzionalità più recenti della piattaforma Apache Airflow e mantenere la compatibilità con nuove funzionalità e best practice come la pianificazione basata sui dati e i nuovi pacchetti di provider Amazon rilasciato in Apache Airflow 2.4.3. Il processo di aggiornamento comporta un tempo di inattività dell'ambiente che può richiedere fino a 2 ore per il completamento a seconda delle dimensioni dell'ambiente e può essere eseguito su richiesta nel momento più adatto alle proprie esigenze. Se il tuo ambiente esistente è molto utilizzato in modo tale da non poterti permettere un tempo di inattività, prendi in considerazione la creazione di un nuovo ambiente.
Prerequisiti
Durante la preparazione per l'aggiornamento, assicurati di completare i seguenti passaggi preliminari:
- Verifica le modifiche di Apache Airflow tra la versione esistente e quella nuova dell'ambiente. Esamina il flusso d'aria di Apache note di rilascio per comprendere l'impatto di nuove funzionalità, modifiche significative e correzioni di bug apportate da tutte le versioni intermedie di Apache Airflow tra la versione di origine e quella di destinazione.
- Rivedi il tuo esistente
requirements.txt
file per verificare il set corretto di dipendenze richieste per l'ambiente di destinazione. Inoltre, verifica che il tuorequirements.txt
file ha il file dei vincoli corretto aggiunto nella parte superiore del file in modo che corrisponda all'ambiente di destinazione. Il file dei vincoli di Apache Airflow specifica i moduli dipendenti e le versioni del provider disponibili al momento del rilascio di Apache Airflow. L'aggiunta di un file di vincoli impedisce l'installazione di librerie incompatibili nel proprio ambiente. Nell'esempio seguente, sostituisci{Airflow-version}
con il numero di versione dell'ambiente di destinazione e{Python-version}
con la versione di Python compatibile con il tuo ambiente:--constraint "https://raw.githubusercontent.com/apache/airflow/constraints-{Airflow-version}/constraints-{Python-version}.txt"
- Esamina la compatibilità delle librerie Python aggiuntive menzionate nel tuo
requirements.txt
file in modo che corrisponda all'ambiente di destinazione. Apache Airflow v2.4.3 e versioni successive utilizzano Python v3.10, mentre le versioni precedenti di Apache Airflow utilizzano Python v3.7. Pertanto, se stai tentando di aggiornare il tuo ambiente esistente basato su Apache Airflow v2.0.2/2.2.2 ad Apache Airflow v2.4.3 o versioni successive, dovresti aggiornare le tue librerie Python aggiuntive in modo che corrispondano a Python v3.10. - Con Apache Airflow v2.4.3 e versioni successive, l'elenco dei pacchetti provider che Amazon MWAA installa per impostazione predefinita per il tuo ambiente è cambiato. Si noti che alcune importazioni e nomi di operatori sono cambiati nel nuovo pacchetto del provider in Apache Airflow per standardizzare la convenzione di denominazione tra i pacchetti del provider. Confronta il elenco dei pacchetti provider installati per impostazione predefinita in Apache Airflow v2.2.2 o v2.0.2 e configura eventuali pacchetti aggiuntivi di cui potresti aver bisogno per il tuo nuovo ambiente Apache Airflow v2.4.3 e versioni successive.
- Assicurati che i DAG e le altre risorse del flusso di lavoro siano compatibili con la nuova versione di Apache Airflow a cui stai effettuando l'aggiornamento.
- Usa il aws-mwaa-local-runner utility per testare DAG, requisiti, plug-in e dipendenze esistenti in locale prima della distribuzione in Amazon MWAA. Puoi creare un ambiente Apache Airflow di destinazione simile a un'immagine di produzione Amazon MWAA utilizzando localmente
aws-mwaa-local-runner
e verifica che tutti i tuoi componenti funzionino prima di tentare di aggiornare il tuo ambiente Amazon MWAA. Inoltre, testa il nuovo processo di aggiornamento dell'ambiente in ambienti Amazon MWAA inferiori come sviluppo o gestione temporanea prima di implementare l'aggiornamento negli ambienti di produzione.
Processo di aggiornamento
Quando viene avviato un aggiornamento, Amazon MWAA interrompe i componenti Apache Airflow sottostanti esistenti (server Web, programma di pianificazione e worker). Questo processo interrompe tutte le attività di lavoro attualmente in esecuzione. Lo stato del tuo ambiente in questa fase verrà mostrato come UPDATING
. Il processo di aggiornamento crea quindi uno snapshot del database del database dei metadati, contrassegnato dallo stato CREATING_SNAPSHOT
. Quando lo snapshot è completo, lo stato dell'ambiente ritorna a UPDATING
poiché Amazon MWAA avvia la creazione di un nuovo ambiente Apache Airflow che corrisponde alla selezione della versione e applica le modifiche allo schema necessarie al database di metadati esistente per allinearlo con l'ambiente Apache Airflow di destinazione. Durante questa fase, vengono installati i requisiti, i plug-in e le altre dipendenze specificati.
Al termine, il tuo nuovo ambiente è contrassegnato come AVAILABLE
, che indica che il processo di aggiornamento ha avuto esito positivo e che l'ambiente è pronto per il test. Ora puoi accedere all'interfaccia utente di Apache Airflow per verificare la presenza dei tuoi DAG esistenti, le loro esecuzioni cronologiche, le connessioni configurate e altro ancora.
Tuttavia, se si verificano errori nell'installazione dei requisiti, dei plug-in e dei file delle dipendenze specificati, l'ambiente avvia un rollback alla versione stabile precedente. Durante questo processo, lo stato dell'ambiente verrà visualizzato come ROLLING_BACK
. Se il rollback ha esito positivo, l'ambiente stabile precedente sarà disponibile e lo stato verrà visualizzato come UPDATE_FAILED
fino a quando non viene tentato un nuovo aggiornamento e ha esito positivo. Se il rollback non riesce, lo stato verrà visualizzato come UNAVAILABLE
, che indica che il tuo ambiente non è funzionante.
Se il processo di aggiornamento dell'ambiente non riesce, è probabile che il file sottostante Servizio di container elastici Amazon (AmazonECS) AWS Fargate i cluster presentavano problemi di stabilizzazione causati da requisiti e plug-in in conflitto, problemi di rete o problemi di migrazione del database dopo l'aggiornamento del componente Apache Airflow. Per mitigare questi problemi, assicurati che i DAG e i requisiti funzionino senza problemi utilizzando il aws-mwaa-local-runner
utility e, idealmente, testare in un ambiente Amazon MWAA di staging.
Ulteriori considerazioni
Tenere presente le seguenti informazioni aggiuntive di questa funzione:
- Il processo di aggiornamento è disponibile su richiesta e sarà limitato al passaggio a versioni più recenti. Gli aggiornamenti della versione sul posto su Amazon MWAA non sono supportati per la versione 1.10.z. Per eseguire un aggiornamento della versione principale, ad esempio dalla versione 1.yz alla 2.yz, è necessario creare un nuovo ambiente ed eseguire la migrazione delle risorse.
- È possibile selezionare solo le versioni successive applicabili a cui è possibile eseguire l'aggiornamento. Il downgrade a una versione precedente non è disponibile.
- Il processo di rollback può richiedere più tempo e, se lo hai Servizio di archiviazione semplice Amazon (Amazon S3) abilitato per il controllo delle versioni del bucket, Amazon MWAA è progettato per ripristinare l'ambiente alla configurazione di lavoro precedente, inclusi plug-in e requisiti. Tuttavia, eventuali modifiche manuali apportate ai DAG non verranno annullate durante questo processo.
- Dopo che il processo di aggiornamento è stato completato correttamente e l'ambiente è disponibile, tutti i DAG in esecuzione che sono stati interrotti durante l'aggiornamento vengono pianificati per un nuovo tentativo, a seconda del modo in cui si configurano i tentativi per i propri DAG. Puoi anche attivarli manualmente o attendere la prossima esecuzione pianificata.
- Dovresti aggiornare in modo iterativo i tuoi ambienti iniziando da quelli meno critici.
Conclusione
In questo post, abbiamo parlato della nuova funzionalità di Amazon MWAA che ti consente di aggiornare il tuo ambiente Amazon MWAA esistente a versioni superiori di Apache Airflow. Questa funzionalità è supportata su ambienti Amazon MWAA nuovi ed esistenti che eseguono Apache Airflow 2.x e versioni successive. Utilizza questa funzione per aggiornare le tue versioni di Apache Airflow mantenendo le cronologie di esecuzione del flusso di lavoro e le configurazioni dell'ambiente esistenti. Eseguendo l'aggiornamento, puoi sfruttare le funzionalità più recenti della piattaforma Apache Airflow e mantenere la compatibilità con le nuove funzionalità e aderire alle best practice.
Per ulteriori dettagli ed esempi di codice su Amazon MWAA, visita il Guida per l'utente di Amazon MWAA e la Amazon MWAA esempi repository GitHub.
Apache, Apache Airflow e Airflow sono marchi o marchi registrati di Apache Software Foundation negli Stati Uniti e/o in altri paesi.
Informazioni sugli autori
Parnaba Basak è un architetto di soluzioni e uno specialista serverless presso AWS. È specializzato nella creazione di nuove soluzioni cloud native utilizzando moderne pratiche di sviluppo software come serverless, DevOps e analisi. Parnab lavora a stretto contatto nello spazio dei servizi di analisi e integrazione aiutando i clienti ad adottare i servizi AWS per le loro esigenze di orchestrazione del flusso di lavoro.
Fernando Gamerò è un ingegnere Senior Solutions Architect presso AWS, con oltre 25 anni di esperienza nel settore tecnologico, dalle telecomunicazioni, al settore bancario e alle startup. Ora sta aiutando i clienti a creare architetture guidate da eventi, adottando soluzioni IoT nell'edge e trasformando le loro pipeline di dati e machine learning su larga scala.
Shubham Mehta è un product manager esperto con oltre otto anni di esperienza e una comprovata esperienza nella fornitura di prodotti di successo. Nel suo attuale ruolo di Senior Product Manager presso AWS, supervisiona Amazon Managed Workflows per Apache Airflow (Amazon MWAA) e guida i contributi open source di Apache Airflow per migliorare ulteriormente la funzionalità del prodotto.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- PlatoAiStream. Intelligenza dei dati Web3. Conoscenza amplificata. Accedi qui.
- Coniare il futuro con Adryenn Ashley. Accedi qui.
- Acquista e vendi azioni in società PRE-IPO con PREIPO®. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/big-data/introducing-in-place-version-upgrades-with-amazon-mwaa/
- :ha
- :È
- :non
- $ SU
- 1
- 10
- 100
- 110
- 7
- a
- WRI
- sopra
- ospitare
- operanti in
- aciclico
- aggiunto
- l'aggiunta di
- aggiuntivo
- Informazioni aggiuntive
- Inoltre
- aderire
- adottare
- Adottando
- Vantaggio
- Dopo shavasana, sedersi in silenzio; saluti;
- allineare
- Tutti
- consente
- anche
- Amazon
- Flussi di lavoro gestiti da Amazon per Apache Airflow (Amazon MWAA)
- Amazon Web Services
- an
- analitica
- ed
- annunciando
- in qualsiasi
- Apache
- api
- applicabile
- SONO
- AS
- associato
- At
- tentato
- il tentativo
- disponibilità
- disponibile
- AWS
- precedente
- di riserva
- Settore bancario
- base
- BE
- stato
- prima
- essendo
- MIGLIORE
- best practice
- fra
- Insetto
- Costruzione
- by
- Materiale
- funzionalità
- Custodie
- casi
- ha causato
- il cambiamento
- cambiato
- Modifiche
- strettamente
- Cloud
- Nativo nube
- codice
- confrontare
- compatibilità
- compatibile
- completamento di una
- Completato
- completando
- completamento
- componente
- componenti
- Configurazione
- Conflitto
- Connessioni
- Prendere in considerazione
- consolle
- vincoli
- Contenitore
- contributi
- Convenzione
- correggere
- Costi
- potuto
- paesi
- creare
- creato
- crea
- Creazione
- creazione
- critico
- Corrente
- Attualmente
- Clienti
- GIORNO
- dati
- data-driven
- Banca Dati
- Predefinito
- consegna
- Richiesta
- dipendente
- Dipendente
- distribuzione
- progettato
- destinazione
- dettaglio
- dettagli
- Dev
- Mercato
- DevOps
- diverso
- Dsiplay
- documentazione
- i tempi di inattività
- spinto
- durante
- bordo
- in maniera efficace
- o
- abilitato
- ingegnere
- accrescere
- aumento
- garantire
- Intero
- interamente
- Ambiente
- ambienti
- errore
- Etere (ETH)
- Evento
- esempio
- Esempi
- esistente
- esperienza
- esperto
- esplora
- fallisce
- Fallimento
- caratteristica
- Caratteristiche
- pochi
- Compila il
- File
- Infine
- Nome
- seguire
- i seguenti
- Nel
- da
- funzionale
- funzionalità
- ulteriormente
- GitHub
- guida
- ha avuto
- Avere
- avendo
- he
- pesantemente
- aiutare
- superiore
- il suo
- storico
- storia
- ORE
- Tuttavia
- HTML
- http
- HTTPS
- if
- Immagine
- Impact
- importazioni
- miglioramenti
- in
- Compreso
- incompatibile
- indicando
- industria
- informazioni
- iniziati
- installazione
- invece
- istruzioni
- integrazione
- Intermedio
- sospeso
- introdotto
- l'introduzione di
- coinvolto
- IoT
- sicurezza
- IT
- SUO
- jpg
- ad appena
- dopo
- con i più recenti
- IMPARARE
- apprendimento
- meno
- biblioteche
- piace
- probabile
- Limitato
- linea
- Lista
- a livello locale
- ceppo
- macchina
- machine learning
- fatto
- mantenere
- maggiore
- make
- gestito
- direttore
- gestisce
- Manuale
- manualmente
- segnato
- partita
- menzionato
- Metadati
- forza
- migrare
- la migrazione
- migrazione
- mente
- Ridurre la perdita dienergia con una
- moderno
- moduli
- Scopri di più
- in movimento
- devono obbligatoriamente:
- nomi
- di denominazione
- nativo
- necessaria
- Bisogno
- di applicazione
- esigenze
- internazionale
- New
- nuova funzione
- Nuove funzionalità
- nuove soluzioni
- recentemente
- GENERAZIONE
- adesso
- numero
- of
- Vecchio
- on
- quelli
- esclusivamente
- open source
- operatore
- or
- orchestrazione
- minimo
- Altro
- su
- ancora
- panoramica
- pacchetto
- Packages
- eseguire
- eseguita
- fase
- piattaforma
- Platone
- Platone Data Intelligence
- PlatoneDati
- i plugin
- Post
- pratiche
- preparazione
- presenza
- impedisce
- precedente
- processi
- Prodotto
- product manager
- Produzione
- Prodotti
- comprovata
- fornire
- fornitore
- Python
- pronto
- record
- regioni
- registrato
- rilasciare
- Uscite
- sostituire
- necessario
- Requisiti
- Risorse
- ripristinare
- di ritegno
- problemi
- ritornare
- recensioni
- Ruolo
- Rotolo
- rotolamento
- Correre
- running
- Scala
- in programma
- programmazione
- senza soluzione di continuità
- prodotti
- anziano
- separato
- serverless
- serve
- Servizi
- set
- dovrebbero
- mostrare attraverso le sue creazioni
- significativa
- simile
- Un'espansione
- semplicemente
- Taglia
- Istantanea
- Software
- lo sviluppo del software
- Soluzioni
- alcuni
- Fonte
- lo spazio
- specialista
- specializzata
- specificato
- stabile
- Stage
- messa in scena
- Di partenza
- Startup
- stati
- Stato dei servizi
- Passi
- Interrompe
- conservazione
- lineare
- aerodinamico
- Successivamente
- di successo
- Con successo
- tale
- supportato
- Fai
- Target
- task
- Tecnologia
- telecomunicazioni
- Terraform
- test
- Testing
- di
- che
- Il
- loro
- Li
- poi
- Là.
- perciò
- Strumenti Bowman per analizzare le seguenti finiture:
- questo
- tempo
- a
- strumenti
- top
- pista
- marchi
- trasformazione
- transizione
- innescare
- seconda
- ui
- sottostante
- capire
- Unito
- Stati Uniti
- fino a quando
- Aggiornanento
- upgrade
- aggiornato
- Upgrades
- uso
- caso d'uso
- utilizzato
- Utente
- utilizzando
- utilità
- verificare
- versione
- Visita
- aspettare
- ricercato
- Prima
- Modo..
- we
- sito web
- web server
- servizi web
- sono stati
- quando
- quale
- while
- volere
- con
- senza
- Lavora
- lavoratore
- lavoratori
- flusso di lavoro
- flussi di lavoro
- lavoro
- lavori
- X
- anni
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro