
云原生基础
|
23
供应商提供的高级别的云服务,这样做会使你的整个应用缺乏可移植性。第二种情况
是,你希望在本地或者你自己的集群上也能运行你的函数。不过有一些 FaaS 的运行时
已经开源了,它们可以运行在任何 Kubernetes 集群上。Kubeless、OpenFaaS、Serverless
和 Apache OpenWhisk 是几个比较受欢迎的可以自己安装的FaaS 平台,而Azure
Functions 自开源以来变得越来越受欢迎。可安装的 FaaS 平台通常都是通过容器来部署
的。使用时,开发者们只需要把函数部署上去就可以了,不需要去操心底层架构。许多
可安装的 FaaS 框架利用 Kubernetes 来实现路由、自动伸缩以及监控等功能。
任何 FaaS 产品的实施,无论是基于云服务提供商的无服务器架构的还是安装在你自己
的集群上的,一个关键点在于启动时间。一般而言,你总是期望函数在被触发后立马就
开始执行,这意味着它们所依赖的底层技术能够提供非常快的启动时间。前面已经介绍
过,容器技术可以提供良好的启动时间,但是不一定能够提供最好的隔离性。
2.4 从虚拟机到云原生
为了理解我们如何能够最终实现下一代云原生应用,我们可以先来看一下应用是如何从
VM 上运行演变为通过函数来运行的。回顾这段过程可以让你对 IT 行业的变化有所了
解,看看开发人员的工作效率是怎么得到提升的,以及是如何利用这些新技术的。向云
原生世界的演进主要有两种途径。第一种是“旧房改造”,意思是你有一个历史遗留应
用,通过对这个应用的转变和提升 ...