Observe 是一家提供可观察性云解决方案的公司,以帮助企业加速应用故障排查和问题解决的效率。公司成立于2017年9月,总部位于美国加利福尼亚州圣马特奥。到目前为止,Observe 已经在5轮融资中总共筹集了1.62亿美元。他们最近的一轮融资是在2023年10月5日,通过可转换票据融资筹集了5000万美元,并推出了新一代人工智能功能。
本篇内容是根据Observe官网的技术文章翻译整理,以下3点是NineData的数据库工程师对多云的思考:
- 多云是今天的现实,也是未来的趋势 (公共云基础设施用户中有86%正在实施多云策略);
- 多云环境下的数据管理成为新的需求,包括文章中提到的Observability;
- 云环境越来越复杂,既是困难,也是机遇。
什么是多云可观察性?它是一种令人兴奋的新的科技趋势,还是只是最新一轮的被技术观测和监控厂商的营销部门夸大的流行词?你可能已经猜到了,答案介于两者之间。就像科技中许多流行的流行词一样,它起源于组织所感受到的实际需求,但在不同的上下文中,它的含义也会有所不同。因此,如果使用了多个云,是否需要多云可观察性?如何实现多云可观察性?它与“常规”可观察性有什么不同?
简而言之,随着公共云成为主流,任何企业中使用多个云提供商的服务已经变得非常普遍。因此,“多云”一词应运而生。从领先的云提供商那里获得创新是件好事,但多云环境是一把双刃剑。企业最终使用多个云的原因有很多,同时操作这些云也带来了许多挑战。可观察性是一种方法,可以帮助解决一些操作上的挑战,使日常生活更加有序。这就是“多云可观察性”一词的由来。
如果我们要简洁地解释多云可观察性,我们会说它是这样的:让跨越多个公共云的服务变得可以观测,以减少发现和解决问题所需的时间。但是这个话题比这更复杂一些,了解多云可观察性是什么以及如何实现它是两个不同的事情。在这本电子书中,我们将介绍:
- 什么是多云,它是如何产生的
- 为什么多云需要可观察性,以及具体的考虑因素
- 如何从多云可观察性中受益
多云是什么?
在谈论多云可观察性之前,我们必须首先讨论多云。在这里,我们将定义多云,研究导致其被“采用”的催化剂,以及它如何为想要实现可观察性的组织带来挑战。
起初……混合云(Hybrid Cloud)出现了
在多云出现之前,有混合云。混合云通常指同时使用位于数据中心和公共云中的基础设施。有一段时间,混合云引起了一些争议,因为公司还没有习惯将重要的所有权或基础设施交给第三方。它已经成为许多大型企业的常态,因为一些应用程序被迁移到云中或在那里构建新应用程序,而一些遗留或安全敏感的应用程序仍然保留在本地。对于较小的组织,从一开始就接受公共云资源并不罕见,并且几乎没有(如果有的话)本地数据中心的空间。
当然,随着云的使用变得更加普遍,并且有许多不同类型的云可供选择,情况一直在不断发展演变。有本地和托管的私有云、公共云提供商,甚至还有在公共云中运行的SaaS服务。有效地使用这些位置上运行的一些组合服务构成了多云采用。一般来说,多云指的是一个组织内使用多个公共云。然而,就像长方形可以组成正方形一样,如果本地的东西是“类似于云”,混合云也可以被认为是多云。这随着AWS Outposts或GCP Anthos等公共云的本地和混合服务的出现变得越来越可行。可以说,多云是一个广泛的术语,其含义并不总是单一的,但通常与使用多个公共云有关。
直面现实Reality Check
那么,多云的现实使用情况是怎么样?根据分析公司ESG发布的博客,截至2022年,他们的研究表明,目前公共云基础设施用户中有86%正在实施多云策略,平均使用2到4个公共云。无论确切的数字是多少,都可以肯定地说,使用多个公共云是非常常见的,这也是多云面对的一个非常现实的问题。
当我们谈论“云计算”时,用户(至少在北美)倾向于考虑三大主要的公共云提供商。亚马逊网络服务、微软Azure和谷歌云平台通常被认为是领先的公共云提供商。但是,还有许多其他的公共云提供商,如阿里巴巴、IBM、Oracle、DigitalOcean、Rackspace等等。
二级和三级服务提供商,或者说任何非主要云提供商的服务,都可能而且确实在一些公司的云支出中占据了相当大的比重。在Stack Overflow的2022年开发者调查中,55%的专业开发人员表示他们在过去一年中广泛使用AWS,其次是30%使用微软Azure和26%使用谷歌云平台。在提到AWS使用的22,357名专业开发人员受访者中,26%表示他们希望在未来一年与GCP合作,20%表示他们希望与Azure合作。很容易看出,即使另一家公有云已成为主要供应商,次要供应商仍能在企业中立足。然而,这并不总是由于有意识地决定实施多云或混合云而发生的。
如何实现多云?
我们说多云环境是“发生”的,是因为它并不总是一个经过商定的战略或有意识的选择,通常组织会因为各种原因而使用多个云服务。以下是其中一些原因:
- 可靠性和冗余性:如果您关注可靠性,您可能会将数据存储在同一提供商的多个地区。这种思路也会导致组织将应用程序或数据存储在多个云中,以进一步保护自己免受其无法控制的故障的影响。
- 访问专有服务:不同的云提供商提供一系列类似的服务,例如,您可以从任何基础设施即服务供应商那里找到廉价的对象存储服务。然而,公司还通过独特的技术进行差异化(一个例子是只有在GCP中才有的TPU)。对特定服务的需求可以推动新平台的采用。
- 影子IT:影子IT这个术语有负面的含义,但用户根据自己的需求自行注册服务是进行尽职调查的一部分。不管原因是什么,组织内并不总是所有人都知道何时引入了新的云服务。
- 提供商特定的技能集:核心服务在不同云之间可能有基本的相似之处,但使用它们可能需要特定的技能集。人员可能更熟悉某个特定的服务提供商,这可能是影响该组织是否额外使用或转换到新的云服务提供商的因素之一。
- 延迟和数据位置:尽管我们尽力而为,但无法欺骗物理定律。如果某项服务对延迟敏感,而您当前的服务提供商最近的区域距离不够近,您可能需要寻找其他选择。例如,如果您的业务位于澳大利亚珀斯,最近的AWS区域位于该国的另一端悉尼。这可能看起来是一个极端的例子,但它展示了距离对业务运营的真实影响。数据位置也可能是数据局部性法规的一个因素,当数据需要保留在特定的物理区域时,有时这可能需要使用其他服务提供商。
很容易看出,一个组织可能最初只使用另一个云服务提供商的一个服务,而这种情况很快就会扩大。使用范围可以从单个用户扩展到其团队以及其他人,一个服务也可以迅速发展为多个服务的使用。如上所述,多云的原因有些是积极的,该组织从中获得一些好处。然而,这种动态可能导致复杂的运营、安全和合规挑战,如果不加以解决可能会带来风险。
为什么我们需要多云可观察性?
无论好坏,您的组织已经实施了多云,那么这与可观察性有什么联系呢?可观察性可以帮助企业应对众多运营挑战,最大限度地减少停机时间。然而,许多组织仍处于可观察性旅程的早期阶段,依赖于传统工具,这些工具无法提供完整的环境信息。更糟糕的是,多云带来了新的挑战,使保持可见性和执行故障排除变得更加困难。这使得实现可观察性变得更加重要。
更多的云,更多的数据,更多的问题?
如果您的 IT 团队正在使用多个云,那么您可能希望可观察性能够跨越所有云,以提供可操作的见解,而不仅仅是突出显示单个云的性能问题。这说起来容易做起来难,很多企业可能认为自己已经具备了可观察性,但其实他们只是实施了监控。我们的《2022 年可观察性状况报告》显示,环境的复杂性是实现可观察性的首要障碍。随着环境越来越复杂,对可观察性的需求也越来越强烈,但获得可观察性的难度也越来越大。
可观察性与数据紧密相关。当需要进行分析时,数据的来源数量和来源位置都不应成为问题。理想情况下,对于故障排除来说,更多的数据是件好事。然而,如果你的环境高度分布式,那么设置起来会需要更多的考虑。由于微服务、Kubernetes、无服务器和其他云原生技术的日益普及,复杂的分布式应用正在增加。环境变得越分布式和复杂,就越难以对其所有部分保持可见性。手动对代码进行可观察性的仪表化是最快增长的挑战之一,一年内增长了将近一倍,从17%增长到30%。
随着复杂性的增加,你还面临着操作性隔离的风险,即你组织中只有少数人了解整个环境,而更多关注于他们日常工作中最相关的部分。当需要进行故障排除时,这必然会引起问题。如果你拥有可观察性,那么它将帮助你避免这些问题。
不要让云成为孤岛
每个公共云都有自己独特的服务,但许多服务实际上更相似而不是不同。例如,你可能同时使用亚马逊S3和Azure Blob Storage,虽然它们在本质上是不同的专有服务,但它们都是对象存储。你可能正在查看类似的遥测数据,但因为这些服务存在于不同的公共云中,彼此分离,它们变成了孤立的信息岛。
很可能你甚至正在使用云原生工具来收集和聚合数据,例如AWS的CloudWatch、Azure的Monitor或GCP的Operations Suite(以前称为Stackdriver)。如果你的工作流程涉及每次出现问题都要单独登录给定云的本机监控套件,那将耗费时间并且效果不佳。你还必须掌握多个工具的知识。
如果特定于云的监控服务是数据的最终目的地和进行分析的地方,那么你也会失去将该数据与其他云的数据相关联的价值。更复杂的是,即使你将数据转发到第三方的可观察性产品中,它可能仍然无法与其他数据有效地关联起来。如果你的组织当前的工具要求你在使用数据之前花费时间进行标记和索引,那么这就是从更有价值的任务中抽取时间,你的SRE、DevOps工程师或开发人员不应该浪费的时间。如果只是时间是一个问题,那已经够糟糕的了,但如果你的组织因合规性或安全相关原因接受审计,你不想在多个工具中搜索答案并在没有上下文的情况下筛选数据。
大多数供应商都将其产品标榜为“单一视图”,但这些产品往往在其架构中具有固有的信息孤立。你的数据可能根据类型分成不同的数据存储,从而使关联过程复杂化。或者你可能会发现你的“可观察性”工具实际上只是监控工具,你无法使用它们提供的仪表盘来深入挖掘来自不同云服务的数据。归根结底,如果你在环境中缺乏可见性,那么收集数据就是一个挑战;如果你有可见性,但数据被孤立且缺乏适当的上下文,那么使用这些数据就是一个挑战。一个与云提供商无关的策略将帮助你保持对环境的可见性。使用开源的数据收集工具(如Fluentbit和OpenTelemetry)现在更容易采用与供应商无关的方法,将你需要的数据传输到你选择的可观察性服务中。
从多云可观测性中获益
多云数据的背景
Observe的方法是可观察性云,它意味着将所有数据放在一个地方,而不是混杂使用不同的后端和数据孤岛,并且不需要为各种用例支付多个工具的费用。可观察性云由数据湖、数据图和数据应用组成。
Observe应用程序捆绑了适用于AWS、GCP和Azure这三个主要云提供商的相关集成。例如,AWS应用程序简化了从各种AWS服务收集遥测数据的过程,并使其更易于发现。通过这个应用程序,您可以在Observe中轻松监视和排查许多您最喜欢的AWS服务,这意味着您在排查问题上花费的时间更少,可以有更多时间为客户构建应用程序和服务。同样地,我们还有Azure和GCP应用程序,并且这些应用程序所涵盖的服务范围不断扩展。
一旦遥测数据开始传输,我们将所有数据统一存储在我们的可观察性云中的数据湖中。数据被保存在一个地方,并且通过数据图了解和映射上下文。数据图显示了所有连接的数据集,也就是您关心的事物,可以涵盖从S3存储桶到运行在EKS上的Kubernetes集群等各种内容。在数据湖中拥有所有数据,并且可以通过数据图进行搜索,使我们能够提供按需架构。当涉及到搜索和过滤大量数据时,您的单一操作界面可以在需要时提供您所需的精确视角。
正如我们的一个客户所说:“这是唯一一个汇总了许多数据源日志的地方,所以当我不知道该去哪里查找时,我可以从这里开始。”我们的另一个客户Linedata也能够通过在AWS中查看其许多用户帐户,消除盲点,从中获得价值。一旦将更多的云(以及这些云中的更多帐户)引入到一个环境中,这种场景中解决的问题可能会显著增加。如果没有完整的多云可观察性,您可能会遇到安全盲点或者在故障排查时遇到死胡同。
多云规模下的经济效益
随着越来越多的应用程序及其依赖分布在多个云中,这将导致大量的遥测数据。即使您能够使所有数据可观察,并将所有数据关联起来以便在危机时易于导航和理解,但规模和成本仍然是一个问题。通常,传统解决方案的收费是基于遥测数据的摄取和索引量、每个用户/座位或监控的主机数量(或这些模型的组合)。在这种情况下,无论您从这些数据中获取的价值如何,更多的数据都意味着更高的成本。这在多云增长的背景下是一个昂贵的假设。有一些解决方案提供了一些权宜之计,试图限制数据摄取量并将数据存档以便长期存储,但这只会给用户增加更多的复杂性,并使他们更难观察其应用程序和基础架构,因为用户可能会丢弃可能相关的数据。
Observe采取了一种独特的方法,并建立在现代的云原生架构之上,实现了独特的基于使用量的定价模型。所有数据都被摄取到基于Amazon S3的Data Lake中,进行10倍的压缩,并存储13个月。然后,Observe将频繁访问的数据加速到Data Graph中。通过Observe在Snowflake Data Cloud之上的多租户实现,可以高效地执行加速数据或查询Data Graph的查询。所有客户、所有公司的所有查询都共享同一个Snowflake基础架构。这使我们能够将计算和存储分离,并按照客户运行查询和加速数据所消耗的计算量进行计费。
Passive和active成本控制的实施缓解了对使用情况或恶意用户的担忧。用户将被提示确认昂贵的查询,管理员可以设置信用限额以管理使用情况,以符合年度预算。由于Observe的基于使用量的定价系统具有成本控制功能,这意味着客户可以摄取所需的数据,而无需事先担心是否是“正确的数据”,或者担心仅仅数据量就会超出预算。这是在多云环境中的经济学。NineData地址:https://www.ninedata.cloud/