阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

云计算从服务到公共资源的演化之路

  • 2016-05-31
  • 本文字数:3726 字

    阅读完需:约 12 分钟

什么是云计算?云计算的角色是如何变迁的?云计算未来的形态是什么?本文试图从历史、技术演化、云端应用架构的发展等几个维度去揭示云计算未来的演化趋势。

不同的角色,对云的认知不同

不同的用户,对云计算的认知是不同的。对于一个计算机专业的硕士研究生来说,他会告诉你,云计算就是网格计算,并行计算。对于一个小白用户来说,他会告诉你,云计算是网盘。对于一个 IT 工程师来说,他会告诉你,云计算是服务器。对于一个科技爱好者来说,他眼中的云计算是类似于 AlphaGo 这样的高科技。云计算到底是什么呢?不同的人有不同的看法。但是作为云计算行业的从业者来说,我是这样定义云计算的:云计算是一种将 IT 基础设施转变为服务去售卖的新的商业模式。

从技术演化到服务,未来形态是什么?

在不同的历史时期,云计算所扮演的角色是不同的。在 2000 年之前,云计算更多的是以一种新技术形态出现的。那个时候可能还没有这个名词,但是学术界一直研究的网格计算、并行计算,就是云计算比较早期的雏形。在 21 世纪最初的几年,云计算开始在 Google 这样的公司广泛应用。这个时候,云计算更多的是代表一种能力 (Capacity),并且只有大公司才能拥有这种能力。到了 2006 年,有一个标志性的时间,就是 Amazon 第一次将对象存储作为一种服务,对外去售卖。云计算才由少数公司具有的能力,演变成人人都能购买的服务。

随着技术继续往前发展,未来,云计算是一种什么形态呢?

某些时候,我们面向着对未来的种种的预测和期望,其实很多答案已经存在在历史中了。

电力作为一种公共资源的演化过程

回到 19 世纪,我们先看一下,电力作为一种资源的演变过程。1831 年,法拉第发现电磁感应,电开始作为一种新的技术登上历史舞台。1879 年,爱迪生发明了电灯,第一次点亮的世界。此时,电只是作为摩根这样一类少数富人所拥有的能力。随着电力技术的发展,爱迪生不仅仅发明了电灯,还发明了一系列直流的发电,传输的系统。并通过爱迪生通用电气将其商业化,这个时候,电才开始成为人人都可以享受和购买的服务。历史的车轮继续往前。特斯拉发明了交流电机以及交流传输技术,电能能通过远距离输电的方式,输往千家万户。并且在工业生产,人的生活中被广泛采用。这个时候,电才成为了一种公共的资源。

电力革命,催生了电能成为一种公共资源

第二次工业革命,催生了电成为一种公共的资源。历史的车轮总会存在相同的印记,所以,云计算未来也会是一种公共的资源。

云计算技术的演化过程

一个东西,从一项技术发展成为公共的资源,其技术一定是逐步演化的,需要适应作为公共资源的特点。

  • 细粒度,可衡量。
  • 简单通用。
  • 有统一的方式去获取。

云计算技术的发展,其实就是隔离性越来越深,资源粒度越来越细,由专有到通用的过程。

物理机时代的隔离方式

我们先看一下物理机时代的隔离方式。当需要服务时,会购买一台物理的机器,当需要更多服务时,就需要一个机架,装入更多的物理机器。所以物理机时代的隔离,就是一种机器层面的隔离。这种情况下会导致两个问题。

  • 资源粒度过粗,利用率不高。

  • 无法方便的通过软件去控制。

    虚拟机时代的隔离方式

随着虚拟化技术的发展,出现了操作系统层面的隔离。也就是我们通常说的虚拟机(VM),在一个操作系统上划分出很多虚拟的操作系统。每个操作系统就是一台虚拟的服务器。他们共享硬件资源。由于一台物理的机器,能够创建很多个虚拟的机器,这个时候,资源粒度变细了,利用率提升了,同时还带来了一个非常便利的优势,也就是能够通过软件的方式,非常方便的创建、重启、销毁机器。当一个数据中心大量的虚拟机被生成出来,然后辅助特定的管理、监控、安全、网络的设施,就变成了云。也就是我们通说所说的 IaaS。

PaaS,一种应用层面的隔离

