跳至主要内容

TechSummary 2025-09-17

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

如何使用 Cerebras 和 Docker Compose 建構安全的 AI 編程代理 🔐

Source: https://www.docker.com/blog/cerebras-docker-compose-secure-ai-coding-agents/

  • 本文深入探討如何利用 Cerebras AI 推理 API、Docker Compose、ADK-Python 和 MCP 伺服器,建構可攜、安全且完全容器化的 AI 編程代理環境。
  • 入門設定:首先透過 git clone 取得範例程式碼,並設定 CEREBRAS_API_KEY.env 檔案中,然後執行 docker compose up 啟動系統,代理介面可在 localhost:8000 存取。
    git clone https://github.com/dockersamples/docker-cerebras-demo && cd docker-cerebras-demo
    cp .env-sample .env
    # 編輯 .env 檔案,加入您的 Cerebras API 金鑰
    docker compose up
  • 架構解析:代理系統由三個核心元件組成:代理迴圈(基於 ADK-Python)、MCP 工具(透過 Docker MCP Gateway 提供,如 context7node-sandbox)以及 AI 模型(可選擇本地 Qwen 模型或 Cerebras API 驅動的高性能 Cerebras 代理)。
  • 建構自訂沙箱作為 MCP 伺服器:文中展示如何建構一個安全的程式碼執行沙箱。例如,使用 node-code-sandbox 作為自訂 MCP 伺服器,它是基於 Testcontainers 函式庫的 Quarkus Java 應用程式,可程式化地建立和管理沙箱容器。
  • 沙箱安全性:在沙箱容器中禁用網路 (.withNetworkMode("none")) 是關鍵安全措施,防止代理程式碼外洩資料。例如:
    GenericContainer sandboxContainer = new GenericContainer<>("mcr.microsoft.com/devcontainers/javascript-node:20")
    .withNetworkMode("none") // disable network!!
    .withWorkingDirectory("/workspace")
    .withCommand("sleep", "infinity");
    sandboxContainer.start();
    可在沙箱內執行命令或寫入檔案:
    // 在沙箱內執行命令
    sandbox.execInContainer(command);

    // 將檔案寫入沙箱
    sandbox.copyFileToContainer(Transferable.of(contents.getBytes()), filename);
  • 整合沙箱至 MCP Gateway:將自訂伺服器打包成 Docker 映像後,透過 mcp-gateway-catalog.yaml 檔案整合至 MCP Gateway,並在 docker-compose.yml 中啟用。此設定確保沙箱容器在代理請求時被啟動,並在 Compose 停止時由 Testcontainers 自動清理。
        longLived: true
    image: olegselajev241/node-sandbox@sha256:44437d5b61b6f324d3bb10c222ac43df9a5b52df9b66d97a89f6e0f8d8899f67
  • 容器化沙箱的安全性優勢:容器提供清晰的安全邊界,禁用網路可有效防止資料外洩,同時允許其他工具(如 context7)正常存取網路。

8 個常見 DevOps 問題及 GoLand 解決方案 🛠️

