草庐IT

上云尚未成功,“下云潮”已悄然来临?

科技云报到 2023-03-28 原文
云计算一直被视为是企业数字化转型的底座,很多企业都在通过加速数字化转型应对市场环境的动荡变化,一手抓降本增效,另一手也还在继续谋求突破式创新。

然而,经历这两年的疫情,活下去成为每一个企业的主线任务。

在有限的资源条件下,企业开始“集中力量办大事”,也更看重技术的投入和回报。不少企业也开始对云“下手”了,一场“下云潮”悄然而至。

1.下云潮来临?

行业里有句话叫做“上云容易下云难”,但即便是在“下云难”的情况下,还是有部分行业掀起一股下云的风潮。

从医疗行业来说,某医院在几年前将分院PACS系统迁至云上后,期间使用未达预期,2020年又将数据从云上迁移下来。

据该院信息中心人员透露,当时觉得云计算是一种趋势,而分院业务量不大,于是想通过分院来探索云模式,如果效果好,就在总院复制。

医院选择合作的是国内一家头部的云服务商,上云前大家的期待很高。

但上云之后问题来了。该医院曾遇到几次系统变慢的情况,为了寻找问题,他们先是排查网络,接着打电话去找云服务商,再找PACS系统厂商,最后还要检查本地系统……转了一圈,又找回来了,在这个过程中还要不停地协调,给医院的工作造成了很大麻烦。

坚持运营了5年,该医院决定将分院PACS系统“下云”,花钱将数据从云端迁移下来,重新用总院的系统进行覆盖。

另外一家公立医院也将互联网诊疗业务从云端迁移至了医院本地。

据该医院的信息部主任透露,互联网诊疗业务建设之初,是部署在云端。

当初设想是,云上部署一套,院内部署一套,数据定期转存到院内,但技术上有很多困难,一直没落实。

业务在云端运行了近半年,最后又重新开始搭建,经过半年多才把互联网诊疗业务部署到院内,包括交易数据、问诊记录等都转至院内存储。

对于“下云”的原因,概括起来主要有以下几点:

顾虑一、云端管理系统是否与业务适配?

不同行业不同企业针对业务都有着属于自己的要求,大多数企业的数据中心的应用程序都固有复杂性,并且涉及的数据量大,因此有的企业就会担心搬上云端管理能否与原有的程序相匹配,需不需要专业人员才能操作,后期维护是否麻烦等。

如果企业搬上云之后还因为与业务不匹配造成的经济损失,谁能负担得起呢?

顾虑二、企业数据是否会因安全风险而泄露?

企业上云意味着将一切资源与数据都要转移到“云端”上面,越来越多的企业相关敏感性信息也会存储在云数据中心。

因此很多企业管理者会考虑到一些安全漏洞会不会引发范围广、系统性的安全威胁?一些突发安全事件会不会导致整个云服务的危机?

顾虑三、性能和成本如何保证?

上云之后,如何让云服务的性能达到本地设备的性能值,减少延迟,并控制用云成本,对于很多企业来说也很重要。

根据Wanclouds在《2022年下半年云计算成本和优化展望》的最新报告中显示,81%的IT管理者表示,随着成本飙升和市场下行,他们的最高管理层已经指示他们要减少或不承担额外的云支出。

根据调研结果,39%的人已经决定将大量的云消耗和高性能工作负载迁移或留在本地,还有29%的人表示在2022年上半年由于价格贵而更换了公有云厂商。

此外,IBM 在2022年发布的《IBM 企业转型指数:云现状》中也反映了这一趋势:80%的企业已经考虑或正在考虑将已经部署到公有云上的工作负载迁回私有的基础设施。

中国信通院调研数据也显示,企业云优化治理的需求主要集中在 “用云成本如何优化管理”、“云上业务性能如何调优”、“上云后云平台业务发展可持续性较差”等三方面。其中,成本优化最为迫切,落地实施面临挑战。

2.谁不适合上云?

在“实用主义”主导的数字化趋势下,云计算这个“底座”要被撼动了吗?

过去业内经常听到企业说,自己每年要上几朵云,其实回过头来看,当时大家都是为了拥有而拥有。

但随着如今大环境的变化,成本压力、不确定性增加,企业确实变得更加理智和冷静,开始越来越多地关注上云过程中哪些与自己的核心业务价值挂钩。

