Migration Center 應用程式現代化評估 (codmod
) 是一項 AI 輔助工具,可自動評估應用程式的現代化程度。本頁說明如何安裝、使用及排解 codmod
工具的問題。
關於應用程式翻新評估
一般來說,現代化評估程序需要幾週時間,且需要大量專業知識。自動執行這項程序後,codmod
工具可大幅縮短時間,只需幾小時即可完成。
這項工具旨在提供以證據為依據的資訊,說明目前應用程式的架構、功能,以及可能阻礙雲端轉型的潛在問題。
這項工具適用於下列角色:
- IT 架構師
- 決策者
- 應用程式擁有者
codmod
工具可清楚顯示必要變更,以及將應用程式轉換為 Google Cloud的優點,有助於加快應用程式轉換速度。codmod
是可攜式 CLI 工具,可使用 Gemini 分析原始碼,並根據 Google Cloud 最佳做法提供建議。
事前準備
codmod
工具需要下列必要條件:
- Linux 或 Windows (10 以上版本) 工作站。
- 可存取已啟用 Vertex AI API 的 Google Cloud 專案。
- 工作站上已安裝 gcloud CLI。詳情請參閱「安裝 gcloud CLI」。
定價
使用 Gemini 評估程式碼的費用主要取決於程式碼集的大小,並以權杖計算。下表列出根據程式碼行數和所選模型,您可能會看到的預估費用:
程式碼集 | 程式碼行數 (LOC) | 預估費用 | |||
---|---|---|---|---|---|
自動調整 | 2.0-flash | 2.5-pro (預設) | 2.5-flash | ||
Spring Petclinic | ~6,500 | $20 美元 | $2 美元 | $30 美元 | $4 美元 |
James Project | ~1,000,000 | $60 美元 | $30 美元 | $500 美元 | $40 美元 |
Elasticsearch | ~5,000,000 | $200 | $200 | $3000 | $200 |
這些值可能高估,因為未考量下列因素可能帶來的節省金額:
- 縮短查詢內容的價格。
- 隱含快取價格調降。
- 承諾使用折扣 (CUD)。
這些參數的成本預計只占總成本的一小部分,尤其是較大的程式碼集。詳情請參閱 Gemini API 定價。
其他資訊
這項工具會運用 Vertex AI API 的進階程式碼理解和分析功能,如要進一步瞭解可用的模型及其功能,請參閱 Vertex AI API 說明文件中的「Google 模型」。
為維持最佳效能和成本效益,codmod
的程式碼大小限制約為 600 萬行程式碼。如果程式碼集超過這個限制,建議您將其分成較小的可管理部分,再進行分析。分析較小的區塊也有助於進行更精確的評估,並可能縮短整體處理時間。
設定 codmod
本節提供安裝和驗證說明,協助您使用 codmod
工具。
安裝「codmod
」
Windows
在 Windows PowerShell 中執行下列指令,下載最新版本的 codmod
:
$version=curl.exe -s https://codmod-release.storage.googleapis.com/latest
curl.exe -O "https://codmod-release.storage.googleapis.com/${version}/windows/amd64/codmod.exe"
Linux
執行下列指令,下載最新版本的 codmod
:
version=$(curl -s https://codmod-release.storage.googleapis.com/latest)
curl -O "https://codmod-release.storage.googleapis.com/${version}/linux/amd64/codmod"
chmod +x codmod
向 Google Cloud進行驗證
如要使用 codmod
工具,您需要 Google Cloud 專案。
確認專案已在控制台中啟用 Vertex AI API,或使用 CLI 啟用:
gcloud services enable aiplatform.googleapis.com --project <project-id>
確認您具備專案的
roles/aiplatform.user
角色或類似角色。如要進行驗證,請執行下列指令:
gcloud auth application-default login
或者,您也可以使用服務帳戶並設定 GOOGLE_APPLICATION_CREDENTIALS
環境變數。詳情請參閱「應用程式預設憑證的運作方式」。
管理 codmod
設定
以下各節說明如何使用 codmod config
指令設定 codmod
。
列出所有設定
如要查看所有目前的設定屬性及其值,請執行下列指令:
codmod config list
設定旗標的預設值
如要為屬性設定預設值,請使用 set
指令。舉例來說,如要設定預設專案 ID,請執行:
codmod config set project "PROJECT_ID"
將 PROJECT_ID
替換為 Google Cloud 專案 ID。
如要設定預設區域,請執行下列指令:
codmod config set region "REGION"
將 REGION
替換為 Google Cloud 區域。請參閱可用地區清單。
如果不確定要使用哪個區域,請使用 us-central1
。
取得特定值
如要查看單一屬性的值,請使用 get
指令。舉例來說,如要取得已設定的專案 ID,請執行下列指令:
codmod config get project
取消設定預設值
如要移除已設定的預設值,並還原為工具的原始預設設定,請使用 unset
指令。舉例來說,如要移除預設專案 ID,請執行下列指令:
codmod config unset project
建立 codmod
評估報告
以下各節說明如何建立預設評估,以及如何根據需求自訂評估。
建立預設報表
如要建立評估報告,請使用下列旗標執行 codmod
工具:
codmod create -c "CODEBASE" -o "OUTPUT"
更改下列內容:
CODEBASE
:指定包含要分析原始碼的目錄,且可多次指定。OUTPUT
:指定要儲存所產生報表的路徑。報告格式為 HTML。
您可以分別使用 -p "PROJECT_ID"
和 -r "REGION"
旗標,覆寫預設專案和地區。
您也可以指定下列選用標記:
--modelset [2.0-flash|2.5-flash|2.5-pro|adaptive]
: 指定要使用的 Gemini 模型。預設值為2.5-pro
。與2.5-pro
相比,採用自適應模式可大幅降低成本,但報表品質可能會受到影響。--context <string>
:您想提供的專案相關其他資訊。這項工具會在生成報表時將這個脈絡納入考量。--context-file <path>
:與--context
相同,但內容是在指定檔案中提供。--format <html|markdown|odt|json>
:產生報表時使用的格式。預設為 HTML。--allow-large-codebase
:根據預設,codmod
會先要求確認,再分析超過 100 萬行程式碼的程式碼集,避免產生高昂費用。這個選項可做為非互動式確認。您也可以執行codmod config set allow_large_codebase true
,預設啟用這項功能。--improve-fidelity
:設定後,codmod
會依序產生區段,而非平行產生。這可提升最終報表不同區段之間的一致性,但需要較長的執行時間。--force-include <strings>
、--force-exclude <strings>
:根據預設,codmod
會掃描常見的副檔名,包括 Java、.NET 和 Python。使用這些旗標納入或排除副檔名。引數必須是採用 RE2 語法的規則運算式。--experiments
:指定--experiments=enable_pdf,enable_images
,在codmod
中支援 PDF 和圖片。
建立完整報告
如需完整分析,請使用 create full
指令建立報表:
codmod create full -c "~/mycodebase/" -o "report.html"
建立以資料層為主的報表
如果需要深入瞭解資料層,可以建立著重於這個領域的報表:
codmod create data-layer -c "CODEBASE" -o "OUTPUT"
為特定轉換意圖建立報表
如要讓報表著重於特定現代化意圖,可以使用下列其中一種支援的意圖:
- Microsoft Workload Transformation (
MICROSOFT_MODERNIZATION
):適用於在 Microsoft OS 上執行的應用程式,評估重點是轉換歷程,可根據 .NET 現代化架構,使用最新版本並減少對 Microsoft 授權的依附元件。 - 雲端至雲端工作負載轉換 (
CLOUD_TO_CLOUD
):適用於在其他超大規模運算基礎架構上執行的應用程式。評估重點是轉換應用程式的建議變更,例如將其他雲端供應商服務對應至Google Cloud 服務。 - 舊版 Java 轉換 (
JAVA_LEGACY_TO_MODERN
):適用於執行 Java 8 或類似版本的應用程式,評估重點在於找出升級依附元件,以及程式碼中受 Java 21 (目前的 LTS) 變更影響的區域。 - 舊版 Java WILDFLY 轉換 (
WILDFLY_LEGACY_TO_MODERN
):適用於在最新版本之前的 WildFly 應用程式伺服器版本上執行的 Java EE/Jakarta EE 程式碼集。評估重點在於找出升級依附元件,以及程式碼中受 WildFly 應用程式伺服器版本升級影響的區域,包括 API 差異和相容性所需的變更。
如要建立以意圖為主的報表,請使用 --intent
標記:
codmod create -c "CODEBASE" -o "OUTPUT" --intent "INTENT"
建立包含其他部分的報表
這項工具支援納入預設未包含的其他區段,以降低成本。支援的章節如下:
files
:專案資料夾的結構化階層檢視畫面,以及每個資料夾內容的說明,可協助您瞭解專案檔案。classes
:程式碼類別目錄,其中包含每個類別的資訊,以及對其他類別的依附元件。支援的語言為 Java 和 C#。
如要建立其他區段,請使用 --optional-sections
標記:
codmod create -c "CODEBASE" -o "OUTPUT" --optional-sections "SECTIONS"
將 SECTIONS
替換為以半形逗號分隔的值清單。
建立自訂報表
如要探索特定自訂主題,可以根據您提供的內容,使用下列指令建立自訂報表:
codmod create custom -c "CODEBASE" -o "OUTPUT" --context "CONTEXT"
根據預設,系統會使用 LLM 擴充提供的內容,並進行調整,確保生成連貫的章節。如要停用這項行為,請指定 --improve-context=false
。
其他旗標:
--from-template <path>
:指定範本檔案,以定義文字或 PDF 檔案格式的文件結構。codmod
偵測到結構,並要求核准以繼續產生報表。--skip-template-approval
:使用--from-template
旗標時,略過核准要求。
修改現有報表
您可以在報表中建立新區段,或根據特定區段修改現有區段。舉例來說,您可能想著重於系統架構的特定層面,或是特定類型的安全漏洞。
如要使用指令修改報表,必須提供下列標記:
--context
和--context-file
其中之一:指定修改要求。--from-report
:指定現有報告檔案的路徑。--from-section
:做為新章節基礎的章節名稱 (例如「總覽」、「架構」)。
如要顯示特定報表中的所有可用區段,請執行下列指令:
codmod list-sections --from-report "REPORT"
修訂報表區段
執行下列指令,修改現有區段:
codmod revise section -c "CODEBASE" --from-report "REPORT" \
-o "REVISED_REPORT" --from-section "SECTION_NAME" \
--context "CONTEXT"
建立新的報表區段
使用下列指令建立新區段:
codmod create section -c "CODEBASE" --from-report "REPORT" \
-o "REGENERATED_REPORT" --from-section "SECTION_NAME" \
--context "CONTEXT"
create section
指令中的from-section
標記為選用項目。- 根據預設,系統會使用 LLM 擴充提供的內容,並進行調整,確保生成連貫的章節。您可以指定
--improve-context=false
來停用這項行為。
注意事項:
create section
和revise section
僅支援html
報表格式。- 、
revise section
和list-sections
預期--from-report
標記會指向 HTML 格式的報表。create section
預估評估費用
codmod
工具可協助您瞭解使用工具的費用,讓您計算建立報表的預估費用。如要查看費用預估,請執行下列指令:
codmod create --estimate-cost -c "CODEBASE"
create section
和 create custom
指令不支援費用估算功能。
設定詳細程度
codmod
詳細程度是使用 --verbosity LEVEL
旗標設定。記錄的詳細程度等級為下列其中之一:debug
、info
、warn
、error
或 none
。預設值為 warn
。
疑難排解
- 權限遭拒:如果遇到「權限遭拒」錯誤,請確認您已執行
chmod +x codmod
指令,將執行權限授予codmod
二進位檔。 - CLI 似乎停止運作:分析可能需要很長時間,但您通常可以在 CLI 的進度列中查看進度。如果進度列在 15 分鐘後仍維持在 0%,請確認您有相關模型足夠的配額。根據預設,
codmod
會使用gemini-2.5-pro
模型。不過,不同模型集會使用不同模型來達成不同目的,因此這項限制可能會有所變更。 回報錯誤:如果發生需要調查的錯誤,請收集偵錯資訊,協助開發團隊。記錄檔提供排解問題的重要詳細資料。執行下列指令來收集記錄,然後將產生的封存檔壓縮並傳送至 codmod-feedback-external@google.com。
codmod collect-logs -o "codmod_logs.zip"
開放原始碼授權
如要下載最新版 codmod
依附元件的開放原始碼通知,請執行下列指令:
version=$(curl -s https://codmod-release.storage.googleapis.com/latest)
curl -O "https://codmod-release.storage.googleapis.com/${version}/THIRD_PARTY_NOTICES.txt"
取得支援及提供意見回饋
為提升這項產品的品質,我們會收集去識別化的使用資料。我們會依據隱私權政策 Google Cloud 隱私權聲明處理這些資料。 您隨時可以執行下列指令來變更偏好設定:
codmod config set disable_usage_reporting true
你可以透過下列方式取得支援及提供意見回饋:
- 如要取得
codmod
的支援服務,請按一下所產生 HTML 報表中的「支援」按鈕,或傳送電子郵件至 codmod-feedback-external@google.com。 - 如要對
codmod
提供意見,請點選生成的 HTML 報表中的「意見回饋」按鈕。