从规模化平台工程实践,我们学到了什么?

eSIM规模化控制如何落地?解析Aurora物联网连接管理平台 eSIM作为远程配置嵌入式SIM的技术,正在改变物联网设备的联网方式。传统物理SIM卡难以支撑全球部署时的库存管理与跨境漫游,而eSIM允许设备通过远程下载运营商Profile实现灵活切换。但真正的挑战在于规模化控制——当设备数量达到数万台,如何批量下发配置、自动切换网络、精准管控连接状态,成为物联网平台的核心技术命题。Aurora连接管理平台通过聚合运营商资源、提供统一API与策略引擎,将复杂的eSIM生命周期管理封装为可编排的自动化操作,支撑车联网、智能表计、物流追踪等场景的全球连接需求。本文从eSIM 阅读详情

文|朵晓东(花名:奕杉 )

KusionStack 负责人

蚂蚁集团资深技术专家

在基础设施技术领域深耕,专注云原生网络、运维及编程语言等技术工作

一、摘要

本文尝试从平台工程、专用语言、分治、建模、自动化和协同文化等几个角度阐述规模化平台工程实践中的挑战和最佳实践。希望通过把我们平台工程的理念和实践分享给更多企业和团队,一起让一些有意思的变化发生。

本文基于 KusionStack[1] 技术栈在蚂蚁平台工程及自动化中的实践总结而成。

二、平台工程:让企业级 DevOps 发生

DevOps 理念在 10 多年前被提出,从 KVM 到容器再到云原生时代,大量企业投入 DevOps 运动以期望解决内部规模化运维效率和平台建设效率的困境。其中大部分陷入过某种基于对 DevOps 朴素认知的 Anti-Pattern ,同时也有部分公司探索出自己的路径。我经历过如下图简示的 Anti-Patterns ,Dev 与 Ops 团队各行其是,或者简单的强制 Dev 团队独立完成 Ops 工作。在 DevOps Anti-Types[2] 中可以找到更多更典型分类。

企业内规模化 DevOps 难以推行的原因多种多样,特别是在企业内自持基础设施、同时采用云上技术平台的公司阻力最大。其中以这几种情况尤为常见:

- 研发团队和运维团队由于部门墙、领导者缺少洞察等等原因各自为政,难以达成一致意见;

- 研发团队低估了基础设施技术、运维、稳定性工作的专业性、复杂性和快速变化,以朴素的 DevOps 理解强制应用研发者成为专家;

- 领导者建立了专职的 DevOps 团队,但沦为中间的执行者,没能让 Dev 和 Ops 团队各自向前一步,紧密协同;

- 平台研发团队对规模化带来的业务复杂性以及技术演进带来的技术复杂性应对不足,无法对应用研发者提供有效的技术支撑;

...

不同于面向云上托管基础设施服务和 DevOps-as-a-Service 产品工作的小型团队,中大型企业往往需要根据自身团队架构和文化建立适当的 DevOps 体系。从成功案例看,无论是 Meta 公司由 Dev 完全承担 Ops 职能,还是 Google 公司引入 SRE 团队作为中间层,平台工程( Platform Engineering[3] )都扮演了非常重要的角色。

平台工程旨在帮助企业构建面向应用研发者的自服务运维体系,尝试通过工程化的技术手段和工作流程解决以下关键问题:

- 设计合理的抽象层次,帮助应用研发者降低对 Infra 、platform 等技术以及运维、稳定性工作的认知负担;

- 为应用研发者提供统一的工作界面和空间,避免用户陷入割裂的平台产品界面、复杂的工作流中;

- 帮助研发者通过有效的工作流程和推荐路径基于 内部工程平台[4] 快速开展工作;

- 帮助研发者通过配套的 CI 、CD 、CDRA 等产品自服务管理应用生命周期;

- 帮助平台产品研发团队简单、高效、一致的开放其平台基础能力;

- 通过培训、布道、运营等手段营造协同工作和分享的文化。

事实上,不是所有人都应该或者能够成为这个领域的专家,这非常困难!

实际上平台技术团队的专家通常也仅擅长自己的专业领域而已,特别是在云原生理念和技术广泛应用的今天,面向大量高度开放、可配置的平台技术带来的成百上千的应用配置,PaaS 领域的业务复杂性,以及高稳定性和统一治理的要求,而平台工程的目的正是为了让应用研发者尽可能简单无痛的参与到这样规模化的 DevOps 工作中。

