Chuyển đến nội dung chính

Apache Airflow 3.0 đã ra mắt: Bản phát hành quan trọng nhất từ trước đến nay

Hướng dẫn thực tiễn về Apache Airflow 3.0 khám phá các tính năng, cải tiến và mọi điều bạn cần biết về bản cập nhật quan trọng nhất này.
Don Kaluarachchi
Don Kaluarachchi

Tạo tài khoản miễn phí của bạn

Luyện tập và Lộ trình tiến trình của bạn.

Tiếp tục với GoogleBằng cách tiếp tục, bạn chấp nhận Điều khoản sử dụng, Chính sách quyền riêng tư và việc dữ liệu của bạn được lưu trữ tại Hoa Kỳ.

Apache Airflow 3.0 cuối cùng cũng đã ra mắt, và đây chắc chắn là bản phát hành quan trọng nhất trong lịch sử của dự án. 

Bản phát hành này sẽ thay đổi cách bạn nghĩ về quản lý quy trình công việc, dù bạn mới bước vào lĩnh vực dữ liệu hay đã làm việc với Airflow nhiều năm.

Sau khi trực tiếp khám phá phiên bản mới, tôi có thể tự tin nói rằng đây vượt xa một bản cập nhật tăng dần thông thường.

Một số điểm nổi bật hàng đầu gồm:

  • Kiến trúc định hướng dịch vụ mới với khả năng thực thi từ xa hoàn toàn
  • Giao diện UI hoàn toàn mới dựa trên React, xây dựng trên FastAPI
  • Quản lý phiên bản DAG và theo dõi thay đổi
  • Kích hoạt DAG dựa trên tài sản và sự kiện
  • Hỗ trợ gốc cho các quy trình ML hiện đại
  • Lộ trình nâng cấp rõ ràng và tách CLI theo mô-đun

Hướng dẫn này sẽ đưa bạn khám phá Airflow 3.0 và mọi thứ mà phiên bản này mang lại.

Apache Airflow là gì?

Apache Airflow là một nền tảng mã nguồn mở giúp người dùng xây dựng, lập lịch và giám sát quy trình công việc dữ liệu một cách lập trình. 

Nó đã trở thành công cụ điều phối ưa thích cho các đường ống ETL phức tạp, quy trình kỹ thuật dữ liệu và gần đây hơn là các đường ống học máy.

Khái niệm nền tảng trong Airflow là DAG (Directed Acyclic Graph — đồ thị có hướng không chu trình, định nghĩa chuỗi nhiệm vụ và các phụ thuộc của chúng). 

Trong Airflow, tác vụ có thể là từ các script Python đến các phép biến đổi SQL, thậm chí là các thao tác đóng gói trong container.

Nền tảng linh hoạt, có thể mở rộng và với 3.0, còn “tương lai hóa” hơn bao giờ hết.

Nếu bạn mới bắt đầu với Airflow, khóa học Introduction to Apache Airflow in Python là một nguồn tài nguyên tuyệt vời cung cấp trải nghiệm thực hành.

Lược sử ngắn về Apache Airflow

Airflow được phát triển ban đầu bởi Airbnb vào năm 2014 và mở nguồn vào năm 2015. 

Sau đó, nó trở thành dự án của Apache và kể từ đó đã trở thành một trong những công cụ điều phối được sử dụng rộng rãi nhất trong hệ sinh thái kỹ thuật dữ liệu.

  • Airflow 1.x: Giới thiệu cách viết DAG bằng Python, các thành phần cơ bản của scheduler và executor.
  • Airflow 2.0 (2020): Cột mốc bổ sung TaskFlow API, REST API và scheduler sẵn sàng cho tính sẵn sàng cao (HA).
  • Airflow 2.3–2.5: Giới thiệu datasets, lập lịch nhận biết dữ liệu và cải thiện khả năng quan sát.
  • Airflow 3.0 (2025): Đánh dấu sự tái thiết kế nền tảng, ưu tiên tính mô-đun, khả năng gốc cho ML và hỗ trợ đám mây-native.

Rõ ràng từ hình ảnh dưới đây, số lượng đóng góp trên GitHub đã tăng đáng kể qua từng năm, cho thấy Apache Airflow là một trong những dự án mã nguồn mở hoạt động sôi nổi nhất trong lĩnh vực điều phối dữ liệu.

Chart showing the increasing number of GitHub contributions to Apache Airflow over the years.

Biểu đồ cho thấy số lượng đóng góp trên GitHub cho Apache Airflow tăng dần theo thời gian. Nguồn: Airflow 3.0 Introduction Video

Có gì mới trong Apache Airflow 3.0?

Apache Airflow 3.0 dựa trên ba chủ đề nền tảng. 

Screenshot of the Apache Airflow 3.0 release page.

Ảnh chụp màn hình trang phát hành Apache Airflow 3.0. Nguồn: Apache Airflow

