行业资讯

最新动态、技术干货,汇聚前沿的云计算技术

揭秘:腾讯云Serverless产品SCF实战技术干货

唯一小编 发布时间:2020-12-10 返回

近两年,腾讯云Serverless产品技术的崛起让不少人看到了程序员减压甚至解放的希望,但开发难度和入门门槛却阻碍了这一技术的进一步扩张。开发难度、执行环境、代码运行等都成为了Severless开发者急需解决的拦路猛虎

2020年上半年,我负责的业务初步达成IAAS层、PAAS层上云,借助云实力,基础解决了全局的资源供应效率、公布效率的问题。可是针对简洁的接口运用、爬虫、刷任务脚本等,复用现有基本设施,交付速度始终提高不上来,接下来的运维、运营工作负担也比较重。主要表现在以下几个痛点:

揭秘:腾讯云Serverless产品SCF实战技术干货

解析整体系统约3000+模块,约80%以上模块,大都是低流量、轻逻辑模块,基础公布一次后,再变更的概率比较低,就算有变更,也是基于非关键逻辑变更。

怎么解决这部分服务的运维问题呢?从上面痛点可以看出,是资源治理粒度的问题:用治理服务的方式,来治理单薄运用。单薄运用普通功能单调,乃至是一个函数。通过参照IAAS资源演进和业界经验,决定尝试用腾讯云SCF来解决这些问题。

应用场景、管控实力、弹性实力比较:

无服务器(Serverless)不是表示没有服务器,而表示当您在应用Serverless时,您无需关心底层资源,也无需登录服务器和优化服务器,只需关心最关键的代码片段,即可跳过复杂的、繁琐的基础工作。关键的代码片段全面由事件或者恳求触发,平台依据恳求自动平行修改服务资源。Serverless拥有近乎无穷的扩容实力,空暇时,不运行任何资源。代码运行无状态,可以轻易兑现迅速迭代、极速部署。

从这三个企业的用法可以看出,运用场景主要表现在:

1、非主业务逻辑

2、前端可以闭环,无需增加中间层

所以应用云函数时,可以考虑从这两个维度选择接入业务

全局来看,scf零运维治理、自动扩缩容的特性兑现了单薄、非关键运用的迅速试错实力,但应用下来发觉有以下问题:

经过调研发觉,ServerlessFramework可以解决手动公布和多情境治理问题,所以云函数可以融合ServerlessFramework做了一些实践,下面是一些工作记载。

ServerlessFramework是业界十分受迎接的无服务器运用框架,开发者无需关心底层资源即可部署完美可用的serverless运用架构。ServerlessFramework具备资源编排、自动伸缩、事件驱动等实力,覆盖编码-调试-测试-部署等全生命周期,协助开发者经过联动云资源,快速构建serverless运用。

在本次实战中,我们主要应用ServerlessFramework自动部署实力、多情境治理实力。

部署scf时,如果没有预先在.env文件配置secret_key和secret_id,则会弹出认证界面。用户认证后,自动生成类似如下内容:

这些内容会自动过期,过期时光与控制台登陆的过期时光一致。

如果要兑现登陆权限不过期,需求申请平台子账号权限,取得key和secret。

然后配置.env文件,删掉TENCENT_APP_ID、TENCENT_TOKEN,调整参数TENCENT_SECRET_ID和TENCENT_SECRET_KEY的值即可。

配置文件是自动生成的

主要参数说明

name:表示实例名,会用在治理路径中

app:表示运用名,会用在治理路径中

stage:SF框架的定名空间,可以模拟云函数多情境部署

src:代码入口所在路径

vpcConfig:配置云函数所在互联网,vpcId即vpc互联网ID,subnetId即vpc互联网的子网ID

本文中CI工具,应用的是蓝鲸智云开源的延续集成平台,代码地址https://github.com/tencent/bk-ci/,是一个非常好用的平台,大家可以依据文档搭起来试用。

文档地址:https://bk.tencent.com/docs/document/6.0/129/5868

达成基于蓝鲸的CICD需求以下几步:

