关于云原生:Serverless-Devs-的官网是如何通过-Serverless-Devs-部署的

83次阅读

共计 3153 个字符,预计需要花费 8 分钟才能阅读完成。

作者 | 江昱
起源 | 阿里巴巴云原生公众号

只有本人吃本人的狗粮,本人做的货色才不“🐶”。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 代码,就能够主动将网站公布进去了。

这外面的外围点如下所示:

  1. 装置 Serverless Devs:run: npm install -g @serverless-devs/s
  2. 配置密钥信息:run: s config add –AccountID ${{secrets.ALIYUN_ACCOUNT_ID}} –AccessKeyID ${{secrets.ALIYUN_ACCESS_KEY_ID}} –AccessKeySecret ${{secrets.ALIYUN_ACCESS_KEY_SECRET}} -a website_access
  3. 部署: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 其实还是有肯定危险的,要缓缓的欠缺起来。

正文完
 0