Các chủ đề này phản ánh tầm nhìn của dự án nhằm đáp ứng nhu cầu của các nền tảng dữ liệu hiện đại, nâng cao trải nghiệm nhà phát triển và củng cố vị thế của Airflow như bộ điều phối trung tâm trong môi trường phân tán, lai và vận hành bằng ML.

Các chủ đề chính có thể được phân loại rộng như sau:

Image summarizing the three core themes of Apache Airflow 3.0.

Hình minh họa tóm tắt ba chủ đề cốt lõi của Apache Airflow 3.0. Hình được tạo bằng Napkin AI

Dễ dùng hơn

Một trong những mục tiêu quan trọng nhất của bản 3.0 là cải thiện khả năng sử dụng trên toàn diện, từ dòng lệnh đến giao diện người dùng và các tương tác API nền tảng.

Airflow nay dễ học hơn, thú vị hơn khi sử dụng hằng ngày và được trang bị tốt hơn để hỗ trợ các yêu cầu vận hành phức tạp.

Bảo mật mạnh mẽ hơn

Bảo mật đã trở thành mối quan tâm trung tâm trong kỹ thuật dữ liệu, đặc biệt do các quy định về quyền riêng tư ngày càng tăng và quy mô hạ tầng dữ liệu. 

Airflow 3.0 giải quyết các vấn đề này bằng hỗ trợ kiến trúc sâu hơn cho cô lập tác vụ và kiểm soát thực thi.

Những cải tiến bảo mật trong Airflow 3.0 vừa chủ động vừa mang tính chiến lược, phù hợp với các triển khai cấp doanh nghiệp, ngành được quản lý chặt chẽ và thực hành DevSecOps hiện đại.

Chạy ở mọi nơi, mọi lúc

Ngăn xếp dữ liệu hiện đại không còn bị giới hạn trong trung tâm dữ liệu on-premises hay thậm chí các môi trường đám mây tập trung. 

Airflow 3.0 đáp ứng thách thức này bằng việc hỗ trợ nhiều cấu hình triển khai và mẫu thực thi đa dạng.

Cho phép tác vụ chạy ở bất cứ đâu (và hỗ trợ quy trình có thể thực thi bất cứ lúc nào) mang lại sự linh hoạt, khả năng phục hồi và khả năng mở rộng vượt trội để điều phối vòng đời dữ liệu hiện đại.

Image showing remote clusters with local workers, used to run anywhere, anytime.

Hình ảnh minh họa các cụm từ xa với worker cục bộ, dùng để chạy ở mọi nơi, mọi lúc. Nguồn: Airflow 3.0 Astronomer Introduction Video

Phần còn lại của hướng dẫn sẽ đi sâu hơn vào các khía cạnh của chủ đề chính của Airflow 3.0.

Những thay đổi kiến trúc lớn trong Airflow 3.0

Bản phát hành Apache Airflow 3.0 tái hình dung cách tác vụ được thực thi, nơi chúng có thể chạy và cách nhà phát triển cũng như vận hành tương tác với hệ thống. 

Trọng tâm là tách rời, mô-đun hóa, khả năng mở rộng và linh hoạt triển khai, giúp Airflow đáp ứng nhu cầu của các nền tảng dữ liệu lai và đa đám mây.

Image showing architecture for Airflow 2 and Airflow 3.

Hình minh họa kiến trúc của Airflow 2 và Airflow 3. Nguồn: Airflow 3.0 Astronomer Introduction Video

Task Execution API và Task SDK

Một trong những đổi mới quan trọng nhất trong Airflow 3.0 là giới thiệu Task Execution API và Task SDK đi kèm. 

Các thành phần này cho phép định nghĩa và thực thi tác vụ độc lập với lõi runtime của Airflow.

Một số hệ quả chính của điều này:

  • Linh hoạt ngôn ngữ: Tác vụ không còn bị giới hạn ở Python. Với SDK mới, chúng có thể được viết bằng Java, Go, hoặc R, giúp mở rộng phạm vi áp dụng và tích hợp với nhiều công nghệ.
  • Tách rời môi trường: Tác vụ có thể chạy trong môi trường cô lập, từ xa hoặc container hóa, tách biệt với scheduler và worker. Điều này loại bỏ xung đột phụ thuộc và cải thiện tính nhất quán khi thực thi.
  • Quy trình phát triển gọn nhẹ: Giao diện tiêu chuẩn hóa cho phát triển tác vụ giúp đơn giản hóa kiểm thử và triển khai, tăng khả năng tái sử dụng mã và rút ngắn thời gian làm quen cho người mới.

Kiến trúc này là bước nhảy vọt giúp Airflow linh hoạt và cloud-native hơn. 

Nó phù hợp với xu hướng rộng hơn trong kỹ thuật dữ liệu hướng tới đa ngôn ngữ, container hóa và khả năng tái lập ở cấp tác vụ.

Edge Executor

Edge Executor là một bổ sung khác mang tính chuyển đổi trong Airflow 3.0. 

Nó được thiết kế để cho phép thực thi tác vụ theo sự kiện và phân tán theo địa lý. 

Thay vì yêu cầu mọi thực thi xảy ra trong cụm tập trung, Edge Executor cho phép tác vụ chạy tại hoặc gần nguồn dữ liệu.

