云计算
云计算
农耕时代、工业时代与信息时代可谓三个明显的分水岭,每个时代都会出现很多新兴的领域,而在信息时代,软件在不断地改变着世界。随着开源文化越来越被认可,以及社区文化越来越成熟,使用优秀的开源产品作为基础构架来快速搭建系统以实现市场战略,成了当今最优的资源配比方案。
仅通过开源产品搭建并运维一个高可用、高度弹性化的平台,进而实现互联网近乎 100%的可用性,难度可想而知。因此,在提供技术思路的同时,进一步提供整套云解决方案以保障不断扩展的非功能需求,便成了当今新一代互联网平台的追求。在信息技术的大潮中,每一次通信模式的升级都会给这个世界的合作模式带来变革。
随着互联网在 21 世纪初被大规模接入,互联网由基于流量点击赢利的单方面信息发布的 Web 1.0 业务模式,转变为由用户主导而生成内容的 Web2.0 业务模式。因此,互联网应用系统所需处理的访问量和数据量均疾速增长,后端技术架构也因此面临着巨大的挑战。Web 2.0 阶段的互联网后端架构大多经历了由 All inOne 的单体式应用架构渐渐转为更加灵活的分布式应用架构的过程,而企业级架构由于功能复杂且并未出现明显的系统瓶颈,因此并未跟进。后端开发不再局限于单一技术栈,而是越来越明显地被划分为企业级开发和互联网开发。企业级开发和互联网开发的差别不仅在于技术栈差异,也在于工作模式不同,对质量的追求和对效率的提升成了两个阵营的分水岭,互联网架构追求更高的质量和效率。
随着智能手机的出现以及 4G 标准的普及,互联网应用由 PC 端迅速转向更加自由的移动端。移动设备由于携带方便且便于定位,因此在出行、网络购物、支付等方面彻底改变了现代人的生活方式。在技术方面,为了应对更加庞大的集群规模,单纯的分布式系统已经难于驾驭,因此技术圈开启了一个概念爆发的时代——SOA、DevOps、容器、CI/CD、微服务、Service Mesh 等概念层出不穷,而 Docker、Kubernetes、Mesos、SpringCloud、gRPC、Istio 等一系列产品的出现,标志着云时代已真正到来。
2005 年亚马逊发布了 AWS,算是拉开了云计算的序幕。云计算最重要的技术是分布式计算和分布式存储,分布式计算方面,最开始的技术是虚拟化,也就是所谓的“Software defined xxx”,通过对计算 / 存储和网络资源的虚拟化,同时能够给用户任意分配资源。但这里面一开始做的最好的只有文件存储这一块,AWS S3 及类似的对象存储产品给人们带来了云时代的一些实际的体验,但云服务器则还是走回了卖服务器的老路。
在云计算的发展过程中,有一个分支是 PaaS,最早是 2007 年推出的 Heroku,从形态上来说,它是一个 App Engine,提供应用的运行环境。2014 年 AWS 推出 Lambda 服务,Serverless 开始成为热词,从理论上说,Serverless 可以做到 NoOps、自动扩容和按使用付费,也被视为云计算的未来。但是,Serverless 本身有一些问题,比如难以解决的冷启动性能问题。
- 虚拟化:将硬件资源虚拟为软件资源,然后进行统一调度和管理。
- 隔离:从虚拟机到容器,再到虚拟机与容器融合,隔离的技术定义了云的形态。
- 解耦:无论是后端的微服务、前端的前后端分离、组件化等等,都是将关注点分离,解耦合的过程。
- 编排:大量不同的服务、任务,让他们组成一个整体,相互间能良好的协作。
- 智能化:让服务个性化,或者让自动化替代以前需要人工完成的事情。
- 实时化:计算和处理在极短时间内完成,从而实时的给予反馈。
云计算
云计算作为一个虚拟化的计算机资源池,它可以托管多种不同的工作负载,包括成批的后端作业和面向用户的交互式应用程序;通过快速提供虚拟机器或物理机器,迅速部署和增加工作负载;支持冗余、自我恢复且具有高可扩展性的编程模型,以使工作负载能够从多种不可避免的硬件/软件故障中进行恢复;实时监控资源使用情况,在需要时重新平衡资源分配。
按照 NIST(National Institute of Standards and Technology,美国国家标准与技术研究院)的定义的云的标准,云计算并不是在讨论某种特定的云的技术,或者某个厂商提供的产品服务。云的定义更接近于把计算、服务等各种资源变成按需提供的服务,同时提供广泛的网络访问,以及可共享、可度量的后台资源。云更多的是一种服务,虚拟化和容器化只是云底层的技术设施,而本身并没有把它变成一种服务来提供。
- 硬件系统资源的自动化调度(CloudOS);
- 应用的并行化和分布化实现业务的自动扩展;
- 基于初始配置的自动化业务开通和业务部署;
- 基于前述能力,实现基于 SLA、QoS 等策略的自动化质量保障、故障隔离和故障自愈;
- 基于大数据智能驱动的系统自动化和自动调优。
云计算本身也在进化,第一代云计算是机房托管;第二代云计算是虚拟化;第三代云计算就是云原生。随着虚拟化技术的成熟和分布式架构的普及,用来部署、管理和运行应用的云平台被越来越多地提及。IaaS、PaaS 和 SaaS 是云计算的三种基本服务类型,分别表示关注硬件基础设施的基础设施即服务、关注软件和中间件平台的平台即服务,以及关注业务应用的软件即服务。
大数据与云计算是相辅相成的,大数据的本质不一定是数据量大,更多的优势在于其数据维度多,我们能够从不同的维度入手推断出不同的结果。