云计算的未来:无服务器架构服务网格以及专门
发布时间:2020-05-31 02:59

  “Serverless 所提供的接口,简化了云计算的编程,其代表了程序员生产力的又一次的变革,一如编程语言从汇编时代演变为高级语言时代。”

  就在春节刚刚过去的时候,伯克利发表了一篇重要论文,关于 Serverless 的犀利断言:Serverless 计算将会成为云时代默认的计算范式,并取代 Serverful (传统云)计算模式,因此也就意味着服务器 - 客户端模式的终结。然而这还只是众多云原生技术发展的趋势之一,我们知道,从2013年,以 Docker 为代表的容器技术的崛起,在短短的几年内获得了极为迅猛的发展,而以容器为基础发展出来的众多技术解决方案:容器编排、Service Mesh、以及更加灵活多变的持续集成和持续交付等技术发展的速度,简直是以火箭般升空的来形容。CNCF(云原生计算基金会)做了一款 Landscape 的项目f.io),最新的庞大生态可以从中看出数量众多的实现:

  甚至 Serverless(见后面)还有专门的 Landscape(s.cncf.io),而开放的生态,对于创新、多样的目的无疑是最好的局面,但是同样给最终的用户也带来了很大的困扰,甚至是作为初级入门的开发者也会遭遇“布里丹之驴“的尴尬境地。

  是的,最前沿的计算也好,炙手可热的流行技术也罢,乃至生活的方方面面,对同学、开发者、科技爱好者、云计算的消费者提出了极大的挑战,不过值得庆幸的是有 CNCF 和 Linux 基金会这样的组织,以及会在全球各个大洲每年举办的 Open Source Summit 大型研讨会,以及在欧洲、北美和中国举办的 KubeCon + CloudNativeCon。其中一个功能,就是旨在帮助大家治愈选择困难症。

  2019年6月上海举办的 KubeCon + CloudNativeCon + Open Source Summit 就是完成这个使命的。开源项目的曝光度是保证项目信息对称的最好做法,要知道开源绝对不止于仅仅只是源代码开放,而是全部开发流程的高度透明、决策的公开。

  Serverless 抛开技术上的挑战,从商业的角度,厂商都在角逐下一代的计算方式,毕竟如下这些优点是让人难以拒绝的:

  华为云、腾讯云、百度云,都在基于 Kubernetes 的 Serverless 上做了一些事情,至少大家对这个开放的生态是非常认可的,没有必要再重复制造轮子,更何况底层的技术 gVisor 都逐步的成熟起来了。

  华为是由 Apache 知名成员、国内知名度非常高的 Willem Jiang 来演讲分享的,Knative 如何结合 Apache Camel 来为企业解决重大的难题:Apache Camel 提供了强大的 EIP(企业集成模式)DSL,可集成大量不同的软件中间件。多年实践证明,该项目十分可靠,而在云原生时代,应用由容器和 Kubernetes 提供支持。Camel-K 项目通过利用无服务器框架 Knative 的 Eventing 和 Serving 组件在该框架上构建功能,从而将 Apache Camel 引入云原生世界。开发人员可利用 Camel-K 将 Knative 应用与少量 DSL 代码相集成,从而将服务结合在一起。在该演讲中,Willem 和 Longchun 会介绍 Apache Camel 和 Camel-K 项目,以及二者之间如何与云原生堆栈相集成。另外他们将全程演示如何将服务与 Camel 和 Knative 相集成,该演示的灵感来自于智能园区项目的真实实践。

  微信在某种程度上改变了中国的社交方式,那么围绕微信作为平台也成了很多淘金者的机会,小程序即是这样,那么小程序的架构和 Serverless 是否是一个完美的组合了呢?来自腾讯的一线专家 Masonlu 和他的产品经理分享的故事是这样:微信提供了一个无处不在的移动应用平台,拥有超过 9 亿的月活跃用户数和 100 万注册开发人员,可支持构建从电子商务到游戏以及银行应用的所有内容。我们将向您描述拥有 1 名工程师的客户如何使用腾讯云无服务器平台在 7 天内构建和部署 30 强微信迷你程序。目前,该程序的注册用户数已超过 1 亿,月活跃用户数达到 1200 万。我们将详细介绍平台如何支持客户无需管理基础设施或运营即可构建可靠、安全的高性能应用,同时无需管理服务器、基础设施或运营即可将应用使用人数扩展到 1 亿的技术细节(容器编排、功能冷启动、应用性能和监控)。

  我们在之前的系列文章中介绍过百度的 Ti Zhou,他在这个领域结合的是百度的深度学习平台,将深度学习平台以 Serverless 的方式抛出,这完全符合人们的直觉,输入一小段代码,然后平台完成所有的计算。具体过程: 将展示如何使用 Knative 的功能重建深度学习平台,包括:

  当然,最后无论如何也不能错过的,来自著名拥抱开源的银行 Capital One,以及旗下知名的开发者布道师 Kevin Hoffman,这绝对是最新最酷的技术:WebAssembly、Serverless 和下一代云计算平台,他的分享描述是:目前,关于 WebAssembly 的介绍有很多,但其中大部分都集中在它可以为最终用户和基于浏览器的应用做些什么。然而,WebAssembly 的功能不仅局限于 Web,在本次演讲中,Kevin Hoffman 将在后端的云中运行几个理想的 WebAssembly 用例。他将演示一些代码,介绍如何在云环境中加载、执行和验证 WebAssembly 模块的出处。将向您展示在 Kubernetes 或 OpenFaaS 等环境中可以交换 WebAssembly 的各个地方。Kevin Hoffman 还将拿传统的“无服务器”实施与 WebAssembly 的潜在用途作比较,并讨论云功能的未来以及 WebAssembly 等可移植二进制格式对分布式系统开发的影响。

  容器和容器编排的大规模使用,带来的一个巨大的问题就是东西向网络的控制和监视,传统的方案在几千、几万个容器交互形成的大型IT服务中显得是力不从心,那么技术的本质就是这样,新技术引来新的解决方式,新的解决方式带来新的问题,螺旋式上升。这个问题的提出就是 Service Mesh,CNCF 目前列出的具体项目实现分别是:Envoy、Linkerd。本次大会上带来的也是实际解决问题的方式,分别是:

  来自 HashiCorp 的工程师 NIC Jackson,谈谈关于 Envoy 的监视问题:服务网格是由数据层面和控制层面两个组件构成的。数据层面处理来自服务的流量,并负责保护流量,提供可靠性模式和网络可观察性。控制层面负责管理数据层面、服务目录、x509 证书和服务授权服务的配置。为了有效地观察我们的系统,我们必须了解这两个组件产生的统计数据,以构建可靠、强大的系统。在本次演讲中,Jackson 将带大家深入的了解当 Envoy 用作服务网格数据层面时,其主要功能所产生的统计数据。以及还将研究网络、可靠性模式(如超时)、服务发现、身份验证以及我们如何利用这些统计数据来构建详细的系统健康状况。

  来自红帽的工程师 Brian Redbeard 和 Bill Decoste 则要讨论的是关于安全加密方面的内容:对于许多用户来说,SSL/TLS 引擎的细微差别不易区分,而且这种差别是营销术语上的差别。为了解一些用户希望(或要求)使用特定公钥基础设施 (PKI) 工具包的原因,BrianRedbeard 和 Bill Decoste 将对向 Envoy 添加 OpenSSL 支持这项最近完成的工作进行分析。 在讨论这项工作时,Brian Redbeard 和 Bill Decoste 将对它是如何使加密满足美国联邦信息处理标准 (FIPS) 140-2 等法规要求以及如何惠及整个社区进行简要描述。

  Open Credo 公司的 Tilen Faganel 试图解决的一个问题是开源常见的事情:关于升级!通常情况下,我们知道开源的下一代产品,意味着不再兼容上一代,Linkerd1 和 Linkerd2 也面临同样的问题,需要做大量的工作,Faganel 会告诉你的。

  Istio 无疑是 Service Mesh 的新秀,来自 Tetrate 的 Matt Turner 带来的关于 Istio 的配置相关内容:Istio 同样也可以解决开箱即用的微服务的许多问题,但需要进行配置:识别应用版本、部署金丝雀及运行 A/B 测试;设置超时; 使用指数退避算法配置重试;实施速率限制;启用断路器;注入故障,以进行测试;启用 mTLs; 使用服务到服务访问控制列表 (RBAC)

  毫无讳言,生产力决定一切,面对日益加速的世界,软件的开发速度难以跟上业务发展的速度,这对于软件的生产提出了非常苛刻的要求,也对工程师的素质提出了相当的条件,然而云原生也挑战着新的持续集成和持续交付。甚至 Linux 基金会还成立了专门的 CDF(Continuous Delivery Foundation,持续交付基金会 ):

  是不是英特尔只是做芯片的?那么你可能不知道英特尔还是开源软件的贡献者和推动者,看看他们如何采用最新的交付通道来做测试的,Patrick Ohly 将介绍 Kubernetes 端到端框架的最新变化(如消除对云提供商的依赖性,明确参数的处理,增强配置和外部文件支持),并以真正的 CSI 驱动程序为例解释如何使用。

  IBM 此次的贡献则是基于 Kubernetes 的持续集成/持续交付的实践,由 Tim Pouyer 和 Erica Brown 来讲解,他们认为在 Kubernetes 之上开发管理层时问题会变得更加复杂,尤其是涉及镜像和 Helm 图表时。他们在开发 IBM Cloud Private 时实施了一个 CI/CD 流程,通过一系列质量门进行自动化升级,从而 1)确保所有图表和镜像 在三个受支持的架构中保持同步 2)部署具有不同拓扑、管理服务和基础设施的 ICP 集群实例 3)针对这些集群运行自动化和人工功能与安全回归测试。这种实施方法让我们能够在开发过程中尽早发现问题,从而实现更快速的迭代。

  持续集成和持续交付是个哲学问题,仁者见仁智者见智,没有统一的回答,也不应该有统一的回答,基于 Kubernetes 做,还是应用 Kubernetes 本身来做都是大问题,现场交流,效果更佳。

  300+ 的演讲者分享,任谁也无法照顾到所有,我们会尽最大努力帮助你梳理,根据你的兴趣来找到对应的分享嘉宾,让你有所成长、有所收获。

  著名的复杂科学奠基人布莱恩.阿瑟(Brian Arthur)曾在其经典的著名《技术的本质》一书中对技术做了如下三点的描述:

  是新技术并不是突兀的产生,是来自于现有技术的组合和合成,最多是在现有技术的集合中加入了一些来自于新现象的新要素;

  是新技术自诞生之日起,就不只是技术本身,将成为技术构件库中的一个新的要素。

  个人或学术注册:500人民币(需要发送电子邮件至 申请批准。晚注册600,即时可省100!)

  2019年 6月24日~26日,请大家抓住机会,我们在上海世博中心不见不散!

  CNCF(云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请长按以下二维码进行关注。