软件定义交付(SDD)宣言

今天给大家分享的是《软件定义交付宣言》,该宣言发出已经有一周多时间了,还在联署签名中。

版权声明
本文为 Jimmy Song 原创。转载请注明来源: https://jimmysong.io/blog/software-defined-delivery-manifesto/
查看本文大纲

今天给大家分享的是《软件定义交付宣言》,该宣言发出已经有一周多时间了,目前该宣言的官方网站(https://sdd-manifesto.org/ 已停止维护)还在联署签名中。

云原生通过不可变基础设施与声明式配置,作为了软件定义交付的基础,再假以持续交付工具可以极大的提高软件交付效率,本宣言的起草者中包含众多云原生理念的鉴定拥护者如 Kenny Bastani、Matt Stine 等。

该宣言通过 GitHub 协作草拟(https://github.com/sdd-manifesto/manifesto),仍未达到 1.0 版本。下面是《软件定义交付宣言》的中文版。

软件定义交付宣言

我们从日常生产和实践中认识到软件塑造了我们的世界。我们认识到代码才是指定精确操作的最佳方式。我们认识到代码仅在被交付时才有用。

开发的软件被能够被交付出去就软件本身存在的目的。现在是时候将我们的核心技能应用到实际的工作中去了。是时候对交付去做出 设计 了。我们将区别人类和计算机在交付工作中承担的作用:人类做决策,计算机来完成自动化任务。

每一次交付工作本质上都是独一无二的。应用程序、组织、部署环境和团队组合千差万别。我们认识到每个团队都需要能够理解这种交付的独特性和对交付做自动化。我们认识到,虽然持续交付对满足业务需求至关重要,但自动执行所有重复任务也非常重要。

我们使用与加速应用程序开发类似的方式来加速软件交付:使用现代架构和编程语言,通用功能的框架、库和服务。

交付基础设施现在是可编程的,我们将对其进行编程。

软件定义交付是指

核心:交付是每个软件团队和组织的基础和战略能力。

  • 优先:交付的代码是生产代码。
  • 战略:决定团队和组织层面的策略;在代码中实现精确控制。
  • 不断发展:不断改进交付。

工程设计:强大,可测试的代码。70 年代的脚本语言是不够的。

  • 现代软件架构:事件驱动和可扩展。
  • 现代编程语言:逻辑最好用代码指定,而不是图片或 GUI。脚本不好扩展。
  • 基于模型:由软件领域的模型支持,具有对代码的理解。
  • 可测试:在生产之前启用小规模应用以发现错误。

协作

  • 从群众中来:所有人都可以在代码中表述自己的专业知识,这对大家都有利。
  • 到软件中去:使用最好的工具,但将它们结合起来之后就是独一无二的。
  • 在人与软件之间:协同自动化可以增强我们的感知和帮助我们做决策。将信息落实到行动,使我们能够体察软件的自动化行为。通过代码来区分团队的共享交付目标集及其实现。

加速

  • 通过自动化:自动执行重复任务,加快了工作速度还可以避免错误发生。
  • 通过重用:在开发人员、团队和组织之间共享通用功能。

可观测性:通常用于观察和排除作为生产系统的交付过程中发生的情况。

  • 跟踪:观察系统中的活动并跟踪操作之间的关系。
  • 调试:检查和与交付流程交互。
  • 指标:在整个交付流程的活动中获取指标。

作者:(姓氏按字母顺序排列):本宣言由 Kenny Bastani、Marc Holmes、Rod Johnson、Jessica Kerr、Mik Kersten、Russ Miles、Erin Schnabel、Matt Stine 及其他社区成员草拟。

©2018,上述作者和本声明可以任何形式自由复制,但需全文复制本声明。

最后更新于 2024/12/12