用惯了虚拟机的程序员,可能会思考一个问题。我有 10 个 Python 的应用,只是应用的代码不同,我难道需要 10 个独立的 OS 去运行吗?这些应用能否共用一个执行环境。这种情况下,PaaS 出现了。传统的 PaaS,是一种应用层面的隔离。应用和应用之前彼此独立,共享相同的执行环境 (Runtime), 这个时候,资源粒度更细了,同一个 PaaS 平台可以同时运行更多的应用。但是 PaaS 平台也存在一个问题,因为平台是运行环境相关的,所以必须为每个平台专门定制代码。通用性带来很大的问题。

容器,进程层面的隔离

技术总是往前发展,既然应用是和执行环境相关的,那为什么不把应用和执行环境打包在一起,这样,就解决了 PaaS 平台的应用必须依赖其执行环境的问题。因此容器(Container)技术应运而生。容器就是把一个应用以及所依赖的一系列的运行环境打包到一个“箱子”里面。箱子和箱子之间共享同一个 OS Kernel。利用操作系统内核本身的一些特性做资源隔离。所以容器技术是一种进程级别的隔离。它不仅解决了运行环境依赖的问题,还使得隔离粒度进一步变细。容器的生成,销毁更为迅速(秒级)。所以纵观整个的云计算技术的发展历程,有一个非常重要的主线就是隔离越来越深入,资源粒度越来越细,管理越来越方便。

三种层面的隔离的类比

刚才谈到了物理机、虚拟机和容器,那这三种到底有什么区别? 这里打一个形象的比喻,如果把虚拟机比作是一套三居室的公寓,容器就好比是合租,租用公寓里面的一个房间,他们共享客厅、厨房和卫生间。旁边房子里面大声放音乐,可能会吵到自己,相比于公寓的防盗门,也不是那么安全,但是它是一种轻量化的解决方案。旁边的独栋别墅,就好比是一个物理机,它所有的东西都是独享,但是利用率不会那么高。

API,云计算资获取的"插座“
一个东西,如果要变成一项公共的资源,还需要满足一个非常重要的特征,也就是需要一种相对简单,并且统一的途径的获取资源。譬如所有的电能,都是通过一个插座 (Socket) 去获取的。云计算也需要一个这样的插座。所以在云计算的世界里,API 扮演着一个非常重要的觉得。未来云的世界,就是由 API 构成的世界。

云计算的四个资源化特征

相比于电能,简单,便利,随时随地获取,不用关心是否够用。云计算要成为一个资源,也需要具备相应的特征。

  • 按需付费,用多少就算多少。
  • 即时获取,消除地域和时间的限制。
  • 规模经济,成本会越来越低。
  • 弹性伸缩,满足不同类别的业务需求。

Cloud Native,云计算未来的应用架构

电能的广泛传播和使用,与丰富家用电器的使用场景以及以电能为动力的广泛的工业化应用是分不开的。同样,云计算的发展和普及,依赖于真正符合云计算特点的应用系统和应用架构。到底什么样的一种应用架构是符合云的未来趋势的呢?最近,有一种应用架构开始流行:Cloud Native(云原生应用)。Cloud Native 不是一种新的技术,也不是一种新的架构。而是包含下面三个东西,可以说是一套云端业务构建和运营管理的最新的理念。

  • 一种架构思想(微服务)。

  • 一种业务运行环境(Docker + 容器)。

  • 一种团队组织方式(小团队,DevOps)。

    微服务架构

随着云计算技术的发展,云计算所表现出来的资源化特征已经完全不同于传统的 IT。传统的集中式架构、分布式架构显然已经无法适应一切以云端为基础构建的业务。“微服务”在这种情况下应运而生。和传统的 SOA 一样,微服务也是一种面向服务的架构,但是它的粒度更小,服务和服务之间更为松散耦合。一切以 API 进行通信。

Docker,改变世界的”箱子“

当然微服务的实现,也依赖于其具体的业务运行方式和管理模式。所以也离不开 Docker 这只改变世界的“箱子”。如果云计算的未来是一种公共的资源,那么由它所驱动的业务,一定会有一个通用化的执行环境。并且计算单元的粒度更细,也更具有可衡量的特征。以容器技术为核心的 Docker,将是当前最优化的一种方案。同时,服务以极细粒度去运行,配合标准化的分发、调度管理模式,才更能适合微服务这样的全新架构。

康威定律

20 世纪 60 年代,有一个程序员提出了著名的“康威定律”:有什么样的业务架构,必然会有什么样的团队组织形式。既然云端的业务是一种全新的业务架构去组织的,当然也会催生出新的团队组织和运行模式。“小团队作战,DevOps”,构建一种适合云端业务的、敏捷的业务开发、运行、运营管理模式。

