• 推荐
  • 评论
  • 收藏

云计算是什么?云计算基础架构详解

2020-09-07    1664次浏览

为什么需要云计算?云计算的由来    

一、互联网基础设施发展第一阶段:功能实现阶段,此阶段以实现简单数据联网处理为主,各种资源没有统一管理,没有标准化。
二、互联网基础设施发展第二个阶段:大整合、管理标准化。
这一过程将企业分散的数据资源、IT资源进行了物理整合集中,形成了规模化的数据中心基础设施。在数据集中过程中,不断实施数据和业务的整合,大多数企业的数据中心基本完成了自身的标准化,使得既有业务的扩展和新业务的部署能够规划、可控,并以企业标准进行IT业务的实施,解决了数据业务分散时期的混乱无序问题。在这一阶段中,很多企业在数据集中后期也开始了容灾建设,特别是在雪灾、大地震之后,企业的容灾中心建设普遍受到重视,以金融为热点行业几乎开展了全行业的容灾建设热潮,并且金融行业的大部分容灾建设的级别都非常高,面向应用级容灾(数据零丢失为目标)。总的来说,这个阶段解决了企业IT分散管理和容灾的问题。
三、互联网基础设施发展第三个阶段:资源虚拟化。
在数据集中与容灾实现之后,随着企业的快速发展,数据中心IT基础设施扩张很快,但是系统建设成本高、周期长,即使是标准化的业务模块建设(哪怕是系统的复制性建设),软硬件采购成本、调试运行成本与业务实现周期并没有显著下降。标准化并没有给系统带来灵活性,集中的大规模IT基础设施出现了大量系统利用率不足的问题,不同的系统运行在独占的硬件资源中,效率低下而数据中心的能耗、空间问题逐步突显出来。因此,以降低成本、提升IT运行灵活性、提升资源利用率为目的的虚拟化开始在数据中心进行部署。
虚拟化屏蔽了不同物理设备的异构性,将基于标准化接口的物理资源虚拟化成逻辑上也完全标准化和一致化的逻辑计算资源(虚拟机)和逻辑存储空间。虚拟化可以将多台物理服务器整合成单台,每台服务器上运行多种应用的虚拟机,实现物理服务器资源利用率的提升,由于虚拟化环境可以实现计算与存储资源的逻辑化变更,特别是虚拟机的克隆,使得数据中心IT实施的灵活性大幅提升,业务部署周期可用数月缩小到一天以内。虚拟化后,应用以VM为单元部署运行,数据中心服务器数量可大为减少且计算能效提升,使得数据中心的能耗与空间问题得到控制。总的来说,第二阶段过程提升了企业IT架构的灵活性,数据中心资源利用率有效提高,运行成本降低。
四、互联网基础设施发展第四个阶段:云计算。
对企业而言,数据中心的各种系统(包括软硬件与基础设施)是一大笔资源投入。新系统(特别是硬件)在建成后一般经历3-5年即面临逐步老化与更换,而软件技术则不断面临升级的压力。另一方面,IT的投入难以匹配业务的需求,即使虚拟化后,也难以解决不断增加的业务对资源的变化需求,在一定时期内扩展性总是有所限制。于是企业IT产生新的期望蓝图:IT资源能够弹性扩展、按需服务,将服务作为IT的核心,提升业务敏捷性,进一步大幅降低成本。因此,面向服务的IT需求开始演化到云计算架构上。云计算架构可以由企业自己构建,也可采用第三方云设施,但基本趋势是企业将逐步采取租用IT资源的方式来实现业务需要,如同水力、电力资源一样,计算、存储、网络将成为企业IT运行的一种被使用的资源,无需自己建设,可按需获得。
从企业角度,云计算解决了IT资源的动态需求和最终成本问题,使得IT部门可以专注于服务的提供和业务运营。

什么是云计算?

  • 一种资源整合模式:把IT资源、数据、应用作为服务通过网络提供给用户(IBM)
  • 一种基础架构管理方法论:把大量的高度虚拟化的资源管理起来,组成一个大的资源池,用来统一提供服务(IBM),以公开的标准和服务为基础,以互联网为中心,提供安全 、快速、便捷的数据存储和网络计算服务
