云计算无处不在。每个人都使用云来访问或交付服务,但不一定每个人都会构建和运维云。那为什么我们需要关心如何把一堆服务器和交换机变成24×7全天候运行的服务交付平台呢?这是谷歌、微软、亚马逊等云厂商为我们做的事情,而且它们做得非常好。
我们相信,由于分布式应用不仅在大型中央数据中心运行,也在边缘运行,因此云正在以另一种形式变得无处不在。随着应用的解耦,云正在从数百个数据中心扩展到数万家企业。虽然公有云厂商渴望把这些边缘云作为其数据中心的逻辑扩展来管理,但它们并没有垄断实现这一目标的专有技术。
本书提供了一个小型工程师团队可以在一年的时间里建立并且24×7全天候运维一个边缘云的路线图。这种边缘云覆盖十几家企业,承载重要的云原生服务——本书的例子是5G连接服务。该团队通过使用20多个开源组件来实现这一点,但需要注意的是选择这些组件只是一个开始。在整个过程中,我们要做几十个技术决策,还要写几千行配置代码。我们认为本书描述的路线图是一个可重复的过程。对于想进一步了解这个主题的读者,书中列举的配置文件代码是开源的,每个人都可以获得。
当我们说边缘云的时候,是在表达什么意思?我们需要区分由超大规模云厂商在其大规模数据中心运行的云(中心云)以及由处于边缘的企业运行(或管理)的云。边缘是真实物理世界与云的交汇处。例如,边缘(云)可以是收集和处理来源于传感器的数据的地方,也可以是因为时延敏感或带宽要求高而需要让服务靠近最终用户的地方。
我们的路线图可能并不适用于所有情况,但它确实揭示了云运维过程中涉及的基本挑战和利弊取舍。基于我们的经验,这是一个复杂的领域,有太多术语和业务情节需要厘清。
希望本书对任何尝试构建和运维自己的边缘云基础设施的人来说都有阅读价值,同时我们希望至少能为另外两大群体提供有用的信息。
首先是正在对基础设施选择做评估,特别是需要在使用云厂商提供的云服务和构建自己的边缘云(或者是两者的某种组合,类似混合云)之间做出选择的读者。我们希望为他们揭开边缘云的神秘面纱,帮助他们做出合适的决定。
其次是那些需要在其组织选中的云基础设施上构建应用和服务的开发人员。我们认为对于开发人员来说,至少在高层次上了解云的底层机制是一件很重要的事情,这样就可以帮助开发人员开发出易于管理和可靠的应用程序。开发人员和运维人员之间的互动越来越密切(DevOps运动证明了这一点),我们的目标是促进这种合作。监控和可观测性等话题对这类用户尤其重要。
好消息是,有大量开源组件可供选择,帮助管理云平台和为这些平台构建可伸缩应用程序。不过这也是坏消息,因为从Linux基金会、云原生计算基金会、Apache基金会和开放网络基金会(ONF)等开源联盟中开源的庞大的、与云相关的项目空间中选择相应的开源项目来构建我们的云管理平台,是我们面临的最大挑战之一。这在很大程度上是因为这些项目都在争夺人们的注意力,所提供的功能有很多重叠,并且彼此之间有额外的依赖。
阅读本书的一种方法是将其作为云控制和管理的开源导览。本着这种精神,我们不会复制那些项目已有的优秀文档,而是包含特定项目的文档链接(通常包括我们鼓励大家尝试的教程)。本书还包括来自这些项目的代码片段,但选择这些示例是为了帮助巩固我们试图就整个管理平台提出的要点,它们不应被解释为试图记录个别项目的内部工作。我们的目标是解释各种拼图如何更好地组合在一起以构建一个端到端的管理系统,并在此过程中识别出各种有用的工具以及任何工具都无法消除的难题。
毫无疑问,我们需要解决一些具有挑战性的技术问题(尽管市场宣传与之相反)。毕竟,如何运作一个计算机系统是一个和操作系统本身同样古老的问题。运维一个云只是这个基本问题的现代版本,随着从设备管理向上延伸为服务管理,这个问题变得更加有趣。总之这是一个既新潮又基本的话题。
本书介绍的软件要归功于ONF工程团队及其合作的开源社区的辛勤工作。我们感谢他们做出的贡献,特别感谢Hyunsun Moon、Sean Condon和HungWei Chiu对Aether控制与管理平台的突出贡献,以及Oguz Sunay对Aether整体设计的影响。Suchitra Vemuri对测试和质量保证提供了无价的见解。
本书会不断完善,感谢每个提供反馈的人。请使用问题链接向我们发送你的宝贵意见。另外,可以在Wiki上查看目前我们正在处理的待办事项列表。
Larry Peterson、Scott Baker、Andy Bavier、Zack Williams、Bruce Davie
2022年6月