Source: https://blog.jetbrains.com/go/2025/09/17/8-common-devops-problems-and-how-to-solve-them-with-goland/

  • GoLand 在 DevOps 中的價值:Go 語言是 DevOps 的首選(Kubernetes, Terraform, Docker 等均以 Go 建構),GoLand 為 DevOps 工程師提供整合式開發環境,直接存取終端機、Kubernetes、Docker 和 HTTP Client,旨在簡化除錯、部署和基礎設施管理。
  • 解決方案亮點
    • 問題一:Kubernetes 部署修復步驟繁瑣:GoLand 整合 Kubernetes 日誌檢視器、YAML 編輯器(帶有 Schema 驗證)和部署重新應用功能,將問題診斷、修復和重新部署集中於 IDE 內。
    • 問題二:手動且易錯的 Kubernetes Secrets 管理:GoLand 的 Kubernetes 插件允許直接以明文編輯 Secrets,免除手動編碼/解碼的步驟,確保操作安全可靠。
    • 問題三:低效的 Kubernetes 上下文和命名空間切換:IDE 內建 UI 提供下拉選單,快速安全地切換集群上下文和命名空間,並有清晰的視覺指示。
    • 問題四:重複性 DevOps 任務耗時:GoLand 的 AI Assistant 能自動生成基礎設施程式碼(Terraform, YAML)、雲端 CLI 命令、分析日誌並處理 JSON 轉換,讓工程師專注於更重要的任務。
    • 問題五:跨工具管理基礎設施即程式碼 (IaC) 的困難:GoLand 為 Terraform、Helm charts 和 Kubernetes manifests 提供原生且一致的支援,包含進階自動完成、即時驗證和語法高亮。
    • 問題六:事件發生時難以追蹤服務日誌:內建的 Kubernetes 日誌檢視器支援日誌流式傳輸、搜尋、過濾、高亮,甚至解析結構化日誌(如 JSON),有助於快速定位問題。
    • 問題七:CI/CD 管道配置可見性有限:編輯 GitHub Actions 或 GitLab CI 配置時,GoLand 提供自動完成、行內文件和 Schema 驗證,在程式碼推送前捕捉錯誤。
    • 問題八:多個 Port Forward 追蹤不便:GoLand 的 Kubernetes 整合允許直接從 IDE 建立和管理 Port Forward,並在 UI 中顯示活動中的轉發,釋放終端機用於其他任務。
  • 結論:GoLand 將許多常見的 DevOps 工作流整合到單一環境中,減少上下文切換,使基礎設施工作更易於管理,如同基礎設施的「駕駛艙」。

Spring Debugger:ApplicationContext 觸手可及 💡

Source: https://blog.jetbrains.com/idea/2025/09/spring-debugger-applicationcontext-at-your-fingertips/

  • 插件介紹:IntelliJ IDEA 的 Spring Debugger 插件允許開發者在除錯 Spring Boot 應用程式時,直接探索和使用完整的 Spring ApplicationContext,大幅提升除錯效率。
  • 超越範圍:存取任何 Spring Bean:在除錯時,即使 bean 未直接注入到當前作用域,也能透過在表達式輸入框中輸入 bean 名稱來存取,並調用其方法(例如 categoryRepository.findAll()),擴展了除錯的範圍。
  • 即時操作應用程式狀態:對於帶有 @Cacheable 的服務方法,若要強制重新觸發斷點,可以直接存取 cacheManager bean,調用 invalidate() 方法清除特定快取,而無需重啟應用程式或暫時禁用快取。
  • 存取核心 Spring 元件和屬性:插件不僅限於自訂 bean,還能直接存取 ApplicationContext 中的核心 Spring 元件,如 EntityManager (JPA) 和 Environment (查詢應用程式屬性)。
  • 簡化除錯工作流程:Spring Debugger 消除了為除錯而臨時修改程式碼(如注入 bean 或添加日誌)的需要,並能輕鬆設定測試資料,例如在除錯時直接透過服務 bean 插入資料,極大地節省了時間並提高了生產力。

Rider 2025.3 搶先體驗計畫現已開放!🚀

Source: https://blog.jetbrains.com/dotnet/2025/09/17/the-early-access-program-for-rider-2025-3/

  • 計畫啟動:JetBrains 宣布 Rider 2025.3 的搶先體驗計畫 (EAP) 正式開放,第一版預覽建置已釋出,邀請用戶試用新功能並提供回饋。
  • 主要亮點:Rider 2025.3 EAP 1 帶來多項針對 Unity、Unreal Engine 和 Godot 開發的重要更新。
    • Unity:新增 IL Viewer (RIDER-86108),現在 Rider 可自動找到並檢查 Unity 組合的 IL 程式碼。
    • Unreal Engine:允許客製化 .uproject 專案模型中包含的資料夾和檔案 (RIDER-119424),支援額外的專案(如帶有自訂檔案列表的 .csproj)。
    • Godot:增強對 Godot 開發者的支援,包括 GDExtension 支援(新專案範本)、Typed dictionaries 支援、GDScript 的領先空白樣式檢查(帶有快速修復)以及 Chickensoft GoDotTest 支援,可在 Rider 中直接運行和除錯 C# 測試。
    • 自動建置:新增在 Rider 失去焦點時觸發建置的選項 (RIDER-127586),使 Godot Inspector 能夠即時重新載入並顯示更新的匯出,無需手動建置。
    • .slnx 解決方案範本:現在可以直接從 Rider 範本建立 .slnx 解決方案檔案,無需手動重新命名。

