译见|极客接管世界:开发者定义基础设施
译见系列|DaoCloud 现推出「译见」系列,每周为开发者提供国外精品译文,主要关注云计算领域的技术和前沿趋势。本系列由 Fiona 翻译。
译者注
DaoCloud 曾在今年 6 月末举办的企业级容器技术研讨会上,与来宾分享讨论「开发者定义基础设施」这一前沿话题,现在我们把 Jerry 的文章翻译成中文,与更广泛的读者分享。
作者介绍
Jerry Chen 是硅谷著名风险投资机构 Greylock Partners 的合伙人,Docker 董事会成员。他曾在 VMware 担任副总裁,负责云和应用服务。
Jerry 在文章中提出了「Developer Defined Infrastructure, DDI」这一崭新概念,并结合 Docker 的特性,大胆预测了未来 15 年的 IT 基础架构发展趋势。
如果说「软件正在吞食世界」,那奉上这场盛宴的,必然是开发者无疑。
在过去数年中,关于软件工程师地位的文章层出不穷。这些文章列举了以下事实:技术专业的毕业生比他们的同学赚得更多,开发者的平均薪水大幅增长。在我看来,开发者将成为各种公司薪酬最高的人,而不仅仅局限在硅谷的公司。
我们正在进入开发者定义基础设施 (Developer-Defined-Infrastructure, DDI) 的时代。历史上,开发者在许多应用技术的选择中鲜有发声。在 20 世纪 90 年代,我们经历 Microsoft.NET vs Java 的战争,不情愿地使用 Oracle 作为数据库。
在过去几年间,我们看到了开发技术和应用基础设施的复兴和繁荣,语言和框架(如 Go、Scala、Python、Swift)和数据技术设施(如 Hadoop、Mongo、Kafka 等)层出不限。感谢开源的力量,开发者们现在可以选择语言、运行时和数据库。然而,开发者们不仅仅决定软件的基础设施,他们还需要决定更底层的云端基础设施。他们不仅决定自己的应用跑在哪里(私有云还是公有云),还要决定如何管理存储、网络、计算和安全。这将是 DDI 的时代的开端,IT 架构的图景将彻底改变。
过去,开发者和系统管理员的角色被分别定义:开发者对于开发工具做决定,而系统管理员则管理生产和基础设施标准。开发工具包括源码管理和问题追踪,如 Git 和 Jira;系统管理包括服务器管理、存储管理、网络管理等。然而,随着 AWS 等云服务的兴起,开发者们开始有权选择使用何种基础设施。
这一切又是从何而来?让我们简要回顾一下数据中心的进化。
物理设备定义基础设施 (1985 to 1999)
在客户端/服务器兴起的年代,公司将他们的大型机转移到小型机,继而转变为一台服务器搭配数台个人电脑。在那个时代,硬件为王,硬件厂商驱动 IT战略。工程师们为 CPU 架构(RISC vs CISC)、Power vs X86vs SPARC 争论不休,而SunMicrosystems、IBM 和 HP 则成为那个年代的战略厂商。
软件定义基础设施 (2000 to 2014)
在物理设备定义基础设施的时代,软件需要迎合硬件。在 21 世纪初,我们看到英特尔 X86 在 CPU 层面的全面胜利,带来了服务器和系统的标准化。一旦硬件标准化,软件生态系统就围绕着这些服务器发展,断开了与物理机的逻辑耦合。操作系统(Windows 和 Linux)成为软件与硬件的交互层。
最终,VMware 提出了软件虚拟化的概念,使得 IT 管理员能够以软件的方式来管理虚拟机、磁盘和网络。基于摩尔定律,VMware 将物理设备定义基础设施推进到软件定义基础设施。通过一窥利润如何从系统厂商(譬如 Sun)流向到软件定义基础设施年代的霸主们(譬如 VMware、微软、红帽和 CPU 的标准制订者英特尔),我们也可以回溯从物理机到虚拟化的进化。
如果说 VMware 只是软件定义基础设施概念的先行者,那网络巨头 Google 和 Facebook 则将其完善。他们看到了使用商业服务器(Commodity Server)和软件的价值,将不稳定的硬件变得可靠稳定,鲜活地证明了「软件终将胜利,硬件必然失败」的格言。
从物理设备定义基础设施年代的霸主们的命运中,我们可以看到软件定义基础设施概念的影响:戴尔私有化、IBM 将其 X86 服务器线出售给了联想,HP 正经历着痛苦的身份危机。
开发者定义基础设施 (2015 to ????)
欢迎来到开发者定义基础设施的时代!
开发者们正在决定他们的应用将如何运行,以及在哪里运行。开发者定义基础设施是软件定义基础设施的自然进化结果。从硬件向软件转变,部分是由于从物理机到软件的逻辑分离,更主要的原因在于,一旦硬件可以通过软件展示,那么你就可以将硬件与其它代码一视同仁。你可以移动或者编码,也可以为它编写程序。例如在 AWS 上,存储、计算、网络和安全都有 API 且可被编程。
如今,开发者需要像 IT 和运营人员那样思考,而 IT 管理员则必须不加限制地给开发者选择基础设施的权利。随着开发运维一体化和云的兴起,人们开始寻求能够支撑开发者定义基础设施的技术,去建构、运行和管理他们的应用。如果 VMware 是过去 15 年的平台,那 Docker 这样的公司则是未来 15 年的平台。具体而言,Docker 将支持:
可编程与可移植性:基础设施应当与软件的其它部分一视同仁。Docker 容器能够轻松迁移,无论是咖啡馆里的笔记本电脑还是云,不受物理位置束缚。更重要的是像 Docker 这样的开发者定义基础设施,能够通过自带 API 编程。
集中化:这是 Docker 的贡献,也因此赢得了 IT 和系统管理员的青睐。通过把 10 台物理服务器转变为一台机器上的 10 台虚拟服务器,虚拟化取代了物理基础设施。Docker 能够进一步提升服务器工作负载的集中化,同时提高速度和性能。
- 迈向微服务:Twitter、Google、Facebook 这样但公司已经使用微服务来构建他们的下一代应用。工程师团队通过使用微服务,即使在大规模研发团队协作的情况下,也能够轻松实现扩展、更新和开发。
极客接管世界
开发者定义基础设施时代对于厂商、开发者和 IT 专家意味着什么?不能理解和拥抱开发者的软件厂商将会失败。原本面对 IT 系统管理(如虚拟化、存储、网络、安全管理)的销售代表需要学习如何与开发者打交道。
IT 专家们需要思考如何给开发者授权而不是约束。最后,开发者需要扩展应用这一概念的定义。代码不仅仅只是一段程序、或者智能手机上的一个应用,代码无处不在,从物理机到管理,到成品的每一像素。