登录
登录 注册新账号
注册
已有账号登录
尚硅谷大数据大神班V9-完结无密
王之 阅读 109 次
12月10日发布

download:尚硅谷大数据大神班V9-完结无密

谈无服务器,自然是对前端工程师的补充
作为前端工程师,我们的使命是为用户提供良好的前端用户体验。随着云原生时代的到来,显然我们可以做得更多。无服务器产品的特点是免操作、现收现付和自适应的灵活性,所以我们可以利用云上的各种无服务器能力,以相对较低的成本开发更酷的产品,为客户创造更多的价值。

如何构建一个云本地的现代Web应用程序?
我们先来回顾一下我们是如何发布一个静态网站的。

在云原生时代之前,我们想到的可能是需要找一个服务器,安装Nginx,然后上传静态文件,最后经过一系列配置完成网站发布。这个完成后,发现已经用了半天了。事实上,花在运维上的时间并没有真正为我们的客户创造价值。但这其实只是开始。随着业务的发展,我们要逐一解决稳定性、灵活性、安全性、成本等问题,在运维上的时间和精力会越来越多。否则,这个网站可能只是一个玩具。

但是随着云原生时代的到来,发布静态网站就容易多了。我们可以通过云产品轻松托管我们的网站。比如可以通过阿里云对象存储OSS提供的工具,上传静态资源到OSS,然后开启一键托管。此外,为了让客户能够更快的打开页面,还可以通过阿里云CDN将OSS设置为CDN的源站,让静态资源更贴近客户,让客户的体验更好。这两款产品都是按量付费免操作的无服务器产品,大大降低了我们各种复杂的运维成本。我们可以花更多的时间在R&D和体验上,为客户创造更多的价值。

但是随着业务的发展,如果我们的网站不仅仅是一个静态的网站呢?

用于外部服务的API(需要停靠缓存、数据库、消息队列、文件存储等。)
定期执行任务,甚至执行海量任务。
发邮件/短信/IM(钉钉、微信、飞书),智能语音通话。
处理用户上传的图片、音视频(转码、缩略图、黄色识别、水印、GPU推理)。
在服务器端呈现SSR页面
提升,杀死
面对这些需求,我们是不是又要去找服务器了?为了保证服务的稳定性、灵活性、安全性和成本,我们是否要在运维上花费大量的时间?有没有一款云产品可以像OSS/CDN一样解决我们这些后端需求,解决静态网站的运维问题?

面对这些挑战,阿里云的无服务器产品函数计算FC是一个不错的选择。除了通过功能计算FC处理API请求和大规模任务,还可以在功能计算FC中接入阿里云丰富的云服务如RDS、SLS、Tablestore、NAS或其他第三方服务,满足存储、计算、网络、安全、大数据、人工智能等各种服务的需求。

各种无服务器的云产品就像前端工程师的“军火库”。我们可以使用这些云产品为客户提供高质量的服务。

函数计算FC的优势及相关原理介绍
极其灵活,轻松应对流量高峰。
函数FC会根据请求量自动进行毫秒级弹性扩展,快速调度计算资源。从而可以轻松应对海量API请求和大规模并发任务。

使用函数计算时,可以为函数配置一个“实例并发”,它代表一个函数实例可以同时处理的最大请求数。函数实例本质上是一个Linux安全容器,是函数向外界提供服务的最小单位。

例如,当实例并发设置为20时,如果函数计算平台同时收到100个请求,将会拉起5个函数实例来处理这些请求。这些请求被处理后,函数实例将被冻结,如果在接下来的2 ~ 5分钟内没有新的请求(实例冻结后,不再收费),函数实例将被自动销毁。在某些场景下,如果业务对延迟非常敏感或者业务代码启动慢,可以通过配置灵活的规则来设置最小函数实例数,让函数计算FC提前启动函数实例,从而保证用户体验。还可以通过设置功能实例的最大数量来限制功能实例的最大数量,从而保护下游服务,控制成本。

相对于传统的服务器模式需要服务器自身的扩展和收缩,函数计算FC这种自动灵活的方式不仅可以减少如此复杂的扩展和收缩操作,还可以避免传统服务器模式中由于扩展不及时而导致的服务不可用,从而提高系统的稳定性。

