当前位置: 首页 > 科技观察

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

时间:2023-03-12 22:54:28 科技观察

虽然仍处于早期阶段,但Web3已经展示了区块链和DevOps协同工作的潜力。本文讨论DevOps实践、流程、工具,以及它将如何补充区块链技术以提供Web3解决方案。DevOps是一个涵盖软件开发的文化、思维方式、开发风格、过程和技术的总称。DevOps旨在通过协作、自动化、可预测的结果、更短的交付周期和更快的客户反馈来提高软件交付的质量。区块链是一种不可变的分布式账本技术。区块链分类帐由分散的“块”组成,这些“块”包含分类帐网络上的事件或“交易”记录。一旦交易记录在区块链上,就无法删除或更新。区块链可以是中心化的,也可以是去中心化的,其本质始终是分布式的。然而,大多数区块链网络都是去中心化的,这意味着它们在网络内的节点上运行,而不是在中央服务器上运行。此外,去中心化区块链是无需许可的,这意味着任何人都可以访问它们或参与它们的网络。Web3是下一代互联网的假设版本。Web2迎来了动态用户生成内容、电子商务的广泛采用和易用性的时代。而由区块链技术驱动的Web3足以通过将用户数据的所有权从大玩家转移到用户自己,从而带来去中心化的新时代。Web3组织,如ConsenSys,提供了新工具,当与常见的DevOps实践相结合时,这些工具有望带来一系列安全性和生产力优势。DevOps和区块链如何相辅相成?DevOps是一个持续改进软件交付链的循环。它的最佳实践可以通过不同的阶段和工具来支持区块链技术的发展。当前的DevOps工具和实践将使用容器化、自动化和更短的开发迭代来帮助区块链开发。另一方面,区块链技术通过不变性、安全性、智能合约等提供了一种更好的交付服务和数据的方式。此外,它可以通过确保质量和消除歧义将DevOps交付提升到一个新的水平。DevOps实践和工具将如何帮助区块链开发?下表显示了不同的DevOps阶段将如何协同工作,以及它将如何为区块链开发、测试和交付做出贡献。DevOpsPhaseBlockchainDevelopmentExampleWeb3ToolExampleFeedback在此阶段,区块链应用程序开发团队将收到来自客户、内部团队甚至竞争对手市场研究的关于改进现有功能或添加新功能的反馈。RequestTracker等服务请求监控工具由开发团队开发,用于添加新功能、改进现有功能或修复区块链应用程序中的错误。他们使用不同的工具、技术和平台进行开发。开发环境、框架、库、存储库和工具集如下:RemixIDE\Solidity\Truffle\Drizzle\Ethlint\Radicle\Ethereum虚拟机(EVM)测试开发人员对新开发的代码进行单元测试。测试团队进行系统集成测试、性能测试等。EthereumTester\Ganache\DiligenceFuzzing\hevm集成等代码测试工具全部测试成功后,团队将新开发的代码推送到区块链应用的源代码仓库。拉取请求将最新的更改合并到master分支中。CI工具的集成,如CircleCI\JenkinsBuildandDeployment与master分支触发构建过程。此时,应用程序已使用所有依赖项构建并准备好部署。构建完成后,持续部署管道会将应用程序部署到较低的环境,例如UAT或STAGING。部署后,在这些环境中运行一系列自动化测试,以确保一切按预期运行。如果所有自动化测试都成功,管道会将最新版本的区块链应用程序部署到生产环境中。构建自动化和CD工具,例如:Gradle\Truffle监控可观察性平台、日志管理解决方案和监控工具从区块链应用程序收集日志、指标、跟踪和事件。IT团队使用这些工具来解决事件和性能问题、调查安全问题或规划容量。可观察性技术:Infura\BlockScout\Ethernal\Quine运营IT运营团队,以确保区块链应用程序按预期执行并实现其SLA。他们对基础设施执行必要的维护任务、应用修复程序、升级软件等。SpiceworksBlockchain等服务管理工具如何帮助DevOps实践?区块链作为一项新兴技术,已经从加密货币走向应用领域。随着技术的成熟,它可以以各种方式增强DevOps和软件交付过程。不可变账本的透明交付应用程序可以利用区块链的不可变账本技术实现更透明和可靠的交付。区块链中的每个节点都可以包含软件开发过程及其依赖项的完整历史,从而增加其可信度。智能合约的质量确保智能合约的任意代码只有在成功满足预定条件时才会执行。因此,可以使用智能合约来规范测试和验收流程。此外,这种方法将有助于自动化合规和审批流程。使用智能合约的SLA软件交付可以使用智能合约为应用程序的消费者编码服务级别协议。这消除了对协议中规定的要求的歧义和分歧。同样,分布式账本可以帮助结算付款和保护权限。不可变账本的安全性和可审计性DevSecOps实践努力确保软件安全,经过认证的区块链通过验证网络中的参与者进一步增强了这种安全性。日志事件可以记录在一个不可变的分类账中,以便研究人员可以追溯安全漏洞的确切时间点。此外,由于基于区块链的代码是不可变的,所有节点都有完整的交易历史,因此可以通过审计开源或第三方库的相关账本来维护和验证供应链安全。强制性文档软件文档通常不存在、质量低下或已过时。同一文档的多个版本通常会产生歧义。不可变分类账可以包含最新文档的签名版本,智能合约也可以在软件交付之前激活,以确保满足某些文档标准。Web3和DevOps的未来Web3可能会为DevOps创建新一代基于区块链的工具、实践和流程。示例包括用于全球范围内开源和业务协作的去中心化、分布式、安全代码存储库。此类代码存储库的示例包括Radicle或Ellcrys。Web3还需要专门的编程语言来适应区块链约束并提供一组丰富的库。Solidity就是这样一种编程语言。程序员可以使用像Truffle这样的开发框架来构建和测试应用程序,并在以太坊虚拟机(EVM)上运行它们。Web2应用程序允许验证消息的内容,但不一定是发件人。在区块链技术中,增加了一个可以验证发送者的可信节点的安全层。Web3将通过不可变的分类账和智能合约增加开发人员的信任和安全性,使任何人都可以审核软件的质量和实用性。Diligence等工具可以审计此类智能合约。QuorumKeyManager等其他工具可以帮助管理机密文件和密钥。结论DevOps是一种被广泛接受的软件交付实践。它的成功部分归功于其对尖端技术的使用。区块链也是一种新兴技术,可以从网络交付的软件中受益匪浅。当前的DevOps工具和实践可以帮助开发区块链上的应用程序,而采用更成熟的区块链可以改进DevOps实践。