在蚂蚁的实践中,我们更趋向于以下这种合作状态,在团队架构和工作模式上更靠近 Google 的最佳实践。平台研发者及 SRE 成为 “ Enabler ” 支持应用研发者自服务的完成研发及交付运维,同时应用研发者使其应用可交付运维的工作结果也成为运维人员可以接手应用运维工作的基础。最终 SRE 、应用研发及运维人员把工作过程中的问题和痛点反馈给平台研发者形成正向循环。

三、专用语言:工程化方式的一极

有什么比一种专用语言更适合开放的、自服务的、面向领域业务的问题定义,同时需要满足自动化、低安全风险、低噪音、易治理的企业内部要求吗?正如记录音乐有五线谱,存储时间序列数据有时序数据库一样,在平台工程的特定问题域内,一批配置和策略语言用于编写和管理规模化复杂配置及策略。

不同于混合编写范式、混合工程能力的高级通用语言,这类专用语言的核心逻辑是以收敛的有限的语法、语义集合解决领域问题近乎无限的变化和复杂性,将规模化复杂配置和策略编写思路和方式沉淀到语言特性中。

在蚂蚁的平台工程实践中,我们强化了客户端的工作方式,将围绕应用运维生命周期的模型、编排、约束和策略稳定、可扩展的通过专用语言 KCL[5] 编写维护在共享仓库 Konfig[6] 中。

KCL 是一种面向有编程能力的应用研发者的静态强类型语言,提供现代高级语言的编写体验和围绕领域目的有限功能。在平台工程实践中 KCL 不是一种仅用于编写 K-V 对的语言,而是一种面向平台工程领域的专用语言。应用研发者、 SRE 、平台研发者面向 Konfig 协同研发,通过 KCL 原生功能编写应用配置,以及在 PaaS 领域更为高频和复杂的 模型抽象[7] 、 功能函数[8]  和 约束规则[9]  ,即编写稳定、可扩展的业务模型、业务逻辑、防错约束和环境规则。

Konfig 仓库则成为统一的编程界面,工作空间和业务层载体,而基于 KCL 的安全、低噪音、低副作用、一致的编写范式更有利于长期管理和治理。

四、分治:解构规模化问题

分治思路是解决规模化问题的钥匙,从 MapReduce 到 Kubernetes 无不体现其功效。在规模化交付运维领域,经典运维平台试图在统一的黑盒平台产品中,以内置的统一模型、编排、 provision 技术来应对全量业务场景。这样的实践可以快速启动,在小范围内奏效,但随着不同业务主体采用率提升引入差异化需求,同时随着持续变化的平台技术逐渐进入疲态。

在蚂蚁的实践中,Konfig monorepo 是内部工程平台向研发者开放的编程界面和工作空间,帮助应用研发者以统一的编程界面编写围绕应用运维生命周期的配置和策略,从而编排和使用存量和新增的平台基础设施,按需创建管理云原生环境以及基于 RBAC 的权限,并通过 GitOps 方式管理交付过程。

Konfig monorepo 为不同场景、项目、应用提供了独立的白盒的编程空间,其内生的扩展性来源于:

- 灵活、可扩展、独立的客户端的 工程结构设计[10] ;

- 独立配置块自动合并技术[11] 支持任意分块、可扩展的配置块组织;

- 静态类型系统[12] 技术提供现代编程语言可复用、可扩展的类型化建模和约束功能;

- 项目粒度的 GitOps CI 工作流程定义支持;

- 基于 Kusion[13] 引擎的 provision 技术选择。

Konfig monorepo 提供了分治的、可组合的工程结构设计、代码组织、建模方式、工作流程定义和 provision 技术选择支持,同时又以一致的研发模式和工作流承载了可扩展的业务需求。这样客户端的工作方式在保证灵活性、可扩展性、可移植性的同时也降低了对服务端扩展机制,如 Kubernetes API Machinery ,持续增长的压力。

下图示意了一种 Konfig monorepo 中 GitOps 方式的典型的自动化工作流程,从面向应用的代码变更开始,通过可配置的 CI 、CD 过程触达运行时,这样的机制相比中心化的黑盒产品方式更加开放、可定制、可扩展,也免去了针对不同业务场景、不同项目、应用设计笨拙的配置文件管理 portal 的必要。

五、建模:边际收益和长尾问题

有了分治的白盒化的工程结构设计、代码组织方式、建模方式、工作流程定义和 provision 技术选择,以怎么的策略面向平台 API 工作是另一个需要考虑的问题。在企业内典型的争议在于直面平台细节还是设计一种抽象,或者上升到显式(explicit)和隐式(implict)的理念的争议。

