【云计算原理及实战】初识云计算
该学习笔记取自《云计算原理及实战》一书,关于具体描述可以查阅原本书籍。
云计算被视为“革命性的计算模型”,因为它通过互联网自由流通使超级计算能力成为可能。
2006年8月,在圣何塞举办的SES(捜索引擎战略)大会上,时任谷歌(Google)公司首席执行官(CEO)的施密特(Eric Schmidt)在回答一个有关互联网的问题时提出了“云计算”这个概念。在施密特态度鲜明地提出“云计算”一词的几周后,亚马逊(Amazon)公司推出了EC2计算云服务。云计算自此出现,从此之后各种有关“云计算”的概念层出不穷,“云计算”开始流行。
云计算的理论和尝试已经有多年历史,从J2EE和.net架构,到“按需计算”(On-demand computing)、“效能计算”(Utility computing)、“软件即服务”(Software as a service)等新理念、新模式,其实都可看作是对云计算的不同解读或云计算发展的不同阶段。
在流量和服务器数量都高速增长的情况下,“一个能够与网页增长速度保持同步的系统”必不可少,这也是谷歌三篇有关分布式的论文(分别为Google File System分布式存储系统、MapReducefen分布式处理技术和BigTable分布式数据库)之所以具有重要指导意义的原因:一切均出自实践。
业界有一种很流行的说法,将云计算模式比喻为发电厂集中供电的模式。也就是说,通过云计算,用户可以不必去购买新的服务器,更不用去部署软件,就可以得到应用环境或者应用本身。

1.1.1 云计算的定义
由于云计算是一个概念,而不是指某项具体的技术或标准,于是不同的人从不同的角度出发就会有不同的理解。
1.分析师和分析机构对云计算的理解
早期的美林证券(Merrill Lynch)认为,云计算是通过互联网从集中的服务器交付个人应用(E-mail、文档处理和演示文稿)和商业应用(销售管理、客户服务和财务管理)。
《信息周刊》(Information Week)的定义则更加宽泛:云计算是一个环境,其中任何的IT资源都可以以服务的形式提供。
《华尔街日报》(The Wall street Journal)认为云计算使企业可以通过互联网从超大数据中心获得计算能力、存储空间、软件应用和数据。
2.不同IT厂商对云计算的理解
IBM 公司认为,云计算是一种计算风格,其基础是用公共或私有网络实现服务、软件及处理能力的交付,也是一种实现基础设施共享的方式,利用资源池将公共或私有网络连接在一起为用户提供IT服务。
Google公司的前CEO施密特认为,云计算把计算和数据分布在大量的分布式计算机上,这使计算力和存储获得了很强的可扩展能力,并使用户可通过多种接入方式(例如计算机、手机等)方便地接入网络获得应用和服务。
Google公司前全球副总裁李开复认为,整个互联网就是一片美丽的云彩,网民们需要在“云”中方便地连接任何设备、访问任何信息、自由地创建内容、与朋友分享。
微软的提法一直是“云 + 端”。微软认为,未来的计算模式是云端计算,而不是单纯的云计算。这里的“端”是指客户端,也就是说云计算一定要有客户端来配合。微软公司前全球资深副总裁张亚勤博士认为:“从经济学角度来说,带宽、存储和计算不会是免费的,消费者需要找到符合他们需要的模式,因而端的计算一定是存在的。

3.学术界对云计算的理解
“网格计算之父”伊安·福斯特(Ian Foster)认为,云计算是一种大规模分布式计算的模式,其推动力来自规模化所带来的经济性。他认为云计算的几个关键点是:大规模可扩展性;可以被封装成一个抽象的实体,并提供不同的服务水平给外部用户使用;由规模化带来的经济性;服务可以被动态配置(通过虚拟化或者其他途径),按需交付。
来自加州大学伯克利分校的一篇技术报告指出,云计算既是指透过互联网交付的应用,也是指在数据中心中提供这些服务的硬件和系统软件。
自维基百科(Wikipedia)的定义基本涵盖了各个方面的看法:“云计算是一种计算模式,在这种模式下,动态可扩展而且通常是虚拟化的资源通过互联网以服务的形式提供出来。
曾在IBM任职的朱近之在《智慧的云计算:物联网的平台》定义如下:“云计算是一种计算模式:把 IT 资源、数据和应用作为服务通过网络提供给用户。在计算机流程图中,互联网常以一个云状图案来表示,用来表示对复杂基础设施的一种抽象。云计算正是对复杂的计算基础设施的一个抽象。

