Gophercloud 实战指南:使用 Go SDK 完成 OpenStack 认证与云资源编排
测试云原生质量保障【免费下载链接】originConformance test suite for OpenShift项目地址https://gitcode.com/gh_mirrors/or/origin点击查看免费下载本指南以 Gophercloud 官方 README 为核心结合本仓库OpenShift Conformance test suite 的origin镜像中 vendored 的 Gophercloud 源码系统讲解如何安装 SDK、准备 OpenStack 凭据、完成 Keystone 认证、创建服务客户端并编排云资源如创建云服务器。读完本文你将掌握gophercloud与gophercloud/utils两种认证路径、ProviderClient与ServiceClient的底层工作方式以及自动重认证、限流退避等高级行为的实现原理可直接套用到自己的 Go 项目中。什么是 GophercloudGophercloud 是一个面向 OpenStack 的 Go SDK官方定位为 An OpenStack SDK for Go。它把 OpenStack 各服务的 REST API 封装成 Go 类型与函数让开发者可以用类型安全的 Go 代码完成认证、查询服务目录、创建/删除云资源等操作。在当前仓库中Gophercloud 以第三方依赖的形式被 vendored 在vendor/github.com/gophercloud/gophercloud/目录下其顶层包包含认证选项auth_options.go、Provider 客户端provider_client.go、服务客户端service_client.go、端点搜索endpoint_search.go、分页pagination/等核心模块openstack/子目录下则提供了各 OpenStack 服务identity、compute、objectstorage 等的实现。从 provider_client.go 中的DefaultUserAgent gophercloud/v1.14.1可以看出本仓库 vendored 的是 v1.14.1 版本。如何安装Gophercloud 与大多数 Go 库一样通过标准 Go module 机制引入。在你的代码中引用任意 Gophercloud 包即可触发依赖解析import github.com/gophercloud/gophercloud随后更新go.mod并拉取依赖go mod tidyGophercloud 的顶层包通常与其他包配合使用常见组合是同时导入github.com/gophercloud/gophercloud/openstack提供各服务客户端工厂函数以及具体的服务资源包如.../openstack/compute/v2/servers具体用法见下文。准备 OpenStack 凭据因为要调用 OpenStack API你首先需要获取自己的 OpenStack 凭据。官方推荐将凭据存放到clouds.yaml文件中而不是写死在 Go 源码里——把凭据信息与源代码解耦后你可以放心地把代码推送到版本控制系统而无需担心泄露。需要准备的信息包括一个有效的 Keystone identity URL认证服务地址凭据本身。可以是用户名/密码组合、一组 Application Credentials应用凭据、一个预生成的 token或任何其他受支持的认证机制。通过 Horizon 快速导出凭据如果你部署了 OpenStack 仪表盘Horizon有一个快捷方式访问project/api_access路径点击右上角的 Download OpenStack RC File 按钮即可下载两种格式的凭据文件clouds.yaml结构化的 YAML 配置文件包含全部访问细节。将其放到~/.config/openstack/clouds.yaml即可被 Gophercloud 生态的配置读取器识别openrc一个 bash 脚本执行source openrc会把所有访问细节导出为环境变量随后会提示你输入密码。需要说明的是Gophercloud 核心库本身不直接解析clouds.yaml该能力由配套库gophercloud/utils提供见下文认证一节。认证构建 ProviderClient有了凭据之后下一步是认证。Gophercloud 的认证由顶层 Provider 结构体——即ProviderClient——承担。ProviderClient是一个顶级客户端所有 OpenStack 服务客户端都由它派生而来它内部保存了访问 API 所需的全部认证细节如基础 URL 和 token ID。从 provider_client.go 的源码可以看到ProviderClient的核心字段包括字段作用IdentityBase身份服务的基础 URL用于发起认证请求应指向身份服务的根资源而非某个特定版本IdentityEndpoint身份端点可能是特定版本的身份服务若指定了版本将直接使用该端点而非先查询版本TokenID最近一次签发的有效 token 的 ID应用不应直接读写该字段而应使用Token()/SetTokenAndAuthResult()EndpointLocator描述如何从服务目录中为各服务发现端点HTTPClient允许用户注入自定义的 http/https 传输行为UserAgent请求中的 User-Agent 头默认gophercloud/v1.14.1可通过UserAgent.Prepend()追加自定义前缀ReauthFunc请求返回 401 时用于重新认证的函数因为不同版本的身份服务可能有不同的认证函数RetryBackoffFunc/MaxBackoffRetries限流429时的退避重试函数与最大重试次数默认 60 次RetryFunc通用失败请求处理函数请求失败后总会调用置空则遇到错误直接中止方式一使用 gophercloud/utils推荐github.com/gophercloud/utils 库提供clientconfig包来简化认证其中包含读取clouds.yaml文件等附加能力。使用clientconfig生成 Provider 客户端import ( github.com/gophercloud/utils/openstack/clientconfig ) // 也可以跳过配置改在环境中设置 OS_CLOUD opts : new(clientconfig.ClientOpts) opts.Cloud devstack-admin provider, err : clientconfig.AuthenticatedClient(opts)注意clientconfig属于独立的gophercloud/utils仓库本仓库 vendored 的gophercloud核心库并未包含该包使用前需要单独引入。方式二不使用 gophercloud/utilsGophercloud 核心库不提供clouds.yaml文件支持如果你不想依赖gophercloud/utils需要自行实现这部分功能。此时有两种方式填充认证选项import ( github.com/gophercloud/gophercloud github.com/gophercloud/gophercloud/openstack ) // 方式 1手动传入认证信息 opts : gophercloud.AuthOptions{ IdentityEndpoint: https://openstack.example.com:5000/v2.0, Username: {username}, Password: {password}, } // 方式 2用工具函数从环境变量读取 opts, err : openstack.AuthOptionsFromEnv()拿到opts后传入openstack.AuthenticatedClient(opts)即可获得一个ProviderClientprovider, err : openstack.AuthenticatedClient(opts)AuthOptions 字段详解gophercloud.AuthOptions定义于 auth_options.go是所有身份实现与 provider 字段的并集常用字段如下字段说明IdentityEndpoint身份 API 的 HTTP 端点即云运营商常说的 auth_url /OS_AUTH_URLUsername/UserIDIdentity V2 需要 UsernameIdentity V3 需要 UserID 或 Username DomainID/DomainNamePassword密码PasscodeTOTP 认证方法使用的动态口令DomainID/DomainName使用 Username 配合 Identity V3 时两者最多提供一个否则均可选TenantID/TenantNameV2 API 中的租户在 V3 中对应 project_id / project_name这里统一叫 Tenant部分 provider 允许用名称代替 IDAllowReauth为 true 时允许 Gophercloud 在内存中缓存凭据并在 token 过期时自动重新认证默认 false。注意若不加以限制重认证可能无限重试官方建议通过自定义 RoundTripper 记录失败次数来限制TokenID允许用既有 token可能是他人身份完成认证Scope认证请求的作用域AuthScope含ProjectID、ProjectName、DomainID、DomainName、SystemApplicationCredentialID/ApplicationCredentialName/ApplicationCredentialSecretApplication Credentials 认证所需信息从ToTokenV3CreateMap()的实现可以看出认证时支持password、token、application_credential、totp等 identity method并对各类组合做了严格校验如 Username 与 UserID 不能同时提供、使用 Username 时 DomainID/DomainName 必须提供其一、ApplicationCredential 必须提供 Secret 等。注意CanReauth()对 TOTP 口令返回 false即 TOTP 认证不支持自动重认证。从环境变量读取AuthOptionsFromEnvopenstack/auth_env.go 中的AuthOptionsFromEnv()会读取标准的OS_*环境变量并填充AuthOptions必填OS_AUTH_URL、OS_USERNAME或OS_USERID、OS_PASSWORD缺失会返回对应的ErrMissingEnvironmentVariable可选OS_PROJECT_ID、OS_PROJECT_NAMEOS_TENANT_ID、OS_TENANT_NAME是二者的废弃形式、OS_DOMAIN_ID、OS_DOMAIN_NAME、OS_APPLICATION_CREDENTIAL_ID/NAME/SECRET、OS_PASSCODE、OS_SYSTEM_SCOPE若设置了OS_PROJECT_NAME还需要设置OS_PROJECT_ID以处理不在默认 domain 下的 projectOS_SYSTEM_SCOPEall时会把 Scope 设为系统级System: true。典型用法是先source openrc导出环境变量再调用opts, err : openstack.AuthOptionsFromEnv() provider, err : openstack.AuthenticatedClient(opts)ProviderClient 的认证流程调用openstack.AuthenticatedClient(options)时见 openstack/client.go实际执行两步NewClient(options.IdentityEndpoint)创建未认证的ProviderClient规范化 URL 并填充IdentityBase/IdentityEndpoint同时调用UseTokenLock()初始化并发安全的 token 锁Authenticate(client, options)向端点发起认证请求根据端点支持的版本自动选择 Keystone v2优先级 20或 v3优先级 30优先选择 v3成功后将 token 与 service catalog 写入客户端。认证成功后ProviderClient会记录 token并通过AuthenticatedHeaders()在后续请求中自动附带X-Auth-Token头设置EndpointLocator后续各服务客户端依据服务目录catalog定位端点若设置了AllowReauth会构造一个一次性客户端throw-away clienttoken 与 reauth 函数被清零注册ReauthFunc——当某个请求收到 401 时provider_client.go 中的Request()会自动调用Reauthenticate()重新认证并重放请求同一请求只重认证一次避免无限循环。创建服务客户端有了基础 Provider 之后将其作为依赖注入到各个 OpenStack 服务中。例如要使用 Compute API需要创建一个 Compute 服务客户端。使用clientconfig的方式client, err : clientconfig.NewServiceClient(compute, opts)使用核心库的方式通过openstack包的工厂函数创建client, err : openstack.NewComputeV2(provider, gophercloud.EndpointOpts{ Region: os.Getenv(OS_REGION_NAME), })openstack包为各服务提供了对应的工厂函数均定义于 openstack/client.go例如函数服务类型NewComputeV2computeNovaNewNetworkV2networkNeutron端点后附加v2.0/NewObjectStorageV1object-storeSwiftNewBlockStorageV1/V2/V3volume / volumev2 / volumev3CinderNewImageServiceV2imageGlance附加v2/NewLoadBalancerV2load-balancerOctaviaNewDNSV2dnsDesignateNewIdentityV2/V3identityKeystoneNewBareMetalV1/NewBareMetalIntrospectionV1baremetal / baremetal-introspectionIronicNewSharedFileSystemV2sharev2ManilaNewKeyManagerV1key-managerBarbicanNewWorkflowV2、NewPlacementV1、NewCDNV1、NewDBV1、NewOrchestrationV1、NewClusteringV1、NewMessagingV2、NewContainerV1、NewContainerInfraV1等对应各类服务EndpointOpts 与端点定位工厂函数接收的gophercloud.EndpointOpts定义于 endpoint_search.go用于在服务目录中唯一确定一个端点字段必填说明Type是服务类型如 compute、object-store一般由服务客户端函数自动填充Name否服务名称如 nova。服务可能同 Type 不同 Name因此有时两者都需要Region视情况端点所在的地理区域仅对跨区域的服务必需Availability否端点可见性AvailabilityPublic默认/AvailabilityInternal/AvailabilityAdmin对应 v2 的 publicURL/internalURL/adminURL 与 v3 的 InterfaceServiceClient 的使用ServiceClientservice_client.go封装了具体服务的基础 URL 与资源路径提供Get、Post、Put、Patch、Delete、Head方法最终都转发到ProviderClient.Request()。它还支持Microversion设置服务微版本请求时会自动附带对应的版本头如 Nova 的X-OpenStack-Nova-API-Version与通用的OpenStack-API-Version头MoreHeaders为服务的所有请求统一附加 HTTP 头ServiceURL(parts...)按资源片段拼接完整 URL。实战创建一台云服务器Provision a server使用上面创建的 Compute 服务客户端即可执行任意 Compute API 操作。以创建新服务器为例调用Create方法并传入 flavor ID硬件规格与 image ID操作系统镜像import github.com/gophercloud/gophercloud/openstack/compute/v2/servers server, err : servers.Create(client, servers.CreateOpts{ Name: My new server!, FlavorRef: flavor_id, ImageRef: image_id, }).Extract()上述代码创建了一台带指定参数的新服务器并把新资源体现在server变量中一个servers.Server结构体。Gophercloud 的请求/响应模型是XxxOpts构造请求 XxxResult承载响应servers.Create返回CreateResult调用其Extract()方法把响应体解析为强类型结构体若Extract()返回的err非 nil则表示创建失败。CreateOpts还支持Networks、SecurityGroups、UserData、Metadata等更多字段具体定义可查阅 servers/requests.go。高级用法请求定制与自动重试Gophercloud 的ProviderClient.Request()支持通过RequestOptsprovider_client.go精细控制每一次 HTTP 请求字段说明JSONBody/RawBody请求体二选一前者会被 JSON 编码默认 Content-Type 为 application/json后者直接消费一个io.ReaderJSONResponse非 nil 时响应体会被解析为 JSON 并填充到该变量OkCodes视为成功的 HTTP 状态码列表不设置时按 HTTP 方法取默认值GET/HEAD → 200POST/PUT → 201/202PATCH → 200/202/204DELETE → 202/204MoreHeaders/OmitHeaders追加 / 移除请求头OmitHeaders 优先于 MoreHeadersErrorContext自定义错误类型可根据状态码返回更具体的资源错误KeepResponseBody保留响应体以便后续使用不能与JSONResponse同时使用Request()的完整处理链见doRequest包括编码请求体 → 组装请求头Content-Type、Accept、User-Agent、X-Auth-Token→ 发送请求 → 校验状态码 → 按需处理错误。当收到 401 时自动触发重认证并重放请求收到 429/498限流时调用RetryBackoffFunc退避重试最大次数受MaxBackoffRetries限制未设置时取DefaultMaxBackoffRetries 60其他错误码400/403/404/405/408/409/500/502/503/504则映射为对应的ErrDefaultXxx错误类型若设置了RetryFunc还会把失败交给它决定是否重试。此外Gophercloud 的pagination包vendor/github.com/gophercloud/gophercloud/pagination/提供Pager、LinkedPage、MarkerPage、SinglePage等分页工具处理 OpenStack API 的列表类资源openstack/utils目录下还有版本协商等辅助逻辑。原 README 还提到一份 FAQ 用于定制 Gophercloud 行为的技巧不过该文件并未包含在本仓库的 vendored 树中可按需从上游获取。向后兼容性保证Gophercloud 的版本号遵循 semver语义化版本在v1.0.0之前没有任何兼容性保证自 v1 起同一个 major 版本内不会引入破坏性变更no breaking changes within a major release。这意味着在你的go.mod中以v1.x引入 Gophercloud 后可以放心在 minor/patch 升级中保持代码兼容。上游的版本发布流程说明见其RELEASE.md同样未随 vendored 树携带可从上源获取。结语与进一步阅读Gophercloud 把 OpenStack 复杂的 REST API 世界收敛为一套清晰的 Go 类型系统AuthOptions负责认证信息ProviderClient持有会话与 tokenServiceClient代表具体服务XxxOpts/XxxResult构成资源的请求与响应模型。无论你是用clouds.yamlgophercloud/utils的声明式配置还是用OS_*环境变量 AuthOptionsFromEnv()的经典方式都能在几分钟内完成认证并开始操作云资源。想深入源码细节可在本仓库中直接阅读以下文件provider_client.goProvider 客户端、认证头、自动重认证与退避重试实现openstack/client.go各服务客户端工厂函数与 v2/v3 认证流程auth_options.go认证选项字段与认证请求体构建逻辑openstack/auth_env.goOS_*环境变量解析与校验service_client.go服务客户端与微版本请求头openstack/compute/v2/servers/requests.goCompute 服务资源操作含CreateOpts示例。赞分享测试云原生质量保障【免费下载链接】originConformance test suite for OpenShift项目地址https://gitcode.com/gh_mirrors/or/origin点击查看免费下载相关推荐Gophercloud用 Go 语言驱动 OpenStack 云的 SDK 实战指南含 LinuxKit 集成实例Gophercloud用 Go 语言驱动 OpenStack 云的 SDK 实战指南含 LinuxKit 集成实例 本指南以 LinuxKit 仓库中内嵌操作系统云原生容器运行时使用 Gophercloud v2面向 Go 开发者的 OpenStack SDK 实战指南以 kOps 源码为例使用 Gophercloud v2面向 Go 开发者的 OpenStack SDK 实战指南以 kOps 源码为例 Gophercloud 是 OpenS云原生集群管理运维IaC基于 Gophercloud v2 AGENTS.md 的 OpenStack Go SDK 工程规范与测试实践指南基于 Gophercloud v2 AGENTS.md 的 OpenStack Go SDK 工程规范与测试实践指南 本文档源文件 vendor/github云原生集群管理运维IaC上一篇如何快速掌握Mi-Create免费创建小米手表个性化表盘的终极指南下一篇如何将PowerShell脚本转换为EXE3分钟完成专业级程序封装创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

