无伺服器(Serverless)架构的价值在于其成本效益、弹性和扩展性、简化的开发和部署流程、高可用性和可靠性以及使开发者能够专注于业务逻辑。通过自动化资源调配和按需计费,无伺服器架构能够降低成本并适应流量变化,同时简化开发流程并提供可靠的基础设施。这使得开发者能够更快速地推出新功能,满足使用者需求,从而实现业务目标。
消除复杂性、提高创新力!Akamai 云计算服务,灵活的开放式架构,简化开发体验!
个性化IaaS服务,低至0.005美元/GB的出站流量费!
然而作为新手,当我们準备构建自己的首个容器化应用程式时,可能会将函数、无伺服器和Kubernetes等基本概念混为一谈。Akamai将通过本文向大家详细介绍这些概念的含意,为构建可扩展的云原生应用程式奠定基础。
Kubernetes是什么?
Kubernetes是一种用于管理容器生命周期,以及管理运行容器的节点所使用的容器编排工具。
上述这句话的含意可以这样分开来理解:
-
总的来说,容器是一种打包的应用程式,其中已经包含了应用程式的所有依赖项,不依赖底层操作系统提供的任何额外的库即可运行。
-
容器可以彙聚成组,形成在大量节点上运行的多个Pod。
-
节点是一种计算单元,通常是运行Linux的虚拟机(但从技术上来看,也可以是集群中运行Pod或容器组的任何虚拟或物理伺服器)。
Kubernetes将协调节点的创建工作,并根据开发者定义的条件,在不同节点上部署、销毁和移动容器与Pod。
为了构建和自动运行容器化应用程式,并实现规模化和高可用性,Kubernetes至关重要。
Kubernetes与无伺服器函数和FaaS有很大差异,但通常可用于支撑运行这些技术的后端。
无伺服器是什么?
无伺服器(Serverless)是一种开发模型,可以让开发者通过容器发布代码,而无需管理伺服器或其他云基础设施。云服务供应商负责管理伺服器/操作系统以及该级别之下的一切,借此可以为开发者提供高度精简的环境,开发者可以在此基础上编写和部署代码。
]
不同供应商的称呼可能各异,但无伺服器架构将责任从开发者转移到云服务提供者,涵盖了从伺服器级别到更底层的一切。
函数是什么?
为应用程式构建的模组化元件通常可称为微服务(Microservice),开发者可以通过微服务将经常使用的功能“切分”为代码块,而这些代码块就叫作函数(Function),可在相应事件被触发后执行。
Any user activity that triggers an event or a series of events can be deployedas a function. For instance, a user signing up on your website may trigger adatabase change, which may, in turn, trigger a welcome email. A chain ofserverless functions can handle the backend work.
任何可以触发一个或一系列事件的用户活动都可以部署为函数。例如,用户在我们的网站上注册,可能会触发资料库更改,进而触发发送欢迎电子邮件。我们可以用一系列无伺服器函数来处理这背后的后台工作。
函数即服务(FaaS)是什么?
“即服务”这个称呼似乎已经开始被行业中的所有事物所使用。一般来说,任何“即服务”的意思都是指云服务提供者通过后端基础设施,让自己的使用者能够流畅地访问作为服务的那些功能。FaaS使开发者能够直接构建和运行函数,而无需维护任何基础设施。FaaS通常会按执行时间收费,这意味着只有在代码片段运行时才会计费。与全天候运行伺服器相比,这是一种极具成本效益的做法。
FaaS平台会围绕特定基础设施技术(如Kubernetes)进行构建,或提供GUI来创建函数并将其连接到应用程式而无须编写任何代码,从而让函数易于部署和管理。
社区提交的函数让使用者可以更容易地查找和实施用于优化应用程式性能的逻辑。FaaS是一种热门产品,很多云服务提供者都有相应服务,借此帮助使用者在一个平台上管理函数和应用程式基础设施。
总结
如果您目前的应用程式开发工作就用到了任何云平台提供的函数,那么欢迎将使用感受分享给Akamai。Akamai云计算服务正在探索是否可以将函数添加到Akamai云平台。您希望在Akamai云平台上使用或看到怎样的函数服务,也欢迎告诉我们。