译见|极客接管世界:开发者定义基础设施

翻译: Fiona

jerry-chen-header

本文英文标题为「The geek shall inherit the earth, the age of developer defined infrastructure」。

作者 Jerry Chen 是硅谷著名风险投资机构 Greylock Partners 的合伙人,Docker 董事会成员。他曾在 VMware 担任副总裁,负责云和应用服务。

Jerry 在文章中提出了「Developer Defined Infrastructure,DDI」这一崭新概念,并结合 Docker 的特性,大胆预言了未来 15 年的 IT 基础架构发展趋势。

DaoCloud 曾在6月末举办的企业级容器技术研讨会上,与来宾分享讨论开发者定义基础设施这一前沿话题,现在我们把 Jerry 的文章翻译成中文,与更广泛的读者分享。

以下为译文:

如果说「软件正在吞食世界」,那奉上这场盛宴的,必然是开发者无疑。

在过去数年中,关于软件工程师地位的文章层出不穷。这些文章列举了以下事实:技术专业的毕业生比他们的同学赚得更多,开发者的平均薪水大幅增长。在我看来,开发者将成为各种公司薪酬最高的人,而不仅仅局限在硅谷的公司。

我们正在进入开发者定义基础设施 (developer-definedinfrastructure , DDI) 的时代。历史上,开发者在许多应用技术的选择中鲜有发声。在 20 世纪 90 年代,我们经历 Microsoft.NET vs Java 的战争,不情愿地使用 Oracle 作为数据库。

在过去几年间,我们看到了开发技术和应用基础设施的复兴和繁荣,语言和框架(如 Go 、 Scala 、Python 、 Swift )和数据技术设施(如 Hadoop 、 Mongo 、 Kafka 等)层出不限。感谢开源的力量,开发者们现在可以选择语言、运行时和数据库。然而,开发者们不仅仅决定软件的基础设施,他们还需要决定更底层的云端基础设施。他们不仅决定自己的应用跑在哪里(私有云还是公有云),还要决定如何管理存储、网络、计算和安全。这将是 DDI 的时代的开端,IT 架构的图景将彻底改变。

过去,开发者和系统管理员的角色被分别定义:开发者对于开发工具做决定,而系统管理员则管理生产和基础设施标准。开发工具包括源码管理和问题追踪,如 Git 和 Jira ;系统管理包括服务器管理、存储管理、网络管理等。然而,随着 AWS 等云服务的兴起,开发者们开始有权选择使用何种基础设施。

这一切又是从何而来?让我们简要回顾一下数据中心的进化。

物理设备定义基础设施 (1985  to 1999)


图 1:物理设备定义基础设施

在客户端/服务器兴起的年代,公司将他们的大型机转移到小型机,继而转变为一台服务器搭配数台个人电脑。在那个时代,硬件为王,硬件厂商驱动 IT战略。工程师们为CPU 架构( RISC vs CISC )、Power vs X86vs SPARC 争论不休,而 SunMicrosystems 、 IBM 和 HP 则成为那个年代的战略厂商。

软件定义基础设施 (2000  to 2014)

图 2:软件定义基础设施

在物理设备定义基础设施的时代,软件需要迎合硬件。在21 世纪初,我们看到英特尔X86 在 CPU 层面的全面胜利,带来了er服务器和系统的标准化。一旦硬件标准化,软件生态系统就围绕着这些服务器发展,断开了与物理机的逻辑耦合。操作系统( Windows 和 Linux )成为软件与硬件的交互层。

最终, VMware 提出了软件虚拟化的概念,使得 IT 管理员能够以软件的方式来管理虚拟机、磁盘和网络。基于摩尔定律, VMware 将物理设备定义基础设施推进到软件定义基础设施。通过一窥利润从系统厂商(譬如 Sun )流向到软件定义基础设施年代的霸主们(譬如 VMware 、微软、红帽,和 CPU 的标准制订者英特尔),我们也可以回溯从物理机到虚拟化的进化。

如果说 VMware 只是软件定义基础设施概念的先行者,那网络巨头 Google 和 Facebook 则将其完善。他们看到了使用商业服务器(Commodity Server)和软件的价值,将不稳定的硬件变得可靠稳定,鲜活地证明了「软件终将胜利,硬件必然失败」的格言。

从物理设备定义基础设施年代的霸主们的命运中,我们可以看到软件定义基础设施概念的影响:戴尔私有化、 IBM 将其 X86 服务器线出售给了联想, HP 正经历着痛苦的身份危机。

开发者定义基础设施 (2015  to ????)


图 3:开发者定义基础设施

欢迎来到开发者定义基础设施的时代!

开发者们正在决定他们的应用将如何运行,以及在哪里运行。开发者定义基础设施是软件定义基础设施的自然进化结果。从硬件向软件转变,部分是由于从物理机到软件的逻辑分离,更主要的原因在于,一旦硬件可以通过软件展示,那么你就可以将硬件与其它代码一视同仁。你可以移动或者编码,也可以为它编写程序。例如,AWS 上,存储、计算、网络和安全都有 API 且可被编程。

如今,开发者需要像 IT 和运营人员那样思考,而 IT 管理员则必须不加限制地给开发者选择基础设施的权利。随着开发运维一体化和云的兴起,人们开始寻求能够支撑开发者定义基础设施的技术,去建构、运行和管理他们的应用。如果 VMware 是过去 15 年的平台,那 Docker 这样的公司则是未来 15 年的平台。具体而言,Docker 将支持:

– 可编程与可移植性:基础设施应当与软件的其它部分一视同仁。 Docker 容器能够轻松迁移,无论是咖啡馆里的笔记本电脑还是云,不受物理位置束缚。更重要的是像 Docker 这样的开发者定义基础设施,能够通过自带 API 编程。

– 集中化:这是 Docker 的贡献,也因此赢得了 IT 和系统管理员的青睐。通过把 10 台物理服务器转变为一台机器上的 10 台虚拟服务器,虚拟化取代了物理基础设施。Docker 能够进一步提升服务器工作负载的集中化,同时提高速度和性能。

– 迈向微服务:Twitter 、 Google 、 Facebook 这样但公司已经使用微服务来构建他们的下一代应用。工程师团队通过使用微服务,在即使大规模研发团队协作的情况下,也能够轻松实现扩展、更新和开发。

极客接管世界

开发者定义基础设施时代对于厂商、开发者和 IT 专家意味着什么?不能理解和拥抱开发者的软件厂商将会失败。原本面对 IT 系统管理(如虚拟化、存储、网络、安全管理)的销售代表需要学习如何与开发者打交道。

IT 专家们需要思考如何给开发者授权而不是约束。最后,开发者需要扩展应用这一概念的定义。代码不仅仅只是一段程序、或者智能手机上的一个应用,代码无处不在,从物理机到管理,到成品的每一像素。

Leave a Reply

Your email address will not be published. Required fields are marked *