HTTP 与 HTTPS 跳转故障:循环重定向与混合内容排查

HTTP 与 HTTPS 跳转故障:循环重定向与混合内容排查

HTTP 与 HTTPS 跳转故障:循环重定向与混合内容排查工具地址:https://www.speedce.com 社区论坛:https://bbs.speedce.com 联系:speedceadsgmail.com写在前面 301 配成循环、http 和 https 指向不同机器——对照测快速缩小范围。 本…

2026/9/28 3:39:53 阅读更多 →
Kubernetes Ingress 故障:集群内正常、公网域名红的排查

Kubernetes Ingress 故障:集群内正常、公网域名红的排查

Kubernetes Ingress 故障:集群内正常、公网域名红的排查工具地址:https://www.speedce.com 社区论坛:https://bbs.speedce.com 联系:speedceadsgmail.com写在前面 kubectl get pods 全 Running,但公网域名红——Ingres…

2026/9/28 3:39:53 阅读更多 →
Geyser 资源包配置完整指南:3 步让基岩版玩家用上同一套材质包

Geyser 资源包配置完整指南:3 步让基岩版玩家用上同一套材质包

Geyser 资源包配置完整指南:3 步让基岩版玩家用上同一套材质包 【免费下载链接】Geyser A bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock Edition. 项目地址: https://gitcode.com/GitHub_Trending/ge/Geyser 本文…