总结

本文从云计算的未来的发展形态,谈到了云的技术演化,再谈到了云的资源化特征,最后谈到了云端的应用架构。从历史到技术演化,到业务特征,最后到应用形态,其实一直都是围绕着一条主线:云计算如何由服务向着公共资源去演变。总结起来,有下面 4 点结论。

  • 云计算的服务化特征会越来越明显。
  • 资源粒度会越来越细,越来越通用,越来越容易获取。
  • 业务的述求越来越向着即时获取、按需获取、弹性的方向发展。
  • 新的业务架构、业务运行环境、团队组织模式是其演进的催化剂。

作者简介

刘永峰 腾讯云高级产品经理,Docker 布道师,2011 年加入腾讯,近十年的研发以及产品经验。曾负责过流媒体服务器架构设计、操作系统性能优化、云监控系统架构设计等相关技术研发工作,以及基础云、云监控、游戏云相关的产品设计工作,在技术和产品领域具有丰富的行业经验。目前主要关注领域包括企业云化趋势、基于云端的系统架构实践、Docker 技术的发展以及在云计算领域的应用。


感谢陈兴璐对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-05-31 17:011690

评论

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

Mac电脑fcpx视频剪辑推荐Final Cut Pro 最新中文激活版

mac大玩家j

视频剪辑 Mac软件 视频编辑处理工具 视频处理软件

技术思维和产品思维

老张

产品思维 技术思维 解决问题

寻找注册配置中心最佳评测官,赢取丰厚奖品 | 测评开启,开发者请速速集结

阿里巴巴云原生

阿里云 微服务 云原生

【INFINI Workshop 深圳站】8 月 31 日一起动手实验玩转 Easysearch

极限实验室

深圳 INFINI Labs Workshop 极限科技

Zebec在Nautilus Chain 开启质押,ZBC 将极致通缩

西柚子

代码随想录Day61 - 完篇总结

jjn0703

Go 输出函数

小万哥

Go 编程 程序员 后端 开发

磁盘管理工具推荐DiskCatalogMaker 最新激活中文

胖墩儿不胖y

磁盘清理 磁盘管理 Mac软件 清理磁盘软件

蓝易云:什么是 sudo,为什么它如此重要?

百度搜索:蓝易云

云计算 Linux 运维 root sudo

代码随想录Day59 - 单调栈(二)

jjn0703

5分钟搞懂K8S Pod Terminating/Unknown故障排查

俞凡

Kubernetes 最佳实践 云原生

车载语音识别数据的应用与挑战

来自四九城儿

蓝易云:如何使用 Fail2ban 防止对 Linux 的暴力攻击?

百度搜索:蓝易云

云计算 Linux 运维 SSH Fail2ban

代码随想录Day60 - 单调栈(三)

jjn0703

Premiere Pro 2021功能 视频编辑软件pr2021中文版下载

mac

苹果mac Windows软件 视频编辑软件 Premiere Pro Premiere Pro 2021

微信多开 WechatTweak for Mac(微信多开、消息防撤回工具)v3.8.2中文版

mac

微信 苹果mac Windows软件 WeChatTweak 微信多开助手

ARTS 打卡 第二周

一期一会

pandas ARTS 打卡计划 职业发展 LLMs

3D渲染动画制作 KeyShot 2023.2 Pro 补丁安装教程

胖墩儿不胖y

3D渲染 动画制作 Mac软件 渲染工具

SketchUp Pro 2023中文 for Mac(草图大师) v23.0.418

mac大玩家j

建模软件 三维建模软件 Mac软件推荐

车载语音识别数据的技术进展与前景

来自四九城儿

车载语音识别数据的社会影响与未来展望

来自四九城儿

基于RUM高效治理网站用户体验入门-价值篇

Yestodorrow

可观测性

Lightroom Classic for mac(Lrc2021照片编辑软件) 10.3中文版

mac

照片编辑软件 苹果mac Windows软件 Lightroom Classic 2021 lrc2021

打字练习软件Master of Typing 3 mac激活版下载

mac

苹果mac Windows软件 ​Master of Typing 3 打字练习软件

Presto 设计与实现(九):SQL 词法分析

冰心的小屋

数据湖 词法分析器 presto 设计与实现

云计算从服务到公共资源的演化之路_服务革新_刘永峰_InfoQ精选文章