写点什么

通过区块链技术来简化 DevOps 流程

2018 年 7 月 29 日

DevOps 是近年来推动技术进步的动力。DevOps 为我们提供了一个进入未来的通道,在那里,软件技术始终保持最新,一切都可以在眨眼之间完成加载,你再也不会遇到另一个应用程序故障。这怎么可能?密切的团队沟通、快速反馈和关键流程的自动化让 DevOps 团队能够不断创新,导致传统 IT 看起来极其笨重而繁琐。今天的软件公司已经到了做出抉择的时候:“采用 DevOps,或慢慢死去。”

在进一步讨论这个话题之前,先让我们澄清一下 DevOps 的概念。DevOps 是一种软件交付的整体方法,它统一了软件开发(Dev)和软件运营(Ops)。它涉及软件工程各阶段的自动化和更短的开发周期。Netflix 是成功应用 DevOps 的最著名的公司之一——它能够通过无处不在的自动化来支持公司的快速增长,包括故障自动化(一种名为“Chaos Monkey”的工具通过定期随机关闭服务器实例来测试 Netflix 应用程序的稳定性)。

话虽如此,DevOps 仍然存在一些问题——主要与自动化流程、基础设施不足以及计算能力不足有关。所幸的是,在标记化的基础设施市场、自动化 GRID 和人工智能的帮助下,有很多项目可用于解决某些 DevOps 所面临的挑战。在本文中,我们将详细描述它们并将它们与非区块链解决方案进行比较。

DevOps 与传统 IT:感受差异

采用 DevOps 的好处包括:处理安全问题所花费的时间将减少 50%、故障恢复速度将提高 24 倍、变更故障率将降低 3 倍。此外,当今最具适应性和发展最快的科技公司正在使用 DevOps 来达到接近“随需速度(speed of need)”的目标。他们可以快速获得产品反馈,并以最小的延迟满足新出现的需求。

DevOps 究竟与用于创建大多数现有网站的传统 IT 模型有何不同?

专注的跨职能团队

任何一家采用 DevOps 的公司都由专门的跨职能团队而不是以技能为中心的孤岛(独立部门,它们之间没有进行充分的沟通)组成。在传统的 IT 环境中,由三四个孤岛轮流开发新功能,有时候出现返工,需要将功能回退给上一个孤岛。但 DevOps 团队是自给自足的,它们由专注于一个应用程序的开发人员、测试人员、运营人员和业务分析人员组成。这样一个跨职能的团队可以在不向其他人推卸责任的情况下处理新功能。在准备好进入部署阶段时,工作就算完成了,因此不会在交接上浪费时间。根据 1/4-2-20 法则(每四分之一的完成时间,可以让生产效率提升 2 倍,并减少 20% 的成本),周期时间每减少 25%,生产力就会翻倍,并减少 20% 的运营费用。

频繁的小批量交付

DevOps 适用于频繁的小批量交付,而不是每年进行几次大型的发布。从 DevOps 的角度来看,大批量风险太大、太复杂、难以协调,而小批量可以进行必要的全面测试。如果出现任何问题,可以迅速解决。除此之外,频繁发布小版本可以更好地响应客户的需求。

自动化

DevOps 文化倾向于提倡自动化,因为这样可以让团队处理创造性任务而不只是常规任务。系统自动构建和测试代码,并通过管道传递给消费者(已经通过测试)。不过需要注意的是,完全自动化不是必需的。自动化水平取决于每个团队的流程和痛点,过度自动化可能导致不理想的结果。为了达到完美的平衡,每个团队应评估自己的需求,找出瓶颈,并确定优先级——遗憾的是,并不存在适合所有需求的通用方案。

采用 DevOps 将会面临的挑战

如果 DevOps 是一种可以带来竞争优势的方法,为什么不是所有人都采用它?它已经存在好几年了,首次出现在 2010 年,而 2018 年的情况如下:只有 30%的软件公司宣布完全(17%)或几乎完全(13%)引入 DevOps,仅 22%刚刚开始向这种方法过渡。

