云计算
什么是云计算?
云计算是指通过互联网按需访问计算资源 - 应用、服务器(物理服务器和虚拟服务器)、数据存储、开发工具和网络功能等等,这些资源托管在由云服务提供商(或 CSP)管理的远程数据中心内。 CSP 提供这些资源时会按月收取订阅费用,或者按使用量收费。
与传统内部部署 IT 相比,并根据您选择的云服务,云计算有助于实现以下各项:
- 降低 IT 成本: 通过采用云,您可以避免因购买、安装、配置和管理自己的内部基础架构而引发的一部分或大部分成本,并卸下相关工作负担。
- 提高敏捷性并缩短价值实现时间: 借助云,您的企业可以在几分钟内开始使用企业应用,而不必耗费几周或几个月的时间等待 IT 人员回应请求、购买和配置支持硬件以及安装软件。 云还使您能够为特定用户(特别是开发人员和数据科学家)赋能,帮助他们实现软件和支持基础架构。
- 更轻松、更经济有效地进行扩展:云提供了灵活性,您不必在慢速运行期间购买过多闲置不用的容量,而是可以随意伸缩容量,自如应对流量的峰值和低谷。 您还可以利用云提供商的全球网络,使您的应用距离世界各地的用户更近。
“云计算”一词还指运作云环境的技术。 这包括某种形式的 虚拟化 IT 基础架构 - 服务器、操作系统软件、网络和其他使用特殊软件抽象化的基础架构,以便可以合并和划分 IT,而与物理硬件边界无关。 例如,单个硬件服务器可以分为多个虚拟服务器。
虚拟化使云提供者能够最大程度地利用其数据中心资源。 意料之中的是,许多公司都为其内部基础架构采用了云交付模式,这样一来,与传统 IT 基础架构相比,他们便能够最大程度实现利用率并节省成本,同时还能为最终用户提供相同的自助服务和敏捷性。
如果您在家或工作时使用计算机或移动设备,那么几乎可以肯定的是,您每天都在使用某种形式的云计算,无论是像 Google Gmail 或 Salesforce 一样的云应用、Netflix 之类的流媒体,还是像 Dropbox 这样的云文件存储。 据最近的调查显示,如今 92% 的企业都使用云(链接位于 IBM 外部),并且其中大多数企业都计划在明年加大使用力度。
云计算服务
IaaS(基础架构即服务)、PaaS(平台即服务)和 SaaS(软件即服务)是云服务的三种最常见的模式,企业同时使用这三种云服务的情况并不少见。 但是,这三者之间往往会发生混淆,下面介绍了每种服务所包含的内容:
SaaS(软件即服务)
SaaS 也称为基于云的软件或云应用,是在云端托管的应用软件,您可以通过 Web 浏览器、专用桌面客户端或者与桌面或移动操作系统集成的 API 来访问和使用该软件。 在大多数情况下,SaaS 用户都会按月或按年支付订阅费用;一些提供商可能会根据您的实际使用情况提供“按使用量付费”定价模式。
除了云所带来的节省成本、缩短实现价值的时间和可扩展性方面的优势外,SaaS 还提供了以下优势:
- 自动升级:借助 SaaS,只要提供商一添加新功能,您便可以充分利用这些功能,而不必统筹安排内部升级事宜。
- 防止数据丢失:由于应用数据位于云端,因此使用该应用时,即使设备崩溃或损坏,您也不会丢失数据。
SaaS 是当今大多数商业软件的主要交付模式,目前已有数十万的 SaaS 解决方案可用,从最集中的行业和部门应用到功能强大的企业软件数据库和 AI(人工智能)软件,简直应有尽有。
PaaS(平台即服务)
PaaS 为软件开发者提供随需应变的平台 - 硬件、完整的软件栈、基础架构,甚至是开发工具,用于运行、开发和管理应用,而不会因在内部维护该平台而引发成本,带来复杂性和不灵活等问题。
借助 PaaS,云提供商可以在其数据中心托管一切,包括服务器、网络、存储、操作系统软件、中间件和数据库等。开发人员只需从菜单中进行选择,即可启动所需的服务器和环境来运行、构建、测试、部署、维护、更新和扩展应用。
如今,PaaS 通常围绕容器而构建,这是一种虚拟化的计算模型,从虚拟服务器的基础上又向前迈出了一步。容器可对操作系统进行虚拟化,使开发人员能够只使用在任何平台上运行应用所需的操作系统服务来打包应用,而不必进行修改,也无需使用中间件。
Red Hat OpenShift 是围绕 Docker容器和 Kubernetes而构建的流行 PaaS,Kubernetes 是一种开源容器编排解决方案,可自动为基于容器的应用执行部署、扩展、负载均衡等。
常见 PaaS 方案
组织通常将 PaaS 用于以下情形:
开发框架。PaaS 提供了一个框架,开发人员可以在其基础上开发或自定义基于云的应用程序。与创建 Excel 宏的方式类似,PaaS 让开发人员能够通过内置软件组件创建应用程序。包含了可扩展性、高可用性和多租户功能等云功能,减少了开发人员必须完成的代码量。
分析或商业智能。PaaS 中提供的工具服务使组织能够分析和挖掘其数据、得出的见解和模式并预测结果,从而促进预测、产品设计决策、投资回报及其他业务决策。
其他服务。PaaS 提供商可提供用于增强应用程序的其他服务,如工作流、目录、安全和安排。
IaaS(基础架构即服务)
IaaS 通过互联网在按使用量付费的基础上,提供对基本计算资源的按需访问,这些资源包括物理和虚拟服务器、网络和存储。 IaaS 使最终用户能够根据需要扩展和缩减资源,减少对高额前期资本支出或不必要的内部部署或“自有”基础架构的需求,以及为适应周期性的峰值使用而过度购买资源的需求。
与 SaaS 和 PaaS (甚至是更新的 PaaS 计算模式,例如容器和无服务器)相反, IaaS 为用户提供了对云端计算资源的最低级别的控制。
IaaS 是在 21 世纪 10 年代初出现的最流行的云计算模式。 虽然它仍然是多种类型工作负载的云模式,但 SaaS 和 PaaS 的使用率正在以更快的速度增长。
无服务器计算
无服务器计算也可以简称为无服务器,这种云计算模式可以将供应、扩展、调度、修补等各种后端基础架构管理任务卸载至云提供商,使开发者能够将全部时间和精力都集中在特定于其应用的代码和业务逻辑上。
此外,无服务器仅按请求运行应用代码,并根据请求数自动扩展和缩减支持的基础架构。 借助无服务器计算,客户只需为运行应用时所使用的资源付费,而从不需要为空闲容量买单。
FaaS(函数即服务)通常会与无服务器计算相混淆,而它实际上只是无服务器的一个子集。 FaaS 支持开发人员执行部分应用代码(称为函数)来响应特定事件。 云服务提供商会在执行代码时,实时自动提供除代码外的所有内容(物理硬件、虚拟机操作系统和 Web 服务器软件管理),并在执行完成后立即收回。在开始执行时即开始计费,并在执行停止时也一道停止。
无服务器函数
无服务器功能使用事件驱动的模型,利用触发器自动执行代码以响应事件或绑定,无缝集成额外服务,从而加速开发。按执行计费的亚秒级计费模型,仅对执行代码花费的时间和资源计费。
无服务器 Kubernetes
开发人员将自己的容器变为由 Kubernetes 协调的完全托管群集,该群集可在变化剧烈的工作负载上流量突变时自动缩放。
无服务器工作流
无服务器工作流以低编码/无编码的方式简化组合任务的协调。开发人员可继承不同的(云或本地)服务,而无需编写交互、维护纽带代码或学习新的 API 或规范。
无服务器应用程序环境
通过无服务器应用程序环境,后端和前端都由完全托管的服务承载,这些服务奖处理缩放、安全性和合规性要求。
无服务器 API 网关
无服务器 API 网关是无服务器后端服务的中心化、完全托管的入口点。它让开发者能够以全球规模发布、管理、保护和分析 API。
云计算的类型
公有云
公有云是一种云计算类型,云服务提供商在此通过公共互联网向用户提供各种计算资源,从 SaaS 应用到单个虚拟机 (VM)、裸机计算硬件,再到完整的企业级基础架构和开发平台,一应俱全。这些资源可能是免费访问的,也可能会根据基于订阅或按使用量付费的定价模式出售访问权限。
公有云提供商拥有并管理运行其客户工作负载的数据中心、硬件和基础架构且承担全部责任,它通常会提供高带宽网络连接以确保高性能,以及对应用和数据的快速访问。
公有云是一种多租户环境 - 云提供商的数据中心基础架构由所有公有云客户共享。在领先的公有云(如 Amazon Web Services (AWS)、Google Cloud、IBM Cloud、Microsoft Azure 和 Oracle Cloud)中,这些客户的数量可能达到数百万。
在过去几年里,全球公有云计算市场增长迅速,分析师预计这种趋势还将持续下去;据行业分析架构 Gartner 预测,到 2022 年底,全球公有云收入将超过 USD 3300 亿(链接位于 IBM 外部)。
许多企业都在将其部分计算基础架构移至公有云,因为公有云服务安全永续且易于扩展,可以灵活地进行调整以满足不断变化的工作负载需求。 由于客户只为自己使用的产品服务付费,这种高效率、低资源浪费率的承诺也吸引了一部分企业。 还有部分企业仍在试图减少在硬件和本地基础架构上的支出。
私有云
私有云是一种云环境,其中的所有云基础架构和计算资源都专用于一个客户,并且只能由一个客户访问。私有云将云计算的诸多优势(包括安全永续、可伸缩性和服务交付便捷性)与本地基础架构的访问控制、安全性和资源自定义结合在一起。
私有云通常以内部部署方式托管在客户的数据中心内。但私有云也可以托管在独立的云提供商的基础架构上,或者在位于非现场数据中心内的租用基础架构上构建。
许多公司都选择私有云而摒弃公有云,因为私有云是满足其合规要求的更简便方法(或唯一方法)。其他人之所以选择私有云,是因为他们的工作负载涉及机密文档、知识产权、个人身份信息 (PII)、医疗记录、财务数据或其他敏感数据。
通过根据云原生原则构建私有云架构,企业可以灵活而轻松地将工作负载迁移至公有云,或者在混合云(请参阅下文)环境中随时运行它们。
混合云
混合云如同其名称所言,是公有云和私有云环境的结合。具体地说,理想情况下,混合云将企业的私有云服务和公有云连接到一个灵活的基础架构中,以便运行企业的应用和工作负载。
混合云的目标是混用公有云和私有云资源,并在它们之间进行一定程度的编排,这使企业能够灵活地为每个应用或工作负载选择最佳的云环境,并随着情况的变化在这两种云之间自由地移动工作负载 。 与仅使用公有云或私有云相比,这可帮助企业更加经济高效地实现其技术和业务目标。
多云和混合多云
多云是使用来自两个或多个不同云提供商的两个或多个云环境。 简单地来说,拥有多云环境可以只是使用一个供应商的电子邮件 SaaS 和另一个供应商的图像编辑 SaaS。 但当企业讨论多云时,他们通常是在谈论使用来自两个或更多领先公有云提供商的多种云服务,包括 SaaS、PaaS 和 IaaS 服务。在一项调查中,有 85% 的企业报告正在使用多云环境。
混合多云是将两个或多个公有云与一个私有云环境一起使用。
企业选择多云环境,既可以避免被供应商套牢的困境,可以选择更多服务,也可以访问更多创新成果。 但是,您使用的云越多(每种云都有自己的一套管理工具、数据传输速率和安全协议),环境的管理也就越加困难。多云管理平台通过中央仪表板提供跨多个提供商云的可见性,通过这个仪表板,开发团队可以查看其项目和部署,运营团队可以关注集群和节点,而网络安全人员则可以监控威胁。
云安全
传统上,安全问题一直是企业在考虑使用云服务(尤其是公有云服务)时所面临的一大障碍。而为了响应这一需求,云服务提供商所提供的安全性正在稳步超越内部部署的安全解决方案。
据安全软件提供商 McAfee 的研究显示,如今,52% 的公司在云端的安全性优于内部(链接位于 IBM 外部)。而据 Gartner 预测,到今年(2020 年),与传统数据中心内的工作负载相比,基础架构即服务 (IaaS) 云工作负载所遭遇的安全事件将会减少 60%(链接位于 IBM 外部)。
然而,维护云安全性要求具备不同于传统 IT 环境的程序和员工技能。一些云安全性最佳实践包括以下内容:
- 共同的安全责任: 通常,云提供商负责保护云基础架构,客户负责保护云中的数据,但明确定义私有和公有第三方之间的数据所有权也很重要。
- 数据加密: 不论是静态数据、传输中的数据还是使用中的数据,都应进行加密。 客户需要保持对安全密钥和硬件安全模块的完全控制。
- 用户身份和访问管理: 客户和 IT 团队需要充分了解网络、设备、应用和数据访问,并具有全面的可见性。
- 协作管理:IT、运营和安全团队之间适当的沟通和清晰易懂的流程,将确保实现安全且可持续的无缝云集成。
- 安全性与合规性监控:首先要了解适用于您所在行业的所有法规合规标准,并对所有互连系统和基于云的服务进行主动监视,以维护公有云、私有云和混合云环境之间所有数据交换的可见性。
云计算用例
25% 的企业计划明年将其所有应用迁移到云端,这看起来似乎云计算用例是无限的。但即使是对于那些不打算大规模转移到云端的公司来说,某些计划和云计算也是 IT 天堂中的绝配。
对于云而言,灾备和业务连续性始终是水到渠成的事,因为云提供了经济有效的冗余来保护数据免遭系统故障,以及在发生本地宕机或灾难时恢复数据和应用所需的物理距离。 各大公有云提供商都提供了灾备即服务 (DRaaS)。
云计算的目标就是涉及高速存储和处理海量数据的任何内容,并且它们所需要的存储和计算能力超出了大多数企业可以或希望购买并在内部部署的范畴。示例包括:
对于采用敏捷方法或 DevOps(或 DevSecOps)来简化开发过程的开发团队来说,云提供了随需应变的最终用户自助服务,避免一些运营任务(如启动开发和测试服务器)成为开发瓶颈。
关于作者
Sai Vennam 是 IBM 的开发技术推广工程师,拥有 Kubernetes、OpenShift 和受管云产品的专业知识。 他热衷于将开发人员与技术相关联,帮助开发人员取得成功。 他还有一项爱好,就是利用 Raspberry Pis 和无服务器技术实现家庭自动化。
Twitter: @birdsaiview(链接位于 IBM 外部)
博客: https://www.ibm.com/cloud/blog/sai-vennam
南来地,北往的,上班的,下岗的,走过路过不要错过!
======================个性签名=====================
之前认为Apple 的iOS 设计的要比 Android 稳定,我错了吗?
下载的许多客户端程序/游戏程序,经常会Crash,是程序写的不好(内存泄漏?刚启动也会吗?)还是iOS本身的不稳定!!!
如果在Android手机中可以简单联接到ddms,就可以查看系统log,很容易看到程序为什么出错,在iPhone中如何得知呢?试试Organizer吧,分析一下Device logs,也许有用.