就上云成本来说,多年来,各大厂商一直宣称公有云的成本要低于私有云和本地部署,但鲜有数据能够支持这种论断,多数还是基于供应商所提供的信息,而选择“下云”的企业也并不这么认为。

作为一家基于云服务的项目管理软件企业,Basecamp的上云历程已经超过十年,目前在筹划“下云”。

“对于像我们这样一家增长稳定的中型企业来说,租赁基础设施资源总体上看是笔糟糕的买卖”,Basecamp联合创始人David Heinemeier Hansson认为,云计算只在两种极端情况下大有裨益”:

一种情况是:应用程序极其简单且流量很低的情况,这时选择完全托管服务确实能摆脱大部分复杂性要素。

另一种情况则是:负载波动几乎毫无规律可言的。

具体来说,负载运行期间经常出现剧烈震荡或者极高的峰值,但基准资源需求却只相当于峰值的一小部分。

这种情况下,几乎很难判断应该部署多少服务器,因此,上云无疑是最好的选择。

“这两种情况都不再适用于今天的我们,也从未适用于Basecamp。所以如果继续坚持在云端运行,我们相当于既用不上云服务的亮点,又要承担几乎全部的成本,这完全是在浪费资源”,David Heinemeier Hansson指出。

David Heinemeier Hansson强调说,云服务商总喜欢搞一大堆专业术语,比如“按需计算”,听起来很酷,感觉比“租计算机”整整领先了一个世纪,但二者好像并没什么本质区别,只能说是他们的营销技巧非常高超。

此外,企业还要避免供应商锁定。过去企业采用云计算的一个重要出发点就是不喜欢集中式管理,不喜欢被锁定。

但是,如今企业突然发现,公有云也会锁定,而锁定则会给企业带来成本的增加,这里的成本很可能与私有设施不相上下,甚至更多。

3.理想看待上云

当然,企业在数字化转型过程中日趋理性,并不意味着一定要极端地抛弃云。

根据IBM商业价值研究院《混合云平台的优势》调研显示,采用全面混合多云平台技术及运营模式所实现的价值,是采用单一平台、单一云厂商所能实现价值的2.5倍。

换言之,混合多云或将成为企业平衡云计算投入和成本的那个关键“砝码”。具体而言,IBM 对2023年企业云转型给出了如下预测:

第一,越来越多企业会开始采用“主机+云”的模式,二者不再是排他的选择题,通过战略性地将云与主机结合,企业可以获得更优的创新、速度和安全优势;

第二,企业将实施全面安全策略,构建安全的生态系统,通过全面了解混合云环境中(本地、公共云或私有云、边缘)的数据,为未来的威胁(如量子安全挑战)做好准备;

第三,企业将更加重视合规,尤其是金融服务等高度受监管的行业,以及需要处理客户个人信息的企业,将更加专注于处理最关键的任务工作负载,确保数据受到保护;

第四,可持续性成为一个重要课题,企业将更加关注提高整个 IT 运营的能源效率,同时又不牺牲安全性或性能。

当然,混合云作为未来云计算的主流形态,这已经不是什么新鲜观点。

但是,由于混合多云架构带来的管理复杂性,不少企业在具体落地过程中也面临全新的挑战。

例如,很少有企业能够全面管理其混合云环境,以及随着更多云原生应用的出现,企业的开发和运维压力也上到新的台阶。

所以无论是下云也好,采用混合云也好,如何在经济“寒冬”这样的特殊环境下,在技术价值和技术投入之间找到一个相对的平衡点,才是企业决定是否上云、如何上云的关键。