因为ServerlessFramework部署云函数到腾讯云走的公网接口,所以构建机需求申请带公网设备,可以找运维帮助。

设备申请好后,可以按照如下流程将构建机加入蓝鲸

1、SF框架需求nodejs最低V10版本,所以下载最新nodejslinux安装包、解压并移动到/usr/local名目下

2、配置PATH情境变量,并用source命令生效配置

3、验证node是否安装顺利

依据命令执行结果,可见已安装顺利。

依据弹窗:

目前SCF没有多情境的概念,我们可以融合sf框架,模拟多情境。核心参数如图

stage是核心,用stage代表情境

functionName中有一个变量,这里是不得不的。如果没这个变量,则不同情境的函数会互相覆盖,致使多情境实质无效

src是指scf入口代码真正的路径

vpcConfig是配置互联网的,如果需求不同情境间强隔离,可以考虑不同vpc

environment是配置云函数的调用API,建议和stage一致

搞清晰这些参数后,可以在不同代码分枝,建不同的配置文件,融合蓝盾,即可兑现多情境

多情境建设OK后,在ServerlessFramework治理界面,可以看到如下结果

在scf控制台可以看到如下结果

scf如需访问自己传统业务,只需求调整serverless.yml文件中互联网配置部分。

从云函数当前运用场景来看,主要合适实时文件处理、数据处理等场景,大流量场景用的不多,比较类似Python类的胶水语言:聚合种种接口或联结种种系统。但随着系统流量增大、承担的功能越来越重大,需求在下面几个方面实践和调研。

从官网介绍来看,小程序已具有可用区容灾、弹性自动扩容实力;借助APIGateway,可以实施流控及状态码监测。后续可以借助这些实力做可用性架构测试。

目前应用云函数,主要是开发人员负担起了测试、灰度、上线等任务,加上函数代码自身比较简洁,所以开发速度十分快。但对于一个完美的运用或子系统,怎么合作,构建从开发、测试、灰度、上线的全生命周期的治理,也是后续需求探究的一个问题。

当前云函数主要的监测是控制台的调用次数,主要的日志功能就是控制台看日志。服务为维度的治理中积存的优异监测实践、日志系统实践,当前都还不具有,如果想要有更多的关键场景应用云函数,这些实力要尽快完善。

从高德的应用场景来看(出行界面的相关引荐功能应用的是Serverless),在应用Serverless前,引荐相关聚合接口由后端开发(Back-endForFront-end模式),容易形成厚的BFF层。应用Serverless后,转变为前端开发(ServerlessForFront-end模式),借助于函数级其他治理模式,也解决了厚BFF层的问题。

随着Serverless生态完善,可以预测会极大解放前端生产力,前端工程师可以承担一部分后端的工作。

Serverless的一个特性是自动扩缩容,即在单函数无法承载算力或并发需求时,自动扩充更多实例。那像传统的生产者、顾客模板可以省略了消息层,生产者直接调用顾客,而不必考虑顾客不够用的情形;再假如多过程编程,借助Redis等设施,也直接可以省略了多过程编程,直接调用云函数即可。

随着基本设施的完善,可以预测后端的设计模式会有新的突破,传统的设计模式会变的越发简洁。

Serverless一个特性是零运维。零运维我的理解是目的,对于实质的it情境,经常有若干情境,若干情境中有不同的基本设施,如dns,Serverless架构怎么在没有运维的情形下,Serverless怎样和各情境无缝对接而开发无感,是一个需求考虑的问题。一个可行的点是Serverless和基本互联网联动。

另一个特性是自动扩缩容。作为平台服务来讲,用户越多,那用户的行为具备更大的不可预料性,自动扩容的准时性、冗余资源的预料算法,都需求更多考量。

这些问题都对我们目前的基本架构引入了新的问题和挑战。来源于腾讯云。

  • 热门标签

  • 相关产品 >

    福建云服务器

    适合个人入门

    福建云服务器

    适合中小企业

    广东云服务器

    适合个人入门

    北京云服务器

    适合个人入门

    香港云服务器

    适合个人入门

    美国云服务器

    适合个人入门

