今天,AWS 宣布提供就地版本升级 适用于 Apache Airflow 的 Amazon 托管工作流 (亚马逊 MWAA)。 此增强功能允许您将现有的 Apache Airflow 版本 2.x 环境无缝升级到更新的可用版本,同时保留工作流运行历史记录和环境配置。 您现在可以利用 Apache Airflow 平台的最新功能,而无需创建全新的 Amazon MWAA 环境。
到目前为止,如果您想将 Amazon MWAA 环境升级到不同的 Apache Airflow 版本,您必须遵循 Amazon MWAA 环境迁移 指示。 这涉及创建一个新的 Amazon MWAA 环境,然后迁移您的所有配置和 有向无环图 (DAG)到它。 如果您还需要保留 DAG 运行的历史记录,则必须对元数据数据库进行备份,然后在新创建的环境中恢复该备份。 这个过程很容易出错,需要手动操作,并且需要额外的成本来维护两个独立的 Amazon MWAA 环境,直到您可以验证新环境并停用旧环境。
在这篇文章中,我们概述了就地版本升级功能,探索适用的用例,详细说明使用步骤,并提供有关其功能的额外指导。
解决方案概述
Amazon MWAA 新推出的就地版本升级提供了从现有的基于 Apache Airflow 版本 2.x 的环境到更新的可用 Apache Airflow 版本的简化过渡。 Amazon MWAA 管理整个升级过程,从预置新的 Apache Airflow 版本到升级元数据数据库。 在升级失败的情况下,Amazon MWAA 旨在使用关联的元数据数据库快照回滚到之前的稳定版本。
在 Amazon MWAA 上升级现有环境是一个简单的过程。 您只需在 Amazon MWAA 控制台上单击几下,即可升级 Amazon MWAA 上现有的 Apache Airflow 2.0 及更高版本环境,方法是使用 Amazon MWAA API, AWS命令行界面 (AWS CLI),或使用类似的工具 AWS CloudFormation是, AWS云开发套件 (AWS CDK),或 Terraform. 此功能在所有当前支持的 Amazon MWAA 区域可用。
在 Amazon MWAA 控制台上,只需编辑环境并选择一个高于现有环境当前版本的可用 Apache Airflow 版本。 您还可以使用 更新环境 API 并指定新的 Apache Airflow 版本以触发升级过程。 要了解有关就地版本升级的更多信息,请参阅 升级 Apache Airflow 版本 来自 Amazon MWAA 文档。
在升级过程中,Amazon MWAA 首先创建现有环境元数据数据库的快照,然后作为新数据库的基础。 随后,所有 Apache Airflow 组件(网络服务器、调度程序和工作程序)都进行了升级。 最后,对新创建的元数据数据库进行升级,有效完成向新环境的过渡。
适用用例
如果您现有的工作流程可以适应更改并且新版本的功能或改进符合您的用例,则您应该考虑升级 Amazon MWAA 上的 Apache Airflow 版本。 通过升级,您可以利用 Apache Airflow 平台的最新功能并保持与新功能和最佳实践的兼容性,例如数据驱动调度和新的 Amazon 提供商包 在 Apache Airflow 2.4.3 中发布. 升级过程涉及环境停机,最多可能需要 2 小时才能完成,具体取决于环境大小,并且可以在最适合您的时间按需执行。 如果您现有的环境被大量使用,以至于您无法承受停机时间,请考虑创建一个新环境。
先决条件
准备升级时,请确保完成以下先决条件步骤:
- 验证 Apache Airflow 在现有环境版本和新版本环境之间的变化。 查看 Apache 气流 发行说明 了解所有中间 Apache Airflow 版本在您的源版本和目标版本之间进行的新功能、重大更改和错误修复的影响。
- 查看您现有的
requirements.txt
文件以验证目标环境所需的正确依赖项集。 此外,确认您的requirements.txt
文件在文件顶部添加了正确的约束文件以匹配您的目标环境。 Apache Airflow 约束文件指定 Apache Airflow 发布时可用的依赖模块和提供程序版本。 添加约束文件可防止将不兼容的库安装到您的环境中。 在下面的示例中,替换{Airflow-version}
使用目标环境的版本号,以及{Python-version}
使用与您的环境兼容的 Python 版本:--constraint "https://raw.githubusercontent.com/apache/airflow/constraints-{Airflow-version}/constraints-{Python-version}.txt"
- 查看您的文档中提到的其他 Python 库的兼容性
requirements.txt
文件以匹配您的目标环境。 Apache Airflow v2.4.3 及更高版本使用 Python v3.10,而较旧的 Apache Airflow 版本使用 Python v3.7。 因此,如果您尝试将现有的基于 Apache Airflow v2.0.2/2.2.2 的环境升级到 Apache Airflow v2.4.3 或更高版本,您应该更新额外的 Python 库以匹配 Python v3.10。 - 对于 Apache Airflow v2.4.3 及更高版本,Amazon MWAA 默认为您的环境安装的提供程序包列表已更改。 请注意,Apache Airflow 中的新提供程序包中的一些导入和运算符名称已更改,以便标准化提供程序包中的命名约定。 比较 默认安装的提供程序包列表 在 Apache Airflow v2.2.2 或 v2.0.2 中,并配置新的 Apache Airflow v2.4.3 和更高版本环境可能需要的任何其他包。
- 确保您的 DAG 和其他工作流资源与您要升级到的新 Apache Airflow 版本兼容。
- 使用 aws-mwaa-本地亚军 在部署到 Amazon MWAA 之前在本地测试现有 DAG、要求、插件和依赖项的实用程序。 您可以使用本地创建类似于 Amazon MWAA 生产映像的目标 Apache Airflow 环境
aws-mwaa-local-runner
并在尝试升级您的 Amazon MWAA 环境之前验证您的所有组件是否正常工作。 此外,在生产环境中推出升级之前,在较低的 Amazon MWAA 环境(如开发或暂存)中测试新的环境升级过程。
升级过程
启动升级后,Amazon MWAA 会停止现有的底层 Apache Airflow 组件(Web 服务器、调度程序和工作程序)。 此过程会停止当前正在运行的所有工作任务。 您的环境在此阶段的状态将显示为 UPDATING
. 升级过程然后创建元数据库的数据库快照,由状态标记 CREATING_SNAPSHOT
. 快照完成后,环境状态返回到 UPDATING
因为 Amazon MWAA 会触发创建与您的版本选择匹配的新 Apache Airflow 环境,并将必要的架构更改应用于现有元数据数据库以使其与目标 Apache Airflow 环境保持一致。 在此阶段,将安装您指定的要求、插件和其他依赖项。
完成后,您的新环境被标记为 AVAILABLE
,表示升级过程已成功,环境已准备好进行测试。 您现在可以登录 Apache Airflow UI 以验证现有 DAG 的存在、它们的历史运行、配置的连接等。
但是,如果安装您指定的要求、插件和依赖文件失败,环境将启动回滚到以前的稳定版本。 在此过程中,您的环境状态将显示为 ROLLING_BACK
. 如果回滚成功,您之前的稳定环境将可用,状态将显示为 UPDATE_FAILED
直到尝试新的更新并成功。 如果回滚失败,状态将显示为 UNAVAILABLE
,表明您的环境无法正常运行。
如果您的环境升级过程失败,很可能是底层 亚马逊弹性容器服务 (亚马逊云服务器) AWS 法门 Apache Airflow 组件升级后,由于需求和插件冲突、网络问题或数据库迁移问题导致集群出现稳定性问题。 要缓解这些问题,请使用 aws-mwaa-local-runner
实用程序,理想情况下,在暂存 Amazon MWAA 环境中进行测试。
其他注意事项
请记住此功能的以下附加信息:
- 升级过程可按需提供,并且仅限于迁移到较新的版本。 版本 1.10.z 不支持 Amazon MWAA 上的就地版本升级。 要执行主要版本升级,例如从版本 1.yz 升级到 2.yz,您必须创建一个新环境并迁移您的资源。
- 您只能选择可以升级到的适用的更高版本。 无法降级到较低版本。
- 回滚过程可能需要额外的时间,如果您有 亚马逊简单存储服务 (Amazon S3) 桶版本控制启用,Amazon MWAA 旨在将环境恢复到以前的工作配置,包括插件和要求。 但是,在此过程中不会还原对 DAG 所做的任何手动更改。
- 升级过程成功完成并且环境可用后,升级期间中断的任何正在运行的 DAG 都会安排重试,具体取决于您为 DAG 配置重试的方式。 您也可以手动触发它们或等待下一次预定运行。
- 您应该从最不重要的环境开始迭代升级您的环境。
结论
在本文中,我们讨论了 Amazon MWAA 的新功能,它允许您将现有的 Amazon MWAA 环境升级到更高的 Apache Airflow 版本。 运行 Apache Airflow 2.x 及更高版本的新的和现有的 Amazon MWAA 环境支持此功能。 使用此功能升级您的 Apache Airflow 版本,同时保留您现有的工作流运行历史和环境配置。 通过升级,您可以利用 Apache Airflow 平台的最新功能并保持与新功能的兼容性并遵守最佳实践。
有关 Amazon MWAA 的其他详细信息和代码示例,请访问 亚马逊 MWAA 用户指南 和 Amazon MWAA 示例 GitHub 存储库.
Apache、Apache Airflow 和 Airflow 是注册商标或商标 Apache软件基金会 在美国和/或其他国家。
作者简介
帕纳布巴萨克 是 AWS 的解决方案架构师和无服务器专家。 他擅长使用无服务器、DevOps 和分析等现代软件开发实践创建新的云原生解决方案。 Parnab 在分析和集成服务领域密切合作,帮助客户采用 AWS 服务来满足他们的工作流程编排需求。
费尔南多·加梅罗 是 AWS 的高级解决方案架构师工程师,在技术行业拥有超过 25 年的经验,从电信、银行到初创公司。 他现在正在帮助客户构建事件驱动架构,在边缘采用物联网解决方案,并大规模转换他们的数据和机器学习管道。
舒巴姆·梅塔 是一位经验丰富的产品经理,拥有超过八年的经验和成功交付产品的良好记录。 他目前担任 AWS 的高级产品经理,负责监督 Amazon Managed Workflows for Apache Airflow (Amazon MWAA),并带头为 Apache Airflow 做出开源贡献,以进一步增强产品的功能。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图爱流。 Web3 数据智能。 知识放大。 访问这里。
- 与 Adryenn Ashley 一起铸造未来。 访问这里。
- 使用 PREIPO® 买卖 PRE-IPO 公司的股票。 访问这里。
- Sumber: https://aws.amazon.com/blogs/big-data/introducing-in-place-version-upgrades-with-amazon-mwaa/
- :具有
- :是
- :不是
- $UP
- 1
- 10
- 100
- 110
- 7
- a
- 关于
- 以上
- 容纳
- 横过
- 无环
- 添加
- 添加
- 额外
- 附加信息
- 另外
- 坚持
- 采用
- 采用
- 优点
- 后
- 对齐
- 所有类型
- 允许
- 还
- Amazon
- 适用于 Apache Airflow 的 Amazon Managed Workflows (Amazon MWAA)
- 亚马逊网络服务
- an
- 分析
- 和
- 宣布
- 任何
- 阿帕奇
- API
- 相应
- 保健
- AS
- 相关
- At
- 尝试
- 尝试
- 可用性
- 可使用
- AWS
- 背部
- 备份工具
- 银行业
- 基础
- BE
- 很
- before
- 作为
- 最佳
- 最佳实践
- 之间
- 问题
- 建筑物
- by
- CAN
- 能力
- 案件
- 例
- 造成
- 更改
- 变
- 更改
- 密切
- 云端技术
- 云本土
- 码
- 比较
- 兼容性
- 兼容
- 完成
- 完成
- 完成
- 完成
- 元件
- 组件
- 配置
- 冲突的
- 连接
- 考虑
- 安慰
- 约束
- 容器
- 捐款
- 正确
- 成本
- 可以
- 国家
- 创建信息图
- 创建
- 创建
- 创造
- 创建
- 危急
- 电流
- 目前
- 合作伙伴
- DAG
- data
- 数据驱动
- 数据库
- 默认
- 交付
- 需求
- 依赖的
- 根据
- 部署
- 设计
- 目的地
- 细节
- 详情
- 开发
- 研发支持
- DevOps的
- 不同
- 屏 显:
- 文件
- 停机
- 驱动
- ,我们将参加
- 边缘
- 只
- 或
- 启用
- 工程师
- 提高
- 增强
- 确保
- 整个
- 完全
- 环境
- 环境中
- 错误
- 醚(ETH)
- 活动
- 例子
- 例子
- 现有
- 体验
- 有经验
- 探索
- 失败
- 失败
- 专栏
- 特征
- 少数
- 文件
- 档
- 终于
- (名字)
- 遵循
- 以下
- 针对
- 止
- 实用
- 功能
- 进一步
- GitHub上
- 指导
- 民政事务总署
- 有
- 有
- he
- 严重
- 帮助
- 更高
- 他的
- 历史的
- 历史
- HOURS
- 但是
- HTML
- HTTP
- HTTPS
- if
- 图片
- 影响力故事
- 进口
- 改善
- in
- 包含
- 不相容
- 说明
- 行业中的应用:
- 信息
- 同修
- 安装
- 代替
- 说明
- 积分
- 中级
- 间断
- 介绍
- 介绍
- 参与
- 物联网
- 问题
- IT
- 它的
- JPG
- 只是
- 后来
- 最新
- 学习用品
- 学习
- 最少
- 库
- 喜欢
- 容易
- 有限
- Line
- 清单
- 当地
- 日志
- 机
- 机器学习
- 制成
- 保持
- 主要
- 使
- 管理
- 经理
- 管理
- 手册
- 手动
- 标
- 匹配
- 提到
- 元数据
- 可能
- 迁移
- 迁移
- 移民
- 介意
- 减轻
- 现代
- 模块
- 更多
- 移动
- 必须
- 名称
- 命名
- 本地人
- 必要
- 需求
- 打印车票
- 需要
- 工业网络
- 全新
- 新功能
- 新功能
- 新解决方案
- 新
- 下页
- 现在
- 数
- of
- 老
- on
- 那些
- 仅由
- 开放源码
- 操作者
- or
- 管弦乐编曲
- 秩序
- 其他名称
- 输出
- 超过
- 简介
- 包
- 包
- 演出
- 执行
- 相
- 平台
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 插件
- 帖子
- 做法
- 准备
- 存在
- 防止
- 以前
- 过程
- 产品
- 产品经理
- 生产
- 核心产品
- 成熟
- 提供
- 提供者
- 蟒蛇
- 准备
- 记录
- 地区
- 在相关机构注册的
- 释放
- 发布
- 更换
- 必须
- 岗位要求
- 资源
- 恢复
- 护
- 回报
- 还原
- 检讨
- 角色
- 滚
- 卷
- 运行
- 运行
- 鳞片
- 预定
- 调度
- 无缝
- 选择
- 前辈
- 分开
- 无服务器
- 服务
- 特色服务
- 集
- 应该
- 显示
- 显著
- 类似
- 简易
- 只是
- 尺寸
- 快照
- 软件
- 软件开发
- 解决方案
- 一些
- 来源
- 太空
- 专家
- 专业
- 指定
- 稳定
- 阶段
- 分期
- 开始
- 初创企业
- 州
- Status
- 步骤
- 车站
- 存储
- 简单的
- 精简
- 后来
- 成功
- 顺利
- 这样
- 支持
- 采取
- 目标
- 任务
- 专业技术
- 电信
- Terraform
- test
- 测试
- 比
- 这
- 其
- 他们
- 然后
- 那里。
- 因此
- 博曼
- Free Introduction
- 次
- 至
- 工具
- 最佳
- 跟踪时
- 商标
- 转型
- 过渡
- 触发
- 二
- ui
- 相关
- 理解
- 联合的
- 美国
- 直到
- 更新
- 升级
- 升级
- 升级
- 使用
- 用例
- 用过的
- 用户
- 运用
- 效用
- 确认
- 版本
- 参观
- 等待
- 通缉
- 是
- 方法..
- we
- 卷筒纸
- Web服务器
- Web服务
- 为
- ,尤其是
- 这
- 而
- 将
- 也完全不需要
- 工作
- 工人
- 工人
- 工作流程
- 工作流程
- 加工
- 合作
- X
- 年
- 您
- 您一站式解决方案
- 和风网