TechSummary 2025-09-17
· 閱讀時間約 12 分鐘
如何使用 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 提供,如
context7
和node-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 搶先體驗計畫啟動!🌟
- 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 的整合,解決在實作過程中遇到的「陷阱」。