当然,最关键的是整个公司的大规模心态转变——从管理层到入门级员工。这就是为什么刚开始引入 DevOps 会很难以及成功完成实施会更难。大多数企业的开发和运营团队都试图实现相反的目标:鼓励前者进行创新,鼓励后者保持正常运行时间和连续性。要消除二者之间的摩擦并让他们组合在一起并非易事。这就是为什么公司管理层应该通过引入面向协作的目标和促进跨职能培训来转向 DevOps。它将帮助 Dev 和 Ops 超越他们通常的职责范围,并意识到他们都处在同一个团队中。

是什么阻止 DevOps 渗透到整个行业?

除了企业文化的转变,DevOps 的采用受到了一些不可避免的功利问题的阻碍,这些问题与基础设施、同步和自动化流程有关。沙盒专家 Quali 进行的调查表明,阻碍引入 DevOps 的主要障碍是公司文化(14%)、测试自动化挑战(13%)、遗留基础设施(12%)、应用程序复杂性(11%),以及预算限额(11%)。

自动化挑战

测试自动化是 DevOps 的基石之一:它让持续集成成为可能,并节省了团队的时间,让他们可以专注于更具创造性的工作。测试旨在检查一段代码是否按预期工作,以及它是否满足所有的技术或业务要求。有各种各样的测试类型,这就是为什么手动测试在 DevOps 流程中会不可避免地成为瓶颈所在。虽然测试自动化需要额外的努力,但绝对是值得的。对于 FinTech 之类的解决方案或电子商务网站等应用程序来说尤其如此——即使最小的停机时间也会导致重大的利益损失。

自动化测试的一个常见问题是,在资源有限的本地基础设施上运行时,可能会过于耗时。有时候,你甚至可能需要在晚上进行自动化测试,以便在第二天获得结果,甚至等到周末。如此低的速度对于 DevOps 流程来说是不可接受的,但很少有公司能够负担得起构建强大的本地基础设施的成本。

基础设施挑战

遗留基础设施是很多公司抵制采用 DevOps 的另一个原因。快速开发(DevOps 的特征之一)主要基于微服务架构,与传统架构完全不同。迁移到微服务将大幅增加工作量,在大多数情况下,传统的基础设施需要进行昂贵的升级。

另一个与基础设施有关的问题是 DevOps 工具与现有 IT 系统的集成——集成过程很少能够顺利进行,因为涉及的变化太多。例如,Dev 和 Ops 团队通常使用不同的工具和指标,但为了实现真正的 DevOps 效率,他们必须进行集成和统一——他们需要组成一个跨职能团队。

应用程序的复杂性

DevOps 的最佳环境是云,原因很明显:云提供了必要的规模、最佳的速度和最大的灵活性,所有这些通常都无法在有限的本地部署上实现。云环境让开发人员可以更好地控制组件并减少等待时间。除此之外,云环境让 DevOps 团队能够为分配基础设施创建自助服务方法——这意味着他们不需要等待分配资源。但是,向云迁移并非总是可行的:据调查,44%在内部部署环境中运行的应用程序因为太过复杂而无法迁移到云环境中。

基于区块链的 DevOps 平台

现在已经出现了很多数字加密项目,以满足该行业对计算资源和基础设施日益增长的需求。它们使用了不同的技术,但都有一个共同点:激励社区发展并作为使用资源奖励的代币。

Buddy

作为最有前途的去中心化 DevOps 平台之一,Buddy 通过提供对两个自动化网格的访问来解决基础设施问题。受信任的高可用私有自动化网格和共享自动化网格可以执行时间密集型和计算密集型自动化操作,甚至整个管道。因此,DevOps 团队可以以最高的效率完成他们的工作(并且无需担心基础设施可用性问题)。最重要的是,Buddy 支持复杂的企业级应用程序、多云工作流和混合环境。

Buddy 用户可以通过受支持的自动化操作来创建管道。目前有 80 个操作,不过很快会出现更多的操作,这要归功于 Buddy 市场。这个市场是为了鼓励社区发展和支持有才华的开发者而推出的。第三方开发人员可以向 Buddy 的生态系统提交自己的自动化操作,可以是有偿的,也可以是免费的。

私有自动化网格是由 Buddy 实例组成的网络,为 DevOps 流程的自动化提供按需自动伸缩的基础设施。用户可以在他们认为合适的地方运行 Buddy 实例:在他们自己的物理基础设施上、私有云或 IaaS 服务器上。Buddy 还可以使用由合作伙伴或 SaaS 集成(如 Google Cloud、Amazon Web Services 等)提供的受信任网格。根据不同的负载,Buddy 会自动创建新实例,并在不再需要它们时将它们移除。