Một số lợi ích chính của Edge Execution gồm:

Image showing key benefits of Edge Execution.

Hình minh họa các lợi ích chính của Edge Execution. Hình được tạo bằng Napkin AI

  • Linh hoạt theo địa lý: Tác vụ có thể chạy trong các cụm từ xa hoặc khu vực, trung tâm dữ liệu, thậm chí trên thiết bị biên (edge).
  • Đáp ứng theo thời gian thực: Lý tưởng cho các trường hợp độ trễ thấp, theo sự kiện như IoT, luồng dữ liệu tài chính, hoặc giám sát vận hành.
  • Giảm độ trễ mạng: Vì tính toán diễn ra gần nguồn dữ liệu, giảm chi phí chuyển lượng dữ liệu lớn về cụm trung tâm.
  • Pipeline kích hoạt bởi sự kiện: Edge Executor hỗ trợ mô hình lập lịch theo sự kiện mới được giới thiệu trong Airflow 3.0.

Cô lập tác vụ và cấu hình triển khai

Airflow 3.0 giới thiệu mức độ cô lập tác vụ mới, tăng đáng kể cả bảo mật lẫn hiệu năng. 

Cho phép tác vụ chạy trong môi trường sandbox giúp giảm rủi ro rò rỉ dữ liệu và xung đột tài nguyên. 

Nó cũng cho phép quản lý phụ thuộc linh hoạt hơn, vì các tác vụ hay DAG khác nhau có thể vận hành với phiên bản thư viện, môi trường Python, hoặc engine runtime riêng. 

Sự cô lập này còn hỗ trợ nâng cấp mượt mà hơn. Các thành phần lõi của Airflow có thể cập nhật mà không làm gián đoạn tác vụ đang chạy hoặc phá vỡ tương thích.

Kiến trúc cải tiến cũng cho phép nhiều kịch bản triển khai phù hợp với nhu cầu hạ tầng đa dạng. 

Trong môi trường đám mây công cộng, các worker của Airflow có thể dễ dàng phân phối trên các nhà cung cấp như AWS, GCP hoặc Azure.

Đối với thiết lập đám mây riêng hoặc lai, các thành phần mặt phẳng điều khiển có thể nằm trong mạng an toàn trong khi tác vụ thực thi ở DMZ hoặc trung tâm dữ liệu cục bộ.

Ngoài ra, Airflow 3.0 hỗ trợ triển khai edge, cho phép các trường hợp như suy luận ML hoặc phát hiện bất thường trực tiếp trên phần cứng công nghiệp hoặc di động.

Những khả năng này hỗ trợ tuân thủ quy định về vị trí dữ liệu, lập lịch chịu lỗi và thực thi tăng tốc bằng GPU.

Tách CLI: airflow và airflowctl

Airflow 3.0 giới thiệu giao diện dòng lệnh (CLI) tách biệt nhằm bổ trợ backend mô-đun, phân biệt giữa phát triển cục bộ và tác vụ vận hành từ xa.

airflow

  • Dùng cho phát triển và kiểm thử cục bộ
  • Tương tác với DAG cục bộ, CSDL metadata và các thành phần
  • Hỗ trợ kiểm thử nhanh, phân tích DAG và gỡ lỗi qua CLI

airflowctl

  • Thiết kế cho môi trường sản xuất và điều phối từ xa
  • Xử lý quản lý môi trường, triển khai và thực thi trên đám mây
  • Hữu ích cho pipeline CI/CD, quan sát và quản lý cụm phân tán

Sự phân chia này đơn giản hóa quy trình cho cả nhà phát triển cá nhân và các đội nền tảng. 

Để xem chi tiết kỹ thuật đầy đủ và danh sách thay đổi hoàn chỉnh, hãy xem ghi chú phát hành Airflow 3.0 chính thức.

Tóm tắt các nâng cấp kiến trúc

Dưới đây là bảng tóm tắt các nâng cấp kiến trúc:

Feature

Description

Task SDK + API

Viết và chạy tác vụ bằng bất kỳ ngôn ngữ nào với hỗ trợ thực thi từ xa

Edge Executor

Thực thi tác vụ phân tán gần nguồn dữ liệu hoặc trên nhiều khu vực địa lý

Task Isolation

Môi trường tác vụ độc lập, an toàn; quản lý phụ thuộc linh hoạt

CLI Split

Phân định rõ giữa lệnh cục bộ (airflow) và lệnh từ xa (airflowctl)

Deployment Topologies

Hỗ trợ mô hình thực thi lai, đa đám mây, edge và tăng tốc GPU

Giao diện UI mới dựa trên React và quản lý phiên bản DAG

Airflow 3.0 giới thiệu giao diện người dùng được thiết kế lại hoàn toàn, xây dựng từ đầu bằng React cho frontend và FastAPI làm framework backend mới. 

UI nhanh hơn, phản hồi tốt hơn

