区块链技术将如何改进 Web3 中的 DevOps ?

原文标题:《Web3:区块链技术将如何改进 Web3 中的 DevOps ?》(How Blockchain Technology Can Improve DevOps Practices in Web3

撰文:John Vester

编译:ChinaDeFi

虽然还处于早期阶段,但 Web3 已经显示出其能提供区块链和 DevOps 协同 工作的可能。本文讨论了 DevOps 的实践、流程、工具、及其它将如何与区块链技术相互补充来交付 Web3 解决方案。

DevOps 是一个涵盖了软件开发的文化、思维模式、开发风格、过程和技术的总称。DevOps 旨在通过协作、自动化、可预测的结果、更短的交付周期和更快的客户反馈来提高软件交付的质量。

区块链是一种不可变的分布式账本技术。区块链分类帐由去中心化的「区块」组成,其中包含分类帐网络上的事件或「交易」记录。一旦区块链记录了一个交易,就不能删除或更新它。区块链可以是中心化的,也可以是去中心化的,它的固有性质总是分布式的。

然而,大多数区块链网络是去中心化的,这意味着它们是运行在网络中的节点上,而不是在中央服务器上。此外,去中心化的区块链是无需许可的,这意味着任何人都可以访问它们或参与它们的网络。

Web3 是下一代互联网的假想版本。Web2 迎来了动态用户生成内容、电子商务广泛采用和易于使用的时代。而由区块链技术驱动的 Web3 通过将用户数据的所有权从大型参与者转移给用户本身的方法,就足以带来去中心化的新时代。Web3 组织,比如 ConsenSys,提供了新的工具,当与常见的 DevOps 实践相结合时,这些工具有望带来一系列安全性和生产力优势。


DevOps 和区块链是如何互补的?


DevOps 是一个不断改进软件交付链的循环。它的最佳实践可以通过不同的阶段和工具支持区块链技术开发。当前的 DevOps 工具和实践将使用容器化、自动化和较短的开发迭代来帮助区块链开发。

另一方面,区块链技术通过不变性、安全性、智能合约等提供了一种更好的方式来交付服务和数据。此外,通过确保质量和消除模糊性,它可以将 DevOps 交付提升到一个新的水平。


DevOps 实践和工具将如何帮助区块链开发?


下表展示了在不同的 DevOps 阶段将如何协同 工作,它将怎样为区块链开发、测试和交付做出贡献。


区块链如何帮助 DevOps 实践?


作为一项新兴技术,区块链已经从加密货币转移到应用程序范围。随着技术的成熟,它可以以各种方式增强 DevOps 和软件交付过程。

不可变账本的透明交付

应用程序可以利用区块链的不可变账本技术来实现更透明、更可靠的交付。区块链中的每个节点都可以包含软件开发过程及其依赖关系的完整历史,从而增加它的可信度。

智能合约的质量保证

智能合约的任意代码只在成功满足预定条件的情况下执行。因此,智能合约可以用来规范测试和验收过程。此外,这种方法将有助于实现法规遵循和批准过程的自动化。

带有智能合约的 SLA

软件交付可以使用智能合约为应用程序的消费者来编码服务水平协议。这可以消除协议中规定的需求上的歧义和分歧。同样,分布式账本可以帮助结算付款和确保许可权。

不可变账本的安全性和可审计性

DevSecOps 的实践努力确保软件的安全性,需要认证的区块链通过验证网络中的参与者而进一步增强了这种安全性。日志事件可以记录在一个不可变的分类账中,以便研究人员可以追溯安全漏洞的确切的时间点。

此外,由于基于区块链的代码是不可变的,而且所有节点都有整个交易历史,因此可以通过审计开源或第三方库的相关账本来维护和验证供应链安全。

强制性文件

软件文档常常是不存在的、低质量的或过时的。相同文档的多个版本常常会造成歧义。不可变账本可以包含最新文档的签名版本,而且还可以在软件交付之前激活智能合约,以确保满足特定文档标准。


Web3 和 DevOps 的未来


Web3 可能会为 DevOps 创建新一代基于区块链的工具、实践和流程。示例包括用于全球范围内的开源和业务协作的去中心化的、分布式的、安全的代码存储库。这类代码存储库的例子包括 Radicle 或 Ellcrys。

Web3 还需要专门的编程语言来适应区块链限制并提供丰富的库集。Solidity 就是这样一种编程语言。程序员可以使用像 Truffle 这样的开发框架来构建和测试应用程序,并在以太坊虚拟机 (EVM) 上运行它们。

Web2 应用程序允许验证消息的内容,但不一定要验证发送者。在区块链技术中,增加了可验证发送方的可信节点安全层。Web3 将通过不可变的账本和智能合约增加开发者的信任和安全性,使任何人都能审查软件的质量和用途。像 Diligence 这样的工具可以审核这样的智能合约。Quorum Key Manager 等其他工具可以帮助机密文件和密钥的管理。


结论


DevOps 是一种被广泛接受的软件交付实践。其成功的部分原因在于其采用了尖端技术。

区块链也是一项新兴技术,它可以从网络交付的软件中获得极大的好处。当前的 DevOps 工具和实践可以帮助开发区块链上的应用程序,而更成熟的区块链的采用可以改善 DevOps 实践。