高校校园网站建设,南通的网站建设,广告设计需要学什么知识,珠海华兴建设工程有限公司网站从云计算到函数计算
函数计算#xff0c;你的名字
云计算#xff0c;是一种基于互联网的计算方式#xff0c;通过这种方式#xff0c;共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备#xff0c;使用服务商提供的电脑基建作计算资源#xff0c;因此用…从云计算到函数计算
函数计算你的名字
云计算是一种基于互联网的计算方式通过这种方式共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备使用服务商提供的电脑基建作计算资源因此用“云”来指代“网络计算资源”这是一种非常恰当的比喻。 美国国家标准和技术研究院的云计算定义中明确了三种服务模式分别是软件即服务SaaS、平台即服务PaaS和基础设施即服务IaaS。阿里云的产品能全部覆盖这三种服务模式如果分别举个例子那么应该是宜搭SaaS加速器、函数计算FC和云服务器ECS。
Serverless计算服务其基于PaaS又不同于PaaS因而更多时候被称作功能即服务Function-as-a-Service缩写为 FaaS。函数计算FC是阿里云的事件驱动的全托管Serverless 计算服务产品我想函数计算Function Compute的名字就是这样诞生的。
函数计算直达应用的核心
我们知道应用的核心是逻辑和存储而代码主要实现业务逻辑和持久化。
函数计算FC总体上是FaaSBaaS
函数指计算函数包含了业务逻辑部分这一部分由FaaS来实现
而数据持久化、消息推送和账户系统等由BaaS来实现。 Serverless服务并不是没有服务器了而是作为一种新的架构让我们在以往传统应用维护上的工作得到进一步降低。
以常见的主要基于云服务器的Web服务为例大致有这样的流程 在服务过程中服务器可能涉及路由规则、鉴权逻辑以及其他各类复杂的业务代码。同时开发团队不仅要将精力用于开发还要付出很大的精力在服务器的运维上面例如要时刻关注以下问题
· 服务器性能能否应对可能突然爆发的用户请求何时扩容
· 服务器上的脚本和业务代码等多少还在健康运行
· 外部网络安全威胁到来时如何保障数据安全
面对诸多问题确实会让人头大但如果我们摒弃基于服务器的架构而转用Serverless的架构之后服务的过程就变成了这样 当客户端和数据库未发生变化的前提下服务器变成了Serverless的架构。工作的分工发生了巨变。例如之前需要开发团队维护的路由模块以及鉴权模块都将接入服务商提供的API网关系统以及鉴权系统开发团队无须再维护这两部分的业务代码只需要持续维护相关规则即可再也不用担心应用的构建业务代码被拆分成了函数粒度不同函数表示不同的功能根据请求量还可以实现毫秒级扩容业务逻辑之外的一部分安全问题、资源调度问题全都交由云厂商负责。 除了开发和维护产品的省心在具体实现成本上也能达到降本增效的效果。相对于传统项目服务的全天候运行来说函数计算是基于事件驱动的只有在用户发起请求时函数才会被激活并且执行运行成本按量收费成本相较于节省计划还有显著的成本优势。
FC 解放生产力更专注于应用的业务本身
使用云服务器我们不用操心物理机房的运行维护等操作系统层之下的内容使用函数计算FC我们不需要装操作系统、、容器配置、运行环境不用担心环境程序会挂掉。 可见采用函数计算的Serverless架构后用户仅需运维与应用有关的函数架构下需要操心的东西现在只剩下了一个 函数计算仿佛一场全新的技术革命使用函数计算的Serverless架构后
开发团队不需要再自己维护服务器也不需要自己操心服务器的各种性能指标和资源利用率团队的运维可以更加专注的将监控目光放到监控应用程序本身的度量。应用的部署将变得十分容易。我们只要上传基本的代码同时不需使用Puppet、Chef、Ansible或Docker来进行配置管理大大降低了运维成本。
综上所述相对于传统项目函数计算 FC 具备以下优势
用户无需采购和管理服务器等基础设施运维成本低安全性更高。即涵盖了云服务器的优势用户只需专注业务逻辑的开发使用函数计算支持的开发语言设计、优化、测试、审核以及上传自己的应用代码。结合工作流代码提交自动部署直接运行函数计算FC以事件驱动的方式触发应用响应用户请求。与阿里云对象存储OSS、API网关、日志服务和表格存储等服务无缝对接帮助快速构建应用。简化运维工作提供日志查询、性能监控和报警等功能快速排查故障。不用担心性能问题架构更富有弹性毫秒级别弹性伸缩快速实现底层扩容以应对峰值压力。使用成本低按需付费支持百毫秒级别收费。只需为实际使用的计算资源付费适合有明显波峰波谷的用户访问场景。
函数计算似乎是真正实现 “像云一样“的云计算愿景它很好的诠释了最大程度利用资源、减少空闲资源浪费的环保理念和降低学习成本和使用成本的现实需求。
如此妙哉的函数计算该如何体验呢
函数计算提供运行环境、、开发者工具和函数触发器等功能。同时函数计算提供有免费执行次数 : 100万 (次)和免费资源使用量 : 40万 (GB-秒)。对于小范围的上线使用我们只用负担公网流量费用和其他资源付费即可。 最常用的函数计算创建方式是控制台进入服务及函数子页面依次创建服务和函数。一个服务可以由多个函数组成一个函数只能隶属于一个服务。
当然阿里云提供了一键式的在函数计算控制台-应用页面我们可以通过模板和仓库导入来创建
目前公测中的模板中心包含了各类来自官方或社区的共计56个应用或框架模板覆盖已经相当全面了。在官方文档的指导下可以实现零基础创建FC应用。 由繁到简从长到短
实践-基于Node.js Serverless的Web短网址跳转
主要功能-实现长连接与短链接的映射。
简要描述
用户可以为指定URL创建对应短链
用户访问短链自动跳转到相应URL
如上文所说用函数计算FC构建应用总体上要是FaaSBaaS。本文的实践项目涉及到BaaS数据库的使用方便起见使用云开发平台搭建应用。
应用架构图如下 资源预备
需要注册开通云开发平台并激活以下服务
API 网关/API Gateway
函数计算/Function Compute
对象存储/Object Storage Service
日志服务/Log Service
MongoDB Serverless实例
数据库部分
购买MongoDB Serverless版。
新建集合新建集合其实就相当于新建一个表。创建集合links、logs。
通过程序代码连接Serverless实例使用方法点击该链接参见官方文档。
逻辑代码部分示例
Attention:该项目还使用了Express框架以便于简化路由处理
import storage from ../storageexport default async (req, res): Promiseany {// params from request body or querystringconst params req.body ?? req.queryconst { url , slug } params as { url?: string, slug?: string }// url is requiredif (url ) {return res.status(400).send({ message: Missing required parameter: url. })}// url format checkif (!/^https?:\/\/.{3,}/.test(url)) {return res.status(400).send({ message: Illegal format: url. })}// custom slug length checkif (slug.length ! 0 (slug.length 2 || slug.length 10)) {return res.status(400).send({ message: Illegal length: slug, ( 2 10). })}const getForwarded (name: string): string req.headers[x-forwarded-${name}]?.toString() ?? try {// request origin urlconst origin ${getForwarded(proto)}://${getForwarded(host)}/// if slug customizedif (slug ! ) {const existUrl await storage.getUrlBySlug(slug)// url slug are the same.if (existUrl url) {return res.send({ slug, link: origin slug })}// slug already existsif (existUrl ! null) {return res.status(400).send({ message: Slug already exists. })}}// target url existsconst existSlug await storage.getSlugByUrl(url)// url exists no custom slugif (existSlug ! null slug ) {return res.send({ slug: existSlug, link: origin existSlug })}// create if not existsconst newSlug await storage.addLink(url, slug)// responseres.send({ slug: newSlug, link: origin newSlug })} catch (e) {return res.status(500).send({ message: e.message })}
} 完成前端静态页面后便可绑定域名上线测试。
注意需要绑定已备案域名。
小结
Serverless作为云原生玩家的首选微服务已逐渐得到大众认同并快速发展起来期待未来会有更多基于Serverless的应用。
作者Ethin
原文链接
本文为阿里云原创内容未经允许不得转载。