Kiến trúc UI mới mang lại trải nghiệm mượt mà hơn đáng kể, đặc biệt trong môi trường có hàng trăm hoặc hàng nghìn DAG. 

Tải trang nhanh hơn, các thành phần UI trực quan hơn và mô hình điều hướng nhất quán, phản hồi tốt giữa các chế độ xem.

Một số nâng cấp UI chính gồm:

  • Cải tiến Grid view: Điều hướng timeline, tìm kiếm và lọc được cải thiện. Người dùng có thể quét nhanh trạng thái thực thi của DAG và xử lý lỗi hoặc tác vụ bị kẹt dễ dàng hơn.
  • Cải tiến Graph view: Thu phóng, di chuyển và khám phá metadata tác vụ tương tác tốt hơn. Điều này giúp hiểu cấu trúc DAG phức tạp trong nháy mắt.
  • Bảng điều khiển Asset: Chế độ xem mới dành riêng cho quy trình dựa trên tài sản. Cho phép trực quan hóa tài sản, nơi tạo và nơi tiêu thụ, cũng như quan hệ dòng dữ liệu (lineage) giữa các DAG.

Hỗ trợ chế độ tối tích hợp sẵn

Chế độ tối (dark mode) nay được tích hợp gốc và có chủ đích trong Airflow, mang đến trải nghiệm thị giác tinh chỉnh, hướng tới độ rõ ràng và sự thoải mái dài lâu.

Dù một phiên bản dark mode đã có ở 2.x, bản phát hành này giới thiệu một lớp thiết kế hoàn thiện và có mục đích. 

Rõ ràng nó đã được tối ưu kỹ càng cho độ tương phản, khả năng đọc và giảm mỏi mắt trong các phiên làm việc kéo dài.

Là người từng dành thời gian trong mảng phát triển, tôi thực sự đánh giá cao điều này. 

Đây là một trong những tính năng được cộng đồng yêu cầu nhiều nhất và đặc biệt hữu ích cho nhà phát triển thường làm việc trong môi trường thiếu sáng hoặc đơn giản là thích giao diện tối hơn.

Hình ảnh dưới đây làm nổi bật sự tương phản giữa chế độ sáng và tối trong bảng điều khiển Airflow.

Screenshot of the Airflow console in light mode.

Ảnh chụp màn hình bảng điều khiển Airflow ở chế độ sáng. Nguồn: Airflow 3.0 Astronomer Introduction Video

Screenshot of the Airflow console in dark mode.

Ảnh chụp màn hình bảng điều khiển Airflow ở chế độ tối. Nguồn: Airflow 3.0 Astronomer Introduction Video

Quản lý phiên bản DAG

Một trong những khả năng mới có tác động lớn nhất trong Airflow 3.0 là quản lý phiên bản DAG hạng nhất. 

Thách thức trong Airflow 2.x

Ở các phiên bản trước, DAG được phân tích từ tệp mã nguồn, và phiên bản mới nhất của DAG được áp dụng phổ quát, thậm chí hồi tố cho các lần chạy (run) trong quá khứ. 

Cách tiếp cận này dẫn tới một số vấn đề đã biết. 

Một vấn đề lớn là “trôi” thực thi. Nếu bạn cập nhật DAG trong khi đang chạy, các tác vụ có thể thực thi dưới các phiên bản mã khác nhau. 

Cũng thiếu tính kiểm toán vì Airflow không có cơ chế gốc để theo dõi phiên bản DAG nào được dùng cho một lần thực thi cụ thể. 

Ngoài ra, tính chính xác lịch sử bị ảnh hưởng vì UI luôn hiển thị cấu trúc DAG mới nhất, bất kể thời điểm DAG thực sự đã chạy, dẫn đến lịch sử thực thi không nhất quán và có thể gây hiểu lầm.

Airflow 3.0 thay đổi điều gì

Airflow 3.0 đưa việc theo dõi phiên bản DAG có cấu trúc trực tiếp vào nền tảng:

  • DAG được tạo phiên bản mỗi khi có triển khai mới hoặc thay đổi mã.
  • Các lần chạy lịch sử được lưu giữ cùng chính xác phiên bản DAG đã tạo ra chúng.
  • Người dùng có thể chọn một phiên bản DAG cụ thể để kiểm tra, chạy lại hoặc phân tích từ UI.

Tôi rất thích tính năng này vì trên thực tế, gần như không thể tạo một DAG mà không cần thay đổi. 

DAG sẽ cần tiến hóa do logic kinh doanh mới, sửa lỗi hoặc tối ưu hiệu năng, và có quản lý phiên bản tích hợp khiến quá trình đó minh bạch, dễ quản hơn nhiều.

Bạn có thể thấy điều này hoạt động trong ảnh chụp màn hình dưới đây, hiển thị giao diện điều phối DAG và menu thả xuống lịch sử phiên bản mới.

Image of DAG orchestration.

Hình ảnh điều phối DAG. Nguồn: Airflow 3.0 Astronomer Introduction Video

Screenshot of DAG orchestration with a version history dropdown.

