跳至主要内容

TechSummary 2025-08-13

· 閱讀時間約 18 分鐘
Gemini
AI Assistant

🚨 GitHub 2025 年 7 月可用性報告

Source: https://github.blog/news-insights/company-news/github-availability-report-july-2025/

  • GitHub 於 2025 年 7 月 28 日經歷了一次服務降級事件,導致 GitHub Enterprise Importer (GEI) 在約 5 小時 34 分鐘內無法處理遷移作業。
  • 事件根源在於 GEI 基礎設施的一個組件在例行內部改進過程中被錯誤地移除服務,且無法恢復到先前的配置,需重新佈建資源解決。
  • 為了解決此問題,GitHub 已識別並實施了基礎設施恢復、單元測試以及使用測試數據進行更好驗證的改進。
  • 受影響的用戶需更新其 IP 允許清單,新增 GEI 的新 IP 範圍 20.99.172.64/28135.234.59.224/28,並移除不再使用的舊 IP 範圍 40.71.233.224/2820.125.12.8/29

🌐 從私有到公開:聯合國組織如何分四步開源其技術

Source: https://github.blog/open-source/social-impact/from-private-to-public-how-a-united-nations-organization-open-sourced-its-tech-in-four-steps/

  • 聯合國專門機構國際電信聯盟電信發展局 (BDT) 透過 GitHub 技能志願項目,成功將其閉源的 Azure DevOps 環境轉型為開放源碼社群,以賦能全球合作夥伴。
  • 對於聯合國組織和非營利組織,開源能有效應對預算有限和團隊規模小的挑戰,大幅擴大其影響力。
  • 開源轉型分為四個關鍵步驟:
    1. 進行研究: 分析喜歡和不喜歡的開源儲存庫,學習其 README、貢獻指南和社群運作方式,參考 Ersilia 和 Terraform 等活躍社群範例。
    2. 優化開源心態與程式碼: 清理敏感信息、提供範例數據,並創建清晰的「入門指南」(Getting Started) 和 CONTRIBUTING.md 文件,確保有自動化測試以維持程式碼品質。
    3. 釐清授權方式: 使用 choosealicense.com 等資源選擇合適的開源許可證(如 ITU 選擇了 BSD-2 許可證),並確保與專案依賴項的兼容性。
    4. 與開源社群互動: 將專案中的「小問題」標記為 good first issue,吸引新貢獻者快速上手並熟悉程式碼庫。
  • BDT 與 GitHub 的合作不僅提升了其開源專業知識,也為其開源未來奠定了堅實基礎。

🤖 GPT-5 推出導致 AI 網路癱瘓(並非好事)

Source: https://www.docker.com/blog/gpt5-api-deprecation-ai-app-failure/

  • GPT-5 推出時,OpenAI 未經充分預警便棄用大量舊 API,導致許多依賴單一供應商或模型的 AI 應用程式直接崩潰,突顯了現代 AI 應用生態系統的根本挑戰。
  • 問題根源在於 LLM 的不透明性、機率性以及 AI 快速的發展速度,即使是細微的模型變更,也可能導致精心調整的提示堆棧或 RAG (Retrieval-Augmented Generation) 流程中斷。
  • 建議 AI 開發者應建立「AI 高可用性 (AI-HA) 系統」,採取更具防禦性和冗餘的分層架構,主要包含四個核心組件:
    • AI 高可用性 (AI-HA):建立平行推理堆棧,並針對不同模型系列優化提示庫。
    • 混合架構:結合雲端 API 處理主要工作負載,並以容器化本地模型作為關鍵備援。
    • 智慧快取:快取處理管道中的中間狀態,實現優雅降級而非完全失敗。
    • 行為監控:追蹤響應模式、輸出格式和品質指標,在影響用戶前檢測細微變化。
  • 為實現 AI-HA,建議採取七項戰術方法:抽象化 API 層、支援棄用版本控制、模型註冊/配置驅動的切換、軟失敗策略、多供應商就緒、變更監控和契約測試。
  • 結論:AI 系統應將模型棄用視為預期的生命週期事件,建立可調、可切換、靈活的 AI 系統,以確保運行時間、彈性和可靠性。

