正如一位明智的云计算架构师曾经说过的那样,“云计算有大量的问题需要解决。”云计算使大规模运行应用程序和服务变得更加容易。然而,云计算也带来了自己的问题。
一方面,企业如果回到内部部署时代,一些失控的代码只会导致性能下降或中断。而云计算平台的成本也居高不下。
虽然使用Amazon Kinesis或Azure CosmosDB或Google Cloud Bigtable都非常容易,但通常容易被锁定。虽然原始基础设施服务的定价随着时间的推移而下降,但云计算提供商的定价总体上更加稳定。
而且,在所有这些复杂性和一堆实例中,企业应该保持事情的稳定和安全?为什么Kubernetes配置这么长?
与其相反,行业专家询问了负责运行互联网上一些最关键的基于云的服务的人员他们面临哪些问题,以及他们如何解决或缓解这些问题。
成本管理
还记得人们认为AWS便宜的时候吗?Coveo公司技术高级副总裁兼联合创始人Marc Sanfaçon说,“当实际上拥有位于本地的硬件时,就可以使用它。你为此付出了代价。你支付电费,然后你想用多少就用多少。”
Sanfaçon继续说道,“但是当你拥有像我们这样拥有200多名开发人员的公司时,企业的一些政策规定他们必须获得授权才能购买新手机、桌子或椅子。但他们实际上可以转身进入我们的AWS控制台并启动一台新机器,该机器每小时将花费公司25美元,然后他们将其运行一个月。到了月底,就会面临高昂的成本。”
现在,Coveo公司在无人工作时(例如晚上8点)关闭集群或实例。到早上6点和周末。但是,他们必须考虑到那个在凌晨2点醒来并开始工作的开发人员。
Coveo已经有人将75%的时间用于云成本优化。然而,Sanfaçon注意到一个新兴领域的FinOps公司,其产品有助于管理和优化成本。Sanfaçon提到Cloudability和CloudHealth作为可用于控制云支出的工具示例。
保持独立于特定于云的服务
Sanfaçon分享了Coveo解决的另一个云计算问题:在Amazon的服务出现故障时保持Coveo的服务正常运行。
“就在黑色星期五之前,AWS与Kinesis发生了两起重大事件,这是[Coveo]使用的服务之一,也是AWS内许多其他服务的支柱服务之一,”Sanfaçon指出。这次中断并未影响Coveo的主要服务,但确实影响了他们加入新组织和记录某些类型事件的能力。Coveo是一家搜索公司,黑色星期五前后的几周是许多电子商务客户的“出发时间”。
Sanfaçon考虑托管Coveo自己的流媒体服务,但与Amazon Kinesis中断一样令人不安的是,他质疑Coveo是否能够以比AWS更长的正常运行时间经济高效地运行更好的消息传递服务。即使Coveo可以,那会是对资源的有效利用吗?
Sanfaçon指出,另一个考虑因素:尽管只使用来自云服务提供商的服务有很多好处,但这意味着他们不能只是转移到另一个提供商,如谷歌云或微软Azure。
一个可能的解决方案是使用AWS的托管Kafka。然后,如果出现问题,Coveo可以直接转移到Azure的托管Kafka或Confluent的GoogleCloud上托管的Kafka。
云计算独立确实是有成本的,因为运行Amazon Kinesis比运行Amazon托管的Kafka便宜。尽管如此,也有一些好处——尤其是在黑色星期五之前,在大流行期间出现问题,并且您是许多电子商务网站的搜索骨干。
MariaDB SkySQL产品管理副总裁Saravana Krishnamurthy同样建议不要依赖任何特定于云的东西。“如果你的解决方案或任何其他API中内置了RESTAPI,请确保所有通信都通过那些独立于云的API,”Krishnamurthy说。“这样一来,当您从Amazon迁移到Google或Azure时,您实际上就有了一种更好的方式来迁移您的应用程序和数据。”
多云的云计算提供商差异
Cockroach Labs产品营销副总裁Jim Walker指出,云提供商所带来的挑战都略有不同。Cockroach Labs在AWS和Google Cloud上构建了Cockroach Cloud数据库服务,并从这些差异中学到了很多。
Walker说,“它们基本上是完全不同的,并为我们创造了重要的工作来获得‘正确’的体验,”容器和Kubernetes确实帮助我们简化了一些复杂性,但我们仍然需要以非常不同的方式考虑这两个平台。”他提供了一些细节:
例如,每个云中的Kubernetes托管服务都非常不同,网络复杂性也完全不同。我们使用负载均衡器的方式是不一样的。此外,一种允许我们自定义和设置IOPS,另一种则不允许。当我们为客户提供VPC[Virtual PrivateCloud]对等功能时,每个功能(AWSPrivateLink与vanilla)中的方法也完全不同。云提供商具有巨大的价值,但我们确实与每个都有很多关系。
云安全
MariaDB的Krishnamurthy还强调了云中网络安全的重要性。“我们不希望一个客户的流量干扰另一个客户,”克里希那穆尔蒂说。“因此,当客户需要虚拟私有云时,他们希望将流量与公共网络和其他客户隔离开来,我们提供VPC作为隔离它们的一种方式。”
但是,当有人在ActiveDirectory上进行标准化并在VPC之间进行身份验证时,这可能会很复杂。这可能需要对系统之间的角色进行一些艰巨的配置和映射策略。
复杂性、配置和合规性
即使配置几台服务器并保持它们的一致性也是一个挑战。Devops承诺会简化我们的操作和部署问题,但配置会出现偏差。此外,当配置存在于一系列脚本中并可能应用于数百台服务器时,很难看出“谁”更改了配置。对于某些行业,尤其是金融服务行业,缺乏审计跟踪对于合规性而言是一个真正的问题。
一组称为GitOps的新技术和方法提供了一种解决方案。顾名思义,GitOps将版本控制工具Git与devops结合在一起。然而,GitOps远不止这些。它还在测量漂移时使配置声明性。此外,Git维护审计跟踪。那么谁关闭了安全性呢?你可以通过查看repo来回答这个问题。
引用一位臭名昭著的云架构师的话,“Moserversmoquestions”。尽管如此,您仍然可以通过FinOps保持成本效益,通过GitOps应对复杂性,通过保持多云来防止您的软件因单一供应商中断而屈服,并通过在您自己的VPC中隔离您的服务来维护系统的安全性和隐私性。
感觉特别的日子已经一去不复返了,因为使用CVS来检查Unix配置文件——每个这样做的Unix管理员都感到特别。在这个多云的世界里,人们有很多服务器问题,但也有更好的工具。