Công cụ lập trình

Cloudflare mã nguồn mở Forge để tối ưu hóa việc tạo SDK và CLI

Cloudflare đã ra mắt Forge, một quy trình mã nguồn mở dùng để tạo SDK, CLI và tài liệu. Công cụ này chạy trong CI để xem trước các thay đổi và hỗ trợ chuỗi đầu ra liên kết.

Được dịch tự động từ bản gốc tiếng Anh.

Cloudflare vừa giới thiệu Forge, một quy trình mã nguồn mở được thiết kế để tạo bộ công cụ phát triển phần mềm (SDK), giao diện dòng lệnh (CLI) và tài liệu. Được phát hành vào ngày 28 tháng 9 năm 2026, công cụ này nhằm giúp các nhóm kỹ thuật quản lý các bề mặt API phức tạp bằng cách tự động hóa việc tạo thư viện khách hàng và công cụ cho nhà phát triển. Công ty đã xây dựng hệ thống này nội bộ để xử lý quy mô của chính mình trước khi cung cấp nó cho công chúng theo giấy phép Apache 2.0.

Chuyện gì đã xảy ra

Cơ sở hạ tầng API nội bộ của Cloudflare đã phát triển đáng kể, hiện hỗ trợ hơn 3.500 thao tác trên hàng trăm dịch vụ. Các dịch vụ backend này được viết bằng nhiều ngôn ngữ khác nhau, bao gồm Rust, Go, TypeScript và Python. Khi công ty nỗ lực xây dựng một giao diện dòng lệnh thống nhất cho toàn bộ API của mình, cùng với các SDK và tài liệu tương ứng, các công cụ tạo mã hiện có đã chứng tỏ không đủ khả năng đáp ứng. Nhóm kỹ thuật cần một quy trình có thể xử lý quy mô khổng lồ này trong khi vẫn đủ linh hoạt để thích ứng với các ngôn ngữ lập trình và yêu cầu quy trình làm việc khác nhau.

Thách thức chính là giảm thiểu chi phí phối hợp giữa các nhóm sản phẩm rời rạc. Trước đây, khi một nhóm thực hiện thay đổi API, họ thiếu một cách đáng tin cậy để xem trước tác động của thay đổi đó đối với CLI toàn cục, SDK hoặc tài liệu trước khi hợp nhất mã. Điều này thường dẫn đến tình huống mà một lần hợp nhất vô tình làm hỏng quy trình tạo mã, gây ra các vấn đề mà các nhóm khác chỉ phát hiện ra vào thời điểm phát hành. Cloudflare đã thử sử dụng một số sản phẩm bên thứ ba được lưu trữ để giải quyết vấn đề này nhưng thấy chúng thiếu kiểm soát và độ tin cậy, với một số dịch vụ thậm chí còn ngừng hoạt động hoàn toàn.

Để giải quyết những điểm nghẽn này, Cloudflare đã phát triển Forge như một giải pháp nội bộ và hiện đang phát hành nó dưới dạng mã nguồn mở. Công cụ này đã tạo ra đầu ra cần thiết cho cf CLI và dự kiến sẽ cung cấp sức mạnh cho tài liệu API và SDK của Cloudflare trong những tháng tới. Bằng cách mã nguồn mở dự án, công ty có ý định cho phép các tổ chức khác tạo ra các bề mặt cần thiết cho cả nhà phát triển con người và tác nhân AI mà không phải dựa vào các nhà cung cấp SaaS độc quyền.

Cách thức hoạt động

Forge hoạt động như một quy trình tạo mã có thể cắm được (pluggable), tích hợp trực tiếp vào các luồng công việc tích hợp liên tục (CI). Nó hoạt động tương tự như Workers Previews của Cloudflare, tạo ra một bản build xem trước đầy đủ cho mọi thay đổi được gửi qua pull request. Khi một nhà phát triển sửa đổi đặc tả API, Forge sẽ kiểm tra lỗi cú pháp (lint) thay đổi đó và tạo các bản build xem trước của CLI, tài liệu và SDK. Những bản xem trước này chỉ làm nổi bật các thay đổi cụ thể được thực hiện, cho phép các kỹ sư cài đặt và kiểm thử ngay lập tức các artifact mới. Quy trình này giúp phát hiện các thay đổi phá vỡ tính tương thích (breaking changes) hoặc lỗi ở giai đoạn CI, ngăn chặn các vấn đề downstream trước khi chúng đến môi trường production.

Một tính năng cốt lõi của Forge là khả năng liên kết các bộ chuyển đổi (chained transformers), nghĩa là nó có thể tạo đầu ra từ các đầu ra khác chứ không chỉ từ đặc tả nguồn ban đầu. Trong khi nhiều trình tạo mục tiêu như CLI hoặc Terraform provider trực tiếp từ Go SDK, Forge cho phép người dùng tự kiểm soát quá trình liên kết này. Ví dụ, Cloudflare sử dụng khả năng này để tạo cf CLI dựa trên TypeScript từ TypeScript SDK, mà bản thân SDK này lại được suy ra từ định nghĩa OpenAPI. Tính linh hoạt này hỗ trợ việc thêm các hành vi chỉ cục bộ, chẳng hạn như các lệnh CLI tùy chỉnh không tương ứng với các cuộc gọi API trực tiếp, và đảm bảo rằng các bổ sung thủ công này được phản ánh đúng trong tài liệu được tạo.

