草庐IT

云计算有哪些好处和优势?

张小峰 2023-03-28 原文
拥有内部部署数据中心的企业有时不愿意将其IT业务转移到云端。此外,一些初创公司希望自己购买功能强大、价格昂贵的服务器,这样他们就可以完全控制自己的IT基础设施。

尽管有这些最初的愿望,但需要大量计算能力的企业应该知道云计算的好处,例如高可用性、节省成本、环境可持续性。

高可用性

高可用性系统是指停机时间可以忽略不计的系统。停机时间通常以秒计算,而不是分钟或小时,因为基于云计算的服务很少停机。内部部署数据中心停机的常见原因包括:

  • 停电
  • 自然灾害
  • 硬件故障
  • IT部门人手不足
  • 人为破坏
咨询机构JBC公司的架构师和管理负责人John Breth说:“将企业的服务转移到云端的主要好处之一是在高度可用的架构中拥有接近实时的部署能力。”

AWS、Microsoft Azure、谷歌云和其他云计算平台提供服务水平协议(SLA),以保证其大部分服务的正常运行时间为99.95%。通过额外的配置,例如在IBM云中使用多区域区域或在Azure和AWS中使用多个可用性区域,可以提高安全性。

可靠性

可靠性描述了服务执行其承诺任务的效果。它确保高可用性数据库不会随机损坏记录或删除消息。云计算服务提供商定期升级、更新、打补丁和测试他们的系统,以确保他们的服务如承诺的那样运行。它们进一步保证了服务在服务水平协议(SLA)中的可靠性。

例如,Azure本地冗余存储、谷歌云存储和Amazon S3 Glacier DeepArchive都承诺为其维护的数据提供11个9的持久性。这是一个99.999999999%的可靠性承诺。

AWS首席技术官Jeff Barr说:“如果用户在我们这里存储了1万个文件,其可靠性相当于平均每1000万年左右才会丢失一个文件。”

可扩展性

当需求超过容量时,内部部署工作负载会发生什么?为了扩展内部部署数据中心,需要购买额外的服务器,采用更多的CPU,向现有系统添加内存,扩展网络,并希望升级的基础设施能够跟上需求。采取这些步骤代价高昂、费时且容易出错。

如果需要更强的处理能力,可以向AWS上的EC2实例添加更多的虚拟CPU。或者只需在阿里巴巴的ECS实例中添加虚拟内存。此外,如果Kubernetes集群需要更多的吞吐量,以通过几次单击添加新的副本集。

在云计算应用中,用户只需点击按钮,就可以在几分钟内扩展其架构。

弹性

扩展的额外硬件可以满足暂时的需求高峰,但当需求下降时会发生什么呢?可以根据需要扩展基于云的服务。

Breth:“与购买硬件所需的资本费用相比,能够根据当前需求向外扩展或向内扩展的能力可以降低运营费用,而购买硬件所需的资本费用可以满足用户的最大需求。”

例如,用于Kubernetes的Oracle云基础设施容器引擎将跨虚拟机扩展云原生应用程序,它可以根据需要停止和启动。AWS提供了一个专门的自动扩展工具,可以帮助企业动态调整EC2实例、Aurora DB和NoSQL数据库的大小。

调整内部部署基础设施的规模几乎是不可能的,因为必须构建一个能够满足年度需求高峰的系统。例如,一个具有高度季节性业务的企业在业务清淡的月份可能会有价值数百万美元的硬件和软件处于闲置状态。这不是一个理想的投资配置。

敏捷性

高效的开发人员需要试验新软件,并针对不同的服务器配置测试他们的更改。即使对最有经验的开发人员来说,这也是很耗时的。在云中,开发人员只需几秒钟就可以启动运行完全配置的应用程序堆栈的IBM Virtual Server或DigitalOcean Droplet。

开发人员喜爱的云计算好处之一是,它将他们从管理基础设施的耗时琐事中解放出来。

节约成本