美国国家标准技术学院(NIST)给云计算提供的定义:“云计算是一种模型,这个模型可以方便地通过网络访问一个可配置的计算资源(例如网络、服务器、存储设备、应用程序以及服务等)的公共集。这些资源可以被快速提供并发布,同时最小化管理成本以及服务供应商的干预。”上述定义应该算是比较清晰和恰当的,也是本书所采用的定义。
从计算发生的地方来看,最简单地回答是:云计算将软件的运行从平常情况下的个人计算机 (或桌面计算机)搬到了云端,也就是位于某个“神秘”地理位置上的服务器或服务器集群上。
从资源供应的形式来看,云计算是一种服务计算,即所有的IT资源,包括硬件、软件、架构都被当作一种服务来销售并收取费用。对于云计算来说,其提供的主要服务是三种:基础设施即服务(IaaS),提供硬件资源,类似于传统模式下的CPU、存储器和 I/O;平台即服务(PaaS),提供软件运行的环境,类似于传统编程模式下的操作系统和编程框架;软件即服务(SaaS),提供应用软件功能,类似于传统模式下的应用软件。
云计算将一切资源作为服务,按照所用即所付的方式进行消费正是主机时代的特征。在主机时代,所有用户通过显示终端和网线与主机连接,按照消费的CPU时间和存储容量进行计费。所不同的是,在主机模式下,计算发生在一台主机上;在云计算下,计算发生在服务器集群或者数据中心。 概括来说,云计算是各种虚拟化、效用计算、服务计算、网格计算、自动计算等概念的混合演进并集大成之结果。
1.1.2 计算模式的演进过程
下图从计算模式的角度展现了云计算的发展。