2026/9/28 3:39:53 阅读更多 →

最新新闻

Agent Harness 系统工程:用 TaoToken 统一 Key 打通智能体工具链配置

Agent Harness 系统工程:用 TaoToken 统一 Key 打通智能体工具链配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/28 4:25:20 阅读更多 →
乐优购物学习笔记(7):用 TaoToken 统一 Key 打通 Elasticsearch 聚合检索链路

乐优购物学习笔记(7):用 TaoToken 统一 Key 打通 Elasticsearch 聚合检索链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/28 4:25:20 阅读更多 →
2026最新SEO二级目录实战:别再让好内容被404埋没

2026最新SEO二级目录实战:别再让好内容被404埋没

2026最新SEO二级目录实战:别再让好内容被404埋没 网站做好了没人访问,90%的问题不出在设计,而在结构。很多老板花大价钱做的站,后台数据一片惨绿,点开Google Search…

2026/9/28 4:25:20 阅读更多 →
别再手动切图!用 ClaudeCode+Figma-MCP 实现 UI 设计 1:1 前端还原:TaoToken 统一 Key 配置与验证

别再手动切图!用 ClaudeCode+Figma-MCP 实现 UI 设计 1:1 前端还原:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/28 4:25:20 阅读更多 →
帮别人做设计的网站避坑指南:3个实战案例讲透安全防护

