玩转AIGC训练营:课时2:初识 Serverless(下)
课时2:初识 Serverless(下)(二)
三、公有云产品
然后关于 Serverless 这样的一些产品,其实在整个 CNCF 的调研报告当中,我们是可以看到有很多这样公有云的产品,包括 AWS lambda ,包括阿里云的函数计算,包括阿里云的 Serverless 应用引擎,当然也包括其他的一些厂商的一些产品,其实是有很多公有云的产品。
四、阿里云 Serverless
在阿里云的这里面,这张图是阿里云在去年的云栖大会的时候对外发布的,就是对外讲 PPT 的其中的一页,这一页被我搬过来的。
阿里云的关于 Serverless 架构的一个落地或者整体一个形态,也是比较完善的。首先阿里云很多的东西都是自建的,也都是自研的,在一定程度上是具有极高的保障的,这是依赖底层的一个技术基础。其实整个 Serverless 架构对底层的技术基础要求还是蛮高的,在这一点上,我觉得阿里云还是比较有优势的。
然后在上一层面上,我们会做很多的这样的产品,包括函数计算,还有刚才所说的应用引擎,还有包括所说的Serverless k8S ,还有其他的一些东西。然后旁边的一些 bus 服务也是非常完善的,包括刚才所说的 EB ,Serverless 工作一些网关、数据库等很多的东西,再往上也可以在很多的场景进行落地的,比如前端全站、小程序微服务。我用昨天和前天两天的时间,通过 Serverless 架构,加小程序,然后用 Python 语言直接做了一个刷题的小程序。整个过程还是蛮流畅的,效能还是比较不错的,然后还有像新零售、游戏互娱、在线教育的一些落地的场景。
其实阿里云的 Serverless 外的产品对外来发的时候,它已经是在阿里巴巴经济体内部有一些比较大的落地,或者比较多的应用,包括我们所说的淘宝,支付宝,闲鱼,飞猪,钉钉,包括在宇却等一些上面都已经有了比较比较完善的一些应用。除此之外,也有很多的这样一些大客户的企业级标杆客户的,大家可以在阿里云函数计算的官网首页上面看到这样的一些标杆用户的。
然后这张图,是阿里云 Serverless 的整个,从产品维度的角度,这个可能是说从功能,或者架构,或者是产品的角度,底层是一些基础设施,然后在计算层可能会有一些比较有典型的业务能力,例如弹性伸缩、负载均衡、版本灰度、故障恢复,然后再上一层会建立一些运行时,像容器镜像,基本上就是阿里云在去年推出的。然后阿里云推出之后,像 AWSR ,还有腾讯,大家也都逐渐的推出了一些容器镜像的服务,包括实例,实例的类型也有这些,然后还有一些可观测性上的东西,还有一些上层的建设,其实这就是通过底层逐渐的向上层建设,让用户可以更简单方便的使用的一个过程。
五、开源产品
除了一些云厂上的 Serverless 的产品,还有一些开源产品包括常见的 Open 开, FA Co ,如果大家对这些产品有兴趣的话,也可以自己去搭建一下,这些东西对于学习来说还是有一定帮助的,例如,我如何做一个天然分布式的架构,还有哪些开源的产品。
这些都是将分布式的一些概念融合进来,来做一些事情,包括所说 Serverless 调度可能有哪些事情,我想体验一下真正的冷启动,我想自己建立一个 Serverless 集群来学习、研究一下,这些产品基本上都是具有比较典型的或者比较具有代表性的了。
我讲的东西其实是比较多的,也是比较杂的,只是希望大家可以通过我的讲解对 serveless 有一个基础的概念,对 serveless 有进一步的了解。之后,关于 serveless 更加专业的一些描述,包括它的更加专业的一些架构,技术的一些实现会有专业的同学来给大家讲解。
六、常见问题
Serverless 架构会有一些常见的问题,这些问题有一些在我刚才描述过程中已经说过的,像什么是 Serverless 架构,我把项目迁移到 Serverless 架构有哪些好处,还有 Serverless 架构是否存在安全隐患。然后这里有一个问题,就是 Serverless 架构不需要运维。
这是一个非常有趣的问题,有一些厂商他一直在宣传, Serverless 架构是免运维零运维的,其实我是比较反对这样的一件事情,因为我觉得运维还是需要的,只不过运维的工作重心可能会发生了一些调整或者变化,他原先可能关注的是 A 这样的一个事情,或者关注到服务器层面运维,但是现在他可能更加关注到业务运维或者说智能运维这样一个层面。
然后就是我的应用,我已有的应用要如何迁移到 Serverless 架构,刚才有一位同学在群里就说了, Serverless 架构是不是一个力度更细的?原先一个业务,我可能有一个项目,现在我要给它签拆成10个20个函数来放在 Serverless 架构上,我才能用Serverless架构?不是的,如果你整个项目所使用的接口,或者是资源基本上都是类似的,然后也没有什么特殊的问题的话,你是完全可以把整个项目放在一个函数里面,和之前是完全一致的,基本上你只要迁过来就可以享受到 Serverless 架构所带来的技术优势,不一定要给他拆开的,这个最主要的还是要根据业务的实际情况来看。
然后接下来就是,我要如何去学习 Serverless 架构,其实阿里云这里会给大家提供非常多的 Serverless 的学习资源,像我们整个的一套课程,这个直播的课程会有一些录播分享给大家,然后在体验平台上面我们会有很多的这样的一些案例,也会给大家,大家可以直接在上面按照流程操作就可以体验到了。
我们前段时间举办的一个活动,是通过 Serverless 架构部署一个传统的FC 的红白机的小游戏,这种东西就有上万人来参加,整个过程也是非常流畅的,大家如果想要学习的时候,也可以通过这些东西来进行学习。除此之外,阿里云也牵头来,出了好多关于云人生的书,还有Serveless 架构的书,我也正在写第三本关于 Serverless 架构的书,这些书籍也都是可以分享给大家的,然后大家也可以进行学习或者研究。
接下来说 Serverless 架构是未来吗,是云计算的终点站吗?其实这种话就比较空、比较大了,我觉得至少它的方向是没错的,但它是不是终点站其实是未知的。
最后一个比较重要的问题, Serverless 架构如何和高校的课程进行结合,或者说如何和高校进行结合。
我觉得这里面的结合可能是分成了三个方面,第一个方面是说我们是可以和一些课程来进行结合的,例如软件工程的课程,我们原先开发一个软件可能是要有哪些流程,那么基于 Serverless 架构,一个全新的架构,我们开发一个软件在敏捷性上可能会更加敏捷,在原先的一些模型上可能会有一个升级的操作。在这种课程上是完全可以结合 Serverless 架构的,因为我们培养学生,一方面是要培养他们的专业知识,另一方面是希望他们可以把一些东西更好的灵活的应用起来,然后毕业找个更好的工作,如果能把这些东西交给学生的话,对于学生来说是比较有价值的一件事情。
除此之外,像刚才所说的那些领域,人工智能的领域是完全可以和 Serveless 架构进行融合的,大数据的领域也是完全可以融合的,像分布式系统,那么 Serverless 架构本身就是一个天然的分布式的产品,或者是一个分布式架构,那它一定是可以和这样的课程进行融合的。包括我们所说的软件工程的一些课程,计算机发展史的一些课程,架构都是可以和他们有一个比较好的结合点的。
然后第二个融合点,就是和高校实验室融合。我们可以来考虑来做一些事情,比如我们是不是可以互相赋能,像我们阿里可以为大家提供一些科研的数据,然后大家可以通过 Serverless 架构来做一些科研,做一些学术的研究,然后我们共同推进这个行业的进步。如果大家的高校里可能都会有这种服务器,那么是不是可以通过 Serverless 架构,做混合云的一个模式,然后跑一些 job ,这样的话也可以做到一个降本提效的效果。
还有就是和一些活动来进行一些合作。例如架构可以有这样的一些社区的一些人,像厂商,一些行业规范制定的大佬、前辈,组成一个团队后不断的在各个高校做一些专题的演讲,专题的汇报,然后把 Serverless 架构工业界的一些发展内容带进高校,或者和高校来做一些活动。
对于 Serverless 的比赛,像阿里云就有一个关于 Serverless开发者的比赛,奖金池有60多万,一等奖可能有十几万、20几万,其实也是想要通过这样的活动来推动整个 Serverless 行业的前进。
七、案例演示
之后,我会给大家分享一些我做的几个小的案例,或者几个小的应用,这些应用全都是通过 Serverless 架构来做的。
首先,这里有一个小程序,这个小程序是一个人工智能相册的小程序,它就是将我刚才所说的一些网站的后端、人工智能融合到一起,然后快速的做了一个小程序。
第二个事情,就是说我过了很久之后想找到之前的某张照片,我需要一点一点去翻,我是否可以通过人工智能来进行一些搜索呢?所以这个时候,我就基于 Serverless 架构做了这样一些小程序,它可以直接创建一个相册.
这个相册是大家共享、共同管理的,完成之后,我们可以向相册上传一些图片,上传完一些图片之后,我们可以直接进行一些图片的查看。
这是一个结合 AI 的案例,我刚才只把图片上传进来了,但是在这里面,我通过一些文字的搜索,可以直接查看到这样一些结果和内容。所以这就是一个很典型的实时文件的处理,还有音视频的 web 应用的一个案例,还有一个是机器学习的案例。这就是一个非常简单的将这三个东西串联到一起的一个很实在的案例。
然后,是我做的一个关于教育的软件,一个编程学习的工具,整个这部分全都是基于 Serverless 架构来实现的,都是基于阿里云 Serverless 架构实现的。就是一个相对于网站 web 后端的功能,然后这里,它是有一个可以进行代码执行的这样的一个功能的。当用户输入代码之后,它是可以直接进行代码的一个运行的,这是输出结果(如下图)。
除此之外,有的一些同学可能会充分的利用自己零散时间来进行一些学习,他可能会有一些书籍,像我们学 C 语言的时候,这个书上可能有一段代码,那么他可以直接点击拍照,然后图像识别把这个东西提取出来,然后直接在这里运行,那这里面的拍照识别就是 AI 的能力和 Serverless 架构的融合,这种运行程序就是一个网站后端和 Serverless 架构的结合,除此之外,还包括我的个人的博客其实也是通过 Serverless 架构来做的,其中包括搜索的一些能力(如下图)。
各个实验室的官网,或者网站,也都可以通过 Serverless 架构来做一些事情。