【云计算学习教程】IaaS、PaaS和SaaS:云计算的三种服务模式(精讲(1) ...

诗林  金牌会员 | 2024-6-20 19:09:06 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 356|帖子 356|积分 1068

先自我先容一下,小编浙江大学结业,去过华为、字节跳动等大厂,现在在阿里
深知大多数程序员,想要提升技能,往往是本身探索成长,但本身不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初志也很简单,就是盼望可以大概帮助到想自学提升又不知道该从何学起的朋友。





既有适合小白学习的零基础资料,也有适合3年以上履历的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比力多,这里只是将部分目录截图出来,全套包罗大厂面经、学习条记、源码讲义、实战项目、大纲门路、解说视频,而且后续会连续更新
需要这份体系化的资料的朋友,可以点击这里获取!

  • 内容分发网络(CDN):把内容分发到靠近用户的地方,对于一些基于网页的应用体系,为了进步用户体验,往往在各个地方(生齿稠密的地方)设立分支服务器,当用户欣赏网页时,被重定向到本地 Web 服务器,以是数据必须及时分发并保持一致。
  • 服务管理:管理云端基础设施平台的各种服务。
  • 存储服务:提供用于备份、归档和文件存储的大规模可伸缩存储。
云计算PaaS服务模式精讲

PaaS 是“Platform as a Service”的首字母缩写,意为平台即服务,即把 IT 体系的平台软件层作为服务出租出去,如图 1 所示。

图 1 PaaS 云
相比于 IaaS 云服务提供商,PaaS 云服务提供商要做的事情增加了,他们需要准备机房、布好网络、购买设备、安装操纵体系、数据库和中间件,即把基础设施层宁静台软件层都搭建好,然后在平台软件层上划分“小块”(风俗称之为容器)并对外出租。
PaaS 云服务提供商也可以从其他 IaaS 云服务提供商那里租赁计算资源,然后本身部署平台软件层。另外,为了让消费者能直接在云端开发调试程序,PaaS 云服务提供商还得安装各种开发调试工具。相反,租户要做的事情相比 IaaS 要少很多,租户只要开发和调试软件或者安装、配置和利用应用软件即可。PaaS 云服务的消费者紧张包括以下人员。


  • 程序开发人员:写代码、编译、调试、运行、部署、代码版本控制等,一揽子办理。
  • 程序测试人员。
  • 软件部署人员:把软件部署到 PaaS 云端,便于管理不同版本之间的冲突。
  • 应用软件管理员:便于配置、调优和监督程序运行性能。
  • 应用程序最终用户:这时 PaaS 云服务相当于 SaaS 云服务。
PaaS 云服务的费用计算一般根据租户中的用户数量、用户范例(如开发员、最终用户等)、资源消耗量及租期等因素计算。图 2 所示刻画了 PaaS 云服务供/需双方的动态交互环境。

图 2 PaaS 云服务供/需双方动态交互表现图
云服务提供商拥有一个应用软件库(图 1 中“A,B,C,…”代表库中的应用软件)、开发工具集(如编程语言、IDE、调试工具等)和软件执行资源池(图 1 中“exr1,exr2,…”代表资源),消费者通过网络长途租赁软件执行资源并运行相关的应用软件,或者利用各种开发工具。
软件执行资源有“可用”和“占用”两个状态,同一个资源不能同时运行多个程序。软件执行资源可能是物理机、虚拟机、容器或者一个正在运行的服务程序(相应消费者的请求,启动虚拟机或容器,甚至是租赁其他云端的计算资源)。
图 2A 中,用户 C1 申请了两个资源:exr1 和 exr2,并运行 B、C 两个程序。
图 2B 中,新来了一个程序开发员,他正在利用开发工具开发程序。
图 2C 中,程序开发员开发完成并部署了一个新程序 D。
图 2D 中,一个管理员发布了程序 D,然后新来的用户申请资源 exr3 并执行程序 D。
PaaS 云服务供/需交互尚有很多景象,这里不再逐一列出。
比如我们要安装和利用 OpenERP 软件,这个应用软件要用到 PostgreSQL 数据库和 Python 语言,那么只需要租赁一个 PaaS 型容器并在内里安装 OpenERP 即可,但这个容器必须支持 PostgreSQL 数据库和 Python 语言,让租户无须再去安装和配置它们。
同样,我们可以租赁一个支持 PHP 语言和 MySQL 数据库的 PaaS 容器,然后接纳 WordPress 开源建站工具,只需几步,就可以搭建一个个人博客网站。应用软件不可胜数,支持它们的语言、数据库、中间件和运行库可能都不一样。
PaaS 云服务提供商不可能安装全部的语言、数据库、中间件和运行库来支持所有的应用软件,因此现在广泛的做法是安装主流的语言、数据库、中间件和运行库,使得出租的 PaaS 容器支持有限的、利用量排名靠前的应用软件以及支持最流行的编程语言,并在网站上发布公告。固然,云服务提供商也鼓励租户直接开发支持 PaaS 的应用软件,每家云服务提供商都想尽可能地黏住更多的用户,这无可厚非。
不知道你有没有遭遇过这样的痛苦:企图安装一个要用的软件,结果报“没有找到 XXX 中间件”的错误,于是急忙找来相关资料安装需要的中间件,但又报错:“此中间件需要 YYY 数据库的支持”,那么只好安装数据库,却再次报错:“此数据库需要 ZZZ 运行库”,于是又去安装相应的运行库,但报错又出现了……末了你怒了:我不用这个应用软件总可以了吧?但你的计算机中已经安装了一大堆用不上的软件,硬盘快满了,于是又不得不去一个一个地卸载,卸载时又不断跳出调查表,扣问你卸载的原因:是软件不够好吗?是售后服务跟不上吗?影响计算机速度吗……安装过 Linux 操纵体系的人估计都会有这样的痛苦经历。
PaaS 的优势就是办理应用软件依赖的运行环境(如中间件、数据库、运行库等),其所依赖的软件全部由云服务提供商安装,以是当租户安装应用软件时,就不会再出现一连报错的环境。应用软件就像歌唱家,当其唱歌表演时需要一个舞台,这个舞台就是由基础设施层宁静台软件层堆叠起来的。
前面讲过,平台软件层包括操纵体系、数据库、中间件和运行库四部分,但并不是说在详细搭建平台软件层时一定要安装和配置这四部分软件,需要哪部分以及安装什么种类的平台软件要根据应用软件来定。比如一家只针对 PHP 语言开发(应用软件用 PHP 编写)的 PaaS 云服务提供商,就没必要安装类似 Tomcat 的中间件了。根据平台软件层中安装的软件种类多少,PaaS 又分为两种范例。
1)半平台 PaaS