揭秘:腾讯云Serverless产品SCF实战技术干货

唯一小编 发布时间:2020-12-10 返回

近两年,腾讯云Serverless产品技术的崛起让不少人看到了程序员减压甚至解放的希望,但开发难度和入门门槛却阻碍了这一技术的进一步扩张。开发难度、执行环境、代码运行等都成为了Severless开发者急需解决的拦路猛虎

2020年上半年,我负责的业务初步达成IAAS层、PAAS层上云,借助云实力,基础解决了全局的资源供应效率、公布效率的问题。可是针对简洁的接口运用、爬虫、刷任务脚本等,复用现有基本设施,交付速度始终提高不上来,接下来的运维、运营工作负担也比较重。主要表现在以下几个痛点:

揭秘:腾讯云Serverless产品SCF实战技术干货

解析整体系统约3000+模块,约80%以上模块,大都是低流量、轻逻辑模块,基础公布一次后,再变更的概率比较低,就算有变更,也是基于非关键逻辑变更。

怎么解决这部分服务的运维问题呢?从上面痛点可以看出,是资源治理粒度的问题:用治理服务的方式,来治理单薄运用。单薄运用普通功能单调,乃至是一个函数。通过参照IAAS资源演进和业界经验,决定尝试用腾讯云SCF来解决这些问题。

应用场景、管控实力、弹性实力比较:

无服务器(Serverless)不是表示没有服务器,而表示当您在应用Serverless时,您无需关心底层资源,也无需登录服务器和优化服务器,只需关心最关键的代码片段,即可跳过复杂的、繁琐的基础工作。关键的代码片段全面由事件或者恳求触发,平台依据恳求自动平行修改服务资源。Serverless拥有近乎无穷的扩容实力,空暇时,不运行任何资源。代码运行无状态,可以轻易兑现迅速迭代、极速部署。

从这三个企业的用法可以看出,运用场景主要表现在:

1、非主业务逻辑

2、前端可以闭环,无需增加中间层

所以应用云函数时,可以考虑从这两个维度选择接入业务

全局来看,scf零运维治理、自动扩缩容的特性兑现了单薄、非关键运用的迅速试错实力,但应用下来发觉有以下问题:

经过调研发觉,ServerlessFramework可以解决手动公布和多情境治理问题,所以云函数可以融合ServerlessFramework做了一些实践,下面是一些工作记载。

ServerlessFramework是业界十分受迎接的无服务器运用框架,开发者无需关心底层资源即可部署完美可用的serverless运用架构。ServerlessFramework具备资源编排、自动伸缩、事件驱动等实力,覆盖编码-调试-测试-部署等全生命周期,协助开发者经过联动云资源,快速构建serverless运用。

在本次实战中,我们主要应用ServerlessFramework自动部署实力、多情境治理实力。

部署scf时,如果没有预先在.env文件配置secret_key和secret_id,则会弹出认证界面。用户认证后,自动生成类似如下内容:

这些内容会自动过期,过期时光与控制台登陆的过期时光一致。

如果要兑现登陆权限不过期,需求申请平台子账号权限,取得key和secret。

然后配置.env文件,删掉TENCENT_APP_ID、TENCENT_TOKEN,调整参数TENCENT_SECRET_ID和TENCENT_SECRET_KEY的值即可。

配置文件是自动生成的

主要参数说明

name:表示实例名,会用在治理路径中

app:表示运用名,会用在治理路径中

stage:SF框架的定名空间,可以模拟云函数多情境部署

src:代码入口所在路径

vpcConfig:配置云函数所在互联网,vpcId即vpc互联网ID,subnetId即vpc互联网的子网ID

本文中CI工具,应用的是蓝鲸智云开源的延续集成平台,代码地址https://github.com/tencent/bk-ci/,是一个非常好用的平台,大家可以依据文档搭起来试用。

文档地址:https://bk.tencent.com/docs/document/6.0/129/5868

达成基于蓝鲸的CICD需求以下几步:

因为ServerlessFramework部署云函数到腾讯云走的公网接口,所以构建机需求申请带公网设备,可以找运维帮助。