ReSharper 和 .NET 工具 2025.3 搶先體驗計畫啟動!🌟

Source: https://blog.jetbrains.com/dotnet/2025/09/17/the-early-access-program-for-resharper-and-net-tools-2025-3/

  • EAP 啟動:JetBrains 宣布 ReSharper 和 .NET 工具 2025.3 的搶先體驗計畫 (EAP) 已經啟動,第一版預覽建置已可下載。
  • 兼容性與改進:此 EAP 建置與 Visual Studio 2026 Insiders 兼容,並對 ReSharper 的 Out-of-Process (OOP) 模式以及 ReSharper C++ 進行了多項重要改進。
  • Out-of-Process (OOP) 模式
    • 更快的啟動速度:OOP 模式現在運行在 .NET Core 上,並受益於運行時性能提升,啟動速度更快。
    • 預設啟用:在此 EAP 週期中,ReSharper 將預設在 OOP 模式下運行,旨在收集使用者對其性能、響應性和穩定性的主觀回饋。
    • 注意事項:某些功能(如 .NET 分析器、dotCover、DPA 和 AI Assistant)尚未在 OOP 模式下可用。使用者可選擇透過設定或啟動旗標切換回 In-Process 模式。
  • C++ 開發更新 (ReSharper C++)
    • C++26 支援:新增對 C++26 多項功能的支持,包括 pack indexing、expansion statements 和 structured bindings with packs。
    • 記憶體分析:Quick Info 現顯示類別填充 (class padding) 與大小和對齊,有助於一覽無餘地發現浪費的記憶體。
    • GNU 關鍵字支援:添加對 GNU _Complex_Imaginary 關鍵字的支援。
    • 重構改進:Extract Method 重構現在允許將返回值設定為其中一個局部變數。

使用 AWS CDK 啟用 AWS 預算通知與 SNS 💸

Source: https://dzone.com/articles/aws-budget-notifications-sns-cdk

  • 成本管理的重要性:追蹤 AWS 支出至關重要,因為資源易於建立且可能被遺忘關閉,導致成本迅速累積。
  • 設定預算挑戰:在多個 AWS 帳戶中設定預算時,作者遇到了與 SNS 和 KMS 策略相關的細節問題。
  • 本文目的:本文章將詳細介紹如何使用 AWS CDK 實現 AWS 預算通知與 SNS 的整合,解決在實作過程中遇到的「陷阱」。

使用 Crossplane 為 EKS 集群建構平台抽象 ☁️

Source: https://dzone.com/articles/platform-abstraction-eks-cluster-crossplane

  • 文章延續:本文章延續了先前平台建構的內容,將學習如何擴展平台,為佈建 AWS EKS (AWS 的託管 Kubernetes 服務) 集群創建平台抽象。
  • Crossplane 簡介:Crossplane 是一個基於 Kubernetes CRD 的附加元件,它抽象了雲端實作,並允許我們將基礎設施作為程式碼進行管理。

從數據增長到數據責任:在 AWS 中建構安全數據系統 🛡️

Source: https://dzone.com/articles/building-secure-data-systems-aws

  • 數據解決方案的增長:企業數據解決方案在數據倉儲、數據湖、數據湖屋和雲服務中的混合平台之間呈指數級增長。
  • 數據從業者的責任:隨著數據在這些服務中呈指數級增長,數據從業者有責任透過安全防護措施和隱私邊界來保護環境。
  • 本文內容:本文將介紹一個在 AWS 中實施安全協議的框架,並學習如何在 Redshift、Glue、DynamoDB 和 Aurora 數據庫服務中實施這些協議。

任何僵化的事物都不可持續:為何彈性勝過敏捷和項目管理中的教條 🔄