平台软件层中只安装了操纵体系,其他的留给租户本身办理。最为流行的半平台 PaaS 应用是开启操纵体系的多用户模式,为每个租户创建一个体系账号,并对他们做权限控制和计算资源配额管制。半平台 PaaS 更关注租户的范例,如研发型、文秘型等,针对不同范例的租户做不同的权限和资源配置。
Linux 操纵体系的多用户模式和 Windows 操纵体系的终端服务都属于半平台 PaaS,私有办公云多接纳半平台 PaaS。
2)全平台 PaaS

全平台 PaaS 安装了应用软件依赖的全部平台软件(操纵体系、数据库、中间件、运行库)。不同于半平台 PaaS,全平台 PaaS 是针对应用软件来做资源配额和权限控制的,只管最终还需要通过账号实现。公共云多接纳全平台 PaaS。
相对于 IaaS 云服务,PaaS 云服务消费者的灵活性低落了,租户不能本身安装平台软件,只能在有限的范围内选择。但优点也很明显,租户从高深烦琐的 IT 技术中解放出来,专注于应用和本身的焦点业务。
下面是一些 PaaS 云服务的实际应用。

  • 商业智能(BI):用于创建仪表盘、报表体系、数据分析等应用程序的平台。
  • 数据库:提供关系型数据库或者非关系型数据库服务。
  • 开发和测试平台。
  • 软件集成平台。
  • 应用软件部署:提供应用软件部署的依赖环境。
云计算SaaS服务模式精讲

SaaS 是“Software as a Service”的首字母缩写,意为软件即服务。简言之,就是软件部署在云端,让用户通过因特网来利用它,即云服务提供商把 IT 体系的应用软件层作为服务出租出去,而消费者可以利用任何云终端设备接入计算机网络,然后通过网页欣赏器或者编程接口利用云端的软件。这进一步低落了租户的技术门槛,应用软件也无须本身安装了,而是直接利用软件,如图 1 所示。