共享自动化 GRID 在不需要受信任基础设施的情况下使用。可以向具有可用资源的 Buddy 实例网络分配时间密集型和计算密集型的任务。运行这些实例的用户将获得每个计算单元的 BUD 代币。该网格不能用于核心开发,但可用于测试(由数百个 Buddy 实例来运行测试将花费更少的时间)或其他不需要高度信任级别的任务——例如性能监控或可用性监控。

DevOps 工程师还可以在 Buddy 沙箱的帮助下消除开发瓶颈,他们可以直接在一次性运行环境中从 Git 仓库运行应用程序或网站。沙箱不需要任何物理服务器或虚拟机。

Buddy 支持与以下生态系统集成:Github、Bitbucket、GitLab、Slack、DigitalOcean、Vultr、AWS、Google Cloud、Microsoft Azure 等。它还有一个内置的 Git,用户可以选择使用它来托管项目。

基于以太坊的 BUD 代币旨在作为去中心化经济的基础,并在 Buddy 生态系统中创建积极的反馈循环。如果没有代币,平台就缺乏对参与网格计算进行激励的经济因素,因为法定支付太慢而且效率太低,不足以推动社区的发展。

Fetch.ai

Fetch.ai 是一个基于区块链的智能账本(Smart Ledger,下一代分布式账本技术)项目。它为数字世界提供动力,在这个世界中,自主软件代理可以通过出售数据或空闲资源来获得 Fetch 代币。DevOps 团队显然可以从这个市场中受益:这是一种购买计算资源以进行测试、监控或执行其他 DevOps 时间密集型任务的便利方式。从 DevOps 的角度来看,它有点类似于上面提到的 Buddy 共享自动化网格,只是人为干预较少。

这项技术还可以怎么用?简而言之,就是可以在 Fetch 数字世界中出售数据。物联网设备可以出售对于其他代理来说有用的信息:例如,软件代理可以将车辆挡风玻璃刮水器的使用信息作为气候信息的来源。空闲计算机可以为远程客户执行测试任务或执行其他计算。除此之外,还可以将旧数据接入 Fetch 并使其成为可销售的资产。

随着时间的推移,Fetch 网络可能会扩展并获得巨大的计算能力,因此代理将获得新的数据洞察力。得益于集成到 Fetch 系统中的机器学习技术,网络能够自己创建宝贵的知识。最终,受信任的数字代理将能够取代人类中间人,并建立全新的行业。数据和基础设施不会像现在这样依赖人类——它们将创造新市场并进行自主销售。

Fetch 代币将用作网络中所有交易和操作的内部货币,它们还将作为某些行为的可退还押金,以确保安全以及防止不良行为。

Golem

Golem 项目释放了闲置计算机资源的潜力,创建了另一个带有基于以太坊的代币的去中心化市场。Golem 网络是一个结合了用户可用资源的全局超级计算机,DevOps 团队显然可以有效地使用它来运行密集的自动化任务。然而,这些资源的可靠性和可用性存在疑点:家用计算机(即使放在一起数量很大)是否与 Buddy 的受信任云基础设施一样可靠?

Golem 网络的参与者——包括人类和应用程序——可以请求或销售机器周期。那些共享资源个人电脑或大型数据中心,都可以从 Golem 网络代币(缩写为 GNT)的请求者那里立即获得报酬。沙箱环境提供了必要的安全级别,其中计算与主机系统是完全隔离的。

除此之外,软件开发人员还可以使用 Golem 生态系统来创建、部署、发行和货币化应用程序。Golem 为这些活动提供了应用程序注册表和事务框架。

目前,Golem 仍然处于测试阶段,因为它的创建者专注于让它变得更加强大和灵活。他们还计划为开发人员和软件公司添加各种工具,让 Golem 成为云提供商的可行替代方案。

结论