设备申请好后,可以按照如下流程将构建机加入蓝鲸

1、SF框架需求nodejs最低V10版本,所以下载最新nodejslinux安装包、解压并移动到/usr/local名目下

2、配置PATH情境变量,并用source命令生效配置

3、验证node是否安装顺利

依据命令执行结果,可见已安装顺利。

依据弹窗:

目前SCF没有多情境的概念,我们可以融合sf框架,模拟多情境。核心参数如图

stage是核心,用stage代表情境

functionName中有一个变量,这里是不得不的。如果没这个变量,则不同情境的函数会互相覆盖,致使多情境实质无效

src是指scf入口代码真正的路径

vpcConfig是配置互联网的,如果需求不同情境间强隔离,可以考虑不同vpc

environment是配置云函数的调用API,建议和stage一致

搞清晰这些参数后,可以在不同代码分枝,建不同的配置文件,融合蓝盾,即可兑现多情境

多情境建设OK后,在ServerlessFramework治理界面,可以看到如下结果

在scf控制台可以看到如下结果

scf如需访问自己传统业务,只需求调整serverless.yml文件中互联网配置部分。

从云函数当前运用场景来看,主要合适实时文件处理、数据处理等场景,大流量场景用的不多,比较类似Python类的胶水语言:聚合种种接口或联结种种系统。但随着系统流量增大、承担的功能越来越重大,需求在下面几个方面实践和调研。

从官网介绍来看,小程序已具有可用区容灾、弹性自动扩容实力;借助APIGateway,可以实施流控及状态码监测。后续可以借助这些实力做可用性架构测试。

目前应用云函数,主要是开发人员负担起了测试、灰度、上线等任务,加上函数代码自身比较简洁,所以开发速度十分快。但对于一个完美的运用或子系统,怎么合作,构建从开发、测试、灰度、上线的全生命周期的治理,也是后续需求探究的一个问题。

当前云函数主要的监测是控制台的调用次数,主要的日志功能就是控制台看日志。服务为维度的治理中积存的优异监测实践、日志系统实践,当前都还不具有,如果想要有更多的关键场景应用云函数,这些实力要尽快完善。

从高德的应用场景来看(出行界面的相关引荐功能应用的是Serverless),在应用Serverless前,引荐相关聚合接口由后端开发(Back-endForFront-end模式),容易形成厚的BFF层。应用Serverless后,转变为前端开发(ServerlessForFront-end模式),借助于函数级其他治理模式,也解决了厚BFF层的问题。

随着Serverless生态完善,可以预测会极大解放前端生产力,前端工程师可以承担一部分后端的工作。

Serverless的一个特性是自动扩缩容,即在单函数无法承载算力或并发需求时,自动扩充更多实例。那像传统的生产者、顾客模板可以省略了消息层,生产者直接调用顾客,而不必考虑顾客不够用的情形;再假如多过程编程,借助Redis等设施,也直接可以省略了多过程编程,直接调用云函数即可。

随着基本设施的完善,可以预测后端的设计模式会有新的突破,传统的设计模式会变的越发简洁。

Serverless一个特性是零运维。零运维我的理解是目的,对于实质的it情境,经常有若干情境,若干情境中有不同的基本设施,如dns,Serverless架构怎么在没有运维的情形下,Serverless怎样和各情境无缝对接而开发无感,是一个需求考虑的问题。一个可行的点是Serverless和基本互联网联动。

另一个特性是自动扩缩容。作为平台服务来讲,用户越多,那用户的行为具备更大的不可预料性,自动扩容的准时性、冗余资源的预料算法,都需求更多考量。

这些问题都对我们目前的基本架构引入了新的问题和挑战。来源于腾讯云。

©2016-2021 www.wcloud.cn All rights reserved.
唯一网络-云服务综合解决方案提供商©版权所有

免费预约

客户免费预约阿里云/唯云架构师上门服务。免费服务内容:云数据中心、网络安全、云专线、云等保、公有云、混合云和其它云协助迁移。

请保持电话畅通,我们将在工作时间与您电话联系。

立即预约