ThoughtWorks每年制作两部技术雷达,是一部关于科技行业技术趋势的报告。它是ThoughtWorks对工具、技术、编程语言和平台的详细解释。我们通常会介绍一百多个技术项目。编写技术雷达需要与来自世界各地ThoughtWorks办公室的高级技术专家进行深入交流。在讨论个别现象的过程中,也谈到宏观趋势。本文汇集了我们眼中当前科技产业的发展趋势,为读者奉上晚餐。
区块链不仅仅是炒作在我写这篇文章的时候,一个比特币的市值已经超过了10000美元大关,自今年年初以来已经增长了10倍。埃隆·马斯克明确否认自己是中本聪,中本聪是比特币的神秘发行人。比特币炒作点燃了加密货币混乱的市场,名人效应带来的ICO炒作也风生水起,引发了加密货币存在“巨大泡沫”的担忧。但是在这种过山车的疯狂炒作下,也孕育了一些有价值的技术。
我们的许多客户都在尝试使用区块链构建分布式账本和智能合约。一些雷达条目显示,与区块链相关的技术已经变得成熟,并且有越来越多的有效方法来使用多种技术和编程语言实现智能合约。区块链将解决两大问题。首先,这项技术可以让我们摆脱对“人人信任”中间商(如银行或证券交易所)的依赖,建立分布式信任机制;第二,区块链允许我们创建一个共享的、不变的和可信的账本——事实的记录。今天,我们见证了基于这两个核心理念的组织的诞生。其中我们认为以太坊智能合约和Corda分布式账本技术值得持续关注。
企业内部署(on-premise)软件风光不再?说到基础设施和部署,暂时把我们的沟通对象变成我们的每一个客户。当组织开始考虑配置服务器、安装软件,然后修补和维护软件时,第一个问题是“我可以购买任何定制的服务吗?”,然后“我可以从云服务提供商那里购买什么来构建我的云服务?”这个决策过程可以总结为“最后考虑的是内部软件”。曾几何时,人们会长期研究云服务;现在人们在使用现场服务时会非常谨慎。在过去的一年里,云托管已经成为每个人都非常感兴趣的话题。
报告再次印证了这一趋势——文中提到的许多工具、技术和平台,要么是云服务辅助的,要么是支持云服务的。我们见证了很多组织“默认上云”的趋势。我们这里指的是“企业内部署”,但重点不在于服务器在哪里,而在于如何高效地获取一项服务或功能,并长期保证其运维所需的工作量。
虚拟化的“长尾效应”早在1999年,当我们开始使用Vmware虚拟机时,我们并没有想到虚拟化会给软件带来全方位的改变。如今,虚拟机已经成为软件行业各个方面的必备品,无论是开发者工作站还是Google这样的海量数据中心,虚拟机也是很多系统的“扩展单元”(除非你是Google,Google数据中心本身就是一个扩展单元!)。Docker、Kubernetes以及目前所有重量级的云技术都是基于虚拟化实现的。
虚拟化促进了云服务的繁荣,我们相信NIST定义的云是非常有价值的。在NIST的五个“基本特征”中,我们认为按需自助服务和灵活性这两个特征是云服务受到青睐的绝对关键因素。在选择云服务时,还有另外三个特点,这些优势是很多“私有云”产品无法比拟的。
同等特性(feature party)的误导我们发现当前科技行业有一种不良趋势,即在实施云迁移、遗留系统升级或产品二次开发时,以“功能党”为目标。不考虑程序缺陷等,仅仅用新技术重新部署已经运行了10或15年的旧系统并不是一个好主意。常见的借口是“不想给企业带来麻烦”,或者担心改变流程或计算,但结果往往是交付遥遥无期,进度缓慢,交付一次性,隐藏各种风险。当利益相关者发现项目被延迟,预算大大超支并且不能给企业带来任何新的利益时,他们往往会感到失望。
这些教训值得我们反思。我们认为IT领导者(和企业)应该大胆质疑十年前写的逻辑是否能代表今天企业的运营模式,相信用户有能力采用(整体更强的)新系统。企业应该深入研究自己真正需要的功能,而不是在一个新的平台上重建一套完整的功能。关于如何为云服务重写敏捷项目管理工具Mingle,本期技术雷达做了更深入的探讨。
中国正在开源世界中崛起我们发现中国开源项目的数量和质量都在突飞猛进。百度、阿里巴巴等大公司都发布了自己的开源代码,举世瞩目。在过去的几年里,中国公司对开源代码的认知已经悄然改变。以前因为保护知识产权的顾虑,不愿意开源。现在他们看到了Docker、Kubernetes、OpenStack等大项目的影响力,意识到建立一个生态系统是比关门更好的选择。只要他们保持对开源社区的影响力,就可以控制自己的IP,享受开源的好处。
另一个因素是,中国和发达国家的市场差异很大,有独特的文化和视角,由此产生的期望和要求也不同。所以中国企业不一定需要步西方企业的后尘。中国的市场是巨大的,中国企业正在创造和共享开源代码,开发自己独特的软件和生态系统,以解决中国特有的问题。
本期科技雷达重点介绍阿里巴巴的两大项目,Atlas和Beehive,可以更好的实现应用模块化,帮助分布式或远程团队协作。有了这个,你就可以将物理隔离模块动态组装成一个单独的应用,其具体设计显然考虑到了中国软件市场的情况。
值得注意的是,中国的开源代码最早是为中国写的,所以不出国门也能取得巨大成功。这份文件将用中文书写。如果项目进行得足够顺利,以后可能会创建一个翻译版本。国内出现了一些高质量的软件,实用性很强,但是需要注意的是,它的主要受众是中国市场。
Kubernetes统领容器管理生态一年前,我们在ThoughtWorks被问到,“你更喜欢哪个容器管理平台,Kubernetes还是Mesos?”现在,这个问题的答案不言而喻。Kubernetes已经成为事实上的默认标准。这是为什么呢?我们认为是多种因素综合的结果。
容器化的趋势建立了一个生态系统,在这个生态系统中,我们所有的工具都可以与容器协作(并且经常需要容器),Docker在这方面尤为突出。在某种程度上,容器是新的POSIX和新的通用接口。IT行业在创建软件组件方面做了多年的努力,目前看来容器可能是标准化的最佳方式。然而,因为任何东西都可以插入到容器中,所以不能保证组件能够很好地一起工作。)其他重要的技术趋势如微服务、进化架构、默认云等都与容器有着极好的配合,因此也有着天然的共生关系。
几年前,技术行业的主要参与者还在讨论Giffee,即谷歌为其他所有人提供的基础设施。“GIFEE”的话题才刚刚开始,Kubernetes基本上已经成为了一个大家都可以使用的Google式的基础设施。谷歌努力推动该项目,并投入大量资源,希望吸引人们使用谷歌云产品。随着时间的推移,Kubernetes已经成为我们与供应商和云提供商打交道的默认容器平台。
此外,Kubernetes已经发展到更容易大规模运行。通过Kubernetes核心软件的改进,借助更好的工具和高度活跃的生态系统,运行柔性生产集群的学习曲线不再那么陡峭。现在所有主要的云提供商都提供基于Kubernetes的托管,所以准入门槛非常低。
数据流即是标准本期技术雷达,我们讨论与卡夫卡相关的一系列问题:卡夫卡、卡夫卡流、作为正确数据来源的卡夫卡、作为轻量级ESB的卡夫卡。但是,为什么要强调数据流呢?
全世界都渴望实时分析。事实上,在设计系统时,我们必须进行调整和适应。我们喜欢基于事件的流架构的好处——松耦合、自治组件、高性能和高可伸缩性——但是分析的需求推动了数据流的需求。没有数据流就无法实现实时分析。
与数据流的兴起相关的是事件驱动架构的成熟。人们习惯了这些系统空,也很了解它们。一些新技术仍在不断涌现,比如使用数据流作为企业事实/状态的持久存储。我们不能100%确定所有这些技术都是好点子(CQRS已经坑了很多不知情的人),但毫无疑问,数据流已经深入人心。
Text//ThoughtWorks迈克·梅森
注:在参考文献部分,可以查阅http://t.cn/RYr9pPQ的原文。