主题
第 5 章 代码住在哪里 · 服务器、云与 Serverless
代码写好了,总得在某台电脑上跑起来。跑在哪,是个层层递进的故事。
第一层,你自己的电脑。开发时代码就跑在本机,浏览器里那个 localhost 就是我自己这台机器的意思。它有两个致命问题,你一合上电脑,网站就死了,而且别人根本访问不到你。
第二层,租一台云上的电脑。所谓云(Cloud),就是别人机房里成千上万台永远开机的电脑,租给你用。你可以租一整台(常听到的词是服务器或 VPS),24 小时开机,自己装环境,自己维护。像租了间毛坯房,自由,但水电煤气全得自己操心,而且不管有没有客人,房租照付。我们在 DigitalOcean(常简称 DO)上就租着这样一台,第四册会带你亲自登上去看看。
第三层,Serverless(无服务器)。这个名字起得很坏,容易让人以为真的没有服务器。服务器还在,只是全归平台管,你不用碰。你只把一段函数交给平台,有人访问时,平台临时把它唤醒,跑完,再睡下,按运行次数计费。像共享厨房,有单才开火,没单不付房租,厨房卫生归平台管。你听到的 Function / Edge Function,就是这种被叫醒才干活的小段代码。
第四层,静态托管。你要放的只是前端文件(HTML/CSS/JS)的话,连函数都不用,平台直接把文件复制到全球各地的节点(这套分发网络叫 CDN),谁访问就近取货,像自动售货机。
现在可以一句话说清 Vercel 是什么了。它把你的前端做成全球售货机,把你的后端函数做成共享厨房,还连着 GitHub 自动上新(第 11 章讲)。我们的网站部署在它上面,原因就是这个。
那什么时候还需要一台永远醒着的真机器?当你的程序必须一直跑着的时候,比如持续监听区块链的程序。顺便说个好玩的,ForgeCard 那台插着读卡器的树莓派,就是我们自己客厅里的一台小服务器,永远醒着,等卡片靠近。
关键领悟
代码住哪,取决于它多久醒一次。偶尔醒,Serverless。永远醒,服务器。只是被看,静态托管。