在云计算中,容量规划不再是猜测。只需根据需要扩展或缩小,用户不必预先花费数百万美元购买软件许可证或主机服务器。而且不会遇到买了太多硬件的问题。通过自动扩展,始终拥有合适大小的环境。

此外,用户只需要为其所使用的资源付费。因为没有太大的前期支出,成本就变成了运营费用。此外,由于云计算的规模经济带来的成本效率,成本通常低于运行自己的内部部署数据中心所能达到的成本。

全球影响力

为了减少应用程序延迟,数据中心应该位于其用户附近。

AWS和Azure的数据中心遍布全球的六大洲,谷歌和IBM的数据中心则遍布五大洲。即时的全球覆盖是云计算最引人注目的好处之一,特别是对那些为全球客户提供服务的组织而言。

通过基于云的服务,用户可以将应用程序部署到全球任何地区,还可以使用世界各地的边缘位置,这些位置有能力缓存数据并进一步减少应用程序延迟。

靠自己的力量实现这种类型的全球影响力将是非常困难和昂贵的。在云平台中,应用程序的全球部署是即时的,而且相对便宜。

预认证合规性

在隐私、安全和规范标准等领域,很难获得政府和行业的合规认证。因此,预先认证的合规性是云计算可以为高度监管的行业带来的最大好处之一。

AWS、Azure、谷歌和IBM基于云的基础设施在许多领域都获得了预认证,包括以下领域:

  • 医疗保健。健康保险携带与责任法案(HIPAA)
  • 法律。刑事司法资讯处
  • 隐私。个人信息保护和电子文件法(PIPEDA)
  • 管理。国际标准组织(ISO)
  • 审计。系统及组织控制(SOC)
每个云供应商都维护其合规认证的公共列表。如果供应商引用了预先认证的行业标准,那么您可以在他们的云中运行应用程序。

即便如此,安全性和合规性要求云客户尽其所能。基于云的基础设施可以提供满足严格要求和标准的系统,但企业仍然必须了解适用于客户、行业、政府和法律系统的本地监管规则。

增强安全性

一些批评者认为,将数据和应用程序迁移到云端会带来安全风险,但事实并非如此。

以AWS为例。所有流经AWS全球网络的数据都是自动加密的。大多数AWS服务(如S3)提供加密所有静止数据的选项,因此如果数据存储设备被泄露,则无法破译其中的信息。

顶级云供应商提供了许多内置工具来监控安全不合规情况。例如,AWS配置、谷歌云资产清单和Azure安全控制监控跨项目的资产,并可以完成合规性检查。

内置加密选项、数据中心之间的强制加密以及帮助企业跟踪用户更改和识别不合规配置的各种工具在本地数据中心中都无法开箱即用。

自动化

AWS、Azure、谷歌Cloud和IBM的每个组件都带有API接口,使其完全可编程。开发人员可以使用Java、Python、JavaScript和C++编写的SDK创建、配置、查询和销毁基于云计算的资源。

这个内置的API接口允许开发人员执行以下操作:

  • 围绕基础设施的配置编写完整的代码。
  • 围绕人工任务编写程序。
  • 自动化复杂、高风险、易出错的任务。
使用云计算,用户可以自动执行困难的任务,如果执行不当,这些任务可能会威胁到数据中心的安全性。

环境可持续性

为数据中心供电需要资源:土地、水、能源,最重要的是人员。

当云计算提供商建立一个大型数据中心时,规模经济所创造的效率是单一公司难以达到的。

AWS声称,与客户自己的数据中心相比,客户在AWS云中使用的服务器减少了77%,电力减少了84%,太阳能和风能的混合能源清洁了28%。

人们通常不会认为AWS、Azure或谷歌Cloud是应对气候变化的领导者,但如果中小公司将其基础设施转移到云端,而不是运行自己效率较低的数据中心,这将对环境产生积极影响。