抽象的隐式的方式是运维平台工程师们面向非专家型终端用户的普遍选择,他们希望能设计出易于理解、便于使用的应用模型或 Spec 抽象,与具体的平台技术细节隔离,降低用户认知负担,并通过降低细节感知防错。但大部分运维平台的研发者倾向于设计一种强大的、统一的应用模型或 Spec 抽象,在实践中往往会遇到这些阻碍:

- 随着企业内不同业务主体采用率的提升,统一建模难以落地。在蚂蚁内部最典型的案例是 Infra 基础技术类组件和 SaaS 应用间的巨大差异性,SaaS 应用便于统一,Infra 应用往往需要单独设计。

- 面向企业内大量的平台技术,统一模型自身难以稳定,特别是应对持续变化的业务需求和平台技术驱动的需求增长。在蚂蚁的实践中,交付运维受多种因素影响有较强的不稳定性,同时围绕应用的 deliverable 、runtime 、security 、instrumentation 的业务需求也在增长。以 instrumentation 为例,近两年对应用运行时可观察性、SLO 定义的需求快速增长直接驱动了终端用户使用的变化。

- 抽象模型的共性问题是需要面向用户设计出合理的模型,面向平台 API 细节保持同步。

在蚂蚁的实践中,面向终端用户即应用研发者我们采用了抽象模型的方式,通过如下思路解决几个关键问题:

- 面向典型应用场景(如蚂蚁的 SOFA 应用)建模,这些模型由平台研发者、平台 SRE 主导开发,与应用研发者共同维护,达到用户体验、成本和标准兼容的平衡,在蚂蚁的实践中抽象模型的信息熵收敛比约为 1:5 ,通过广泛的高频使用保证建模投入的边际收益。

- 对于非典型用户场景或应用,由平台研发者、平台 SRE 支持应用研发者完成针对应用的模型设计。KCL schema[7] 和 mixin[14] 等机制帮助用户建模、抽象、继承、组合、复用,减少重复代码,事实上这样的建模设计工作也是应用 PaaS 领域的重点之一,但对于这样的场景我们需要更合理的分工。最终大量 “非标” 平台技术在蚂蚁内部首次以一致的方式被纳管,有效解决了长尾问题。在典型协同模式下,平台研发者、平台 SRE 编写平台能力基础组件成为 “ Enabler ”,帮助应用研发者使用平台能力基础组件快速“搭积木”,完成其应用模型的研发工作。

- 面向平台技术,我们提供了平台 API Spec 到 KCL 类型代码的 生成技术[15] ,并通过 组合编译技术[16] 原生支持对不同 Kubernetes API 版本的编译时选择,在内部实践中解决了应用抽象模型面向不同版本 Kubernetes 集群工作的灵活需求。同时,KCL 支持 in-schema 约束[17] 和 独立环境规则[9] 的编写。此外,KCL 还提供了 deprecated 装饰器[18] 支持对已下线模型或模型属性的标注。通过在客户端健壮的、完备的模型和约束机制,在编译时暴露如配置错误、类型漂移等常见问题。相对于运行时左移的发现问题,避免推进到集群时发生运行时错误或故障,这也是企业内,特别是高风险等级企业,对生产环境稳定性的必须要求。

对于基础平台技术的专家型用户,他们通常非常熟悉特定的技术领域,更希望以直面平台细节的显式的方式工作,语言提供必要的动态性和模块化支持,通过类型和约束机制保证稳定性。但这种显式的方式无法解决专家用户不熟悉跨领域平台技术使用细节的问题,也不能解决面向平台技术的扩展性和复杂性叠加的问题。在蚂蚁内部小范围基于 YAML 的显式的工程实践中,面向大量高度开放、可配置的平台技术,复杂性随着平台技术使用率持续叠加,最终陷入难以阅读、编写、约束、测试及维护的僵化状态。

六、自动化:新的挑战

运维自动化是基础设施运维领域的经典技术范畴,随着云原生理念及技术的推波助澜,可以被自动化集成成为企业运维实践的基本要求,开源开放、高度可配置的 CI、CD 技术逐步被企业采纳,黑盒的、无法被集成的 “产品” 方式逐步被灵活的可编排方式弱化并替代。这种实践的主要优势在于其强大的自定义编排和链接能力,高度的可扩展性和良好的可移植性。

特别是在 Kubernetes 生态,GitOps 方式有更高的采用率,与可配置的 CI、CD 技术有天然的亲和性。这样的变化也在推进以工单和运维产品为中心的工作流逐步转变为以工程效率平台为中心的自服务工作流,而生产环境的运维能力则成为了工作流中面向生产自动运维的一个重要环节。在开源社区,面向不同研发效率平台的抽象层技术创新也在活跃进行中,平台侧研发者希望通过最短的认知和实践路径打通应用到云环境的 CI 、CD 过程。