维基百科云计算的定义:云计算是一种基于互联网的计算新方式,通过互联网上异构、自治的服务为个人和企业提供按需即取的计算。由于资源是在互联网上,而互联网通常以云状图案来表示,因此以云来类比这种计算服务,同时云也是对底层基础设施的一种抽象概念。云计算的资源是动态扩展且虚拟化的,通过互联网提供,终端用户不需要了解云中基础设施的细节,不必具有专业的云技术知识,也无需直接进行控制,只关注自身真正需要什么样的资源以及如何通过网络来获得相应的服务。
云计算的描述,在当前具有的共同特征是:云是一种服务,类似水电一样,按需使用、灵活付费,使用者只关注服务本身。H3C的云计算理念认为云计算是一种新的IT服务模式,支持大规模计算资源的虚拟化,提供按需计算、动态部署、灵活扩展能力。

云计算平台

云计算平台也称为云平台,是指基于硬件资源和软件资源的商业服务平台,提供了计算、网络和存储等服务能力,IaaS、PaaS 和 SaaS 是云计算的三种基本服务类型,分别表示关注硬件基础设施的基础设施即服务、关注软件和中间件平台的平台即服务,以及关注业务应用的软件即服务。
  • IaaS(基础硬件设施即服务):将硬件设备等基础资源封装成服务供用户使用。 在IaaS环境中,用户相当于在使用裸机和磁盘,既可以让它运行Windows,也可以让它运行Linux。 IaaS最大优势在于它允许用户动态申请或释放节点,按使用量计费。而IaaS是由公众共享的,因而具有更高的资源使用效率。
  • PaaS(平台即服务):把服务器平台或者开发环境作为服务进行提供,本质上是saas的一种,只是把软件变成服务器平台和开发环境;提供用户应用程序的运行环境,典型的如Google App Engine。PaaS自身负责资源的动态扩展和容错管理,用户应用程序不必过多考虑节点间的配合问题。但与此同时,用户的自主权降低,必须使用特定的编程环境并遵照特定的编程模型,只适用于解决某些特定的计算问题。
  • SaaS(软件即服务):软件厂商将应用软件统一Web应用部署,客户按需订购软件服务,用户无法购买而是租赁软件,软件厂商提供软件维护,针对性更强,它将某些特定应用软件功能封装成服务。SaaS既不像PaaS一样提供计算或存储资源类型的服务,也不像IaaS一样提供运行用户自定义应用程序的环境,它只提供某些专门用途的服务供应用调用。
随着云计算的深化发展,不同云计算解决方案之间相互渗透融合,同一种产品往往横跨两种以上类型。

云计算基础架构组成

  • 云层(计算资源池,存储资源池,网络资源池) :对资源进行调配,组合,将更多的应用系统通过流程化、自动化部署和管理,提升IT效率
  • 虚拟化层(计算虚拟化,存储虚拟化,网络虚拟化) :屏蔽硬件层自身的复杂度和差异,向上呈现为标准化,可灵活拓展和收缩的弹性的虚拟化资源池;大多数云基础架构都广泛采用虚拟化技术,包括计算虚拟化、存储虚拟化、网络虚拟化等。通过虚拟化层,屏蔽了硬件层自身的差异和复杂度,向上呈现为标准化、可灵活扩展和收缩、弹性的虚拟化资源池
  • 硬件层(计算、存储、网络)
相对于传统基础架构,云基础架构通过虚拟化整合与自动化,应用系统共享基础架构资源池,实现高利用率、高可用性、低成本、低能耗,并且通过云平台层的自动化管理,实现快速部署、易于扩展、智能管理,帮助用户构建IaaS(基础架构即服务)云业务模式

云基础架构的部署