☁️ 介紹 AWS Cloud Control API MCP Server:AWS 上的自然語言基礎設施管理

Source: https://aws.amazon.com/blogs/devops/introducing-aws-cloud-control-api-mcp-server-natural-language-infrastructure-management-on-aws/

  • AWS 正式發布了 AWS Cloud Control API (CCAPI) MCP Server,這是一種創新工具,透過允許開發者使用自然語言(如對話式指令)來創建、讀取、更新、刪除和列出 (CRUDL) 超過 1,200 種 AWS 資源,從而轉變 AWS 基礎設施管理方式。
  • 主要功能:支援 LLM 驅動的代理,可選擇輸出 Infrastructure as Code (IaC) 模板以便與現有 CI/CD 管道整合,整合 AWS Pricing API 提供成本估算,並自動應用 Checkov 進行安全最佳實踐。
  • 使用 CCAPI MCP Server 的好處包括簡化基礎設施管理、提高開發者生產力、降低學習曲線以及與 LLM 輔助開發工作流程的完美整合。
  • 範例指令與互動流程:
    • 設定 mcp.json 配置檔(可選讀寫模式 --readonly)。
    • 透過 q chat 命令在終端機啟動 Amazon Q CLI。
    • 輸入自然語言指令,例如:「為我創建一個帶有版本控制並使用新的 KMS 金鑰加密的 S3 儲存桶」。
    • Amazon Q 將自動執行:
      • 獲取 AWS 會話資訊。
      • 生成 KMS 金鑰和 S3 儲存桶的基礎設施程式碼。
      • 解釋生成的程式碼並運行 Checkov 進行安全分析。
      • 透過 Cloud Control API 直接創建資源。
      • 提供成本估算和生成 CloudFormation 模板作為備份。
    • 此工具透過將開發者意圖直接轉化為雲端基礎設施,顯著減少了配置開銷並加速了新團隊成員的入職。

🛠️ 從彈性到框架:透過受控工具協調構建 MCP Server

Source: https://aws.amazon.com/blogs/devops/flexibility-to-framework-building-mcp-servers-with-controlled-tool-orchestration/

  • MCP (Model Control Protocol) 旨在標準化與生成式 AI 模型互動,使 AI 應用程式的構建與管理更加容易。然而,MCP 框架本身不提供強制工具使用順序的原生機制。
  • 挑戰: 在像基礎設施管理這樣需要嚴格操作順序的場景中,如何維持 LLM 的自然靈活性同時強制執行關鍵的序列依賴關係?例如,在發送包含天氣數據的郵件前,必須先獲取天氣數據。
  • 解決方案: CCAPI MCP Server 採用了「基於 Token 的工具協調 (Token-Based Tool Orchestration)」模式,由伺服器生成並控制驗證 Token,AI 代理 (MCP 客戶端) 在工具調用之間傳遞這些 Token。
    • 功能增強mcp.tool() 裝飾器將每個函數轉換為具有定義輸入和驗證規則的實體。
    • 依賴發現:在初始化階段,AI 代理透過 schema 定義和輸入參數描述來理解工具依賴關係,例如 get_aws_session_info()generate_infrastructure_code()run_checkov()create_resource()
    • Token 驗證控制:伺服器透過統一的 _workflow_store 系統生成和控制所有工作流程 Token。AI 代理在會話上下文中維護這些短期、經過加密的 Token,並在每次工具調用時由伺服器端驗證。
  • 該解決方案提供了具有強大安全控制的可預測工作流程系統,確保了基礎設施管理過程的完整性,並透過描述性參數名稱和清晰的驗證確保 LLM 能夠遵循工具順序。
  • 未來,MCP 仍將持續發展,可能將引入更具確定性的代理平台功能(如 Claude Code 的生命週期鉤子),這對於與 IaC 等確定性技術整合至關重要。