在蚂蚁的工程实践中,工程效率平台深度参与了 Konfig monorepo 的开放自动化实践,我们的实践方向也与工程效率平台技术演进方向高度一致。

在从几人到几十人再到几百人的协同工作中,面向运维场景的工作流设计,高频的代码提交和 pipelines 执行,实时自动化测试和部署过程,这些对服务于单库的工程效率平台造成了很多的挑战。

特别是 monorepo 中多样化的业务需要独立且强大的工作流自定义和操作支持,也需要高实时性、强 SLO 保障的并行的工作流执行能力,这些需求与单库模式的需求有巨大的差异,也给我们制造了很多麻烦。

大部分配置语言是解释型语言,而 KCL 被设计为一种编译型语言,由 Rust 、C 、LLVM 优化器实现,以达到对规模化 KCL 文件提供 高性能[19] 编译和运行时执行的目标,同时支持编译到本地码和 Wasm 以满足不同运行时的执行要求。另外 Git 的存储及架构设计不同于 Citc/Piper[12]  架构,不适用于规模化代码的 monorepo ,所幸今天我们的代码量还没有遇到很大的问题。我们正在一起工作解决这些问题,希望随着实践的深入逐步解决他们。

七、协同和文化:更重要的事

以上的技术、工具、机制都非常重要,但我必须要说,对于工程化、DevOps 更重要的是团体与团队的协同、合作和分享的文化,因为这是一种由人组成的工作,人和文化是其中的关键。

在企业内,如果部门墙、团队壁垒丛生,流行封闭糟糕的工程文化,我们通常会看到大量私有的代码库和私有文档,小群体的判断和工作方式,本该紧密合作的团队以各自目标为导向各行其是,在这样的文化下我认为一切规模化工作都会非常困难。所以如果你所在的公司或团队想采纳规模化 DevOps ,我认为最重要的是做好广泛的沟通并开始文化的建设,因为这绝对不只是几个人的事,并且这很有难度且不可控。

在蚂蚁的实践中,初期总有各种各样的困难,大家对自服务机制和协同文化的担心尤为突出,例如 “我居然要写代码?” ,“我的代码居然跟其他团队在一个仓库里?” ,“我负责的工作可不简单,这种方式行不通” 都是很典型的担忧。

所幸我们最终建立了一个面向共同目标的虚拟组织,合作方和领导者给予了充分的支持,我们在理念和工作方式上达成一致并协同工作。在实践过程中,大多数工程师并不是障碍,当然他们会吐槽技术、流程和机制还不够完善,希望获得更好的体验,这无可厚非。

真正的障碍首先来自于运维平台研发团队自身,我看到一些公司的 DevOps 理想最终回归到运维平台团队替代应用研发者做掉所有工作,甚至不让用户接触到代码和工具链这些生产工具,急于隐藏于已有的 GUI 产品界面,我认为这跑偏了,也低估了用户自身的能力和创造力。

另外障碍也来自于部分平台技术团队的技术负责人,他们很难放下持续多年的已有工作,难以接受转向到新的用户服务模式。可行的办法是让他们明白这项工作的意义和远景,逐步的分阶段的影响他们。

八、小结

经过一年多的实践,有 400+ 研发者直接研发参与了 Konfig monorepo 的代码贡献,管理了超过 1500 个 projects,其中平台研发者及平台 SRE 与应用研发者比例不到 1:9 ,这些应用研发者有些是应用 owner 本人,有些是应用研发团队的代表,这由应用团队自己决定。

通过持续的自动化能力搭建,基于 Konfig monorepo 每天发生 200-300 次 commits ,其中大部分是自动化的代码修改,以及大约 1K pipeline 任务执行和近 10K KCL 编译执行。

在今天如果将 Konfig 中全量代码编译一次并输出会产生 300W+ 行 YAML 文本,事实上一次发布运维过程中需要多次不同参数组合的编译过程。通过轻量化,便于移植的代码库和工具链,我们完成了一次意义重大的外部专有云交付,免去了改造、移植输出一系列老旧运维平台的痛苦。在蚂蚁内部我们服务了几种不同的运维场景,正在扩大应用规模并探索更多的可能性。

最后我想说一说下一步的计划,我们的技术和工具在易用性和体验上还有很大的提升空间,需要更多的用户反馈和持续的改进,体验工作没有快速路径。在测试方面,我们提供了简单的集成测试手段,起到了冒烟测试的作用,但这还不够,我们正在尝试基于约束、规则而非测试的方式保证正确性。