云基础架构资源池使得计算、存储、网络以及对应虚拟化单个产品和技术本身不再是核心,重要的是这些资源的整合,形成一个有机的、可灵活调度和扩展的资源池,面向云应用实现自动化的部署、监控、管理和运维。
云基础架构资源的整合,对计算、存储、网络虚拟化提出了新的挑战,并带动了一系列网络、虚拟化技术的变革。传统模式下,服务器、网络和存储是基于物理设备连接的,因此,针对服务器、存储的访问控制、带宽、流量监控等策略基于物理端口进行部署,管理界面清晰,并且设备及对应的策略是静态、固定的。云基础架构模式下,服务器、网络、存储、安全采用了虚拟化技术,资源池使得设备及对应的策略是动态变化的。
由于部署了虚拟化,一台独立的物理服务器变成了多个虚拟机,并且这些虚拟机是动态的,随着应用系统、数据中心环境的变化而迁移、增加、减少。如上图中的:Server1,由于某种原因(例如Server1负载过高),其中包含的某个客户虚拟主机:VM1 迁移到同一集群中的Server2。此时如果要保持 VM1 的业务访问不会中断,需要实现 VM1 的访问策略能够从 Port1 迁移到 Port2 上,这就需要交换机能够感知到虚拟机的状态变化,并自动更新迁移前后端口上的策略。
这是一种简单的计算虚拟化与网络融合联动的例子。最新的 EVB(以太网虚拟桥接)标准 VEPA(虚拟以太网端口聚合,802.1Qbg)即是实现这种融合联动方案的技术标准,其包括了 VDP 虚拟机发现和关联、CDCP虚拟机多通道转发等协议,通过标准化的主机与网络之间虚拟化信息的关联控制,实现虚拟化环境向物理环境的映射,使得虚拟机的服务变更可以通过网络的感知来自动化响应。
事实上,云基础架构融合的关键在于网络。目前计算虚拟化、存储虚拟化的技术已经相对成熟并自成体系,但就整个基础架构来说,网络是将计算资源池、存储资源池、用户连接组一起的纽带,只有网络能够充分感知到计算资源池、存储资源池和用户访问的动态变化,才能进行动态响应,维护网络连通性的同时,保障网络策略的一致性。否则,通过人工干预和手工配置,会大大降低云基础架构的灵活性、可扩展性和可管理性。

云基础架构的部署方案

硬件层的融合部署

如上文提到的 VEPA技术和方案,则是将计算虚拟化与网络设备和网络虚拟化进行融合,实现虚拟机与虚拟网络之间的关联。此外,还有FCoE技术和方案,将存储与网络进行融合,以及横向虚拟化、纵向虚拟化实现网络设备自身的融合。

业务层的融合部署

典型的方案是云安全解决方案。通过虚拟防火墙与虚拟机之间的融合,可以实现虚拟防火墙对虚拟机的感知、关联,确保虚拟机迁移、新增或减少时,防火墙策略也能够自动关联。此外,还有虚拟机与 LB负载均衡之间的联动。当业务突发资源不足时,传统方案需要人工发现虚拟机资源不足,再手工创建虚拟机,并配置访问策略,响应速度很慢,而且非常的费时费力。通过自动探测某个业务虚拟机的用户访问和资源利用率情况,在业务突发时,自动按需增加相应数量的虚拟机,与 LB联动进行业务负载分担,同时,当业务突发减小时,可以自动减少相应数量的虚拟机,节省资源。不仅有效解决虚拟化环境中面临的业务突发问题,而且大大提升了业务响应的效率和智能化。

管理层的融合部署

云基础架构通过虚拟化技术与管理层的融合,提升了IT系统的可靠性。例如,虚拟化平台可与网络管理、计算管理、存储管理联动,当设备出现故障影响虚拟机业务时,可自动迁移虚拟机,保障业务正常访问,此外,对于设备正常、操作系统正常、但某个业务系统无法访问的情况,虚拟化平台还可以与应用管理联动,探测应用系统的状态,例如Web、APP、DB等响应速度,当某个应用无法正常提供访问时,自动重启虚拟机,恢复业务正常访问。