🎓 JetBrains Academy – 八月摘要

Source: https://blog.jetbrains.com/education/2025/08/13/jetbrains-academy-august/

  • 免費 JetBrains 學生工具:學生可申請 JetBrains 學生套裝,使用 MIT 和劍橋大學信賴的工具,並有機會贏得 MacBook Pro 等獎品(申請截止日期:9 月 12 日)。
  • 助您開啟職業生涯的課程
    • 「將 AI 代理添加到您的團隊」:深入了解 AI 代理的核心概念、性能優化和風險管理。
    • 「100 個 Rust 練習」:透過 Luca Palmieri 設計的 100 個挑戰來掌握 Rust,在 RustRover 中練習並獲得即時回饋。
  • 學習技巧
    • 「您應該使用 AI 來學習編碼嗎?」:探討 AI 如何加速或減慢編碼學習進度,以及如何將其轉化為技能建構的盟友。
    • 「Stack Overflow 2025 年開發者調查」:了解最新的技術趨勢、就業模式和 AI 工具的使用習慣。

💰 更簡單、更透明的 AI 配額模型

Source: https://blog.jetbrains.com/ai/2025/08/a-simpler-more-transparent-model-for-ai-quotas/

  • JetBrains AI 將於 2025 年 8 月 18 日推出新的 AI 配額模型,旨在提供更易於理解和管理的 AI 訂閱,並允許用戶以透明的真實貨幣價格無縫擴展使用量。
  • 主要變革:
    • 訂閱層級和價格保持不變(除 AI Ultimate 的啟動折扣)。
    • 每個訂閱的配額現在與其價格掛鉤,例如個人 AI Ultimate 訂閱每月 30.00 美元,將獲得 35.00 美元的 AI 積分(額外 5 美元獎勵)。
    • 1 AI 積分等同於 1.00 美元(以當地貨幣計費),用量按公共 LLM 費率計價(以美元計費),用戶只需為實際消耗的資源付費。
    • 可隨時購買額外 AI 積分,有效期為 12 個月;組織內的額外積分可供團隊共用。
    • AI 程式碼代理 Junie 現已包含在 AI Enterprise 方案中,並提供 BYOK (Bring Your Own Key) 選項。
  • 運作方式: 訂閱中包含的每月 AI 積分將優先使用,用完後將自動切換到用戶購買的額外 AI 積分。
  • 未來規劃: 8 月 18 日新配額生效;9 月下旬將在 JetBrains IDEs 中實施即時配額和使用情況追蹤;9 月及以後將把 BYOK 擴展到更多訂閱方案。

⚡ 閃電般快速的 Python:掌握 uv 套件管理器

Source: https://blog.jetbrains.com/pycharm/2025/08/lightning-fast-python-mastering-the-uv-package-manager/

  • JetBrains 舉辦了一場關於 uv 的直播,這是一款新一代的 Python 套件管理器,其速度比 pip 快 10 到 100 倍。
  • uv 於去年發布,由 Rust 編寫,旨在以單一、閃電般快速的工具解決長期存在的 Python 依賴管理挑戰。
  • 直播中展示了 uv 改變遊戲規則的能力、實際的遷移策略以及其進階功能,說明了為何 Python 開發者正迅速採用這個突破性的工具作為首選套件管理器。
  • 直播主講人包括 Talk Python 和 Python Bytes podcasts 的主持人 Michael Kennedy,以及 PyCharm 開發者推廣者 William Vincent。

🐞 偵錯交易?讓 Spring Debugger 助您一臂之力