在工作界面方面,我们希望构建基于 IDE 的线下工作空间,持续规约、优化内部线上产品体验和工作流程。同时我们希望持续提升覆盖范围和技术能力。

另外我们也希望将实践方式更广泛的应用在 CI 构建,自动化运维等场景,缩短终端用户的信息感知和端到端工作流程。目前 KusionStack 还处于刚刚开源的非常早期的阶段,在未来还有大量的工作要做。最重要的是我们希望把我们平台工程的理念和实践分享给更多企业和团队,一起推动并见证一些有意思的变化发生。

更多详情请参考:

https://kusionstack.io/zh-CN/blog/2022-learn-from-scale-practice/

相关链接

[1]KusionStack:

https://kusionstack.io/docs/user_docs/intro/kusion-intro

[2] DevOps Anti-Types :

https://web.devopstopologies.com/#anti-types

[3] Platform Engineering :

https://platformengineering.org/blog/what-is-platform-engineering

[4]内部工程平台:

https://internaldeveloperplatform.org/what-is-an-internal-developer-platform/

[5] KCL :

https://github.com/KusionStack/KCLVM

[6] Konfig :

https://github.com/KusionStack/konfig

[7] PaaS 模型抽象:

https://kusionstack.io/docs/reference/lang/lang/tour/#schema

[8]功能函数:

https://kusionstack.io/docs/reference/lang/lang/tour/#function

[9]约束规则:

https://kusionstack.io/docs/reference/lang/lang/tour/#rule

[10]工程结构设计:

https://kusionstack.io/docs/user_docs/concepts/konfig

[11]自动合并技术:

https://kusionstack.io/docs/reference/lang/lang/tour/#-operators-1

[12]静态类型系统:

https://kusionstack.io/docs/reference/lang/lang/tour/#type-system

[13] Kusion :

https://github.com/KusionStack/kusion

[14] mixin :

https://kusionstack.io/docs/reference/lang/lang/tour/#protocol--mixin

[15] 生成技术:

https://kusionstack.io/docs/reference/cli/openapi/

[16]组合编译技术:

https://kusionstack.io/docs/reference/lang/lang/tour/#multi-file-compilation

[17] in-schema 约束:

https://kusionstack.io/docs/reference/lang/lang/tour/#validation

[18] deprecated 装饰器:

https://kusionstack.io/docs/reference/lang/lang/tour/#decorators

[19] 高性能 :

https://kusionstack.io/blog/2022-declarative-config-overview/#35-performance

[20] Citc/Piper :

https://cacm.acm.org/magazines/2016/7/204032-why-google-stores-billions-of-lines-of-code-in-a-single-repository/fulltext

本周推荐阅读

KusionStack 在蚂蚁集团的探索实践 (上)

Kusion 模型库和工具链的探索实践

Go 内存泄漏,pprof 够用了么?

Go 代码城市上云——KusionStack 实践

企业AI Agent规模化治理:从LLM、RAG到Harness层的工程实践 在大语言模型(LLM)和检索增强生成(RAG)技术推动下,AI Agent正从概念验证走向企业级应用。其核心原理在于利用LLM的认知能力,结合RAG的外部知识库,通过规划决策调用工具完成复杂任务。然而,当企业从单点试点转向规模化部署时,面临安全、运维、成本与协作等多重挑战,其技术价值在于确保AI应用稳定、可控、高效。这正是Harness层(治理平台)的关键应用场景,它如同Kubernetes之于容器,为分散的AI Agent提供统一托管、观测与安全保障,解决权限混乱、成本不可控、安全审计缺失等痛点。通过引入 阅读详情

相关推荐

【供应链架构day9】美团配送系统架构的演进之路:从MVP到规模化

本文是美团永俊老师的分享。 写在前面 美团配送自成立以来,业务经历了多次跨越式的发展。业务的飞速增长,对系统的整体架构和基础设施提出了越来越高的要求,同时也不断驱动着技术团队深刻理解业务、准确定位领域模型、高效支撑系统扩展。如何在业务高速增长、可用性越来越高的背景下实现系统架构的快速有效升级?如何保证复杂业务下的研发效率与质量?本文将为大家介绍美团配送的一些思考与实践。 配送业务 从物流到...

作一个独立连续的思考者 6万+

阿里蚂蚁金服技术栈

