大家好,我是Yupi。
还记得吗?之前我直播过如何从0到1搭建一个前后端应用,支持表情搜索、自由剪切下载、表情添加文字等功能。
爸爸表情符号网站
在线编辑和下载
但由于种种原因,我暂时把网站下线了。嗯,主要是因为没钱(耗费大量CDN流量)也没人去维护。。。
不过我已经把网站源代码全部开源了,大家可以自由学习,今天就来教大家如何部署线上网站的后端吧!
其实很简单,通过微信团队推出的新服务——微信云主机,你无需购买服务器,只需几分钟就可以完成任意后端项目的上线。
无服务器后端服务微信云主机介绍
先介绍一下什么是微信云主机,这是微信团队提供的云原生、免维护、高可用的服务云解决方案。通俗的说就是平台帮你托管应用,开箱即用,你不再需要自己搭建服务器、管理应用的运行,只需要写代码、开发,剩下的就交给云主机吧!
微信云主机本质上是将你的应用打包成独立的容器,然后在平台上运行,因此支持任意编程语言,内置主流开发框架模板,你无需写一行代码就可以发布项目,体验容器平台的核心流程。
快速部署
下面我将以我的表情符号网站(Java Boot 项目)的后端为例来演示如何使用该平台。
第一个版本发布
首先登录微信云托管平台,进入服务列表,可以看到平台已经托管的服务:
首次进入需要使用公众号/小程序账号创建环境,如果没有账号可以免费申请一个~
点击新建服务,输入服务名,如果需要让项目可以从互联网访问,记得开启公网访问:
创建成功之后进入刚刚创建的服务,接下来我们需要创建一个版本(可以理解为项目的版本号)。
目前支持三种版本上传方式,基本可以满足所有场景。
如果你的项目代码只存在于你自己的电脑上,你可以选择上传到本地;如果项目已经发送到代码仓库如 ,你可以直接从代码仓库拉取;如果已经有现成的镜像,你可以选择拉取镜像。
由于我的表情符号网站的后端代码一直存放在互联网上,因此你可以先将我的存储库 fork 到你自己的存储库中。
代码存储库:
然后选择代码库拉取方式创建新版本,选择新fork的仓库,端口号和项目使用的端口号保持一致(这里是8081):
除了上面展示的基本配置之外,你还可以根据需要进行一些高级配置,比如指定容器构建文件的名称()、容器的CPU和内存配置(支持至少0.25核的超细粒度)、实例副本数、扩缩容条件等,还可以通过配置环境变量来区分测试环境和生产环境:
高级配置
微信云主机平台自带弹性伸缩能力,会根据访问流量的大小,自动增加、减少实例副本数,既能处理高并发,又能节省成本,非常灵活!
由于我已经在项目中写入了该文件,因此我们不需要在这里更改任何高级配置,只需创建一个新的即可。
文档
如果你不会写文件,可以直接找一个框架相同的项目“复制”过来。或者使用微信云主机提供的接口,定义启动项目的方法:
创建新版本后,微信云主机会自动进行拉取代码、构建镜像等操作,可以实时查看日志:
部署
版本创建成功后,您可以在版本列表中进行查看和管理,如升级新版本、回滚到旧版本等:
然后进入部署发布,首次发布时,直接点击Full 即可:
发布成功后,可以通过web界面直接在线调试后端接口,例如测试我的包后端的/api/健康检测接口,如果看到控制台输出“ok”,则表示后端已经部署成功:
进入监控面板,不用做任何事就能清晰的查看后台接口的调用情况,容器的CPU、内存资源使用情况等图表,方便分析项目的运行状况。如果你自己把项目部署在服务器上,谁会花时间给你建一个监控面板呢?
服务监控
还可以在日志面板中查看项目输出的日志,支持自由检索,这比自己登录服务器查看日志或者搭建日志服务是不是方便多了呢?
日志检索和自动发布
现在,我们已经成功发布了后端的第一个版本,如果后续项目代码有变动,是不是还要重复上面的步骤呢?
当然不是!
微信云主机提供了流水线功能,我们可以像工厂自动化生产一样,实现项目建设过程的自动化!
单击创建新管道:
填写需要自动发布的代码仓库,默认情况下,仓库中任何代码修改都会触发流水线的执行。也可以通过指定目标目录(如 src)和要推送触发器的分支来缩小范围,比如只修改文件就没必要触发。还可以设置定时自动触发,提高持续集成效率。发布策略建议选择构建版本+镜像,比直接全量发布更安全。
新装配线
然后我们随便更改仓库里的代码,微信云托管就会通过仓库钩子感知到代码变更,并自动触发管道的执行:
自动构建
管道成功执行后,我们得到一个新版本。
灰阶测试
这次我们可以在发布之前做一些测试,防止有bug的代码直接上线:
进入测试,我们可以配置测试URL参数,比如user=yupi,然后点击灰度发布。请求接口的时候只需要带上?user=yupi参数,就可以访问最新的测试版本,而其他用户仍然访问之前的旧版本:
灰阶测试
如果发现自测没有bug,可以调整灰度流量的比例,让部分同学公开访问最新版本,没有问题之后,就可以发布完整版了:
其他优势
怎么样?是不是很方便?其实国内大部分大型互联网公司都是采用这种方式来自动发布项目,而不是手动一个个登录服务器,反复输入重复的命令才能上线。
目前各大云服务商基本都提供了类似的平台,但微信云主机有绝对的优势:天然对接微信生态,无需认证,更便捷地使用其他微信平台的能力,如云调用、消息推送、微信支付、小程序服务等。而且该服务基于亿级用户同时在线的微信接入层,提供防数据爬取、防DNS劫持、防DDoS攻击能力,微信用户可以就近访问,享受更快速、更稳定、更安全的网络。
连接微信生态系统
此外,微信云主机还提供了一键数据库、对象存储、资源监控等能力。也就是说,如果你想做一个后端项目,基本上所有的资源都可以在微信云主机里申请和管理,不用到处去开设和搭建。
资源请求和监控成本
相信很多朋友都会好奇,这么好用的一项服务,价格肯定很贵吧?
其实微信云主机是按量付费的模式,按照实际使用的CPU、内存等资源进行计费,用多少付多少,如果停掉不用的项目(或者平台自动缩容),一分钱都不会扣!我的编程导航等项目就是按照这个模式部署的,一年下来,确实比买一台同样配置的服务器划算很多。
而且有个好消息要告诉大家:所有新用户都可以享受 3 个月的免费使用!学习和体验已经足够了。不管怎么说,还是试试看吧,所以我建议大家去尝试一下,感受一下云原生技术带来的效率。
我也是最近才发现有免费额度,还奇怪怎么没有扣费用呢。哈哈。。。
计费模式
现在体验云主机,输出实用文章,还能免费领取200元代金券!还有9种鹅厂周边供精品文章选择,有兴趣的朋友可以参与:
⬇️点击下方原文,可直达微信云主机官网,有兴趣的可以试试哦~(仅限PC端)