Article / 文章中心

使用云服务的挑战:错误架构意味着僵化和失败

发布时间:2022-03-17 点击数:104

云服务的迁移工作是非常巨大的。但不幸的是,我们往往会通过之前使用内部部署的狭隘经验来看待和理解云服务。大多数公司将业务迁移到云上,是为了能够发掘新的商业机会。但许多公司之所以迁移的步履蹒跚,是因为他们仍然使用了适用于内部部署的架构。这种架构会导致在云上部署时,往往会过度利用某一部分的资源,而对另一部分的资源利用不足。而一个创新和稳健的架构通常需要均衡和全面的使用资源。

编辑搜图

想象一下,你的IT业务运行在公司地下室的服务器上。如果只是把这些服务器搬到办公室的一楼会给你的生意带来新的机会吗?当然不会。将服务器转移到云端可能会为您节省一些资金,但这肯定不会让您有更进一步的发展。关于云服务,首先也是最重要的一点是,上云不是一个部署位置的迁移,而是一个全新的架构模型。构建云服务最需要的是心态的改变,而不是位置的改变。

云服务与内部部署架构有什么不同?

在十年前,内部部署架构是大多数人的共同参照系,也是我们理解和解释云的唯一方式。在今天,仍然通过传统架构来理解云是过时和有害的,传统架构已经无法让我们更好的发挥云服务的力量了。今天我们可以参考Netflix来设计我们的云服务架构,而不是继续参考那些传统架构。同时我们必须更加关注两者的差异,而不是其相似之处。

在内部部署架构时代,我们可以使用的服务和产品是有限的,因为我们使用的每个服务和产品都需要许可证(更不用说维护大量的各种服务是不可行的)。在云计算时代,我们可以管理大量的、面向任务的产品和服务,这些资源都是按量付费的,因此没有入门成本。

接下来的一个差异可能会更加触动您。下面的屏幕截图是Azure中一个名为App Service 的PaaS服务。通过这个服务您可以部署Web业务。该服务提供了一系列开箱即用操作功能列表(例如,弹性伸缩、备份、监控、身份验证、API管理)。当然您也可以在VM中手动部署Web服务器,但是您需要思考,在手动部署的Web服务器上实现所有这些功能需要付出多少努力?即使真的实现了这些功能,要让这些虚拟机和Web服务器保持最新状态并得到良好管理,又需要付出多少努力?

编辑搜图

不单是App服务,事实上Azure还提供了数十种的功能非常全面,开箱即用的PaaS(或Serverless)服务。通过使用这些云原生和面向任务的服务,您不要浪费时间和资源来构建和维护基础设施,可以将注意力专注于开发业务解决方案上。

云服务的挑战:使用哪种服务?

一个令人不安的事实是:大多数组织都知道云服务与内部部署架构的不同,他们中的大多数也知道两者主要的区别。然而,他们并没有使用更新,更好的架构。这是因为大多数组织都面临一个同样的挑战:在云厂商提供的众多服务中,哪一种才是最适合具体业务场景的?如果有太多的选择,反而会导致开发人员和架构师陷入决策困难。为了避免决策困难,技术人员往往会倾向于使用最熟悉的架构。对于习惯于基于内部部署架构构建的组织来说,这通常意味着继续选择旧的技术栈(VMs/容器编排集群),而不考虑其他选择。

如何在数十个云服务之间选择确实是一个艰难的挑战(在撰写本文时,Azure有400多个不同的服务,每个服务可能有数十个内置功能)。然而这个挑战仍然是值得面对的。这是因为,如果您不解决这个问题,您就需要面对如何让云服务运行得像内部部署环境的问题。

解决第一个问题(使用哪种服务)可以有效地释放云服务的力量,而解决第二个问题只会让您在传统架构中陷得更深。使用云服务的挑战是真实存在的,但从长远来看,解决它会给您带来非常好的回报。我多次看到,在云上使用了错误架构,往往会很快达到性能的极限,而在错误的架构上进行进一步的开发,则会导致对业务的投资变得低效甚至失败。

如何解决上云的挑战

我不知道是否有灵丹妙药可以完美地解决上云的挑战,但是下面这些建议可以帮助你:

  • 使用参考体系架构:下面是Azure参考体系结构。当你开始使用云服务时,这些参考架构将有助于为你的需求找到合适的云服务。

  • 让更多团队参与进来:首席信息官(或任何个人)了解IT与之相关的全部知识的日子已经一去不复返了。现代化的云服务提供了许多低代码/无代码选项,让更多的员工(技术人员和非技术人员)参与IT解决方案。这可以让众多非技术人员也成为创造创新解决方案的巨大力量。

  • 忘记内部部署模型:如果你在上云的过程中看到的仍然是一个一个的VM、vNet、存储和防火墙等资源,那么不管你在云解决方案上付出了多少努力,最终你还是会得到一个内部部署模型的解决方案,只不过它可能位于云上而已。

最后,我不想忽略上云带来的节约成本的重要性,但即使业务部署迁移的场景中,如果需要将节约成本发挥到最大,也只能通过采用云服务架构模型来实现:在不需要资源时销毁资源,在需要时重新创建资源,并按需扩展资源。总之,上云不单是一个部署位置的变化,而是一个全新的架构模型。