将一个传统框架部署到阿里云Serverless平台的方法有很多,可以选择Custom、Custom Container以及原生编程语言的运行时。这其中Custom和原生语言运行时方案,除了启动命令/入口函数不同之外,区别并不是很大,可以根据自己需求进行实现,Custom Container方案相对来说更简单,但是镜像的冷启动速度相对Custom和原生语言运行时比较慢。
目前本案例仓库收录以下常见框架的部署案例:
No. | 🔥Nodejs | Python | PHP | Go | Java | Others |
---|---|---|---|---|---|---|
1 | 🔥Express [custom] | 🔥🔥Flask [python3] | Think PHP [custom] | BeeGo | Tomcat/Jetty | Gatsby |
2 | Egg [custom] | Tornado [custom] | laravel [custom] | Gin | SpringBoot [custom] | Hugo |
3 | Nextjs [custom] | Bottle [python3] | Discuz [custom] | Quarkus | ||
4 | Nuxtjs [custom] | Web.py [python3] | 🔥🔥🔥 WordPress [custom] | |||
5 | 🔥🔥🔥 Hapi [custom] | Django [python3] | 🔥🔥🔥 Zblog [custom] | |||
6 | Koa [custom] | FastAPI [custom] | Ecshop [custom] | |||
7 | Nest [nodejs12] | Web2py | Metinfo [custom] | |||
8 | Connect [nodejs12] | Pyramid [python3] | Whatsns [custom] | |||
9 | Think.js [nodejs12] | Typecho [custom] |
除了上面的案例之外,还提供了两个简单的实践应用:
- 基于Express框架的todoList应用:
s init todolist-app
- 基于Django框架的博客应用:
s init django-blog
考虑到部分用户在使用 Nuxt 等框架时,有 SSR 或者 SPA 的目的,所以本仓库也提供了类似的案例:
- nuxt-ssr:
s init start-nuxt-ssr
- nuxt-spa:
s init start-nuxt-spa
为了对比Custom运行时和编程语言原生运行时的框架迁移区别,可以参考以下案例进行自行对比:
框架名 Custom运行时 Node.js 12运行时 Egg.js ./web-framework/nodejs/egg ./web-framework/nodejs/egg-app Express.js ./web-framework/nodejs/express ./web-framework/nodejs/express-app Koa.js ./web-framework/nodejs/koa ./web-framework/nodejs/koa-app