云计算优点

  • 扩展快速方便(云计算数据中心加服务器等资源不能影响业务运营,实现方式:平台对外有API接口,支持横向拓展)
  • 资源(硬件、网络、存储等)扩充方便:硬件、软件资源按需服务(提高效率避免浪费,虚拟化软件调度中心实现),在云计算之前,所有用户都是通过自建机房或者租赁设备解决业务上的IT支撑,好处是信息安全,坏处是数据中心的升级速度可能追不上业务发展速度,特别是互联网行业,它们的业务是以指数增长进行的(比如:抖音、共享单车等),在业务初期不可能规划这么大的业务提前量,这么做风险太大,设备在机房里是有运营成本也会折旧的,等到看到业务量起来以后再采购设备做交付验收运营上线可能黄金时期就已经过去了,基于此,云计算作为一个资源池的作用出现,当你需要的时候随时可升级,申请一下可能就几分钟的时间IT硬件计算资源就翻了好几倍,所有硬件的运营维护都由云计算运营商负责,我们只需要采用其服务即可,简单好用、降低成本、按需使用、满足业务发展速度,好处还有很多,类似于当今流行的共享经济。
  • 可控的成本:云计算对于众多中小企业的确能降低成本,损失的是原先硬件设备提供商,因为目前云计算做的好的都是OTT厂商(亚马逊、谷歌)
  • 数据集中化:从长远来看,未来极有可能人类会被人工智能取代(人工智能相比人类不死并且拥有更好的物理特性),即使不被取代人工智能也会像电一样走进我们的方方面面,而人工智能的发展除了算法以外还需要大量的数据“喂养”,获取大量数据的关键是把现在三维空间中的实体信息翻译成电脑可以读懂的数据信息,这需要大量的传感器网络连接万物互联,但所有这一切的第一步是需要一个集中式的云计算数据中心将所有的数据收集储存到池子里,随着数据越来越多算法越来越“聪明”,人工智能也就会越来越智能。
  • 超大规模:大多数云计算中心都具有相当的规模,比如, Google云计算中心已经拥有几百万台服务器, 而Amazon 、IBM 、微软、Yahoo等企业所掌控的云计算规模也毫不逊色,并且云计算中心能通过整合和管理这些数目庞大的计算机集群来赋予用户前所未有的计算和存储能力。
  • 自动化:云中不论是应用、服务和资源的部署,还是软硬件的管理,都主要通过自动化的方式来执行和管理,从而极大地降低整个云计算中心庞大的人力成本。

云计算缺点

安全性偏低,为了方便计算提升效率所有数据一般都存储在云计算池里,一旦云计算运营商被黑客入侵或发生物理灾难(火灾等),对于采用云计算的客户可能造成巨大损失,基于此,公有云、私有云、混合云孕育而生;公有云是最初的云计算,私有云是为了安全单独为一位客户搭建的云平台,仅供其单独使用,安全性较高但成本高,混合云是结合公有云和私有云技术产生的,企业客户将重要数据储存在本地私有云,将非核心业务放在公有云上,在成本效率和安全可靠中取得平衡。

云计算中的专业术语

虚拟机

虚拟机由某些特定的硬件和内核虚拟化组成,运行客户操作系统。称为管理程序的软件创建虚拟化硬件,其可以包括虚拟磁盘,虚拟网络接口,虚拟 CPU 等。虚拟机还包括可以与此虚拟硬件通信的内核。管理程序可以托管,这意味着它是一些在主机操作系统(MacOS)上运行的软件,如示例中所示。它也可以是裸机,直接在机器硬件上运行(替换你的操作系统)。无论哪种方式,管理程序方法都被认为是重量级的,因为它需要虚拟化多个部分(如果不是全部硬件和内核)。
VM 需要硬件虚拟化才能实现机器级隔离,而容器则只需要在同一操作系统内进行隔离操作。 随着隔离空间数量的增加,开销差异变得非常明显。

容器

在过去几年里,云平台发展迅速,但其中困扰运维工程师最多的,是需要为各种迥异的开发语言安装相应的运行时环境。虽然自动化运维工具可以降低环境搭建的复杂度,但仍然不能从根本上解决环境的问题。
Docker 的出现成为了软件开发行业新的分水岭,容器技术的成熟也标志着技术新纪元的开启。Docker 提供了让开发工程师可以将应用和依赖封装到一个可移植的容器中的能力,这项举措使得 Docker 大有席卷整个软件行业并且进而改变行业游戏规则的趋势,这像极了当年智能手机刚出现时的场景——改变了整个手机行业的游戏规则。Docker 通过集装箱式的封装方式,让开发工程师和运维工程师都能够以 Docker 所提供的镜像分发的标准化方式发布应用,使得异构语言不再是捆绑团队的枷锁。
容器是包含应用程序代码,配置和依赖关系的软件包,可提供运营效率和生产力。容器为我们提供了可预测的,可重复的和不可变的运行预期,容器的兴起是 DevOps 即服务的一个巨大推动因素,可以克服当今面临的最大安全障碍。容器化通过在操作系统级别进行虚拟化来使应用程序可移植,从而创建基于内核的隔离的封装系统。容器化的应用程序可以放在任何地方,无需依赖项运行或需要整个 VM,从而消除了依赖关系。
作为独立的单元,容器能够在任何主机操作系统,CentOS,Ubuntu,MacOS,甚至是像 Windows 这样的非 UNIX 系统中运行。容器还充当标准化的工作或计算单元。一个常见的范例是每个容器运行单个 Web 服务器,数据库的单个分片或单个 Spark 工作程序等,只需要扩展容器的数量就能够便捷地扩展应用。每个容器都有一个固定的资源配置(CPU,RAM,线程数等),并且扩展应用程序需要只扩展容器的数量而不是单个资源原语。当应用程序需要按比例放大或缩小时,这为工程师提供了更容易的抽象。容器也是实现微服务架构的一个很好的工具,每个微服务只是一组协作容器。例如,可以使用单个主容器和多个从容器来实现 Redis 微服务。