有关云计算有哪些好处和优势?的更多相关文章

  1. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  2. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  3. ruby - 如何计算 Liquid 中的变量 +1 - 2

    我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我

  4. ruby-on-rails - 您希望看到哪些 Rails 插件? - 2

    您认为可以作为插件很好地存在于您的Rails应用程序中必须实现的哪些行为?您过去曾搜索过哪些插件功能但找不到?哪些现有的Rails插件可以改进或扩展,如何改进或扩展? 最佳答案 我希望在管理界面中看到一个引擎插件,它提供了应用程序中所有模型的仪表板摘要,以及可配置的事件图表。 关于ruby-on-rails-您希望看到哪些Rails插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio

  5. ruby - 使用 Ruby,计算 n x m 数组的每一列中有多少个 true 的简单方法是什么? - 2

    给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in

  6. arrays - 计算数组中的匹配元素 - 2

    给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[0,0,5]和[0,5,5]将返回2的匹配项,因为有一个0和一个5共同;[1,0,0,3]和[0,0,1,4]将返回3的匹配项,因为0有两场,1有一场;[1,2,2,3]和[1,2,3,4]将返回3的匹配项。我尝试了很多想法,但它们都变得相当粗糙和令人费解。我猜想有一些不错的Ruby习惯用法,或者可能是一个正则表达式,可以很好地回答这个解决方案。 最佳答案 您可以使用count完成它:a.count{|e|index=b.index(e)andb.delete_at

  7. ruby - Ruby 1.9.1 中的 native 线程,对我有什么好处? - 2

    所以,Ruby1.9.1现在是declaredstable.Rails应该与它一起工作,并且正在慢慢地将gem移植到它。它具有native线程和全局解释器锁(GIL)。自从GIL到位后,原生线程是否比1.9.1中的绿色线程有任何优势? 最佳答案 1.9中的线程是原生的,但它们被“放慢了速度”,一次只允许一个线程运行。这是因为如果线程真的并行运行,它会混淆现有代码。优点:IO现在在线程中是异步的。如果一个线程阻塞在IO上,那么另一个线程将继续执行直到IO完成。C扩展可以使用真正的线程。缺点:任何非线程安全的C扩展都可能存在使用Thre

  8. ruby - 实现k最近邻需要哪些数据? - 2

    我目前有一个reddit克隆类型的网站。我正在尝试根据我的用户之前喜欢的帖子推荐帖子。看起来K最近邻或k均值是执行此操作的最佳方法。我似乎无法理解如何实际实现它。我看过一些数学公式(例如k表示维基百科页面),但它们对我来说并没有真正意义。有人可以推荐一些伪代码,或者可以查看的地方,以便我更好地了解如何执行此操作吗? 最佳答案 K最近邻(又名KNN)是一种分类算法。基本上,您采用包含N个项目的训练组并对它们进行分类。如何对它们进行分类完全取决于您的数据,以及您认为该数据的重要分类特征是什么。在您的示例中,这可能是帖子类别、谁发布了该项

  9. ruby-on-rails - 如何计算 Ruby/Rails 中 JSON 对象的数量 - 2

    Ruby中如何“一般地”计算以下格式(有根、无根)的JSON对象的数量?一般来说,我的意思是元素可能不同(例如“标题”被称为其他东西)。没有根:{[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]}根包裹:{"posts":[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]} 最佳答案 首先,withoutroot代码不是有效的json格式。它将没有包

  10. ruby - 如何计算自 Ruby 中给定日期以来的周数? - 2

    目标我正在尝试计算自给定日期以来周的距离,而无需跳过任何步骤。我更喜欢用普通的Ruby来做,但ActiveSupport无疑是一个可以接受的选择。我的代码我写了以下内容,这似乎可行,但对我来说似乎还有很长的路要走。require'date'DAYS_IN_WEEK=7.0defweeks_sincedate_stringdate=Date.parsedate_stringdays=Date.today-dateweeks=days/DAYS_IN_WEEKweeks.round2endweeks_since'2015-06-15'#=>32.57ActiveSupport的#weeks

随机推荐