4月27日,腾讯云服务发布了国内首款FaaS(FunctionasaService)商品——无网络服务器的云功能SCF。那么,云功能的真正内涵、架构的基本原理、核心技术和发展趋势是什么?下面由腾讯云服务基础商品精英团队来讲解问题。
情况:无网络服务器云功能的用户使用价值关键信息内容:第一,用户只需提交代码,即能以最简洁的方式使用腾讯云服务,搭建高效稳定的基础设施;其次,考虑到成本低,编码按需工作,其余时间空不收费。经过测试,按照通话频率和运行时间进行付费。当月需求在百万以下时,无网络服务器应用云功能的成本比使用多台云主机搭建集群降低了70%左右。
无服务器云功能是腾讯云服务呈现的实现无服务器的自然环境,帮助用户在远程服务器上运行代码,无需购买和管理方法。用户只需要用适用于云服务平台的语言编写关键代码,设置程序执行的标准,代码就可以在腾讯云服务基础架构的构建中以可扩展、安全的方式运行,可以彻底管理最底层的云计算服务器,包括网络服务器CPU、运行内存、互联网、代码部署、可扩展伸缩、三层交换机等服务项目。没有网络服务器的云功能的应用,将避免运维管理的所有实际 *** 作。公司和开发者可以全身心投入到关键业务的开发设计中,完成快速发布和迭代更新,掌握业务发展趋势的节奏。
一、云函数的使用价值及应用情景随着云计算技术销售市场的完善,用户对云计算技术的接受度逐渐提高,依靠各种基础云组件,服务发布时间从月级减少到日级。但是,根据模型,用户仍然需要根据云组件重建非功能性需求;云功能尝试提取业务优化算法和步骤供用户完成,连接各种云服务器,完成通用三层交换机、全自动伸缩、常见故障容灾备份、安全管理等通用功能。,真正促使用户像搭积木一样创造人性化的服务,将业务发布时间从天级降低到分钟级。
相比云服务器,云功能更适合分布式架构的业务场景。以照片多规格模型还原服务项目为例。当用户上传照片到COS时,这个服务项目会自动将初始图像大小压缩成兼容手机、平板、电脑等各种规格型号。如果使用云功能完成服务项目,用户只需要建立功能,定义功能的开放标准为“上传图片”,编辑在线文档或应用IDE进行编码编写,然后提交,服务项目就建成了。用户上传照片时,会自动调用定义好的函数来减少照片的多规格型号,云功能服务平台会根据提交的并发量自动伸缩函数实例,最终根据具体调用进行计费。
从这个例子可以看出,云功能对于用户的关键使用价值是:
l加速用户服务项目发布时间,用户只需完成业务优化算法和步骤,发布时间缩减至分钟;
l减轻用户的运营压力,让用户不必承担服务项目的拓展,修复运维管理的常见故障;
l明确用户的资源成本。用户不用承担闲置资源的成本,只需要为特定通话付费;
二、云函数构架基本原理云服务平台整体架构的基本原理如下图所示。云功能向用户展示SDK/WEBUI两种应用方式,根据恶性事件通过申请注册和回调功能系统与其他云组件连接,并展示标准化的API套接字;根据地区、用户、名称、版本信息、身份验证等信息内容调用申请功能实例。将调用对称地分配给可用的功能实例;函数管理方法负责建立/修改/删除函数,展示代码管理和版本控制的功能。功能生产调度根据功能资源的需求,选择合适的零件建立/销毁功能实例;示例部署用户定义的功能,并承担功能的实现和控制。
从云功能的精准定位和架构的基本原则来看,云功能服务平台的重要性能指标可以概括如下:
l不仅适用于业务的快速发布,还可以完成持续发展趋势;
l不仅适用于按需业务,还可以释放未使用的资源;
l不仅适用于业务,还扩大了经营范围;
l不仅适用于随意的业务 *** 作,还可以防止影响力的入侵;
将在下面详细描述。
三、适用业务迅速发布,且能完成不断发展趋势对于分钟级的商业出版,一定要尽量减少产品研发的劳动。云功能用户只需展示简单的功能配置和编码即可发布。以图像大小压缩为例,用户可以通过独立编写如下python代码来完成一个图像大小压缩服务项目:
其中第一行介绍依赖库,第四到第九行分析并键入主要参数,第十一行调用库压缩图像大小,第12到15行区分结果并返回。用户可以在线编写和提交代码,也可以像开发和设计本地程序流一样使用自己喜欢的IDE来编写代码。调整后他们可以做一个zip包,按照SDK提交。 *** 作成功后,将发布服务项目。
要应用可持续业务发展的概念,就必须向用户展示顺利升级功能和更改版本号的能力。当用户升级功能代码或设备时,新的调用请求被分配给新的功能实例。原调用请求实现后,旧的功能实例会自动衰退,服务项目会在客户不知情的情况下顺利升级。应用了用户功能的多版本控制,将功能昵称投射到用户的特定版本号,在客户不知情的情况下完成多版本号之间的平滑转换。
在整个功能运行过程的中间,用户复制系统日志,将标准化输出/不正确输出的系统日志分类提交到腾讯云服务系统日志综合服务平台,用户可以实时监控系统功能的运行状态。
四、适用业务按需拿取,且能释放出来闲置不用資源要将云功能应用到真正的按需抓取中,需要在用户第一次调用时完成延迟时间资源分配。函数调用的整个过程如下图所示:
云服务平台调用分发时,会区分是否有功能实例。如果没有,它将立即启动实例。实例启动后,函数调用才刚刚开始。为了更好地实现让第一个呼叫足够快的总体目标,需要在整个呼叫过程中逐步升级:
l调度调用链接:调用调度级别需要降低,比如对于用户主动发起的http同时调用,所有正常方式都可以避免持久化序列保存的全过程;
l镜像系统及编码免费下载链接:应尽可能提前安排,减少下载时间,比如对于新提交的函数,并行处理开始预加载,这样第一次调用就不需要立即免费下载;
l船只启动的全过程:要简化船只启动的脚本制作,让整个过程尽可能的轻便。对于对时机敏感的业务,展示实例嵌入系统,用户可以选择嵌入少量实例,减少首次调用的额外时机;
l实现函数调用:尽量避开函数的主参数,回归到数据信息和系统日志传输引起的运行内存复制的频率;
l回呼:尽量避免回水平;
按照分步推广,第一次调用服务平台大概三秒就能 *** 控,之后第二次调用服务平台大概十米s就能 *** 控。
随着客户需求的增减,功能实例会伴随着全自动的扩展和收缩。一般优化算法如下:
如果今天的需求/今天的实例>:扩展阈值:扩展实例
否则今天的需求/今天的实例<收缩阈值:收缩的一个例子。
当容量减少到最后一个功能实例时,为了防止短时间内功能实例的重复启动/终止导致客户的呼叫时间上升,需要保存一段延迟时间再释放。
五、适用业务绝不终断,且能拓展运作范畴为了确保适用的云功能永远不会终止,应完成灾难恢复备份的两个一般目标:
l当硬件配置频繁出现故障时,服务项目不会终止。
l服务平台升级时不终止服务项目。
为了实现灾难恢复和备份的这三个总体目标,需要设置总体框架,并且需要匹配和应用所有层:
l层:根据腾讯云服务CLB,横向扩展,三层交换机、七层路由器都可以;
l逻辑层:控制模块是无状态的,控制模块中没有数据信息,可以随意启动、停止和替换;
l数据信息层:选择一致的存储仓库存储重要的数据信息;
l连接点层:完成快速连接点常见故障的检查、更换和维修;
例如,当业务平台中的invoker控制模块实例的硬件配置出现常见故障时,如下图所示,由于Invoker控制模块是无状态的,因此可以通过连接层CLB控制模块完全排除常见故障。移除后,新的需求将被分配给剩余的调用程序控制模块实例,被接受的多线程恶性事件可以被其他调用程序重试。同一个http调用会立即返回给用户不正确的需求,用户会重试。常见故障调用程序实例修复后,将自动添加到CLL。
当服务平台必须升级APIsockets时,选择只增不变的策略,呈现最新版本的APIsockets,维持用户原有的服务项目兼容模式。根据七层路由器和路由器到最新版本invoker控制模块实例,当用户选择新的套接字时,CLB会随着负载的降低而逐渐缩小旧版本实例的容量,而最新版本实例会随着负载的增加而逐渐扩展。从而完成用户全透明版本号的平滑升级。
要完成云功能,就需要和各种云组件进行通信。云组件必须显示恶性事件注册应用和回调函数系统,云组件必须显示恶性事件注册应用和匹配的回调函数套接字。云功能保证了云组件通信的用户管理权限的连接和传输。今天,云功能已经完成了与腾讯云服务的COS存储组件的连接,并将立即完成与腾讯云服务的CMQ、云监控等其他云产品的连接,将运营范围扩展到CDN边缘连接点,完成边缘计算。
六、适用业务随意运作,且能防止影响侵入云功能需要在云功能服务平台上通过用户可以本地检测到的代码进行无缝拼接。用户功能运行时需要有足够的兼容模式和自然环境。它必须配备类似于用户开发和设计的包和安全性。此外,防止功能之间的影响,避免故意闯入。
为了更好地防止用户功能间的影响,云功能使用docker器皿封装功能实例,并根据Docker的名称保护、空隔离、管理权限限制等制度完成用户间的保护,加上即时矛盾监督、生产调度等对策妥善处理影响。
为了更好的防止用户编码危害所有云功能服务平台,如下图所示,云功能管理系统和用户功能的保护已经完成,用户功能无法识别管理系统的IP地址、 *** 作日志等信息内容,因此难以危害云功能服务平台的运行。
为了更好的防止用户恶意程序检测和入侵互联网,如下图所示,用户功能实例被限制在受限的公共VPC互联网,需要根据网关ip完成与外部网络地址服务项、其他功能实例和云组件的相互访问。此外,为了更好地应用用户功能实例和我的CVMvm虚拟机的集成,云功能服务平台根据可扩展的网络端口连接它们之间的VPC专用通信网络。
七、云函数领域进度发展趋势近年来,Serverles、微服务架构等核心概念逐渐深入人心,云功能也刚刚开始被用户接受。为了更好地考虑用户对更快发布、更低成本、更优质架构的追求,腾讯云服务发布了云功能产品。为什么用户在处理具体问题时,不直接开始使用云功能,比如测量COS中存储的照片、视频和文档,将规划任务从CVM转移到云功能,降低资源成本。随着云功能关联云组件的扩展、适用语言的丰富、调整专用工具、流程引擎的不断完善,云功能将逐渐成为所有云服务平台的粘合剂。通过组合各种云组件,可以应用于更复杂的场景和服务项目,成为用户普适性的中坚力量。
欢迎使用腾讯云服务-云功能商品。云功能处理安全连接、常见故障容灾备份、全自动扩展、成本增加、版本控制等后端管理常见问题。用户可以在业务自主创新上投入更省心、更专用的资金。根据云功能,预计腾讯官方多年来在大量服务项目上努力的能力将更深层次的对外开放,资源共享给众多用户应用,与大家共同成长。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)