Ảnh chụp màn hình điều phối DAG với menu thả xuống lịch sử phiên bản. Nguồn: Airflow 3.0 Astronomer Introduction Video

Vì sao quản lý phiên bản DAG quan trọng

Quản lý phiên bản DAG đóng vai trò quan trọng trong việc duy trì quy trình dữ liệu đáng tin cậy, có thể truy vết và tuân thủ. Lý do gồm:

  • Tái lập kết quả: Bạn có thể chạy lại một DAG đúng như cách nó đã từng thực thi trong quá khứ, ngay cả khi mã hiện tại đã thay đổi.
  • Gỡ lỗi: Lỗi có thể được truy về phiên bản DAG cụ thể chịu trách nhiệm, hỗ trợ phân tích nguyên nhân gốc.
  • Quản trị: Trong môi trường quản lý nghiêm ngặt, quản lý phiên bản hỗ trợ tuân thủ bằng cách duy trì nhật ký về mã nào được dùng, khi nào và như thế nào.
  • Tích hợp CI/CD: Các đội dùng quy trình GitOps có thể liên kết phiên bản DAG trong Airflow với mã băm commit trong quản lý nguồn để có pipeline phân phối truy vết đầy đủ.

Ảnh chụp màn hình dưới đây cho thấy cách một số thay đổi được hiển thị trong UI, với các chế độ xem nhận biết phiên bản ở cả tổng quan DAG và khung mã.

Screenshot of the overview pane within a DAG in the Airflow console.

Ảnh chụp màn hình khung tổng quan trong một DAG trên bảng điều khiển Airflow. Nguồn: Airflow 3.0 Astronomer Introduction Video)

Screenshot of the code pane within a DAG in the Airflow console.

Ảnh chụp màn hình khung mã trong một DAG trên bảng điều khiển Airflow. Nguồn: Airflow 3.0 Astronomer Introduction Video

Hợp tác và minh bạch

Quản lý phiên bản DAG cũng giúp các đội dữ liệu cộng tác dễ dàng hơn. Ví dụ:

  • Kỹ sư có thể xem xét thay đổi DAG trực tiếp trong UI mà không cần truy cập Git.
  • Nhà phân tích và đội QA có thể xác minh hành vi lịch sử mà không làm ảnh hưởng đến DAG sản xuất.
  • Kỹ sư nền tảng có thể thử nghiệm an toàn các phiên bản DAG mới song song với phiên bản ổn định.

Lập lịch thông minh hơn và Backfill

Airflow 3.0 đánh dấu bước tiến đáng kể trong cách kích hoạt, quản lý và phối hợp quy trình công việc.

DAG dựa trên tài sản (asset-driven)

Nòng cốt của lập lịch thông minh trong Airflow 3.0 là khái niệm Assets. 

Lấy cảm hứng từ sự phát triển của datasets được giới thiệu ở các phiên bản trước, decorator @asset mới cho phép định nghĩa pipeline được dẫn dắt bởi tính sẵn có và trạng thái của các thực thể dữ liệu logic.

Asset là gì?

Một asset trong Airflow đại diện cho một phần dữ liệu hoặc đầu ra được tạo ra, biến đổi hoặc tiêu thụ bởi một DAG. 

Đó có thể là một bảng cơ sở dữ liệu, tệp trong lưu trữ đám mây, mô hình ML đã huấn luyện hoặc thậm chí là phản hồi từ API.

Với decorator @asset:

  • Asset được khai báo như các hàm Python trả về hoặc tạo dữ liệu.
  • Các asset được coi là thực thể hạng nhất trong quá trình điều phối.
  • Airflow tự động theo dõi phụ thuộc giữa asset và DAG.

Ảnh chụp màn hình dưới đây cho thấy cách trực quan hóa tài sản trong bảng điều khiển Airflow.

Screenshot of assets within the Airflow console.

Ảnh chụp màn hình về assets trong bảng điều khiển Airflow. Nguồn: Airflow 3.0 Astronomer Introduction Video

Một số tính năng chính của assets trong Airflow 3.0 gồm:

Image of key features of Assets in Airflow 3.0.

Hình minh họa các tính năng chính của Assets trong Airflow 3.0. Hình được tạo bằng Napkin AI

  • Metadata có cấu trúc: Asset hỗ trợ tên, URI, mã nhóm và các trường metadata tùy ý, cho phép lập bản đồ dòng dữ liệu và khám phá phong phú.
  • Thiết kế có thể kết hợp: Asset có thể tham chiếu lẫn nhau để xây dựng pipeline mô-đun, phụ thuộc lẫn nhau.
  • Hỗ trợ Watcher: Asset có thể cấu hình với Watcher để giám sát tín hiệu bên ngoài (hiện hỗ trợ AWS SQS) và kích hoạt thực thi DAG khi có sự kiện.

Mô hình này biến việc lập lịch DAG từ “chạy mỗi giờ” thành “chạy khi dữ liệu liên quan đã sẵn sàng”. 

Điều này cho phép quy trình thực sự phản ứng theo trạng thái dữ liệu, không lệ thuộc đồng hồ thời gian.