1.主机系统与集中计算
1964 年,世界上第一台大型主机System/360诞生,引发了计算机和商业领域里的一场革命。大型主机的一个特点就是资源集中,计算、存储集中,这是集中计算模式的典型代表。主机的用户大都采用终端的模式与主机连接,本地不进行数据的处理和存储,也不需要进行诸如补丁管理、防火墙保护和病毒防范等措施。
云计算与主机计算一个重要的区别是其面向的用户群体不同。主机计算的用户通常是大型机构,并为关键应用所准备,如人口普查、消费统计、ERP、财务交易等;而云计算则面向普罗大众,可以运行各种各样的大、中、小型应用程序。
2.效用计算
主机的购买成本高昂,一些用户只能租用,而不是购买。于是有人提出了效用计算的概念,目标是把服务器及存储系统打包给用户使用,按照用户实际使用的资源量对用户进行计费。效用计算中的关键技术就是资源使用计量,它保证了按使用付费的准确性。此种计算范式的最大优势是用户无须提前付费,也无须将IT资源买断。
3.客户机/服务器模式
从服务的访问模式上看,云计算确实有**客户机/服务器模式(Client/Server)**的影子:客户通过某种设备与远处的云端联系在一起,使用运行在云端的应用软件所提供的服务。不过,在这种形似的背后,云计算提供的这个“远程服务器”具有无限的计算能力、无限的存储容量,且从来不会崩溃,几乎没有什么软件不能运行在其上。
4.集群计算
服务器集群计算是用紧密耦合的一组计算机来达到单个目的,而云计算是根据用户需要提供不同支持来达到不同的目的。此外,服务器集群计算是有限度的分布式计算,其面临的挑战不如云计算所面临的分布式计算复杂。另外,集群计算并不考虑交互式的终端用户,而云计算恰恰需要考虑。显然,云计算包含了服务器集群计算的元素。
5.服务计算
服务计算也称为面向服务的计算,其更为准确的名称是软件即服务(SaaS)。服务计算与云计算仍然存在重要区别。首先,虽然服务计算一般在互联网上实现,但服务计算不一定必须在云中提供,单台服务器、小规模服务器集群、有限范围的网络平台就可以提供服务计算;其次,服务计算一般仅限于软件即服务,而云计算将服务的概念推广到了硬件和运行环境,囊括了基础设施即服务、平台即服务的概念。
6.个人计算机与桌面计算
个人计算机具备自己独立的存储空间和处理能力,虽然性能有限,但是对于个人用户来说,在一段时间内也够用了。个人计算机可以完成绝大部分的个人计算需求,这种模式也叫桌面计算。
在互联网出现之前,软件和操作系统的销售模式都是授权(License)模式,也就是通过软盘或者光盘,将软件代码复制到计算机之上,而每一次复制,都需要向软件开发商付费。升级的过程有时会很烦琐。对于一个大型企业来讲,它的IT部门可能需要管理上百种软件、上千个版本、上万台计算机,每个版本的软件都需要维护,包括问题追踪、补丁管理、版本升级和数据备份等,这绝非一项简单的工作。
7.分布式计算
个人计算机没有解决数据共享和信息交换的问题,于是出现了网络——局域网及后来的互联网。网络把大量分布在不同地理位置的计算机连接在一起,有个人计算机,也有服务器。
分布式计算依赖于分布式系统。分布式系统由通过网络连接的多台计算机组成。每台计算机都拥有独立的处理器及内存。这些计算机互相协作,共同完成一个目标或者计算任务。
8.网格计算
计算机的一个主要功能就是复杂科学计算,而这一领域的主宰就是超级计算机。以超级计算机为中心的计算模式存在明显不足:造价极高,通常只有一些国家级的部门(如航天、气象和军工等部门)才有能力配置这样的设备。随着人们越来越需要数据处理能力更强大的计算机,人们开始寻找一种造价低廉而数据处理能力超强的计算模式,最终科学家们找到了答案,那就是网格计算。
它是伴随着互联网而迅速发展起来的、专门针对复杂科学计算的新型计算模式。这种计算模式利用互联网把分散在不同地理位置的计算机组织成一台“虚拟的超级计算机”,其中每一台参与计算的计算机就是一个“节点”,而整个计算是由成千上万个“节点”组成的“一堆网格”,所以这种计算方式叫网格计算。为了进行一项计算,网格计算首先把要计算的数据分割成若干“小片”,然后将这些小片分发给分布的每台计算机。每台计算机执行它所分配到的任务片段,待任务计算结束后将计算结果返回给计算任务的总控节点。
网格计算其核心是试图去解决一个巨大的单一的计算问题,这就限制了它的应用场景。在非科研领域,只有有限的用户需要用到巨型的计算资源。从某种程度来看,网格要做的很多事情也是云计算要做的事情,但网格计算却不能算是云计算。首先,网格计算主要针对科学计算和仿真,而云计算则是通用的。其次,网格不考虑交互式终端用户,而云计算要考虑。
9.SaaS
SaaS全称为Software as a service,中文译为“软件即服务”,它是一种通过Internet来提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己的实际需求,通过互联网向厂商订购所需的软件应用服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。
10.云计算的出现
纵观计算模式的演变历史,可以总结为:集中─分散─集中。云计算提供的基本服务有三种:一是硬件资源服务;二是运行环境服务;三是应用软件服务。那么用户也可用至少三种方式来使用云平台:一是利用云计算(平台)来保存数据(使用云环境所提供的硬件资源);二是在云计算平台上运行程序(使用云环境的运行环境);三是使用云平台上面的应用服务(使用云上布置的应用软件服务,如地图、搜索、邮件等)。
云计算至少有以下四个优势:按需供应的无限计算资源;无须事先花钱就能使用的IT架构;基于短期的按需付费的资源使用;单机难以提供的事务处理环境。
真正的云计算服务同时满足以下三个条件:
① 服务应该是随时随地可接入。用户可以在任何时间、任何地点,通过任何可以连接网络的设备来使用服务,而无须考虑应用程序的安装问题,也无须关心这些服务的实现细节。
② 服务应永远在线。偶发问题可能出现,但一个真正的云计算服务应时刻保证其可用性和可靠性,即保证随时可通过网络的接入,并正常提供服务。
③ 服务拥有足够大的用户群。这就是所谓的“多租赁”,由一个基础平台向多个用户提供服务的“租赁”。虽然没有明确的数量来进行划分,但只是针对少数用户的服务,即使用云计算相关的技术来支撑其基础系统架构,也不应该归为云计算服务。因为只有庞大的用户群,才会产生海量数据访问压力,这是云计算出现的最根本原因,也是云计算服务区别其他互联网服务的标志之一。
1.1.3 云计算简史
20世纪60年代,“人工智能之父”约翰·麦卡锡(John McCarty)曾经说过:“计算资源可能在未来成为一种公用设施”。这应该是最早发表过的与云计算相关的表述。
1966 年,道格拉斯·帕克希尔(Douglas Parkhill)出版了《计算机效用的挑战》一书。该书已经描述了云计算,只不过没有用“云计算”这个名词。“云”这个词源自电信产业。
1999年美国易安信公司(EMC)提出了数据拨号音的设想。
亚马逊公司在 2005 年在其内部首先实施了亚马逊 Web 服务(AWS)效用计算模式。之后,亚马逊公司决定将自己的云计算提供给外部的客户,并在 2006 年开始将 AWS 作为效用计算向外部客户提供。图 1.5所示为云计算发展历史中的重大事件。