阿里蚂蚁金服技术栈 一、SOFARPC 服务发布、引用以及调用的简单流程图如下: 当一个 SOFARPC 的应用启动时,如果发现当前应用需要发布 RPC 服务,那么 SOFARPC 会将该服务注册到配置中心,就是图中蓝色实线所示的过程。 当引用这个服务的 SOFA 应用启动时,会从配置中心订阅对应服务的地址,当配置中心收到订阅请求后,会将发布方的地址列表推送给订阅方,就是图中绿色实线所示的过程。 当引用服务的一方拿到地址以后,就可以调用服务了,就是图中蓝色虚线所示的过程。 使用步骤 依赖 <d

qq_36744175的博客 2228

【算法】图解A* 搜索算法

A* 算法是启发式搜索算法,是根据Dijkstra算法改进而来。 问题引入 如下图所示,S为起始(start)节点,G为目标(goal)节点。 节点之间连线是两点的路径长度,如A到E的路径长度c(A,E) = 9。 节点旁的h值时当前节点到达目标节点(G)的预估值,如h(A)=15, 表示从当前点A到达目标点G的估计路径长度为15,此处h(x)即为启发函数,启发函数的设计有很多方法,具体可......

zhuhua造轮子的博客 4万+

【译】什么是平台工程?如何建设?

译者说上周刚和一帮大佬讨论了这个话题,今天看到这篇文章,感觉和我的思考非常一致。赶紧 chatgpt 翻译了一下,当然感觉 chatgpt 翻译还是不够,还需要再对照英文审核修改一下,但是对于学习来说非常够用了。如果大家正在做平台工程相关的事情,本文我认为非常值得推荐。原文地址:https://dzone.com/articles/what-is-platform-engineering-how-...

黑光技术 682

U-net复现pytorch版本 以及制作自己的数据集并训练

GitHub链接: https://github.com/milesial/Pytorch-UNet 论文链接:

candice5566的博客 3万+

光猫桥接后网速不升反降?可能是你的路由器在“偷懒”!

本文详细分析了光猫桥接后网速不升反降的常见原因,包括路由器性能不足、MTU/MSS值设置错误等,并提供了四个关键排查步骤和路由器选购指南。通过优化PPPoE拨号设置和硬件配置,帮助用户解决网速下降问题,提升家庭网络性能。

hqmln的博客 612

详解平台工程的概念及其正确的实施策略

就像产品团队开发的应用程序一样,平台是平台工程师开发的产品;许多公司会雇用 DevOps 工程师作为平台工程师,也会有许多公司的云计算工程师可能会成为平台工程师,在小公司中,平台工程师可能会接管 DevOps 的角色,在大公司中,云团队会与平台团队合作,分享他们的专业知识。,而这意味着您仍然需要产品团队中的 DevOps 工程师,平台也是一种产品,这意味着平台就像应用程序一样,需要一个持续的发展,有许多反馈迭代,并需要从最终用户那里收集密切的输入,这些用户虽然主要是应用开发团队,但也有治理和合规人员。

baidu_41642080的博客 1651

2D激光slam数据集的下载与测试

参考博客: https://blog.youkuaiyun.com/qq_24894159/article/details/81265991 https://blog.youkuaiyun.com/fk1174/article/details/52673413#commentBox 数据集下载与生成 下载数据集 下载网址: http://ais.informatik.uni-freiburg.de/slamevaluation/datasets.php 进去网站后点你想下载的对应的"download log file" 然后你

老李的博客 4025

DevOps 和 Kubernetes:如何利用平台工程实现最佳实践

这篇文章由 D2iQ 的联合创始人兼 CEO Tobi Knaup 撰写,主要探讨了 DevOps 和 Kubernetes 的关系以及我们在使用它们时可能存在的误区。文章指出,尽管 DevOps 和 Kubernetes 在大约同一时期受到欢迎,但它们的目标和方法却存在冲突。DevOps 鼓励去中心化,而 Kubernetes 则设计为集中管理以获得最大效益。文章还提出了一种新的方法:平台工程,...

优快云资讯 4591

避坑指南:锐浪报表PictureBox打印图像常见的5大问题及解决方案

本文深入剖析了锐浪报表(Grid++Report)中PictureBox控件打印图像时常见的五大难题,包括图像源加载机制、拉伸失真、动态加载失败、跨平台兼容性及性能优化。文章提供了从原理理解到实战解决方案的完整指南,帮助开发者有效规避图像打印中的常见陷阱,确保报表输出的稳定与高质量。

water的专栏 1148

深度:善用人工智能推动高等教育学习、教学与治理的深层变革