Source: https://dzone.com/articles/flexibility-vs-dogma-agile-project-management

  • 僵化結構的不可持續性:僵化的結構不可持續,這在項目管理和組織敏捷性中同樣適用:無論是流程、框架還是架構,任何僵化的事物都不可持續。
  • 經驗教訓:根據作者領導跨行業技術專案的經驗,僵化的方法可能在短期內奏效,但適應性是長期可持續性的必需條件。

Terraform compact 函數:清理和簡化列表 🧹

Source: https://dzone.com/articles/terraform-compact-function

  • 動態配置中的 null:在 Terraform 中,許多配置是動態的,可能使用條件表達式構建列表,並在不適用時返回 null 值。
  • null 值引起的驗證錯誤:如果這些 null 值直接傳遞給資源(例如,在 security_group_idsdepends_on 中),它們可能會導致驗證錯誤。
  • compact() 函數的作用compact() 函數確保只包含有效、非 null 的元素,有助於防止在應用階段出現此類運行時錯誤。

系統配置管理開發:性能考量 ⚙️

Source: https://dzone.com/articles/system-configuration-management-performance-considerations

  • 系列概述:本文是「系統配置管理開發」系列的多部分文章中的第三部分。
  • 本文重點:本文章主要探討在系統配置管理開發過程中的性能考量。

超越檢索:知識圖譜如何增強 RAG 🧠

Source: https://dzone.com/articles/how-knowledge-graphs-supercharge-rag

  • RAG 的增強作用:檢索增強生成 (RAG) 透過將大型語言模型 (LLMs) 連接到外部數據源,提高其事實準確性和上下文相關性。
  • RAG 的局限性:RAG 系統使用語義相似性來識別與用戶查詢相關的文本,但它們通常無法解釋查詢和檢索到的資訊之間的關係,這限制了它們的推理能力。
  • Graph RAG 的解決方案:Graph RAG 透過利用知識圖譜(以結構化、機器可讀的格式表示實體和它們之間的關係)來解決此局限性。
  • 實現人類般的推理:這種框架使 AI 系統能夠連結相關事實並得出連貫、可解釋的結論,更接近人類般的推理。

掌握 Fluent Bit:開發者的前 3 個遙測管道輸入插件 (第六部分) 📊

Source: https://dzone.com/articles/telemetry-pipeline-input-plugins-for-developers

  • 系列介紹:本系列是針對希望學習 Cloud Native Computing Foundation (CNCF) 專案 Fluent Bit 的通用入門指南。
  • 文章結構:本系列中的每篇文章都透過深入探討主題是什麼、為什麼我們對該主題感興趣、如何開始以及如何實踐學習 Fluent Bit 專案的相關知識來解決單一主題。
  • 本文重點:本文章(第六部分)專門探討開發者應掌握的前 3 個遙測管道輸入插件。

AI 錯失恐懼症 (FOMO) 悖論 😨

Source: https://dzone.com/articles/the-ai-fomo-paradox

  • TL;DR:AI FOMO (錯失恐懼症) 是一種悖論,源於看到別人的精美 AI 成就,而自己卻只看到各種實驗、失敗和困惑。
  • 引發焦慮:AI 突破的持續報導會引發 Scrum Masters、產品負責人、業務分析師和產品經理的合理焦慮:「我是否落後了?我的角色會不會被削弱?」

@ctrl/tinycolor 及 40+ NPM 套件遭入侵 🚨

Source: https://www.stepsecurity.io/blog/ctrl-tinycolor-and-40-npm-packages-compromised

  • 供應鏈攻擊:熱門的 @ctrl/tinycolor 套件(每週下載量超過 200 萬次)以及其他 40 多個 NPM 套件在一次被稱為「Shai-Hulud」的複雜供應鏈攻擊中遭到入侵。
  • 惡意軟體行為:該惡意軟體在維護者套件中自我傳播,利用 TruffleHog 竊取 AWS/GCP/Azure 憑證,並透過 GitHub Actions 後門建立持久性。
  • NPM 生態系統威脅升級:這代表著 NPM 生態系統威脅的重大升級。