部署网站上说别哭。
在接触无服务器架构之前,如果我们要推出一个网站,在开发的前期要经历很多复杂却又必不可少的步骤,其中有很多可谓是从进到退的快。

写代码,部署应用,部署数据库,申请域名,申请SSL证书,文件域名,至少需要几天时间。
即使采用集装箱化来大大减少操作和安排工作,也会面临不兼容和不稳定的问题。
如下图所示,一个你认为“稳定”的容器可能有意想不到的环境错误。
而且在技术之外,你会发现服务器、域名、证书加起来费用很多,有了建个人站的打算后可能会被价格劝阻。
无服务器,顾名思义——“无服务器”。但它并不是真的不需要服务器设施,更合适的是它没有传统服务器架构的烦恼。从我个人站长的角度,带大家简单体验一下使用阿里云无服务器产品——函数计算FC开发网站的具体流程。看看无服务器架构的实际体验吧。
我非常相信无服务器。
按照主流的解读,无服务器不是说没有服务器,而是说你在使用无服务器的时候,不需要关心底层资源,不需要登录服务器,不需要优化服务器。你只需要关注核心代码片段就可以跳过复杂繁琐的基础工作。核心代码片段完全由事件或请求触发,平台根据请求自动并行调整服务资源。Serverless几乎无限扩容,空闲时空不运行任何资源。代码无状态运行,可以轻松实现快速迭代和快速部署。
其一般执行过程如下:
图片来源:https://help.aliyun.com/document_detail/52895.html
所以,无服务器实际上是对传统云架构的创新。开发者只需要写核心代码,比如一个请求过来的时候如何处理和返回相应的数据。其他与软硬件服务器部署相关的事情交给云服务提供商。这样节省了很多资源,只有在使用服务的时候才会计算资源消耗,大大降低了成本。并且拥有无限扩容的能力,不用担心流量过大导致服务器停机。
也许你只是想建立一个博客。以前可能需要买一年的服务器,一年至少几百元。使用阿里云功能计算FC,如果你的网站访问量不是很高,一年可能只需要十几块钱,甚至在一个月免费额度的加持下,你几乎可以不花钱!
让网站变得简单。
我们打开阿里云函数计算的FC控制台页面。第一次需要打开服务,完成RAM授权。不要担心,只要按照过程的下一步:https://fcnext.console.aliyun.com/overview.
这是使用FC的流程图。您可以清楚地看到启动Web服务的步骤:
首先,我们单击左侧导航栏进入应用程序子页面:
选择烧瓶应用程序模板案例:
Flask是用Python编写的轻量级Web应用框架。WSGI工具箱使用Werkzeug,模板引擎使用Jinja2。Flask由BSD授权。
应用部署建议仓库部署,将代码推送到你指定的代码仓库,然后触发管道部署;后期更新项目时,可以直接将代码推送到远程仓库进行安全释放,总体来说更加灵活可控。
此方法需要绑定仓库帐户信息。
除了仓库授权,这里还可以设置一些关于部署的基本信息,或者直接进入下一步。我就是这么做的。
等待大约15秒钟,然后创建并部署一个无服务器服务:
此时,您可以在基本信息中直接访问函数计算提供的域名来访问默认站点:
事实上,这里已经推出了一个网站。
不过不用担心,在应用详情页的底部,你可以看到这个应用使用的函数资源,并在里面写函数代码。
代码空默认有一个基本的Flask框架模板,你可以在此基础上进行开发。
如上所述,通过访问FC提供的域名,你会发现在公网环境中已经成功部署了一个基本的Web服务器。不需要购买域名和SSL证书,SSH登录服务器部署环境和软件,甚至不需要手动推送代码。
名副其实,无题党,一分钟部署一个网站。
小练习
学习了阿里云函数计算FC使用量的相关知识后,这首歌剩下的就可以完成一点练习了。
实际目标:
具有RSS阅读功能的网站
实施步骤:
安装工具编写装饰器并调用函数来编写HTML页面。
背景知识:

简易资讯聚合
这是一种描述和同步网站内容的格式。你可以把它想象成一种定制化、个性化的推送信息服务。可以解决你漫无目的浏览网页的问题。它不会过时,信息越多,它的意义就越明显。让你关心的信息主动来到你面前,而这些信息都是用户需要的。这就是RSS的意义。
feedparser
这是一个Python Feed解析库,可以处理RSS,CDF,Atom。有了它,我们可以从任何RSS或Atom feed获取标题、链接和文章。
简要流程:
1.安装解析工具。
这里的解析工具提要是feedparser。其feedparser.parse函数提供了解析RSS URL的功能。它可以将RSS链接解析到字典中。每个条目包含一篇文章的标题、作者、链接和其他内容。
使用pip3 install feedparser安装feedparser:
2.根据feedparser文档编写必要的装饰器和调用函数。示例文件包括:
其中render_template函数是flask函数,它从templates文件夹templates中渲染给定的模板上下文。我们的html文件将放在templates文件夹中,在本例中,html文件是../templates/rss.html
from flask import Flask,render _ template import feedparserapp = Flask @ app . routed ef index:return render _ template @ app . routed ef RSS:feed = feed parser . parse)return render _ template if _ _ name _ _ = " _ _ main _ _ ":app . run
3.写入HTML页面
根据解析的内容写一个简单的HTML前端页面。示例文件是../templates/rss.html
Rss主页
{ % for entries % } { { entry . title } } | { { entry . published } } { { entry . summary | safe } }
{% endfor %} 创建文件后,单击保存和部署,在应用程序详细信息页面中找到并访问FC分配给我们的域名。效果:
用法:
我们使用GET请求方法request.args.get来获取参数,这样我们就可以解析源代码,并通过在URL后面传入要解析的RSS订阅地址参数,将其呈现为相应的阅读样式。
示例:/rss rssurl=
例如:http://RSS surl = https://jandan.net/feed
综上所述,我们只需要依靠feedparser库中相应的五行代码,用无服务器函数计算FC来完成这个小练习。
摘要
我们可以真切的感受到,使用无服务器功能计算开发网站,与传统架构开发有很大的不同。它省略了那些传统开发中很少修改的复杂配置和流程,让开发者专注于业务逻辑的开发。而且我们不用考虑服务器的选择,真的很灵活,很有弹性。
未来我想我会认真研究云原生思想和无服务器函数计算,利用这股新风实现更加灵活复杂的业务应用。

更多
Feedparser官网-https://pypi . org/project/feed parser/
Feedparser文档-https://feed parser . readthedocs . io/en/latest/
原文链接:http://click.aliyun.com/m/1000350626/
本文为阿里云原创内容,未经允许不得转载。