从学习方式的革新到教学模式的重构,再到治理体系的升级,人工智能已不再仅仅是辅助工具,而是成为重塑高等教育生态的核心驱动力。某高校的创新实践表明,引入AI生成虚拟患者后,医学生在临床沟通训练中的共情能力提升27%,印证了技术工具与人文教育的互补效应。美国卡内基梅隆大学的实践表明,经过系统培训的教师,其课程设计效率提升40%,且能精准定位83%学生的学习难点。当每个学生都掌握提示工程原理,每位教师都能驾驭AI教学工具,每所高校都建立智能治理框架时,教育将真正实现"以人为本"与"技术为用"的有机统一。

IT胶囊 1093

解锁研发效能:平台工程的建设策略与实践

????点击蓝字 关注我们在2022与2023年Gartner公司预测的10大技术趋势中,平台工程(platform engineering)连续上榜。平台工程通过提供自动化基础设施操作的自助服务功能,减少底层基础支撑工具的复杂性和不确定性,减化工作流程,减少最终用户在使用过程中的认知成本,从而改善了最终用户的体验和提高生产效率。图1 平台工程概念图示(图片来源Gartner [2])平台工程是工具体系...

Agilean 的博客 1646

【AI 智能体】Windows 环境 Hermes Agent(爱马仕)安装详细过程

Windows 环境 Hermes Agent(爱马仕)安装详细过程

congge_study的博客 1829

蚂蚁规模化平台工程实践一年多,我们学到了什么?

作者|朵晓东(Kusion Creator) 责编 | 张红月出品 | 规模化云原生运维本文基于KusionStack技术栈在蚂蚁平台工程及自动化中的实践,尝试从平台工程、专用语言、分治、建模、自动化和协同文化等几个角度,阐述规模化平台工程实践中的收益和挑战。希望通过把我们平台工程的理念和实践分享给更多企业和团队的方式,大家一起让一些有意思的变化发生。平台工程要解决什么DevOps...

优快云资讯 2852

黑猫带你学eMMC协议第17篇:超详细的eMMC HS200 & HS400讲解

1 前言 1.1 声明 本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。 本文结合eMMC JEDEC5.1协议手册查看效果更佳。 1.2 内容提要 本文大约6000字,主要内容有: 1.什么是emmc hs200/hs400? 2.什么是tuning?tuning的过程又是什么? 3.如何设置才能让emmc进入hs200 mode? 4.如何设置才能让emmc进入hs400 mode? 5.emmc关于HS200/HS400内部结构框图对比。 6.部分个人相关经验总结。

黑猫奥利奥的博客 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

互联网摸鱼日报(2022-10-22)

可能是最严重的云存储数据外泄事故之一:微软承认服务器错误配置导致全球客户数据泄露雪花啤酒数字化转型框架的制定逻辑|第四期完整版(中)蚂蚁规模化平台工程实践两年多,我们学到了什么Docker 又涨价了如何构建直面消费者的汽车供应链?Salesforce 发布了“汽车云”WebAssembly的核心语言特性与未来发展下一代 NLP 模型将走向何方?| InfoQ《极客有约》Kotlin Multiplatform Mobile进入Beta测试清华刘世霞教授斩获 IEEE VIS 2022 可视化技术成就奖Doc

weixin_43849685的博客 537

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

企业如何构建数字化平台战略,加速规模化创新

二十年以来企业组织结构的变迁和技术架构的变迁是完全一致的,这就是康威定律的表现。共享经济,生态经济是平台化带来的优势,平台化是企业发展的趋势,平台化能够帮助企业打通不同渠道,构建敏捷的业务流程,加速规模化创新。为什么要平台化,如何平台化,平台化过程中的坑在哪里。 凯哥通过一个大型金融产业集团十年磨一剑的过程给大家分享数字化时代平台战略的重要性和演进路线。...

GitChat 1459

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

测试规模化平台(Test at Scale)快速入门指南

测试规模化平台(Test at Scale)快速入门指南 1. 目录结构及介绍 测试规模化平台(Test at Scale,简称TAS)的GitHub仓库采用典型的现代软件开发组织方式。以下是对主要目录和文件的简要概述: 根目录: README.md: 快速了解项目的核心功能、特点和支持的场景。 .github: 包含GitHub工作流相关的配置,如自动响应Issue或PR的脚本。 doc...

gitblog_00153的博客 837

突破规模化运维瓶颈 SREWorks云原生数智运维平台揭秘

一套规模化运维的流水线——交付、监测、管理、控制、运营、服务。

科技很有意思 604

规模化构建者平台:从理论断裂到工程实践的关键挑战与演进

