Zephyrnet-logotyp

Introducerar in-place versionsuppgraderingar med Amazon MWAA | Amazon webbtjänster

Datum:

Idag tillkännager AWS tillgängligheten av versionsuppgraderingar på plats för Amazon Managed Workflow för Apache Airflow (Amazon MWAA). Denna förbättring låter dig sömlöst uppgradera dina befintliga Apache Airflow version 2.x-miljöer till nyare tillgängliga versioner samtidigt som arbetsflödets körhistorik och miljökonfigurationer behålls. Du kan nu dra nytta av de senaste funktionerna hos Apache Airflow-plattformen utan att behöva skapa en helt ny Amazon MWAA-miljö.

Fram till nu, om du ville uppgradera din Amazon MWAA-miljö till en annan Apache Airflow-version, var du tvungen att följa Amazon MWAA-miljömigrering instruktioner. Detta innebar att skapa en ny Amazon MWAA-miljö och sedan migrera alla dina konfigurationer och Regisserad acykliska grafer (DAGs) till den. Om du också behövde bevara historiken för DAG-körningar var du tvungen att ta en säkerhetskopia av din metadatadatabas och sedan återställa den säkerhetskopian i den nyskapade miljön. Denna process var felbenägen, manuell och innebar extra kostnader för att underhålla två separata Amazon MWAA-miljöer tills du kunde verifiera den nya och avveckla den gamla.

I det här inlägget ger vi en översikt över uppgraderingsfunktionen på plats, utforskar tillämpliga användningsfall, beskriver stegen för att använda den och ger ytterligare vägledning om dess funktioner.

Översikt över lösningen

De nyligen introducerade versionsuppgraderingarna av Amazon MWAA ger en strömlinjeformad övergång från dina befintliga Apache Airflow version 2.x-baserade miljöer till nyare tillgängliga Apache Airflow-versioner. Amazon MWAA hanterar hela uppgraderingsprocessen, från provisionering av nya Apache Airflow-versioner till uppgradering av metadatadatabasen. I händelse av ett uppgraderingsfel är Amazon MWAA utformad för att rulla tillbaka till den tidigare stabila versionen med hjälp av den tillhörande ögonblicksbilden av metadatadatabasen.

Att uppgradera dina befintliga miljöer på Amazon MWAA är en enkel process. Du kan uppgradera dina befintliga Apache Airflow 2.0 och senare miljöer på Amazon MWAA med bara några klick på Amazon MWAA-konsolen, genom att använda Amazon MWAA API, AWS-kommandoradsgränssnitt (AWS CLI), eller genom att använda verktyg som AWS molnformation, den AWS Cloud Development Kit (AWS CDK), eller Terraform. Den här funktionen är tillgänglig i alla Amazon MWAA-regioner som för närvarande stöds.

På Amazon MWAA-konsolen, redigera helt enkelt miljön och välj en tillgänglig Apache Airflow-version som är högre än den nuvarande versionen av din befintliga miljö. Du kan också använda Uppdatera miljö API och ange den nya Apache Airflow-versionen för att utlösa en uppgraderingsprocess. För att lära dig mer om uppgraderingar av versioner på plats, se Uppgradering av Apache Airflow-versionen från Amazon MWAA-dokumentation.

Under en uppgradering skapar Amazon MWAA först en ögonblicksbild av den befintliga miljöns metadatadatabas, som sedan fungerar som bas för en ny databas. Därefter uppgraderas alla Apache Airflow-komponenter – webbserver, schemaläggare och arbetare. Slutligen uppgraderas den nyskapade metadatadatabasen, vilket effektivt fullbordar övergången till den nya miljön.

Tillämpliga användningsfall

Du bör överväga att uppgradera din Apache Airflow-version på Amazon MWAA om dina befintliga arbetsflöden kan hantera förändringen och en ny version är tillgänglig med funktioner eller förbättringar som passar ditt användningsfall. Genom att uppgradera kan du dra nytta av de senaste funktionerna hos Apache Airflow-plattformen och upprätthålla kompatibilitet med nya funktioner och bästa praxis som datadriven schemaläggning och nya Amazon-leverantörspaket släppt i Apache Airflow 2.4.3. Uppgraderingsprocessen innebär en miljöavbrottstid som kan ta upp till 2 timmar att slutföra beroende på miljöns storlek och kan utföras på begäran vid en tidpunkt som passar dig bäst. Om din befintliga miljö är mycket använd så att du inte har råd med stillestånd, överväg att skapa en ny miljö istället.