Để có ví dụ chuyên sâu và mẫu triển khai sản xuất với các khả năng mới này, hướng dẫn của Astronomer về lập lịch nhận biết dữ liệu cung cấp phần trình bày chi tiết. Bạn cũng có thể học cách triển khai pipeline dữ liệu đầy đủ với các tính năng này trong hướng dẫn Xây dựng ETL Pipeline với Airflow.

Lập lịch theo sự kiện bên ngoài

Airflow 3.0 giới thiệu hỗ trợ mạnh mẽ cho lập lịch dựa trên sự kiện bên ngoài, cho phép khởi chạy quy trình dựa trên tín hiệu thực từ bên ngoài hệ sinh thái Airflow.

Tính năng này là bước chuyển lớn so với cách tiếp cận thăm dò (polling) truyền thống của Airflow.

Nguồn sự kiện được hỗ trợ gồm AWS SQS để tích hợp hàng đợi thông điệp trong workflow đám mây tách rời, hỗ trợ dự kiến cho Kafka để hỗ trợ streaming và phối hợp microservices, và HTTP/webhooks để nhận tín hiệu từ hệ thống giám sát, API hoặc nền tảng điều phối khác.

Trường hợp sử dụng dao động từ khởi động pipeline dữ liệu khi có tệp mới vào S3 đến kích hoạt DAG khi có cập nhật registry mô hình ML hoặc phối hợp quy trình cảnh báo và ứng phó sự cố theo thời gian thực. 

DAG dựa trên sự kiện giúp Airflow trở nên linh hoạt và mạnh mẽ hơn, có khả năng phản ứng với hệ thống bên ngoài theo thời gian thực.

Backfill do scheduler quản lý

Một trong những cải tiến được mong đợi nhất ở Airflow 3.0 là đại tu cơ chế backfill, tức quá trình chạy lại các khoảng dữ liệu trong quá khứ hoặc sửa chữa DAG thất bại.

Một số thách thức ở Airflow 2.x gồm việc thiếu hỗ trợ UI và API cho backfill, buộc phải kích hoạt thủ công qua CLI. 

Do đó, Airflow 3.0 đã cải tiến gồm: 

Image containing improvements in Airflow 3.0.

Hình minh họa các cải tiến trong Airflow 3.0. Hình được tạo bằng Napkin AI

  • Mô hình thực thi hợp nhất: Backfill nay do scheduler chính xử lý, đảm bảo nhất quán với các lần chạy DAG thông thường.
  • Kích hoạt đa phương thức: Backfill có thể khởi chạy qua UI, API hoặc CLI, linh hoạt cho cả người dùng tương tác và hệ thống tự động.
  • Thực thi bất đồng bộ: Backfill nay chạy theo cách không chặn, async; có thể xếp hàng và quản lý đồng thời nhiều backfill.
  • Quan sát đầy đủ: UI có trình theo dõi tiến độ backfill với chế độ xem chi tiết cấp tác vụ, log theo thời gian thực và chỉ báo trạng thái.
  • Có thể hủy chạy: Backfill nay có thể tạm dừng hoặc kết thúc từ UI, cho phép phản ứng linh hoạt với sự cố mà không cần khởi động lại toàn bộ workflow.

Hỗ trợ trường hợp sử dụng Machine Learning và AI trong Airflow 3.0

Airflow 3.0 tiến một bước quan trọng để trở thành công cụ điều phối hạng nhất cho các quy trình học máy (ML) và AI hiện đại.

DAG không gắn với khoảng dữ liệu (non-data-interval)

Một trong những thay đổi mang tính chuyển đổi ở 3.0 là loại bỏ ràng buộc ngày thực thi (execution date) lâu nay.

Trong Airflow 2.x và trước đó, mỗi lần chạy DAG phải có execution_date duy nhất, chủ yếu gắn với khoảng lập lịch. 

Mô hình này phù hợp với job ETL theo thời gian, nhưng gây cản trở trong các kịch bản thử nghiệm và suy luận.

Với DAG không gắn khoảng dữ liệu, Airflow 3.0 mang đến sự độc lập thực thi thực sự:

Một số trường hợp sử dụng được tăng cường bởi thay đổi này gồm:

  • Thử nghiệm mô hình: Chạy cùng một DAG nhiều lần cho các cấu hình mô hình hoặc lát dữ liệu khác nhau mà không lo xung đột execution date.
  • Tinh chỉnh siêu tham số: Khởi chạy đồng thời nhiều lần chạy DAG cho các lưới tham số hoặc chiến lược tìm kiếm khác nhau, được theo dõi riêng nhưng chạy song song.
  • DAG suy luận: Gọi lặp lại hoặc liên tục cùng DAG cho dự đoán thời gian thực hoặc theo lô, được kích hoạt bởi dữ liệu mới, sự kiện bên ngoài hoặc thao tác người dùng.

Sự tách rời này đơn giản hóa mạnh mẽ logic điều phối cho kỹ sư ML và cho phép mức tự động hóa, song song và tái lập cao hơn.