图 1 SaaS 云
SaaS 云服务提供商这时有 3 种选择:

  • 租用别人的 IaaS 云服务,本身再搭建和管理平台软件层和应用软件层。
  • 租用别人的 PaaS 云服务,本身再部署和管理应用软件层。
  • 本身搭建和管理基础设施层、平台软件层和应用软件层。
总之,从云服务消费者的角度来看,SaaS 云服务提供商负责 IT 体系的底三层(基础设施层、平台软件层和应用软件层),也就是整个 T 层,末了直接把应用软件出租出去。图 2 所示是 SaaS 云服务供/需双方的动态交互表现图。

图 2 SaaS 云服务供/需双方动态交互表现图
云服务提供商拥有一个应用软件库(图 2 中“A,B,C,…”代表库中的应用软件)和应用软件执行资源池(图 2 中“exr1,exr2,…”代表资源),消费者通过网络长途租赁软件执行资源并运行相关的应用软件。
在图 2A 中,有两个用户正在利用云端的软件,此中用户 C1 运行两个程序 B 和 C,云端为该用户分配了 exr1 和 exr2 两个执行资源,exr1 执行资源用于执行 B 应用程序(图 2 中用“B(exr1”表现),exr2 执行资源用于执行 C 应用程序(图 2 中用“C(exr2”表现)。而用户 C2 正在执行一个程序 C(图 2 中用“C(exr3”表现)。
在图 2B 中,一个新用户 C3 进来了,云端从可用的执行资源池中为他分配了 exr4 和 exr5 两个执行资源,分别执行 A 和 B 应用程序,而执行资源池中可用的资源数减少了两个。
云服务提供商选择多少种利用面广且有利可图的应用软件,如 ERP(企业资源筹划)、CRM(客户关系管理)、BI(商业智能)等,并经心安装和运维,让租户用得放心、安心。
适合做 SaaS 的应用软件有的几个特点

1)复杂

软件庞大、安装复杂、利用复杂、运维复杂,单独购买代价昂贵,如 ERP、CRM 体系及可靠性工程软件等。
2)紧张面向企业用户

3)模块化布局

按功能划分成模块,租户需要什么功能就租赁什么模块,也便于按模块计费,如 ERP 体系划分为订单、采购、库存、生产、财物等模块。
4)多租户

能适合多个企业中的多个用户同时操纵,也就是说,利用同一个软件的租户之间互不干扰。租户一般指单元组织,一个租户包罗多个用户。
5)多币种、多语言、多时区支持

这一点对于公共云尤其明显,由于其消费者来自五湖四海。
6)非强交互性软件

如果网络延时过大,那么强交互性软件作为 SaaS 对外出租就不太合适,会大大低落用户的体验度,除非改造成弱交互性软件或者批量输入/输出软件。
如微软的 Office 365 和谷歌的在线办公等——通过欣赏器运行长途 SaaS 办公软件,本质上就是 I/O 本地化,而欣赏器与云端之间批量化传输(单击“生存”按钮或者欣赏器定时生存)。
软件的云化就是对传统应用软件举行改造,使之满足(3)、(4)、(5)三个特点。
这里要着重先容一下特点“(4)多租户”,即允很多个租户同时利用软件而互不影响,因此多租户的第一个要求就是软件支持多个用户登录,用户一般为非体系管理账户(如不是操纵体系用户或者数据库用户),且生存在数据库的业务表中。
在《软件的概念》教程中已经讲过,软件就是由程序员写的让 CPU 来完成某项任务的步调,包括输入/输出步调和计算步调,只有输入/输出步调与多租户的特点相关。
如张三的输入/输出就是张三的,绝对不允许“窜”到李四那里去,反之亦然。这里重点关注的是硬盘文件作为输入/输出设备的景象,因此多租户的第二个要求就是用户身份信息必须作为数据记录的检索字段之一,这样用户之间的数据才可以实现隔离。
数据记录包括软件的配置信息和业务数据,配置信息指租户选择的语言、设置的时区、指定的币种、定义的面板参数等;而业务数据就是日常业务处理产生的数据,一般生存在数据库中,而数据库生存在云端的存储中。在详细设计隔离方案时,需要综合思量隔离效果和资源利用服从,如图 3 和图 4 所示,更详细的租户隔离内容拜见反面的章节。

图 3 注意隔离效果