1.1.4 云计算的推动力
云计算的出现是由多种因素促成,具有一定的必然性,具有决定性因素如下:网络带宽的提升、技术成熟度、移动互联网的发展、数据中心的演变、经济因素、大数据、提高资源利用率节能降耗、降低信息系统的维护成本、提升 IT 资产的安全态势、提升信息系统的灾备能力。推动云计算出现和发展的动力就是节省、灵活、方便、弹性、无限、按用量计费。
相关文章:
【云计算原理及实战】初识云计算
该学习笔记取自《云计算原理及实战》一书,关于具体描述可以查阅原本书籍。 云计算被视为“革命性的计算模型”,因为它通过互联网自由流通使超级计算能力成为可能。 2006年8月,在圣何塞举办的SES(捜索引擎战略)大会上&a…...
Open3D (C++) 基于拟合高差的点云地面点提取
目录 一、算法原理1、原理概述2、参考文献二、代码实现三、结果展示1、原始点云2、提取结果四、相关链接系列文章(连载中。。。): Open3D (C++) 基于高程的点云地面点提取Open3D (C++) 基于拟合平面的点云地面点提取Open3D (C++) 基于拟合高差的点云地面点提取</...
认识Transformer:入门知识
视频链接: https://www.youtube.com/watch?vugWDIIOHtPA&listPLJV_el3uVTsOK_ZK5L0Iv_EQoL1JefRL4&index60 文章目录 Self-Attention layerMulti-head self-attentionPositional encodingSeq2Seq with AttentionTransformerUniversal Transformer Seq2Seq …...
《TCP IP网络编程》第二十四章
第 24 章 制作 HTTP 服务器端 24.1 HTTP 概要 本章将编写 HTTP(HyperText Transfer Protocol,超文本传输协议)服务器端,即 Web 服务器端。 理解 Web 服务器端: web服务器端就是要基于 HTTP 协议,将网页对…...
【AI】文心一言的使用
一、获得内测资格: 1、点击网页链接申请:https://yiyan.baidu.com/ 2、点击加入体验,等待通过 二、获得AI伙伴内测名额 1、收到短信通知,点击链接 网页Link:https://chat.baidu.com/page/launch.html?fa&sourc…...
CSAPP Lab2:Bomb Lab
说明 6关卡,每个关卡需要输入相应的内容,通过逆向工程来获取对应关卡的通过条件 准备工作 环境 需要用到gdb调试器 apt-get install gdb系统: Ubuntu 22.04 本实验会用到的gdb调试器的指令如下 r或者 run或者run filename 运行程序,run filename就…...
Java中使用流将两个集合根据某个字段进行过滤去重?
Java中使用流将两个集合根据某个字段进行过滤去重? 在Java中,您可以使用流(Stream)来过滤和去重两个集合。下面是一个示例代码,展示如何根据对象的某个字段进行过滤和去重操作: import java.util.ArrayList; import java.util.List; impor…...
自动驾驶HMI产品技术方案
版本变更 序号 日期 变更内容 编制人 审核人 文档版本 1 2 1....
Git判断本地是否最新
场景需求 需要判断是否有新内容更新,确定有更新之后执行pull操作,然后pull成功之后再将新内容进行复制到其他地方 pgit log -1 --prettyformat:"%H" HEAD -- . "origin/HEAD" rgit rev-parse origin/HEAD if [[ $p $r ]];thenecho "Is La…...
Spring 整合RabbitMQ,笔记整理
1.创建生产者工程 spring-rabbitmq-producer 2.pom.xml添加依赖 <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.1.7.RELEASE</version></dep…...
Lua 语言笔记(一)
1. 变量命名规范 弱类型语言(动态类型语言),定义变量的时候,不需要类型修饰 而且,变量类型可以随时改变每行代码结束的时候,要不要分号都可以变量名 由数字,字母下划线组成,不能以数字开头,也不…...
【Redis】什么是缓存穿透,如何预防缓存穿透?
【Redis】什么是缓存穿透,如何预防缓存穿透? 缓存穿透是指查询一个一定不存在的数据,由于缓存中不存在,这时会去数据库查询查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,这…...
LeetCode128.最长连续序列
我这个方法有点投机取巧了,题目说时间复杂度最多O(n),而我调用了Arrays.sort()方法,他的时间复杂度是n*log(n),但是AC了,这样的话这道题还是非常简单的,创建一个Hashmap,以nums数组的元素作为ke…...
Datawhale Django入门组队学习Task02
Task02 首先启动虚拟环境(复习一下之前的) 先退出conda的, conda deactivate然后cd到我的venv下面 ,然后cd 到 scripts,再 activate (powershell里面) 创建admin管理员 首先cd到项目路径下&a…...
PCTA 认证考试高分通过经验分享
作者: msx-yzu 原文来源: https://tidb.net/blog/0b343c9f 序言 我在2023年8月10日,参加了 PingCAP 认证 TiDB 数据库专员 V6 考试 ,并以 90分 的成绩通过考试。 考试总分是100分,超过60分就算通过考试。试卷…...
[Python]pytorch与C交互
文章目录 C库ctypes基础数据类型参数与返回值类型数组指针结构体类型回调函数工具函数 示例 ctypes是Python的外部函数,提供了与C兼容的类型,并允许调用DLL库中的函数。 C库 要使函数能被Python调用,需要编译为动态库: # -fPIC…...
C语言,静态变量static基础及使用实列
static关键字有多种用途。以下是关于静态变量 (static) 的简要概述: 1.静态局部变量: - 在函数内部定义的静态变量。 - 生命周期:从程序开始执行到程序结束。 - 作用域:仅限于在其被定义的函数中。 - 每次调用该函数…...
2023.8.19-2023.8.XX 周报【人脸3D+虚拟服装方向基础调研-Cycle Diffusion\Diffusion-GAN\】更新中
学习目标 1. 这篇是做diffusion和gan结合的,可以参照一下看看能不能做cyclegan的形式,同时也可以调研一下有没有人follow这篇论文做了类似cyclegan的事情 Diffusion-GAN论文精读https://arxiv.org/abs/2206.02262 2. https://arxiv.org/abs/2212.06…...
微表情识别(Python编程,cnn模型)
1.数据集包括7种类别微表情 anger文件夹,3995张 disgust文件夹, 436张照片 fear文件夹,4097张照片 happy文件夹,7215张照片 neutral文件夹,4965张照片 sad文件夹,4830张照片 surprised文件夹, 3…...
More Effective C++学习笔记(2)
目录 条款5:对定制的"类型转换函数"保持警觉条款6:自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别条款7:千万不要重载&&,||和,操作符条款8:了解各种不同意义的new和de…...
从‘localhost:8080’到‘dev.myapp.com’:给本地服务绑个‘正经’域名的三种方法(Nginx/Docker/系统Hosts)
从‘localhost:8080’到‘dev.myapp.com’:本地服务域名绑定的实战指南 每次调试前端页面时,在浏览器地址栏反复输入localhost:3000或127.0.0.1:8080,这种体验总让人感觉像是在用临时解决方案应付正式开发需求。想象一下,当你的团…...
告别手动复制粘贴:MeterSphere参数提取功能详解,让你的接口自动化测试效率翻倍
MeterSphere参数提取实战:构建动态接口测试链的三大高阶技巧 在持续集成环境中,接口自动化测试往往面临一个关键挑战:如何让不同接口之间实现数据动态传递?传统的手动复制粘贴不仅效率低下,更难以应对复杂业务场景。Me…...
实战指南:Whisper 的 `prompt` 与 `initial_prompt` 参数在语音转文字中的高效应用
1. Whisper 语音转文字的核心参数解析 第一次用 Whisper 做语音转文字时,我发现同样的音频文件,同事转出来的结果总比我的准确率高。后来才发现,原来他偷偷用了一个叫 prompt 的秘密武器。这就像考试时的"小抄",给模型…...
G-Helper:华硕笔记本轻量化控制工具全面解析与实战指南
G-Helper:华硕笔记本轻量化控制工具全面解析与实战指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地…...
MQTT.fx连接阿里云物联网平台全流程指南(含密码生成工具推荐)
MQTT.fx连接阿里云物联网平台全流程指南(含密码生成工具推荐) 物联网开发者在初次尝试将设备接入阿里云物联网平台时,往往会遇到各种连接问题。作为最受欢迎的MQTT客户端工具之一,MQTT.fx因其简洁直观的界面和强大的功能…...
Telegram用户必看:Grok聊天机器人全功能实测与隐藏技巧大公开
Telegram用户必看:Grok聊天机器人全功能实测与隐藏技巧大公开 作为Telegram深度用户,你可能已经注意到聊天界面顶部多了一个新面孔——Grok聊天机器人。这款由xAI打造的AI助手正在悄然改变我们的通讯体验。不同于市面上大多数聊天机器人,Grok…...
智能AI识别之集装箱缺陷识别 集装箱数据集 集装箱缺陷数据集 集装箱凹陷数据集 集装箱锈蚀孔洞图像数据集 yolo数据集地10624期
📦 集装箱缺陷检测计算机视觉模型( 这是一个基于 YOLOv8/YOLOv10 框架的工业级目标检测模型,专门用于识别集装箱表面的三类典型缺陷。🔍 核心信息 模型类型:目标检测(Object Detection)基础框架…...
基于DAMOYOLO-S与计算机网络技术:构建分布式视频分析集群
基于DAMOYOLO-S与计算机网络技术:构建分布式视频分析集群 想象一下,一个大型物流园区,上百个摄像头日夜不停地运转,管理者需要实时知道:哪条通道拥堵了?哪个区域有异常人员闯入?传统的监控方式…...
PMSM无感FOC实战:手把手调参你的滑模观测器SMO(从Simulink到MCU)
PMSM无感FOC实战:滑模观测器SMO从理论到调参全解析 引言:为什么SMO是无感FOC的核心观测器? 在永磁同步电机(PMSM)的无传感器矢量控制(FOC)系统中,滑模观测器(Sliding Mod…...
AI系统-21AI芯片之NoC总线
在大型SoC芯片,特别是AI SoC中,存在多个异构核子系统,非常的大和复杂。对应芯片设计中,一个重要的技术就是NoC,要想富先修路,NoC就是通信的路。而且SoC把很多硬件模块集成到一个芯片上就是为了让路好走&…...