Source: https://blog.jetbrains.com/idea/2025/08/debugging-transactions-let-spring-debugger-do-the-heavy-lifting/

  • Spring Framework 的聲明式交易管理(透過 @Transactional)功能強大,但配置錯誤或對其運作方式的誤解會導致難以偵錯的資料庫交易問題,尤其在處理 AOP 代理程式碼時更是如此。
  • Spring Debugger 外掛程式專為解決這些複雜的交易管理和 JPA 相關問題而設計,能讓偵錯過程更加順暢。
  • 案例分析:
    • 開發者希望在創建書籤時,若類別不存在則創建新類別,並期望若書籤保存失敗,類別創建仍能保留(即 createBookmark()createCategory() 運行在獨立交易中,即使後者使用 @Transactional(propagation = Propagation.REQUIRES_NEW))。
    • 問題所在:createCategory() 方法在同一個 BookmarkService 類別內部被呼叫時(「本地方法調用」),它不會經過 Spring 的 AOP 代理,因此其上的 @Transactional 註解不會生效,導致兩個操作仍處於同一個交易中。
    • Spring Debugger 的洞察: 在偵錯模式下,Spring Debugger 的「Transaction」視窗能清晰顯示交易的啟動點及其所屬交易,從而立即揭示 createCategory() 並未啟動新交易。
  • 解決方案與視覺化驗證:createCategory() 方法移至獨立的 CategoryService 中。當 bookmarkService 呼叫 categoryService.createCategory() 時,Spring 的 AOP 代理將會攔截此呼叫,並正確啟動一個新交易。
    • Spring Debugger 會明確顯示父交易 ( BookmarkService.createBookmark()) 和新啟動的子交易 (CategoryService.createCategory()) 的層次結構,並提供每個交易的隔離級別、傳播行為和只讀狀態等詳細資訊。
  • JPA 實體狀態視覺化: Spring Debugger 還能顯示 JPA 實體的生命週期狀態(TRANSIENT、DETACHED、MANAGED),有助於偵錯持久化相關問題。

☕ Kodee 的 Kotlin 總結:2.2.20-Beta2、Kotlin LSP 更新、Shipaton 2025 和基金會新成員

Source: https://blog.jetbrains.com/kotlin/2025/08/kodee-kotlin-roundup-july-25-edition/

  • Kotlin 2.2.20-Beta2 發布:帶來智慧升級,Kotlin Multiplatform 預設支援 Swift 匯出,並新增了用於 Web 開發的目標,Kotlin/Native 在管理二進位檔和偵錯方面也有改進。
  • Kotlin 在 Stack Overflow 2025 年開發者調查中排名第 15 位,顯示其持續增長的使用率。
  • Kotlin 語言伺服器協議 (LSP) 更新:核心功能更加完善。
  • Shipaton 2025 挑戰賽:針對 Kotlin Multiplatform 的獎項,鼓勵開發者利用 Compose Multiplatform for iOS (現已穩定) 構建和發布應用程式,爭奪 55,000 美元的獎池。
  • Kotlin Foundation 歡迎 Sergei Rybalkin 加入董事會,他曾是 Meta 的資深軟體工程師,並在阿里巴巴集團推動 Kotlin 應用。
  • IntelliJ IDEA 2025.2 新功能:包含全新的 Spring Debugger、Spring Modulith 支援,核心 Kotlin 功能在 Ultimate 訂閱過期後仍可使用。
  • Kotlin 2.2 中的上下文相關解析 (實驗性):允許在編譯器能自動推斷類型時省略額外的類型限定符。
  • KotlinX RPC 0.9.1 發布:與 KotlinX Serialization 解耦,提供更清晰的 API 和生命週期管理,並預設啟用嚴格模式。
  • Koog (基於 Kotlin 的 AI 代理框架) 0.3.0:改進了代理的耐久性、執行速度、可觀察性以及與現實系統的整合。
  • 一篇關於偵錯 Koog 中 LLM 模式的文章,分享了解決 AI 代理忽略指令問題的經驗。

