2.6-Jamstack(SSG)
Create by fall on 03 Jun 2022 Recently revised in 28 Jun 2022
Jamstack
Jamstack 是一种构建网站和 web 应用程序的新方法。其中 JAM 指的是:客户端 JavaScript
、可重用的后端 API
,和用户界面的 Markup
,比如 HTML 与 CSS。Stack 指的是许多独立,但是可以组合,的技术层。
SSG:也被称为预渲染。如果用服务端渲染一个页面所需的数据对每个用户来说都是相同的,那么我们可以只渲染一次,提前在构建过程中完成,而不是每次请求进来就重新渲染页面。预渲染的页面生成后作为静态 HTML 文件被服务器托管。
A static site generator (SSG) is a framework that takes content from various sources (such as markdown files or a database) and generates a set of static HTML files. Unlike traditional dynamic websites, which generate HTML on the fly for each request, static sites are pre-generated, allowing them to be served quickly and efficiently.
应用场景:边缘云、serverless 计算、以及大前端有广泛的应用。
- Javascript 允许 Web 应用开发者在 HTML 页面中轻松地进行请求后端服务产生的动态内容。这些安全的 HTTP 请求(由客户端发出)可用于调用远程 API 端点并将结果返回给客户端(应用)。
- 互联网上有许多公开可用的 API 端点,它们可以返回大量很有用的数据。
- Markup 使我们可以非常容易地创建视觉上令人满意的网页。
关键特征是前端 Web UI 与基于 API 的后端服务之间的清晰区分。与传统 web 不同的是 Jamstack 应用程序是模块化和分散式的:UI 可以通过静态网页服务器、CDN、甚至基于区块链的存储进行分发;后端 API 服务可以部署在云上,也可以由边缘节点就近提供服务。
比起LAMP 这个架构,所有内容都是服务端进行处理,客户端只负责渲染。
Jamstack 应用的用户界面是通过“编译”成的静态网页,从而大大提高了性能,安全性,以及降低了服务端的复杂度与计算负载。
从开发者的角度来看,一些主要的区别包括:
- Jamstack 开发者不需要安装或管理操作系统(如 Linux)
- Jamstack 开发者不需要管理安全策略(服务器防火墙)
- Jamstack 开发者不需要安装或管理应用程序数据库(如 MySQL)
- Jamstack 开发者可以在不使用 HTTP (Web)服务器(如 Apache)的情况下部署 Web 站点或 Web 应用
API 站点
如果你可以创建和部署自己的 API 端点,但不想要任何额外的服务器,有没有什么办法 🤔 ?
serverless
不运行自己的服务器的情况下提供 API 服务。开发者只需要上传一段代码就可以提供服务,一般有两种 serverless 服务。
Database-as-a-service
(DaaS)数据库为 Jamstack 应用提供基于云数据库的存储与查询服务。用来管理应用的状态,比如用户存储的数据。Function-as-a-service
(FaaS)函数服务提供无状态的计算。与数据库或者云存储服务一起为 Jamstack 应用提供逻辑后端。
在公有云上部署 serverless API 服务并不完全适合 Jamstack 的理念。J 与 M 都已经通过边缘云部署了,为什么 A 不行呢?在边缘云上部署 serverless 函数的需要新一代的轻量级软件容器。这是 CNCF 旗下的 WasmEdge 这种 WebAssembly 沙箱)的重要应用场景。
Rust 函数计算服务
WasmEdge 可以部署在边缘云与边缘设备上。它符合 OCI 标准,能被 CRI-O 与 Kubernetes 这样的工具调度与管理。WasmEdge 可以让开发者用 Rust 语言写安全高性能的函数服务,也可以支持为场景定制的 DSL 低代码解决方案。
Second State 提供了跨云的 FaaS 基础设施,可以使用它来创建、部署和调用自己的定制函数。无论你想创建一个全新的 web 应用,迁移你现有的 web 应用,还是仅仅增强你 web 应用的客户端,基于 WasmEdge 的 FaaS 都是很好的选择。甚至不需要用户名和密码。所有的调用都是通过开放的 Web 、通过安全的 HTTP 请求执行的。几分钟内就可以部署一个自己的应用。
这里有许多精彩的预建 demo 和教程,使你能够学习如何创建自己的 FaaS 端点。这些预构建函数(demos)包括:
参考文章
作者 | 链接 |
---|---|
WASM中文社区 | https://segmentfault.com/a/1190000040382954 |