Chạy tác vụ bất cứ lúc nào

Airflow 3.0 nay hỗ trợ chính thức nhiều mô hình thực thi, thừa nhận rằng quy trình dữ liệu hiện đại không phải lúc nào cũng tuân theo lịch cố định. 

Bản cập nhật này khiến Airflow thích ứng hơn với nhiều nhu cầu vận hành và xử lý dữ liệu.

Các chế độ thực thi được hỗ trợ gồm Thực thi theo lịch (Batch) truyền thống, sử dụng lập lịch dạng cron, phù hợp cho các công việc như báo cáo hàng đêm, đồng bộ theo giờ hoặc pipeline ETL theo lô. 

Airflow 3.0 cũng hỗ trợ thực thi dựa trên sự kiện, trong đó DAG có thể được kích hoạt bởi sự kiện bên ngoài—như tệp mới xuất hiện trong bucket lưu trữ đám mây hoặc thông điệp đến trên Kafka—cho phép điều phối linh hoạt theo thời gian thực. Ngoài ra, thực thi theo yêu cầu/cho suy luận nay khả thi, cho phép chạy DAG mà không cần dấu thời gian cụ thể. 

Điều này đặc biệt hữu ích cho các trường hợp như suy luận máy học, kiểm tra chất lượng dữ liệu hoặc công việc do người dùng kích hoạt, nơi tính đồng thời và tức thì là quan trọng.

Nâng cấp lên Airflow 3.0

Airflow 3.0 mang lại nhiều cải tiến đáng kể nhưng cũng rời khỏi các mẫu kế thừa theo những cách có ý nghĩa. 

Để giúp bạn chuyển đổi suôn sẻ, các cộng tác viên cốt lõi đã cung cấp hướng dẫn nâng cấp chi tiết, cấu trúc tốt.

Đây là bản phát hành lớn, và bạn nên lập kế hoạch cẩn trọng. 

Tuy nhiên, quá trình nâng cấp đã được đơn giản hóa tối đa với tài liệu rõ ràng, danh sách kiểm tra và công cụ tương thích.

Một số khía cạnh mà hướng dẫn đề cập gồm:

  • Thiết lập môi trường và phụ thuộc
  • Căn chỉnh scheduler và executor
  • Di trú sơ đồ (schema) cơ sở dữ liệu và sao lưu
  • Khác biệt hành vi trong thực thi tác vụ và phân tích DAG

Screenshot of Apache Airflow webpage on upgrading to 3.0.

Ảnh chụp màn hình trang Apache Airflow về nâng cấp lên 3.0. Nguồn: Apache Airflow

Điều quan trọng là bạn cần đánh giá các lĩnh vực sau trước khi tiến hành nâng cấp:

  • Tương thích DAG: Đảm bảo DAG sử dụng API và cấu trúc được Task SDK 3.0 hỗ trợ, đặc biệt nếu áp dụng tính năng thực thi mới.
  • Chuyển đổi CLI: Thay thế các lệnh CLI đã ngừng hỗ trợ bằng airflowctl khi phù hợp, đặc biệt trong CI/CD và bối cảnh thực thi từ xa.
  • Xác thực plugin: Xác nhận rằng plugin tùy chỉnh và tích hợp bên thứ ba tương thích với thiết kế kiến trúc mới và việc tách CLI.

Nếu bạn muốn nâng cấp trơn tru, hãy xem đầy đủ tài liệu Upgrading to Airflow 3.0 trước khi cập nhật Airflow.

Đánh giá dựa trên demo

Để xem các tính năng mới của Airflow 3.0 hoạt động thực tế, các DAG demo chính thức do Astronomer cung cấp là cách thực hành tuyệt vời để khám phá các khả năng mới nhất. 

Các demo này đóng vai trò như một màn trình diễn toàn diện và lý tưởng để hiểu cách các tính năng như quản lý phiên bản DAG, quy trình dựa trên tài sản và thực thi dựa trên sự kiện vận hành trong kịch bản thực tế.

Screenshot of an example use case where Airflow 3.0 could be used.

Ảnh chụp màn hình một trường hợp sử dụng ví dụ của Airflow 3.0. Nguồn: Astronomer GitHub

Giao diện cập nhật gây ấn tượng ngay lập tức. Chế độ xem Asset cung cấp bản đồ trực quan rõ ràng về phụ thuộc dữ liệu và dòng dữ liệu, đặc biệt hữu ích khi làm việc với DAG dựa trên tài sản. 

Bảng lịch sử phiên bản DAG là một điểm nhấn khác. Nó cho phép kiểm tra nhanh các thay đổi trước đây, khiến việc tái lập trở nên đơn giản và dễ liên hệ lần chạy cụ thể với mã đã tạo ra chúng. 

Ngoài ra, chế độ tối được thiết kế lại mang đến độ tương phản và khả năng đọc tuyệt vời, là cải tiến đáng giá cho các phiên gỡ lỗi kéo dài hoặc làm việc đêm muộn.