Hệ thống được thiết kế để có thể mở rộng vượt ra ngoài các mục tiêu ngôn ngữ tiêu chuẩn. Hiện tại, nó hỗ trợ OpenAPI làm loại đầu vào, với kế hoạch hỗ trợ AsyncAPI, GraphQL, Cap’n Proto và Protobuf trong tương lai. Kiến trúc này cho phép tạo ra các công cụ chuyên biệt như Cap’n Web, hệ thống RPC của Cloudflare cho phép TypeScript gọi các API từ xa như thể chúng là các phương thức cục bộ. Nó cũng tạo điều kiện thuận lợi cho việc tạo các binding cho các công cụ như TanStack Query, Zod schema, Valibot schema và máy chủ Model Context Protocol, đảm bảo rằng tất cả các giao diện hướng tới người dùng đều đồng bộ với trạng thái API thực tế.

Chi tiết chính

  • Forge được phát hành theo giấy phép Apache 2.0 dễ dãi, cho phép sử dụng miễn phí dù là riêng tư hay công khai.
  • Công cụ hiện hỗ trợ đầu vào OpenAPI, với kế hoạch hỗ trợ GraphQL, AsyncAPI và Protobuf trong tương lai.
  • Nó tạo ra các bản build xem trước cho mỗi pull request, làm nổi bật các thay đổi để kiểm thử ngay lập tức.
  • Forge hỗ trợ đầu ra liên kết, cho phép tạo CLI từ SDK chứ không chỉ từ đặc tả.
  • Quy trình này đã được sử dụng cho cf CLI của Cloudflare và sẽ sớm cung cấp sức mạnh cho các SDK chính của công ty.
  • Nó được thiết kế để giảm chi phí phối hợp bằng cách bắt các thay đổi phá vỡ tính tương thích trong CI.

Tại sao điều này quan trọng

Đối với các nhóm phần mềm quản lý API lớn hoặc phân tán, việc duy trì các thư viện khách hàng và tài liệu nhất quán là một gánh nặng vận hành đáng kể. Các phương pháp tiếp cận truyền thống thường liên quan đến cập nhật thủ công hoặc các trình tạo cứng nhắc không tính đến logic tùy chỉnh hoặc yêu cầu đa ngôn ngữ. Forge giải quyết vấn đề này bằng cách cung cấp một giải pháp thay thế tự chủ, có thể kiểm soát so với các dịch vụ bên thứ ba dễ biến động. Bằng cách chạy quy trình tạo mã trong môi trường CI của riêng mình, các nhóm giành quyền sở hữu đối với các công cụ trải nghiệm nhà phát triển và có thể đảm bảo rằng SDK và tài liệu luôn đồng bộ với các định nghĩa API mới nhất.

Sự gia tăng của các tác nhân AI với tư cách là người tiêu dùng API càng làm tăng nhu cầu về các giao diện mạnh mẽ, có thể đọc được bởi máy móc. Các tác nhân yêu cầu SDK chính xác, tài liệu rõ ràng và các giao thức tiêu chuẩn hóa như MCP để tương tác hiệu quả với các dịch vụ. Khả năng tạo tự động các bề mặt này của Forge đảm bảo rằng các sản phẩm vẫn dễ tiếp cận đối với cả nhà phát triển con người và các hệ thống tự động. Sự thay đổi này coi tính tương thích với tác nhân là một yêu cầu cơ bản chứ không phải là suy nghĩ sau cùng, giúp các tổ chức chuẩn bị sẵn sàng cho API của họ trước các mô hình tiêu dùng đang phát triển.

Ngoài ra, sự hỗ trợ của công cụ đối với các chiến lược phiên bản hóa API mở ra một lối đi cho các dịch vụ tồn tại lâu dài. Cloudflare lưu ý rằng API v4 của họ đã được áp dụng trong mười năm, tích lũy các thay đổi mà theo thông lệ sẽ đòi hỏi một bước nhảy phiên bản chính. Bằng cách sử dụng Forge để phát hành các artifact một cách gia tăng, các nhóm có thể khám phá các cách tiếp cận phiên bản hóa giới thiệu các khả năng mới mà không làm hỏng các khách hàng hiện có. Điều này đặc biệt liên quan đến các hệ sinh thái phức tạp như Terraform, nơi các nâng cấp đòi hỏi quản lý cẩn thận để tránh làm gián đoạn các triển khai cơ sở hạ tầng.

Bạn có thể làm gì

  • Đánh giá Forge cho quy trình tạo mã API hiện tại của bạn để xem liệu nó có giảm bớt việc bảo trì thủ công hay không.
  • Tích hợp quy trình vào hệ thống CI của bạn để tạo các bản build xem trước cho mỗi pull request.
  • Sử dụng tính năng liên kết để tạo CLI tùy chỉnh hoặc tài liệu từ các SDK hiện có của bạn.
  • Thử nghiệm việc tạo binding cho các thư viện cụ thể như TanStack Query hoặc schema xác thực.
  • Đóng góp cho kho mã nguồn mở nếu bạn có cải tiến cho các định dạng đầu vào được hỗ trợ.
  • Lên kế hoạch chiến lược phiên bản hóa API của bạn bằng cách tận dụng các bản phát hành artifact gia tăng thay vì các bản cập nhật lớn đột ngột.

Công cụ từ cửa hàng Bytechap

Đọc tiếp

Tất cả bài viết