无服务器(Serverless)架构的价值在于其成本效益、弹性和扩展性、简化的开发和部署流程、高可用性和可靠性以及使开发者能够专注于业务逻辑。通过自动化资源调配和按需计费,无服务器架构能够降低成本并适应流量变化,同时简化开发流程并提供可靠的基础设施。这使得开发者能够更快速地推出新功能,满足用户需求,从而实现业务目标。
然而作为新手,当我们准备构建自己的首个容器化应用程序时,可能会将函数、无服务器和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 deployed as a function. For instance, a user signing up on your website may trigger a database change, which may, in turn, trigger a welcome email. A chain of serverless functions can handle the backend work.
任何可以触发一个或一系列事件的用户活动都可以部署为函数。例如,用户在我们的网站上注册,可能会触发数据库更改,进而触发发送欢迎电子邮件。我们可以用一系列无服务器函数来处理这背后的后台工作。
函数即服务(FaaS)是什么?
“即服务”这个称呼似乎已经开始被行业中的所有事物所使用。一般来说,任何“即服务”的意思都是指云服务提供商通过后端基础设施,让自己的用户能够流畅地访问作为服务的那些功能。FaaS使开发者能够直接构建和运行函数,而无需维护任何基础设施。FaaS通常会按执行时间收费,这意味着只有在代码片段运行时才会计费。与全天候运行服务器相比,这是一种极具成本效益的做法。
FaaS平台会围绕特定基础设施技术(如Kubernetes)进行构建,或提供GUI来创建函数并将其连接到应用程序而无须编写任何代码,从而让函数易于部署和管理。
社区提交的函数让用户可以更容易地查找和实施用于优化应用程序性能的逻辑。FaaS是一种热门产品,很多云服务提供商都有相应服务,借此帮助用户在一个平台上管理函数和应用程序基础设施。
总结
如果您目前的应用程序开发工作就用到了任何云平台提供的函数,那么欢迎通过评论将使用感受分享给Akamai。Akamai云计算服务正在探索是否可以将函数添加到Akamai云平台。欢迎通过评论告诉我们,您希望在Akamai云平台上使用或看到怎样的函数服务。