降低成本,提高资源利用率。
CPU、内存、GPU等实例的规格可以在函数FC中自由配置。您可以创建一个最少0.05个内核和128 MB的函数,并提供一个梯度非常小的规格选择。基本上,您可以配置应用程序需要的任何规范。

计算FC函数的收费是毫秒级的。比如我们代码业务逻辑的执行时间是5ms,那么我们只需要为这5ms买单。而当没有流量时,函数计算FC会将函数实例收缩到0。这对于还没有开始的新业务,或者一些呼叫量很少的中长尾业务来说是非常友好的,我们不需要为他们支付固定的服务器费用。

免费的配置规范、毫秒级计费、容量收缩到0等功能,可以帮助我们大大提高资源利用率,大大降低成本。

无需操作和维护,更安全
在传统的服务器架构中,我们总是需要关注运行应用程序的物理机的资源使用情况。在功能计算FC中,我们不需要关心底层物理机的资源使用情况,功能计算FC平台会自动调度和操作资源。但是,如果我们的业务代码消耗了过多的资源,比如OOM等。,函数实例将自动重新启动,请求将失败。这时候我们需要根据监控指标和日志,找出代码中的问题,或者修改函数的规范,给函数实例更多的资源。

函数计算FC还提供了函数默认的HTTP/HTTPS域名,方便我们访问函数。它还支持将您自己的域名绑定到函数。因此,与传统的服务器架构相比,在使用函数计算时,我们避免了应用服务器和负载均衡服务器的运营和购买成本。

从安全角度来说,由于传统服务器需要一直运行,当安全配置不合理,或者代码漏洞没有及时修复时,黑客可以通过扫描IP和端口来发现并闯入服务器。计算FC的功能不会一直充当实例,也不会直接将IP暴露给公网,所以可以避免这类被扫描攻破的问题。

况且我们也没必要在意操作系统的安全漏洞。当出现安全漏洞时,函数计算FC会尽快完成修复。

当需要访问其他服务时,函数计算FC会根据配置自动生成一个临时密钥。这个临时密钥的有效期是36小时,所以不需要在代码或配置文件中写入重要的访问密钥,从而降低了密钥泄露的风险。

随着业务的不断发展,还可以购买阿里云的Web应用防火墙的WAF产品,保障功能安全。

零转化,研发效率高
函数计算支持创建三种类型的函数:内置运行时、自定义运行时和容器映像。它还提供API、SDK、控制台和无服务器Devs工具,帮助我们完成应用的开发、构建、部署和观察。

在使用“内置运行时”时,我们需要根据函数计算FC定义的接口规则,编写处理请求的代码。比如下面是Node.js的一个API例子在使用这几行代码创建函数之后,我们就可以立即在我们的网站中使用这个API了。

在使用“自定义运行时”时,我们可以在不修改代码的情况下,在函数计算上运行SpringBoot、Flask、Express、NextJS、NestJS、Gin等Web框架开发的应用。您只需要在函数计算中配置应用程序监控的“端口号”和“启动命令”即可。它非常类似于使用传统服务器的部署模式。熟悉Express框架的学生应该对下图中的代码很熟悉。

在使用“容器镜像”时,我们可以完全自定义应用的执行环境,无需学习如何在函数计算的运行环境中更新Linux版本、GCC版本、安装各种依赖、字体等问题。另外,由于容器镜像的可移植性极强,我们也不用担心被云厂商束缚。同一个容器可以运行在本地数据中心的云或服务器上,也可以运行在云或本地数据中心的Kubernetes集群中。你甚至可以同时在服务器、Kubernetes集群和函数计算中部署一个镜像,通过几个不同的产品完成容灾。

摘要
通过函数计算FC等无服务器的云产品,我们不需要管理服务器等基础设施。无服务器云产品将为我们准备资源,以弹性、安全和可靠的方式运行我们的应用程序,存储我们的数据,并为我们提供其他附加价值。

Serverless的运维免维护特性对前端工程师来说是天然的补充,前端工程师只需编写业务代码,就可以快速构建云端原生的现代Web应用。让前端工程师把更多的时间花在为用户创造价值上。