图 4 注意资源利用服从
适合云化并以 SaaS 模式交付给用户的软件

1)企事业单元的业务处理类软件

这类软件一般被单元组织用来处理提供商、员工、投资者和客户相关的业务,如开具发票、资金转账、库存管理及客户关系管理等。
2)协同工作类软件

这类软件用于团队人员一起工作,团队成员可能都是单元组织内部的员工,也可能包罗外部的人员。比方日历体系、邮件体系、屏幕分享工具、协作文档创作、集会管理及在线游戏。
3)办公类软件

这类软件用于进步办公服从,如文字处理、制表、幻灯片编辑与播放工具,以及数据库程序等。基于 SaaS 云服务的办公软件具备协同的特性,便于分享,这是传统的本地化办公软件所没有的。
4)软件工具类

这类软件用来办理安全性或兼容性问题,以及在线软件开发,如文档转换工具、安全扫描和分析工具、合规性查抄工具及线上网页开发等。
随着因特网进一步延伸到世界各地,带宽和网速进一步改善,以及云服务提供商通过近距离部署分支云端,从而进一步低落网络延时,可以预计,可以大概云化的软件种类将越来越多。但是无论如何,下面三类软件不适合作为公共 SaaS 云服务出租。
不适合作为公共 SaaS 云服务出租的软件

1)及时处理软件

比如飞行控制体系、工厂作业机器人控制等,这类软件要求任务完成时间非常精准(甚至到达微秒级)。如果云化,单单横亘在 SaaS 云端与消费者之间的网络延时就是一个难以承受的不可控因素,更不要说其他因素了。
2)时时产生并处理大量消费者数据的软件

诸如视频监控、环境信息收集处理等时时产生并要处理大规模的数据信息(可能每秒达 GB 级)的软件,在现在和未来几年内的因特网宽带条件下,不适合云化,由于如此大规模的数据很难及时传输到 SaaS 云端举行处理。
3)关键软件

这类软件如果运行异常,将会导致人员伤亡或者重大财产丧失。为了进步这类软件的可靠性,最紧张的方法是低落软件的复杂度——软件本身的复杂度和运行环境的复杂度,由于越简单就越可靠。而 SaaS 云服务环境包罗着复杂的软/硬件栈(9 层的 IT 体系),以及不可预测的网络带宽、延时、丢包因素,绝对不合适云化此类关键软件并以公共 SaaS 云服务模式交付给用户利用。
针对私有云或者社区云,如果云端就在本地,且消费者通过局域网接入云端,那么上面三类软件也可以 SaaS 模式部署。
4. 与传统的软件运行模式相比,SaaS 模式具有的优点:
1)云终端少量安装或不用安装软件

直接通过欣赏器访问云端 SaaS 软件,非常方便且具备很好的交互体验,消费者利用的终端设备上无须额外安装客户端软件。
配置信息和业务数据没有存放在云终端里,以是不管用户何时何地利用何种终端操纵云端的软件,都能看到一样的软件配置偏好和一致的业务数据。云终端成了无状态设备。
2)有效利用软件许可证

软件许可证费用能大幅度低落,由于用户只用一个许可证就可以在不同的时间登录不同的计算机;而在非 SaaS 模式下,必须为不同的计算机购买不同的许可证(纵然计算机没被利用)——过度配置许可证征象。
另外,专门为保护软件产权而购置的证书管理服务器也不用买了,由于在 SaaS 模式下,软件只运行在云端,软件开发公司只跟云服务提供商打交道并举行软件交易结算即可。
3)数据安全性得到进步

对于公共云和云端托管别处的其他云来说,意味着 SaaS 型软件操纵的数据信息存储在云端的服务器中,云服务提供商大概把数据打散并把多份数据副本存储在多个服务器中,以便进步数据的完整性,但是从消费者的视角看,数据被会集存放和管理。
以上那么做有一个明显的好处,那就是云服务提供商能提供专家管理团队和专业级的管理技术和设备,如合规性查抄、安全扫描、异地备份和灾难规复,甚至是建立跨都会双活数据中央。当今大的云服务提供商可以大概使数据安全性和应用软件可用性到达 4 个“9”的级别。
对于云端就在本地的私有云和社区云来说,好处类似于公共云,但是抗风险能力要差一些,除非对大的不测变乱提前做好预案,如为应对天灾(地动、洪水等)人祸(火灾等),建立异地灾备中央。另外,无处不在的网络接入,使人们再也不用复制数据并随身携带,从而避免数据介质丢失或者被盗。数据会集存放和管理尚有利于人们分享数据信息。
4)有利于消费者摆脱 IT 运维的技术泥潭而专注于本身的焦点业务