Förutsättningar

När du förbereder för uppgraderingen, se till att du slutför följande nödvändiga steg:

  1. Verifiera Apache Airflow-ändringar mellan din befintliga och nya versioner av miljön. Granska Apache Airflow släpp anteckningar för att förstå effekten av nya funktioner, betydande förändringar och buggfixar som alla mellanliggande Apache Airflow-släpp har gjort mellan din käll- och destinationsversion.
  2. Granska din befintliga requirements.txt fil för att verifiera den korrekta uppsättningen beroenden som krävs för din målmiljö. Kontrollera dessutom att din requirements.txt filen har rätt begränsningsfil lagt till högst upp i filen för att matcha din målmiljö. Apache Airflow-begränsningsfilen specificerar de beroende modulerna och leverantörsversionerna som är tillgängliga vid tidpunkten för en Apache Airflow-släpp. Att lägga till en begränsningsfil förhindrar att inkompatibla bibliotek installeras i din miljö. I följande exempel, byt ut {Airflow-version} med din målmiljös versionsnummer, och {Python-version} med versionen av Python som är kompatibel med din miljö: --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-{Airflow-version}/constraints-{Python-version}.txt"
  3. Granska kompatibiliteten för ytterligare Python-bibliotek som nämns i din requirements.txt fil för att matcha din målmiljö. Apache Airflow v2.4.3 och senare använder Python v3.10, medan äldre Apache Airflow-versioner använder Python v3.7. Därför, om du försöker uppgradera din befintliga Apache Airflow v2.0.2/2.2.2-baserade miljö till Apache Airflow v2.4.3 eller högre, bör du uppdatera dina ytterligare Python-bibliotek för att matcha Python v3.10.
  4. Med Apache Airflow v2.4.3 och högre har listan över leverantörspaket som Amazon MWAA installerar som standard för din miljö ändrats. Observera att vissa importer och operatörsnamn har ändrats i det nya leverantörspaketet i Apache Airflow för att standardisera namnkonventionen över leverantörspaketen. Jämför lista över leverantörspaket installerade som standard i Apache Airflow v2.2.2 eller v2.0.2 och konfigurera eventuella ytterligare paket du kan behöva för din nya Apache Airflow v2.4.3 och högre miljö.
  5. Se till att dina DAG:er och andra arbetsflödesresurser är kompatibla med den nya Apache Airflow-versionen du uppgraderar till.
  6. Använd aws-mwaa-local-runner verktyg för att testa dina befintliga DAG:er, krav, plugins och beroenden lokalt innan du distribuerar till Amazon MWAA. Du kan skapa en målmiljö för Apache Airflow som liknar en Amazon MWAA-produktionsbild lokalt med hjälp av aws-mwaa-local-runner och verifiera att alla dina komponenter fungerar innan du försöker uppgradera din Amazon MWAA-miljö. Testa dessutom den nya miljöuppgraderingsprocessen i lägre Amazon MWAA-miljöer som dev eller staging innan du rullar ut uppgraderingen i produktionsmiljöer.

Uppgraderingsprocessen

När en uppgradering har initierats stoppar Amazon MWAA de befintliga underliggande Apache Airflow-komponenterna (webbserver, schemaläggare och arbetare). Den här processen stoppar alla arbetsuppgifter som körs för närvarande. Statusen för din miljö i detta skede kommer att visas som UPDATING. Uppgraderingsprocessen skapar sedan en ögonblicksbild av databasen av metadatadatabasen, markerad med status CREATING_SNAPSHOT. När ögonblicksbilden är klar återgår miljöstatusen till UPDATING eftersom Amazon MWAA utlöser skapandet av en ny Apache Airflow-miljö som matchar ditt versionsval och tillämpar nödvändiga schemaändringar på den befintliga metadatadatabasen för att anpassa den till målmiljön för Apache Airflow. Under denna fas installeras dina specificerade krav, plugins och andra beroenden.

När du är klar markeras din nya miljö som AVAILABLE, vilket indikerar att uppgraderingsprocessen har lyckats och att miljön är redo för testning. Du kan nu logga in på ditt Apache Airflow-gränssnitt för att verifiera närvaron av dina befintliga DAG:er, deras historiska körningar, konfigurerade anslutningar och mer.

