作者 | 江昱
起源 | 阿里巴巴云原生公众号
只有本人吃本人的狗粮,本人做的货色才不“🐶”。Serverless Devs 自倒退之处到当初,曾经经验了几个月的工夫,在这几个月,Serverless Devs 的成长是迅速的,这很大一部分的起因是“咱们在吃本人的狗粮”,咱们置信,如果本人都用不爽的货色,大家肯定很难用的起来。
明天这篇文章,是一个对于 Serverless Devs 官网建设的文章,文章很简略,也很乏味。
什么是 Serverless Devs?
「Serverless Devs」是由阿里云开源的 Serverless 开发者平台,致力于为开发者提供弱小的工具链体系。通过该平台,开发者能够一键体验多云 Serverless 产品,极速部署 Serverless 我的项目。Serverless Devs 让开发者以更短的门路体验到多个支流云厂商 Serverless 产品,以更快的速度创立和部署 Serverless 利用,以更简略、更自动化的办法进行项目管理和运维,Serverless 我的项目通过该平台实现全自动化后,可节俭 99.9% 的治理老本。
- Github 地址:https://github.com/serverless-devs
- Gitee 地址:https://gitee.com/organizations/serverless-devs/projects
- Serverless Devs 官网:https://www.serverless-devs.com
Serverless Devs 与 Docusaurus
家喻户晓,开源我的项目的官网不宜太简单,其实简简单单的就好,所以咱们通过了很长时间的比照,最终抉择了 Docusaurus 作为官网的框架选型。那么问题来了,咱们选型完结之后,咱们要如何来建设官网?
通过一些简略的调研,咱们决定用 Serverless Devs 建设 Serverless Devs 官网,并将其部署到 Serverless 架构上,很绕嘴是吧?然而,这个过程却真的很“经典”:
咱们通过 Serverless devs 初始化了 Docusaurus:s init devsapp/website-docusaurus,这一部分能够参考文档:https://github.com/devsapp/website-example。
讲真,尽管也就是一行代码的事件,然而整个初始化还是比拟“赏心悦目”的,作为一个 Serverless 利用全生命周期的工具,Serverless Devs 在脚手架和疏导层面还是下了很多功夫的:
能够看到,初始化的时候,零碎疏导式的让咱们填写了我的项目名,存储桶名,以及须要的密钥信息,同时实现之后,还通知咱们:
You could [cd /Users/jiangyu/Desktop/start-fc/website/serverless-website] and enjoy your serverless journey!
感觉还是很贴心的。
接下来,依照指引:
能够看到帮忙文档:
当执行 s website-starter -h 之后,首次运行帮忙信息,可能波及到组件加载过程,稍等片刻,能够看到帮忙信息:
此时,咱们要将我的项目部署到线上,只须要执行 s deploy 即可。
当然,咱们还须要对我的项目进行肯定的配置,以及对咱们的官网进行肯定的建设。
对于网站建设,能够参考 Docusaurus 的官网文档,对于 Serverless Devs 的 website 组件配置,能够参考上图给咱们 🧭 More information: https://github.com/devsapp/we…
在文档中能够理解更多的配置内容,最终生成咱们的 s.yaml:
edition: 1.0.0
access: website_access
services:
website:
component: devsapp/website
actions:
pre-deploy:
- run: npm install
path: ./
- run: npm run build
path: ./
props:
bucket: serverless-devs-website
src:
codeUri: ./
publishDir: ./build
index: index.html
subDir:
type: index
region: cn-hongkong
CD 与 Serverless Devs
当咱们建设好了网站页面,在本地也能够失常运行,通过本地的 s deploy 也能够顺利部署了,这个时候面临了新的问题:我如何更新我的网站?每次都要手动的在本地公布么?是否能够利用 Github Action,接入自动化的能力呢?
所以:
- 咱们创立了一个仓库:_https://github.com/Serverless…
- 咱们将代码推送到仓库之后,创立了一个 Github Action 的配置:
name: Website Publish
on:
push:
branches: [master]
jobs:
publish-website:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 12
registry-url: https://registry.npmjs.org/
- run: npm install
- run: npm install -g @serverless-devs/s
- run: s config add --AccountID ${{secrets.ALIYUN_ACCOUNT_ID}} --AccessKeyID ${{secrets.ALIYUN_ACCESS_KEY_ID}} --AccessKeySecret ${{secrets.ALIYUN_ACCESS_KEY_SECRET}} -a website_access
- run: s deploy
此时我再 push 代码,就能够主动将网站公布进去了。
这外面的外围点如下所示:
- 装置 Serverless Devs:run: npm install -g @serverless-devs/s
- 配置密钥信息:run: s config add –AccountID ${{secrets.ALIYUN_ACCOUNT_ID}} –AccessKeyID ${{secrets.ALIYUN_ACCESS_KEY_ID}} –AccessKeySecret ${{secrets.ALIYUN_ACCESS_KEY_SECRET}} -a website_access
- 部署:run: s deploy
整个成果:
部署后的页面:
这里要阐明,此处配置密钥信息,应用了 Github 的 Secrets 性能,这个性能还是比拟根底的,所以不多赘述,次要就是将公布的所须要的密钥信息配置到 Secrets 外面。
总结
其实,目前来说很多人的博客,局部的官网都是通过动态网站等进行部署,通过 Serverless Devs 走这一套还是比拟不便的:
- 得益于 Serverless Devs 的行为形容,咱们能够更简略地将 npm install,npm run build 等指令集成到我的项目中。
- 得益于 Serverless Devs 的疏导能力,包含创立、入门,以及密钥配置时的获取链接,Serverless Devs 的确在一直的从细节登程,为便当而致力。
- 得益于 Serverless Devs 的灵活性,只须要两三行代码,就能够配置出 Github 的 CD 能力,将网站继续收回去,集体感觉这个还是挺爽的。
当然,目前来看还是有一些问题期待去做的:
- Serverless Devs 的场景还是有待丰盛的。
- 这个社区官网只有 CD,没有 CI 其实还是有肯定危险的,要缓缓的欠缺起来。