编排调度(Kubernetes)

随着虚拟化技术的成熟和分布式架构的普及,用来部署、管理和运行应用的云平台被越来越多地提及。IaaS、PaaS 和 SaaS 是云计算的三种基本服务类型,分别表示关注硬件基础设施的基础设施即服务、关注软件和中间件平台的平台即服务,以及关注业务应用的软件即服务。容器的出现,使原有的基于虚拟机的云主机应用,彻底转变为更加灵活和轻量的容器与编排调度的云平台应用。
然而容器单元越来越散落使得管理成本逐渐上升,大家对容器编排工具的需求前所未有的强烈,Kubernetes、Mesos、Swarm 等为云原生应用提供了强有力的编排和调度能力,它们是云平台上的分布式操作系统。容器编排是通常可以部署多个容器以通过自动化实现应用程序的过程。像 Kubernetes 和 Docker Swarm 这样的容器管理和容器编排引擎,使用户能够指导容器部署并自动执行更新,运行状况监视和故障转移过程。
Kubernetes 是目前世界范围内关注度最高的开源项目,它是一个出色的容器编排系统,用于提供一站式服务。Kubernetes 出身于互联网行业巨头 Google,它借鉴了由上百位工程师花费十多年时间打造的 Borg 系统的理念,安装极其简易,网络层对接方式十分灵活。Kubernetes 和 Mesos 的出色表现给行业中各类工程师的工作模式带来了颠覆性的改变。他们再也不用关注每一台服务器,当服务器出现问题时,只要将其换掉即可。业务开发工程师不必再过分关注非功能需求,只需专注自己的业务领域即可。而中间件开发工程师则需要开发出健壮的云原生中间件,用来连接业务应用与云平台。
Kubernetes、Service Mesh 和 Serverless 三者共同演绎不同层次的封装和向上屏蔽下面的细节。Kubernetes 引入了不同的设计模式,实现对各种云资源全新、有效和优雅的抽象和管理模式,让集群的管理和应用发布变成了件相当轻松且不易出错的事。被广泛采用的微服务软件架构将分布式应用的各种复杂度迁移到了服务之间,如何通过全局一致、体系化、规范化和无侵入的手段进行治理就变成了微服务软件架构下至关重要的内容。Kubernetes 细化的应用程序的分解粒度,同时将服务发现、配置管理、负载均衡和健康检查等作为基础设施的功能,简化了应用程序的开发。而 Kubernetes 这种声明式配置尤其适合 CI/CD 流程,况且现在还有如 Helm、Draft、Spinnaker、Skaffold 等开源工具可以帮助我们发布 Kuberentes 应用。
Service Mesh 通过将各服务所共用和与环境相关的内容剥离到部署于每个服务边上的 Sidecar 进程而轻松地做到了。这一剥离动作使得服务与平台能充分解耦而方便各自演进与发展,也使得服务变轻而有助于改善服务启停的及时性。Service Mesh 因为将那些服务治理相关的逻辑剥离到了 Sidecar 中且作为独立进程,所以 Sidecar 所实现的功能天然地支持多语言,为上面的服务采用多语言开发创造了更为有利的条件。通过 Service Mesh 对整个网络的服务流量进行技术收口,让异地多活这样涉及流量调度的系统工程实现起来更加优雅、简洁与有效,也能更加方便地实现服务版本升级时的灰度、回滚而改善安全生产质量。由于技术收口,给服务流量的治理和演进、排错、日志采集的经济性等疑难问题创造了新的发展空间。