云计算
2022-05-22 20:18:11 37 举报
AI智能生成
云计算
作者其他创作
大纲/内容
概述
云计算是信息技术服务平台,它抽象了多个大型数据中心内的海量计算存储资源,对外提供了从基础设施到托管平台不同层次、不同粒度的在线服务和组件,同时也是各个领域最新前沿技术和架构理念的最佳载体。
云原生
云原生的本质是用于构建现代云端应用的一系列架构理念,以及帮助这些理念落地的技术支撑和最佳实践。云原生的核心理念包括无状态、分布式、服务化、弹性扩展等等。
IaaS
概述
IaaS(Infrastructure as a Service),即“基础设施即服务”,一般指云计算所提供的计算、存储、网络等基本底层能力;
云虚拟机<br>
云虚拟机是最重要的 IaaS 服务之一,它基于计算存储分离的架构进行构建
子主题
云虚拟机的创建过程,由地域、机型、操作系统、存储、网络等多方面选项共同构成
云虚拟机可使用云厂商自有操作系统,与云有较好的适配<br>
网络安全组是保护云虚拟机的网络防火墙,可以同时应用于多个虚拟机。
配置选择
要取决于类型、代别、实例大小<br>
名称
一般由类型、代别、实例大小这几项的缩写组合而成
省钱
包年包月的付费方式
牺牲采购的灵活性
竞价实例
牺牲稳定性
突发性能实例
牺牲的是性能<br>
基于 ARM 的虚拟机实例<br>
在生态和兼容性方面存在一些限制。
云硬盘<br>
云硬盘是云虚拟机的主要持久化存储,与宿主机往往是分离的
云硬盘支持动态添加和删除,使用起来灵活方便
云硬盘一般提供多种性能等级,最终性能会受存储介质和容量大小的共同影响
部分虚拟机型号会自带高性能的本地磁盘,在可以容忍数据丢失风险时, 也可以选择<br>
云网络
故障类型<br>
宿主机故障
创建部署集,保证物理分散部署
数据中心故障(可用区))<br>
多可用区的实例部署
区域级别事故<br>
多云,也就是同时选用多家云厂商的公有云,一起来服务业务。虽然集成多个异构的云会带来额外的成本,但这能够最大限度地降低服务风险
云运维<br>
传统到云的转型<br>
云运维的内容<br>
监控<br>
备份<br>
迁移<br>
云厂商技术服务的对接<br>
云端资源的管理<br>
PaaS
概述
PaaS(Platform as a Service),即“平台即服务”,指云计算提供的平台类服务,在这些平台的基础上,用户可以直接开发、运行、管理应用程序,而无需构建和维护底层的基础设施。<br>应用托管服务背后采用的隔离技术对用户一般是不可见的,它可能是虚拟机,可能是 Docker,或者是自研的其他容器类技术<br>
PaaS 是在 IaaS 的基础上又做了许多工作,构建了很多关键抽象和可复用的单元,让我们用户能够在更上层进行应用的构建,把更多精力放在业务逻辑上。<br>
PaaS 的核心理念在于封装,封装既带来了效率的优势,也同时带来了灵活性上的牺牲
基本概念
区域 (Region)<br>
区域是云计算的顶层概念,云服务以区域为单位对外开放;
每个区域还会有个字母数字构成的区域代号(Region ID 或 Region Code)。<br>
云厂商选址思路
在人口稠密的中心城市,离用户和商业更近,以提供较快的接入体验<br>
在相对偏远的地区,当地往往能够提供良好的气候条件、充足的建设空间,以及较低的电力、带宽等运营维护成本。
如何选择云上“区域”
区域的地理位置本身<br>
区域之间云服务的差别。<br>
同一个云在不同的区域,所能提供的服务和规模可能是不同的。<br>
成本
多区域架构
部分关键应用,为了追求最佳的用户体验和高可用性,需要把多个区域的资源和能力结合起来进行构建。
将面向消费者服务的触点部署到多个区域,就近服务各地区的互联网流量,而偏后台的数据分析和 BI 服务,则可以安置在性价比较高的非一线城市区域,业务数据可通过骨干网不断回传。这是一种经典的分工模式。
可用区 (Availability Zone)
可用区是区域之下的重要层级,代表独立的数据中心,一个区域内往往有多个可用区
将资源安排在同一个可用区,以便获得较高的网络互访性能;也可以安排在不同的可用区,以实现故障隔离和服务冗余。
PaaS服务的指标
是否有默认内含的某些运行环境
服务存在的位置和范围,以及给予你的控制粒度。
支撑 PaaS 的虚拟机是否对外暴露(是否支持以非应用的方法, 比如直接ssh连接其服务虚拟机)
选择
子主题
常见的PaaS服务
对象存储 Object Storage
对象存储是你在云上可以创建的一种“网盘”。这个网盘可以存储任意的二进制文件,包括结构化和非结构化数据。你可以随时上传下载,也可以修改和删除。当然,云上对象存储会保证你数据的可靠性、可用性和扩展性,你不需要操心这些细节。
和IaaS的区别
第一个主要区别,在于访问的接口与形式。<br>云硬盘其实是挂载到虚拟机的虚拟硬盘,它是通过实现操作系统级别的底层接口,作为虚拟机的块存储设备而存在。我们也必须连接到相关的虚拟机,才能访问它里面的数据。而对象存储,本质是一个网络化的服务,调用方主要通过高层的 API 和 SDK 来和它进行交互。不管是面向外部公开互联网服务,还是和内部应用程序对接,对象存储都是通过提供像 HTTP 这样的网络接口来实现的。所以它的独立性很强,不需要依赖其他组件就可以运作。<br>这也正是我们把对象存储放在 PaaS 篇,而不是 IaaS 篇中讲解的原因。虽然它的功能很“基础”,但它的产品形态是非常典型的 PaaS,因为你不需要操心下面支撑它的具体机器和可用性等等问题,只需要依赖它,在它之上构建你的应用就行了。<br>
第二个主要区别,也是对象存储的一大特征,就是对象存储内本身不存在一个真正的文件系统,而是更接近一个键值(Key-Value)形式的存储服务。<br>这里的键就是对象的路径(路径中包含斜杠符号“/”),这里的值就是存储对象的二进制文件。键值系统和云硬盘上经典文件系统的核心差异,就在于文件系统保存了更多的元数据,尤其是实现了目录结构和目录操作。而键值系统中,所谓的目录其实是多个对象共享的路径前缀,可以说是用前缀模拟出了目录。<br>
对象存储的巨大容量<br>作为云计算最具代表性的服务之一,它的可扩展性(Scalability)是毋庸置疑的,对象存储能够轻松地容纳上 PB 的超大容量数据,这是任何的云硬盘所不能企及的。所以对象存储是名副其实的大数据存储。<br><br>
高级特性
存储分层
可以按照访问热度,设置从热到冷不同的存储级别(或者叫存储类型)。其中,存储级别为热的对象,存储空间占用的成本稍高,但访问读取不需要收取额外的费用;而存储级别越冷,则存储空间的单位成本越低,但访问读取需要收取一定的费用。到了极少访问的存档级别,数据的“解冻”可能还需要花费一些时间。
对象的生命周期管理
设置一定的过期规则,当对象满足规则时(通常每天判断一次),可以自动地执行一些清理操作。比如,你可以对一个存储桶或目录进行设置,要求最后修改时间超过 60 天的文件自动切换到低频访问层,超过 180 天的文件则进行归档或删除。
对象的版本管理
记录对象的多个版本并能进行回滚和恢复
跨区域同步
访问日志分析
应用场景
一切需要保存数据的地方,不论是原始数据的保留备份、中间结果的临时落地,还是处理结果数据的永久保存,你都可以考虑对象存储是否适用。
简单的k-v数据库
大数据应用的存储服务
应用托管服务
例如Web网站托管
增值服务
监控
云数据库<br>
云数据库在外部交互的层面上,保持了和传统“原版”数据库几乎完全一致的编程接口和使用体验。
数据库源码和模块的深度定制,在保证兼容性的前提下,进行许多对用户透明的云端适配和优化。
在搭建、运维、管理层面,云数据库提升了一个层次,实现了相当程度的智能化和自动化,极大地提升了用户友好度,降低了使用门槛。比如灵活的性能等级调整、详尽的监控体系、攻击防护机制等等,这些许多在传统数据库中需要借助额外工具或产品的功能,在云数据库服务是默认内置,可以开箱即用的。
高级特性<br>
简易配置的读写分离<br>
自动性能调优<br>
新一代云原生数据库<br>
厂商们不满足于封装现有的数据库,而是极具野心地开始构建完全为云设计、能够充分发挥云的特点和优势的数据库。
更强的可扩展性<br>
基于计算存储分离架构,云原生数据库可以支撑更大规模的数据量,突破了传统关系数据库服务的单机单库限制
云原生数据库可以利用云快速地进行水平扩展,迅速调整、提升数据库的处理能力。在分布式架构的加持下,它相比以前单机数据库的计算查询能力有了成倍的提升。所以,云原生数据库往往善于处理大并发的负载,可以提供很高的 QPS
更高的可用性<br>
云原生数据库往往默认就是多副本高可用的,数据同步、读写分离等高级特性是作为原生机制的一部分天生存在的
得益于原生数据同步机制的底层设计,云原生数据库还能很方便地支持跨区域的实例复制,在进一步增强冗余的同时,还能便于就近服务全球用户
云上大数据<br>
概述<br>
大数据主要是技术手段,是一系列处理海量数据的方法论和技术实现的总称;而云是一种资源和能力的载体,也是一种商业存在,是可以运行大数据负载和应用的平台。
上的大数据 PaaS 产品,它们是云对大数据技术进行了封装和产品化的成果
特点<br>
易用性高, 管理简便<br>
以把一个之前可能需要几天时间,来进行安装部署和环境设置的创建集群任务,缩减到短短几分钟,大大降低了我们学习和应用大数据技术的门槛。
按需启停: 集群可以动态地创建,做完工作后立刻将集群删除
云上容器服务<br>
容器和云是相辅相成的,云承载着容器的运行,容器生态也驱动着云的发展
容器对于运行环境的极强适应性和快速启动的能力,配合云上动态扩展的庞大资源规模,让云端的容器应用可以在短时间内拓展到成千上万个实例。
容器实例服务<br>
全托管. 不需要操心底层的虚机和集群,也可以绕开复杂的编排系统,只需要关注 Pod 运行层面的目标就可以
从运行方式上来看,你既可以轻量方便地在云上运行容器,也可以在云上 Kubernetes 服务的帮助下创建集群,进行较大规模的编排和部署。
无服务器计算 serverless<br>
是什么<br>
Serverless 架构的核心理念是让用户不用关注服务运行所需要的计算资源,主要关注业务逻辑的构建。这样做可以降低业务开发的成本,提高业务构建和交付的效率。用户不在需要花费时间和资源来进行服务器配置、维护、更新、扩展和容量规划。所有的这些任务和功能都由 Serverless 平台处理,并完全从开发人员和 IT/运维团队中抽象出来。
举例<br>
腾讯云函数, 编写业务脚本, 无需其它非业务配置, 即能直接运行<br>
特点<br>
应用函数化<br>
在粒度上,无服务器会允许你拆分得更细致、更轻量。你甚至可以把每一个具有独立功能的函数,来作为一个单独的服务进行部署和运行。这也是为什么,在有些云计算的分类方法下,无服务器计算能够单独“开宗立派”,被称为函数即服务(Function-as-a-Service,FaaS)的原因。
自动扩缩容<br>
Serverless 架构的底层平台原生支持自动扩缩容策略,会根据应用访问量的变化动态调整服务实例的数量来满足应用访问的需求。
按需加载<br>
在 Serverless 架构中,由底层的容器平台管理应用的启动和关闭。应用程序是否正在运行取决于当前是否有事件触发或请求访问该服务。当有事件触发或者请求访问时,服务会被自动启动。当一段时间服务不被使用,平台将关闭该服务等待下次触发。
依赖服务<br>
环境中通常支持一系列重要类库和 SDK,让你能够在函数内访问其他云服务,尤其是像数据库、消息队列这样的外部存储。
为了提高开发效率,现在的服务在开发过程中利用了很多第三方工具,如消息队列、数据库、缓存等。如果只有当前应用服务化,其他依赖的第三方工具需要用户单独进行管理和部署,那么整个应用服务依旧被服务器资源等条件限制。因此,Serverless 架构应用所依赖的第三方工具也必须服务化。
事件驱动<br>
定时触发器<br>
cron周期触发<br>
api触发<br>
如: api网关带来的外部web请求<br>
对象存储触发器<br>
如: 对新上传的对象, 自动进行定制的处理<br>
非会话保持<br>
由于应用不再绑定到特定的服务器上,每次处理请求的服务实例可能在同一个服务器节点上,也可能在不同的服务器节点上。因此,同一个客户端的多次请求无法保证被同一个服务实例处理。传统架构中很容易实现的会话保持功能,不适用于 Serverless 架构应用。因此,无状态的应用比有状态的应用更加适合Serverless 架构。
状态非本地化持久<br>
由于应用和服务器解耦,应用不再绑定到特定的服务器上,每次事件触发后的服务实例可能运行在集群中任意一个服务器节点。因此,服务器节点不会保存该节点上应用的状态,这个传统架构有很大的区别。
缺点<br>
云厂商的绑定/应用的可迁移性<br>
厂商标准不统一问题。当前,各厂商的Serverless产品的标准不统一,导致软件不能跨厂商迁移,客观上造成了厂商锁定问题,这是制约Serverless发展的最主要因素。
冷启动的延时<br>
延迟问题。Serverless应用是高度分布式、低耦合的,服务之间的通信比较频繁,有可能会导致应用的整体延时加大。另外,由于Serverless应用是按需分配计算资源,有可能会产生冷启动延迟。
无状态服务限制<br>
只管理无状态服务。Serverless要实现工作负载的自由缩放,就必须要求服务是无状态的。有状态的服务由于需要维护存储状态信息,并不适合Serverless平台进行管理。这应该是Serverless本身的特点所致。
使用场景<br>
异步、并发、易于并行化为独立工作单元的工作负载。<br>低频或有零星请求,但具有较大不可预测扩容变化需求的工作负载。<br>无状态、短期运行、对冷启动延迟不敏感的工作负载。<br>业务需求变化迅速,要求快速开发实现的场景。<br>
技术实现<br>
函数即服务(Function as a Service, FaaS)
概述<br>
FaaS 提供了一种构建和部署服务的新方式,将应用分解为多个函数服务,通过多个函数之间的编排调度完成业务逻辑.<br>FaaS 的核心是事件驱动,除了提供代码存放和代码执行的功能,FaaS 还会提供各种同步和异步的事件源集合。比如 HTTP API Gateway 就是一个同步事件源;而消息队列,对象存储等就是异步事件源。
举例: 云函数 + MQ(等事件驱动)<br>
运转流程<br>
MQ触发器 触发云函数<br>
消息参数 传递给 云函数<br>
云函数对应处理<br>
云函数处理结果 >> 另一个消息消费者 >> 另一个云函数...<br>
特点<br>
层层传递,就可以形成一个流式数据的处理管道,实现数据的实时处理和分发。
后台即服务(Backend as a Service, BaaS)
概述<br>
侧重在针对开发Restful Application
按照业务逻辑的控制处理流程, 以工作流形式, 将数据库、文件存储和消息队列等第三方工具服务化进行组合和编排,让用户以 API的形式进行访问
举例<br>
能够让你用配置文件或图形化的方式,来设置表达一个复杂的事件处理步骤和逻辑,这是架构在云函数之上的更高层调度框架
你可以不用把 if/else、顺序执行、并发等调度控制逻辑写在一个臃肿的函数中,而是可以分开解耦,通过工作流进行组装。这时,每一个 Serverless 函数,作为处理流程的一个环节,可以只专注做一件事情。
子主题
原理<br>
工作流服务依靠状态机负责事件响应的回收、条件的判断和下一步的触发执行, 记录和跟踪运行状态<br>
更多<br>
https://zhuanlan.zhihu.com/p/466817569
https://www.zhihu.com/question/341855341
云上AI<br>
分类
内置的开箱即用的AI服务
概述
一般是将非结构化数据处理分析的通用需求场景,进行了封装和开放。你可以通过云端标准的 API 和 SDK 来进行调用,一般会按调用次数进行收费。
分类
计算机视觉
自然语言处理
语音类智能服务
视频信息处理
构建自己的AI模型
概述
非常精准地支撑和赋能这些重要环节,帮助你进行贯穿全生命周期的模型构建和管理。
分类
机器学习
深度学习
流程步骤
数据准备与标注
模型训练
厂商内置框架
第三方开源框架
模型发布和部署
0 条评论
下一页