Men om det uppstår fel i installationen av dina specificerade krav, plugins och beroendefiler, initierar miljön en återställning till den tidigare stabila versionen. Under denna process kommer din miljöstatus att visas som ROLLING_BACK. Om återställningen lyckas kommer din tidigare stabila miljö att vara tillgänglig och statusen visas som UPDATE_FAILED tills en ny uppdatering görs och lyckas. Om återställningen misslyckas visas statusen som UNAVAILABLE, vilket indikerar att din miljö inte fungerar.

Om din miljöuppgraderingsprocess misslyckas är det troligt att den underliggande Amazon Elastic Container Service (Amazon ECS) AWS Fargate kluster hade stabiliseringsproblem orsakade av motstridiga krav och plugins, nätverksproblem eller DB-migreringsproblem efter Apache Airflow-komponentuppgraderingen. För att mildra dessa problem, se till att dina DAG:er och krav fungerar utan problem med att använda aws-mwaa-local-runner verktyg och, helst, testa i en iscensättande Amazon MWAA-miljö.

Ytterligare överväganden

Tänk på följande ytterligare information om den här funktionen:

  • Uppgraderingsprocessen är tillgänglig på begäran och kommer att vara begränsad till att flytta till nyare versioner. Uppgraderingar på plats på Amazon MWAA stöds inte för version 1.10.z. För att utföra en större versionsuppgradering, till exempel från version 1.yz till 2.yz, måste du skapa en ny miljö och migrera dina resurser.
  • Du kan bara välja tillämpliga högre versioner som du kan uppgradera till. Nedgradering till en lägre version är inte tillgänglig.
  • Återställningsprocessen kan ta ytterligare tid och, om du har Amazon enkel lagringstjänst (Amazon S3) bucket versioning aktiverad, Amazon MWAA är designad för att återställa miljön till den tidigare fungerande konfigurationen, inklusive plugins och krav. Eventuella manuella ändringar som görs i dina DAG:er kommer dock inte att återställas under denna process.
  • Efter att uppgraderingsprocessen har slutförts och miljön är tillgänglig, schemaläggs alla körande DAG:er som avbröts under uppgraderingen för ett nytt försök, beroende på hur du konfigurerar återförsök för dina DAG:er. Du kan också utlösa dem manuellt eller vänta på nästa schemalagda körning.
  • Du bör iterativt uppgradera dina miljöer och börja med de minst kritiska först.

Slutsats

I det här inlägget pratade vi om den nya funktionen hos Amazon MWAA som låter dig uppgradera din befintliga Amazon MWAA-miljö till högre Apache Airflow-versioner. Den här funktionen stöds i nya och befintliga Amazon MWAA-miljöer som kör Apache Airflow 2.x och senare. Använd den här funktionen för att uppgradera dina Apache Airflow-versioner samtidigt som du behåller din befintliga arbetsflödeskörningshistorik och miljökonfigurationer. Genom att uppgradera kan du dra nytta av de senaste funktionerna hos Apache Airflow-plattformen och bibehålla kompatibilitet med nya funktioner och följa bästa praxis.

För ytterligare information och kodexempel på Amazon MWAA, besök Amazon MWAA användarhandbok och Amazon MWAA exempel på GitHub-repo.

Apache, Apache Airflow och Airflow är antingen registrerade varumärken eller varumärken som tillhör Apache Software Foundation i USA och / eller andra länder.


Om författarna

Parnab Basak är lösningsarkitekt och serverlös specialist på AWS. Han är specialiserad på att skapa nya lösningar som är molnbaserade med hjälp av modern mjukvaruutvecklingspraxis som serverlös, DevOps och analys. Parnab arbetar nära inom analys- och integrationstjänster och hjälper kunder att använda AWS-tjänster för deras behov av orkestrering av arbetsflöden.

Fernando Gamero är en Senior Solutions Architect-ingenjör på AWS, med mer än 25 års erfarenhet inom teknikbranschen, från telekommunikation, bankverksamhet till nystartade företag. Han hjälper nu kunder med att bygga Event Driven Architectures, ta till sig IoT-lösningar på kanten och transformera deras data- och maskininlärningspipelines i stor skala.

Shubham Mehta är en erfaren produktchef med över åtta års erfarenhet och en dokumenterad meritlista för att leverera framgångsrika produkter. I sin nuvarande roll som Senior Product Manager på AWS övervakar han Amazon Managed Workflows för Apache Airflow (Amazon MWAA) och leder Apache Airflows bidrag med öppen källkod för att ytterligare förbättra produktens funktionalitet.

plats_img

Senaste intelligens

plats_img

Chatta med oss

Hallå där! Hur kan jag hjälpa dig?