⚙️ 排程器-代理-監督器模式:分散式系統中可靠的任務協調

Source: https://dzone.com/articles/scheduler-agent-supervisor-pattern-reliable-task-o

  • 排程器-代理-監督器 (Scheduler-Agent-Supervisor, SAS) 模式是一種強大的架構方法,用於以可靠和可擴展的方式管理分散式、非同步和長期運行的任務。
  • 該模式特別適合需要跨多個獨立單元(每個單元都可能失敗並重試)協調工作,同時保持可觀察性和冪等性的系統。
  • SAS 模式將職責劃分為三個明確定義的角色:排程器 (Scheduler)代理 (Agent)監督器 (Supervisor)

💾 實際應用程式的資料庫選擇速查表

Source: https://dzone.com/articles/choosing-the-right-database-for-your-application

  • 選擇正確的資料庫對於軟體系統設計至關重要,它不僅要滿足功能需求,更要滿足非功能需求 (NFRs),如可擴展性、查詢性能、一致性和數據結構適用性。
  • 資料庫選擇顯著影響系統效率,尤其在大型應用程式中。
  • 本文提供了一種全面、結構化的方法來選擇最適合各種實際應用程式的資料庫,基於數據結構(結構化、半結構化或非結構化)、查詢複雜性(簡單查找、複雜連接、全文搜索)和可擴展性需求進行分類。
  • 該指南探討了 SQL 和 NoSQL 資料庫、快取解決方案、時間序列資料庫、搜索引擎和數據倉庫,為不同用例提供了實用的見解。

🧹 設計實際系統的數據管道:清理和驗證混亂數據的指南

Source: https://dzone.com/articles/building-robust-sanitization-pipelines-five-steps

  • 在軟體系統中,處理大量客戶數據每天都在發生,數據的處理需要高度的謹慎和責任。
  • 維護數據完整性至關重要,尤其在高度受監管的領域,精確的數據對於提供最高標準的輸出是必需的。
  • 數據驅動的決策只有在其所基於的數據準確時才有效,因此乾淨的數據是做出明智商業決策的關鍵。
  • 本指南深入探討了如何淨化原始數據,使其在組織內部保持一致、乾淨和準確。

➡️ 使用 PHP 從單體應用程式遷移到微服務:分步指南

Source: https://dzone.com/articles/migrating-from-monolith-to-microservices-using-php

  • 隨著業務規模的擴大,單體架構往往會在壓力下出現問題,從而成為瓶頸。
  • 這種曾經看似簡單、一體化的結構,可能導致發布速度變慢、錯誤修復變得複雜,甚至微小的更新都充滿風險。
  • 本指南提供了一步步的指導,說明如何使用 PHP 從單體應用程式遷移到微服務架構。

💻 我使用 Grok AI 進行 Vibe Coding,製作了一個 PC 組裝工具:這是我的心得體會

Source: https://dzone.com/articles/vibe-coding-pc-builder-tool-grok-ai

  • 作者分享了如何利用 Grok AI 和「Vibe Coding」的力量,實現了他夢想中的應用程式:一個 PC 組裝工具。
  • 此工具旨在幫助普通人組裝 PC,無需考慮其中涉及的技術細節,以解決作者個人部落格流量下降的問題。
  • 文章強調了利用 AI 創建解決現實世界問題並從中獲取價值的重要性。

🔴 ✅ 🤖 從紅燈到解決:我如何使用 AI 診斷並推薦修復不穩定測試

Source: https://dzone.com/articles/ai-flaky-test-diagnosis-and-fix-recommendations

  • 問題背景: 不穩定測試 (flaky tests) 是 CI/CD 管道中斷的常見原因,它會逐漸侵蝕自動化測試的信心,並拖累開發進度。
  • 行業數據顯示,不穩定測試約佔所有測試失敗的 5%,每月導致組織損失高達 2% 的總開發時間。
  • 當測試未能有效保障品質反而產生噪音時,開發者可能會忽略失敗,導致真正的缺陷被遺漏。
  • 解決方案: 本文介紹了如何利用 AI 來診斷不穩定測試的根本原因,並提供修復建議,將這些噪音轉化為可操作的見解,從而提高軟體品質。