有关上云尚未成功,“下云潮”已悄然来临?的更多相关文章

  1. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  2. ruby - 如何知道通过 ruby​​ 上传 ftp 是否成功? - 2

    下面的代码通过ftp上传文件并且它有效。require'net/ftp'ftp=Net::FTP.newftp.passive=trueftp.connect("***")ftp.login("***","***")ftp.chdir"claimsecure-xml-files"ftp.putbinaryfile("file.xls",File.basename("file.xls"))ftp.quit但是如何确定上传是否成功呢? 最佳答案 之后ftp.putbinaryfile("file.xls",File.basename("

  3. ruby-on-rails - 如何通过尚未保存的父关联访问 ActiveRecord 祖父关联? - 2

    我有一种情况,我想在保存父对象之前访问关联的祖parent。我可以想到几个hack,但我正在寻找一种干净的方法来完成此操作。以下面的代码为例说明我的问题:classCompany:departmentsendclassDepartment:departmentendcompany=Company.find(1)#=>dept=company.departments.build#=>empl=dept.employees.build#=>empl.company#=>Employee#companydelegatedtodepartment.company,butdepartmentis

  4. ruby-on-rails - 成功发送延迟作业电子邮件后更新用户表 - 2

    我是一个尝试使用delayed_job的NOOB。我想在使用延迟作业成功发送邮件后更新用户模型。发送邮件:UserMailer.delay.welcome_email(user)如果邮件发送成功,请执行以下操作:User.update_attributes(:emailed=>true)邮件发送成功后如何回调或触发? 最佳答案 您需要创建一个Job对象而不是调用#delay帮助程序。您可以使用successHook来执行回调。classWelcomeEmailJob 关于ruby-on-

  5. ruby-on-rails - Rails : Before process_action callback :authenticate_user! 尚未定义 - 2

    我正在创建一个包含设计的Rails应用程序。我正在尝试使用Ngrok将Twilio消息传递添加到我的站点,我使用了本教程:https://www.twilio.com/blog/2016/04/receive-and-reply-to-sms-in-rails.html我能够在控制台中打开Ngrok并获取他们为我的网址提供的网络ID。当我将url插入浏览器时,我不断收到此错误。我应该访问我自己的Rails本地应用程序。不知道怎么了。我在为ngrok制作的消息传递Controller中添加的内容:classMessagesController"reply"defreplymessage_

  6. ruby-on-rails - 仅当该表尚未加入时才可以加入 "dynamically"表吗? - 2

    我正在使用RubyonRails3.2.2,我想知道在范围方法中是否可以“动态”连接一个表,前提是该表尚未连接。那它,我有:defself.scope_method_name(user)joins(:joining_association_name).where("joining_table_name.user_id=?",user.id)end我想做如下的东西:#Note:thefollowingcodeisjustasampleinordertounderstandwhatImean.defself.scope_method_name(user)iftable_is_joined?

  7. ruby-on-rails - Bundle 不想安装 gem(尚未 checkout ) - 2

    我想在Rails服务器上运行Ruby,但某个gem不想安装。这个rails程序与ruby​​2.0不兼容,所以我想使用我安装的ruby​​1.9.3,但是我不能再bundle安装了...$bundleinstall#...Yourbundleiscomplete!Use`bundleshow[gemname]`toseewhereabundledgemisinstalled.$bundleexecrailssgit://github.com/goodtouch/jbuilder.git(atmaster)isnotyetcheckedout.Run`bundleinstall`firs

  8. ruby-on-rails - 使用 Stripe for rails 检查充电是否成功 - 2

    上下文:我正在使用Stripecheckout接受rails中的一次性付款。我有一个收费Controller,如下所示。我最初使用stripewebhook来监听charge.succeeded,但由于webhook的异步特性而遇到了一些问题。我已将业务逻辑移至Controller。如果客户收费成功,我会将客户和其他一些详细信息保存到数据库中。我的问题:此检查是否足以确保收费成功?ifcharge["paid"]==trueStripe::Charge.create的Stripe文档指出,“充值成功返回一个充值对象。如果出现问题,则引发错误。一个常见的错误来源是无效或过期的卡,或者可用

  9. ruby-on-rails - 有没有人用 Ruby 1.9.1 成功部署了 Rails 项目? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。上周我成功完成了我们公司所有应用程序从Ruby1.8.6到Ruby1.8.7的转换,包括本地和远程配置。从现在开始,开发不需要确保与Ruby1.8.6的向后兼容性。出于好奇,我尝试针对Ruby1.9.1运行几个项目的测试套件。正如预期的那样,我发现了一些与编码相关的问题,但当我发现诸如Rack::Link已知错误之类的低级不兼容性时,我真的很震惊。在这一

  10. ruby - 为什么 instance_eval 对 Proc 成功但对 Lambda 不成功? - 2

    我有以下类(class):classUsercode1=Proc.new{}code2=lambda{}define_method:testdoself.class.instance_eval&code1self.class.instance_eval&code2endendUser.new.test为什么第二个instance_eval失败并出现错误数量的参数(1代表0)错误? 最佳答案 instance_eval正在将self(User)生成给lambda。Lambda对其参数有特殊要求-方法也是如此-如果参数太少/太多,将引发

随机推荐