帮别人做设计的网站避坑指南:3个实战案例讲透安全防护

帮别人做设计的网站避坑指南:3个实战案例讲透安全防护 模板网站看着省事,实则是个定时炸弹。很多设计师为了快速交付,直接套用现成模板,结果上线没几天就被挂马、数据泄露,客户投诉不断。这种“模板网站太丑不够用”的困境,背后往往藏着严重的安全隐患…

2026/9/28 4:25:20 阅读更多 →
Openclaw源码深潜之四——Hook开发手册:TaoToken统一Key接入与settings.json配置骨架

Openclaw源码深潜之四——Hook开发手册:TaoToken统一Key接入与settings.json配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/28 4:24:20 阅读更多 →

日新闻

济南做网站多少钱:3个案例拆解,防黑源码下载全攻略

济南做网站多少钱:3个案例拆解,防黑源码下载全攻略

济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 上周济南一个做建材的老板找我,脸都绿了。他的官网首页弹出了赌博广告,后台被植入了挖矿脚本。他慌得问我:“网站被黑挂马不知道怎么办?能不能直接找之前的外包公司要源码下载,看看哪里被动了手脚?…

2026/9/28 0:00:34 阅读更多 →
婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量

婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量

婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 找婚恋网站建站公司,最怕的就是被坑高价。很多同行跟我吐槽,报价单上写得模棱两可,功能栏里全是“高级定制”、“专属UI”,结果落地全是套壳。今天不聊虚的,直接甩几个我经手的 实战案例…

2026/9/28 0:00:34 阅读更多 →
制作网页比较方便的软件怎么选?一文搞懂避坑指南

制作网页比较方便的软件怎么选?一文搞懂避坑指南

制作网页比较方便的软件怎么选?一文搞懂避坑指南 很多老板一上来就问:做个网站多少钱?但我反问他:你的域名买了吗?服务器租了吗?他一脸懵。这就是典型的“域名服务器搞不懂”。别急,今天咱们不聊虚的,直接 一文搞懂 那些让你头秃的技术名词。…

2026/9/28 0:00:34 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:34 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:34 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/27 0:00:34 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/27 9:12:14 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/28 3:51:11 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/26 22:52:30 阅读更多 →