本文中提到的基于区块链的平台解决了对计算资源的迫切需求,计算资源在未来几年必然会变得更加严峻。虽然传统云提供商在提供基础设施和计算能力方面似乎非常有效,但在社区参与和独立性方面,去中心化解决方案更具前景。一旦它们获得足够的动力,就会开始以自己的方式发展和成长,吸引有才华的开发者,这些开发者将带来新的功能和可能性。人工智能、机器学习和其他尖端技术将推动它们进一步发展——有一天,我们会惊讶地发现,未来已经到来。

基于区块链的平台几乎允许所有人都来参与这个市场,并通过销售闲置资源来赚取代币。这意味着,如果有必要,去中心化平台有可能可以利用全世界所有的计算能力。

2018 年 7 月 29 日 08:439287
用户头像

发布了 731 篇内容, 共 375.2 次阅读, 收获喜欢 1878 次。

关注

评论

发布
暂无评论
发现更多内容

肝了一个月,终于完成了24万字的Java面试手册!

码农之家

Java 编程 程序员 互联网 面试

Java多线程与并发系列从0到1全部合集!拿走不送~

钟奕礼

Java 编程 程序员 架构 面试

4月17日,HarmonyOS开发者日将于上海启幕

Geek_283163

华为

IPFS手机挖矿靠谱吗?IPFS挖矿怎么辨别真假?

投资矿机v:IPFS1234

IPFS手机挖矿靠谱吗 IPFS挖矿怎么辨别真假

架构实战营 模块一:课后作业

Ahu

架构实战营

Java-GC概述

GC GC算法

架构实战营模块1学习总结

林子钧

学习总结 架构实战营 模块一

ElasticSearch架构及核心概念

五分钟学大数据

ES 4月日更

不是吧?不会多态,你还说自己会Java

学Java关注我

Java 编程 架构 程序人生 技术宅

阿里疯传“SpringCloud Alibaba”学习笔记

程序员改bug

Java spring 编程 程序员 SpringCloud

波卡的Wasm和以太坊2.0的eWasm相对于EVM虚拟机的绝对优势

Patract

智能合约

IPFS挖矿排行榜在哪查询?IPFS挖矿实时成本怎么查询?

投资矿机v:IPFS1234

IPFS挖矿排行榜在哪查询 IPFS挖矿实时成本怎么查询

这份阿里21年最新版Java面试手册简直无敌了,已经助我拿下五个大厂offer!

Java架构之路

Java 程序员 架构 面试 编程语言

华为大佬的“百万级”MySQL笔记,基础+优化+架构一键搞定

周老师

Java 编程 程序员 架构 面试

YouTube视频转MP3音频 (批量、高效、快捷)

科技猫

分享 教程 视频处理 youtube youtube转mp3

架构实战营-模块1-微信业务架构&学生管理系统方案

Lane

2021互联网大厂面经最新分享:百度/阿里/蚂蚁(附答案解析)

比伯

Java 架构 面试 程序人生 技术宅

架构实战营模块一总结

竹林七贤

程序员从月薪6k到15k,你知道这3个月我是怎么过来的吗?

Crud的程序员

Java 编程 架构 面试 Java工程师

Java面试题全部196题合集:涵盖大厂必考的9大技术点

钟奕礼

Java 编程 程序员 架构 面试

架构实战

颜培攀

架构实战营

Android高级工程师进阶学习,架构师必备技能

欢喜学安卓

android 程序员 面试 移动开发

28次面试从未被拒,只因学了阿里P8大牛写的这份《Java技术成长笔记》

Java架构之路

Java 程序员 架构 面试 编程语言

全网疯传!对标阿里P5-P9的知识体系学习路线及阿里内部Java核心知识手册。

Java架构之路

Java 程序员 架构 面试 编程语言

第一次凡尔赛,字节跳动3面+腾讯6面一次过,谈谈我的大厂面经

周老师

Java 编程 程序员 架构 面试

2021最新拼多多Java面试题(现场五面),全面涵盖Java高级到高并发

钟奕礼

Java 编程 程序员 架构 面试

什么是 NIO ?6000 字详解 NIO

hepingfly

Java nio IO流

Substrate 合约书之合约综述

Patract

智能合约

架构实战营模块1作业

阿体

2021最新中高阶Android面试题总结,成功入职阿里

欢喜学安卓

android 程序员 面试 移动开发

架构实战营模块1作业

林子钧

作业 架构实战营 模块一

通过区块链技术来简化DevOps流程-InfoQ