行业资讯

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

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

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

唯一网络成立于2006年,是国内知名的云服务综合解决方案提供商。专业提供云服务器服务器租用托管云专线云等保一键免费获取方案等一站式云服务综合解决方案提供商。

新用户注册就送千元大礼包销售咨询热线:0769-23015555。

近两年,腾讯云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.
唯一网络-数据中心、云网服务及数字化解决方案提供商©版权所有

免费预约

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

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

立即预约