SaaS 云服务消费者只要租赁软件即可,而无须担心底层(基础设施层、平台软件层和应用软件层)的管理和运维。
5)消费者能节省大量前期投资

消费者不用装修机房,不用建设计算机网络,不用购买服务器,也不用购买和安装各种操纵体系和应用软件,这样就能节流成百上千万元的资金。
众所周知,在非云计算模式下,这些巨额的前期投资在一到两年的时间内是不会产生任何效益的,由于一个中等规模的 IT 体系建设工期就要几年的时间——包括机房选址和装修,网络设备采购和综合布线,机器设备采购、安装和调试,软件部署、测试和转产上线等。
但是 SaaS 云服务也给人们带来了新的挑战,如完全依赖网络、跨因特网对安全防范措施要求更高、云端之间的数据移植性不够好、租户隔离和资源利用服从二者之间需要综合均衡思量(详见教程反面章节“租户隔离”的相关内容)等。
SaaS 云服务的实际应用

1)电子邮件和在线办公软件

用于处理邮件、文字排版、电子表格和演示文档的应用软件,如谷歌邮箱(http://mail.google.com)、网易邮箱(http://mail.163.com/)、微软 Office 365 在线办公、谷歌在线文档(https://docs.google.com)等。
2)计费开票软件

用于处理客户有关利用和订阅产品及服务所产生的账单。
3)客户关系管理体系(CRM)

功能涵盖从客户呼叫中央到贩卖自动化的各种应用程序。
为了做好运维口试路上的助攻手,特整理了上百道 【运维技术栈口试题集锦】 ,让你口试不慌心不跳,高薪offer怀里抱!
这次整理的口试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行口试需要,还实用于想提升进阶跳槽加薪的运维朋友。

本份口试集锦涵盖了


  • 174 道运维工程师口试题
  • 128道k8s口试题
  • 108道shell脚本口试题
  • 200道Linux口试题
  • 51道docker口试题
  • 35道Jenkis口试题
  • 78道MongoDB口试题
  • 17道ansible口试题
  • 60道dubbo口试题
  • 53道kafka口试
  • 18道mysql口试题
  • 40道nginx口试题
  • 77道redis口试题
  • 28道zookeeper
总计 1000+ 道口试题, 内容 又全含金量又高


  • 174道运维工程师口试题
   1、什么是运维?
    2、在工作中,运维人员经常需要跟运营人员打交道,叨教运营人员是做什么工作的?
    3、现在给你三百台服务器,你怎么对他们举行管理?
    4、简述raid0 raid1raid5二种工作模式的工作原理及特点
    5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
    6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
    7、Tomcat和Resin有什么区别,工作中你怎么选择?
    8、什么是中间件?什么是jdk?
    9、讲述一下Tomcat8005、8009、8080三个端口的寄义?
    10、什么叫CDN?
    11、什么叫网站灰度发布?
    12、简述DNS举行域名剖析的过程?
    13、RabbitMQ是什么东西?
    14、讲一下Keepalived的工作原理?
    15、讲述一下LVS三种模式的工作过程?
    16、mysql的innodb如何定位锁问题,mysql如何减少主从复制耽误?
    17、如何重置mysql root密码?
  网上学习资料一大堆,但如果学到的知识不成体系,碰到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份体系化的资料的朋友,可以点击这里获取!
一个人可以走的很快,但一群人才气走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交换、学习资源、职场吐槽、大厂内推、口试辅导),让我们一起学习成长!
   12、简述DNS举行域名剖析的过程?
    13、RabbitMQ是什么东西?
    14、讲一下Keepalived的工作原理?
    15、讲述一下LVS三种模式的工作过程?
    16、mysql的innodb如何定位锁问题,mysql如何减少主从复制耽误?
    17、如何重置mysql root密码?
  网上学习资料一大堆,但如果学到的知识不成体系,碰到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份体系化的资料的朋友,可以点击这里获取!
一个人可以走的很快,但一群人才气走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交换、学习资源、职场吐槽、大厂内推、口试辅导),让我们一起学习成长!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

诗林

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表