⛓️ 🔒 軟體安全是利還是弊?利用 SBOM 控制您的供應鏈混亂 [資訊圖表]

Source: https://dzone.com/articles/supply-chain-security-sbom-infographic

  • 隨著系統進步和駭客戰術升級,軟體供應鏈安全日益受到關注。
  • 過去分散的安全檢查點和碎片化的分析方法已不再適用,現在軟體物料清單 (SBOMs) 正成為必不可少的標準,而非事後考慮。
  • 本文以資訊圖表形式探討了 SBOMs 在控制供應鏈混亂方面的作用,並提出疑問:供應鏈和 SBOMs 究竟是「甜蜜的搭配」還是「棘手的解決方案」?

🚀 使用 AWS Lambda 創建無伺服器應用程式:分步指南

Source: https://dzone.com/articles/build-serverless-app-aws-lambda-api-gateway

  • 無伺服器架構徹底改變了應用程式開發,消除了直接管理基礎設施的需求,使開發人員能夠專注於編寫和部署程式碼。
  • AWS Lambda 作為最廣泛使用的無伺服器計算服務之一,允許您運行後端程式碼而無需預置伺服器,並且只針對程式碼實際運行的時間計費。
  • 本教學將引導您逐步創建一個簡單的無伺服器應用程式,使用 AWS Lambda 和 API Gateway。

🚗 如何判斷自動駕駛是否安全可靠?

Source: https://dzone.com/articles/autonomous-driver-safety-and-reliability

  • 部署全自動駕駛汽車 (AVs) 的競爭正在加速,但核心問題已從「AVs 能否駕駛?」轉變為「如何得知 AVs 在規模化運行時是安全可靠的?」。
  • 對於開發者而言,「未經測試即為故障」是信條,傳統的單元測試、整合測試和端到端測試能夠建立信心。
  • 然而,當「測試環境」是不可預測的公共道路混亂,且邊緣情況可能導致嚴重後果時,傳統測試方法便顯得不足。
  • 文章強調了在自動駕駛領域,需要更先進的方法來確保其大規模部署的安全性和可靠性。

🧩 🤝 協調多代理:將碎片化工具整合為協調工作流程

Source: https://dzone.com/articles/orchestrating-multi-agents-coordinated-workflows

  • 當前,開發團隊在不同供應商、架構和環境中部署了許多專用 AI 工具,這些工具獨立存在,形成了操作複雜性並限制了它們的集體潛力。
  • 隨著 AI 應用加速以及部署的代理數量倍增,一個新的挑戰浮現:如何協調這些專業工具,使其有效協同工作?
  • 文章探討了如何將這些碎片化的工具統一到協調的工作流程中,以解決多代理系統中的複雜性問題。

🛡️ 🌐 VMware 與物件儲存之間的安全私有連接:企業架構指南

Source: https://dzone.com/articles/vmware-object-storage-private-connectivity-guide

  • 作為架構師,在為客戶定義架構時,安全始終是首要考量,其中一項關鍵原則是盡量減少透過公共互聯網路由的網路流量。
  • 本文討論了如何為雲端服務實現私有連接,特別是與 VMware on Cloud 等計算平台協同工作。
  • 現代雲端架構遵循「深度防禦」理念,其中網路隔離構成了基礎安全層。公共互聯網暴露對處理敏感數據、金融交易或受監管內容的企業工作負載構成不可接受的風險。
  • 私有連接透過實施關鍵架構原則:零信任網路存取 (ZTNA) 來解決此問題,從而減少公共暴露的風險。