Nếu bạn muốn tự trải nghiệm, Astronomer cung cấp hướng dẫn từng bước và môi trường demo sẵn sàng chạy trên kho GitHub của họ. Bạn có thể clone repo, làm theo hướng dẫn thiết lập và khám phá các tính năng mới của Airflow 3.0.

Cộng đồng và phát triển trong tương lai

Apache Airflow luôn được dẫn dắt bởi cộng đồng, và điều này cũng đúng với Airflow 3.0. 

Nhiều tính năng có tác động lớn nhất trong bản phát hành này là phản hồi trực tiếp từ khảo sát cộng đồng, thảo luận trên GitHub và phản hồi người dùng.

Nếu bạn đang dùng Airflow, hãy cân nhắc tham gia đóng góp. Bạn có thể tạo ảnh hưởng bằng cách:

  • Tham gia Cộng đồng Slack của Apache Airflow để chia sẻ phản hồi, đặt câu hỏi và kết nối với các chuyên gia khác.
  • Tham gia trên GitHub bằng cách tham gia các issue, đề xuất tính năng và thảo luận thiết kế để góp phần định hình các bản phát hành tương lai.
  • Tham gia khảo sát tính năng khi được chia sẻ. Bản thân Airflow 3.0 được định hình từ những hiểu biết của người dùng như bạn.

Kết luận

Apache Airflow 3.0 mang đến kiến trúc định hướng dịch vụ, thực thi tác vụ đa ngôn ngữ, lập lịch thông minh và giao diện hiện đại hoàn toàn—tất cả trong một bản phát hành.

Sự chuyển dịch có thể khiến bạn thấy lớn, đặc biệt với việc tách CLI và các executor hướng tới edge, nhưng kết quả là một nền tảng điều phối mô-đun, có thể mở rộng và sẵn sàng cho sản xuất hơn. 

Nó cũng linh hoạt hơn cho đội ML, ngăn xếp cloud-native và hệ thống dựa trên sự kiện, nơi khả năng phản hồi và quan sát là chìa khóa.

Nếu bạn vẫn đang ở phiên bản Airflow cũ, việc nâng cấp lên 3.0 rất đáng cân nhắc.

Để thực hành với Airflow, hãy bắt đầu với khóa học của chúng tôi, Bắt đầu với Apache Airflow, hoặc đào sâu các khái niệm cốt lõi trong Introduction to Apache Airflow in Python.

Airflow 3.0 FAQs

Những tính năng mới chính trong Apache Airflow 3.0 là gì?

Airflow 3.0 giới thiệu kiến trúc định hướng dịch vụ, giao diện UI mới dựa trên React, quản lý phiên bản DAG, lập lịch dựa trên tài sản và hỗ trợ ML/AI được cải thiện.

Task Execution API mới cải thiện tính linh hoạt như thế nào?

Task Execution API cho phép tác vụ chạy bằng bất kỳ ngôn ngữ và môi trường nào, khiến Airflow đa ngôn ngữ và cloud-native hơn bao giờ hết.

Sự khác nhau giữa lệnh CLI mới airflow và airflowctl là gì?

 airflow nay dùng cho lệnh cục bộ, trong khi airflowctl xử lý thao tác từ xa, mang lại sự tách biệt tốt hơn giữa phát triển và triển khai.

Quản lý phiên bản DAG hoạt động thế nào trong Airflow 3.0?

Airflow 3.0 theo dõi các thay đổi của DAG theo thời gian. Điều này cho phép người dùng xem lịch sử phiên bản và cải thiện gỡ lỗi, kiểm toán và hợp tác.

Airflow 3.0 có tương thích với quy trình học máy không?

Có. Airflow 3.0 hỗ trợ DAG không theo khoảng và thực thi theo yêu cầu, giúp chạy thí nghiệm ML, huấn luyện mô hình và tác vụ suy luận dễ dàng hơn.

Nâng cấp lên Airflow 3.0 khó đến mức nào?

Phần lớn DAG sẽ hoạt động với thay đổi tối thiểu, nhưng một số thay đổi phá vỡ và tính năng ngừng hỗ trợ cần được rà soát. Có sẵn hướng dẫn di trú chính thức.

Don Kaluarachchi

Tác giả

Don Kaluarachchi

Tôi là Don—một Tư vấn, Nhà phát triển, Kỹ sư, Kiến trúc sư số và Tác giả (nói chung là đội rất nhiều mũ 👨‍💻🎩). Tôi yêu việc giữ cho các nền tảng số vận hành mượt mà và luôn tìm cách cải thiện chúng. Khi không viết code, tôi viết về trí tuệ nhân tạo, khoa học dữ liệu và mọi thứ liên quan đến công nghệ.
 
Trong nhiều năm, tôi đã làm mọi thứ từ xây dựng và tối ưu hóa phần mềm đến triển khai mô hình AI và thiết kế giải pháp đám mây. Tôi có bằng Thạc sĩ Khoa học về Trí tuệ nhân tạo và Cử nhân Khoa học Máy tính, đều từ Brunel University London.

Chủ đề

Liên quan