在软件工程领域,平台工程旨在通过标准化工具链与自动化流程提升研发效能与系统可靠性,其核心原理在于抽象基础设施复杂性,为开发者提供高效、安全的自助服务环境。这一技术架构的价值在于规模化赋能组织,实现资源治理、质量保障与交付速度的平衡。典型的应用场景包括大型企业的微服务治理、多云资源调度以及内部开发者平台建设。然而,当平台服务规模从几个团队扩展到成百上千个应用时,理论模型常在与现实需求的碰撞中出现断裂。本文聚焦于规模化下的核心挑战,如统一抽象与多样需求的冲突、集中治理与交付速度的悖论,以及平台团队从赋能者到高负

weixin_31742871的博客 468

构建AI智能体规模化评估框架:从方法论到工程实践

在人工智能领域,智能体(AI Agent)的评估是确保其在实际应用中稳定可靠的关键环节。传统的人工测试方法难以应对大规模、复杂多变的业务场景,因此需要一套系统化、自动化的评估体系。其核心原理在于通过标准化的测试用例、可控的沙箱环境和多维度的评估指标,对智能体的基础认知、任务执行、鲁棒性等技能进行量化度量。这种评估框架的技术价值在于将Agent开发从“凭感觉试错”转向“数据驱动迭代”,为模型优化、产品交付和风险控制提供客观依据。在应用场景上,它广泛应用于智能客服、自动化流程、决策辅助等需要AI代理复杂任务的领

weixin_33980459的博客 335

如何应对微服务架构的规模化应用

新版内容更加丰富,篇幅大大加长,其中的变化不仅反映了微服务领域的显著进步,也凸显了我们面临的问题。Sam 意在通过新版完整展现采用微服务架构所带来的全生命周期复杂性,鼓励架构师在考虑微服务时,更多地关注长期投入的必要性。——肖然,Thoughtworks 中国区总经理、中关村智联联盟秘书长如果你有“微服务架构的规模化应用”的问题,推荐你阅读:《微服务设计(第2版)》萨姆·纽曼 | 著钟健鑫 张沙...

图灵教育 129

提示工程架构师的‘规模化需求’:市场需求下,如何实现提示工程的规模化应用?

当ChatGPT、Claude等大语言模型(LLM)成为企业数字化转型的核心工具时,提示工程(Prompt Engineering)早已不是“少数专家的游戏”——它需要支撑成千上万个AI应用场景(如客服机器人、内容生成、数据分析、代码辅助)的大规模运行。要素描述角色(Role)提示中模型的角色(比如“客服助手”“内容生成器”)规则(Rules)模型必须遵循的规则(比如“保持友好”“简洁回答”)输入(Input)用户的问题或其他输入信息(比如{user_query}、{order_info})

AI算力网络与通信的博客 789

规模化团队如何借鉴谷歌工程实践:代码审查、CI/CD与自动化测试落地指南

在软件工程领域,持续集成与持续交付(CI/CD)是支撑现代敏捷开发和DevOps文化的核心技术原理。它通过自动化构建、测试和部署流程,将开发人员的代码变更快速、安全地集成到主干,旨在缩短交付周期、提升软件质量并降低风险。其技术价值在于为团队规模化协作建立了可靠的质量防线和效率引擎,尤其适用于快速扩张的互联网和科技企业团队。在规模化开发场景中,结合代码审查(Code Review)和自动化测试等关键实践,能够系统性地解决代码质量参差不齐、知识传递低效等痛点。本文以谷歌工程实践为蓝本,深入探讨如何将代码审查、C

weixin_34396902的博客 311

AI Toolkit云端部署:Modal平台规模化训练实战

还在为本地GPU资源不足而苦恼?想要在云端高效训练Stable Diffusion模型却不知从何入手?本文将为你详细解析如何在Modal平台上规模化部署AI Toolkit,实现高效的云端LoRA训练。 ## 什么是AI Toolkit和Modal平台? **AI Toolkit**是由Ostris开发的一站式扩散模型训练套件,支持最新的图像和视频模型,可在消费级硬件上运行。它提供了GUI和C...

gitblog_00541的博客 949

不要痴迷于规模化

做生意,创业,有个说法,从0到1,从1到10,从10到100。先得到正反馈,然后想办法规模化。也有个说法,就是要找到十倍增长的路径,如果方法得当,十倍增长可能比一倍增长更容易。那么还是老调重弹,凡事都不是简单的对或者错,0或者1,一个刚刚起步的小生意,一个刚刚赚钱的小事业,放大规模当然是合理的诉求,需要找到方法论,降低成本,提升效率,增加获客能力,实现规模化,当然也是很正常的一些商业思考。但不是任...

caoz的梦呓 695
上一篇: SOFA 飞船 Layotto 星球登陆计划最新进展
下一篇: 开源项目文档社区化!Tongsuo/铜锁实践
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值