微信发力了,一键部署网站后端!
大家好,我是魚皮。
還記得么?之前我全程直播帶大家從 0 到 1 做了一個包含前端、后端的 表情包網站項目 ,支持搜索表情、自由裁切下載、給表情包配字等功能。
爸爸表情包網站在線編輯下載但由于各方面的原因,我暫時將該網站戰術下線了。好吧,主要是沒錢(很費 CDN 流量)和人力維護了。。。
不過,我已經將該網站的所有源碼 全部開源 了,大家可以拿來自由學習。而且今天,我要手把手教大家部署上線網站的后端!
其實非常簡單,使用微信團隊推出的新服務 —— 微信云托管 ,無需購買服務器 ,大概幾分鐘就能完成任何后端項目的上線。
無服務器上線后端服務
微信云托管介紹
先介紹一下什么是微信云托管,這是由微信團隊提供的以云原生為基礎的,免運維、高可用服務上云解決方案。用人話說就是平臺來幫助你托管應用,開箱即用,再也不需要自己來搭建服務器、運維管理應用的運行了。你只管寫代碼開發,剩下的全部交給云托管!
微信云托管本質上是將你的應用打包為一個個獨立的容器,然后放到平臺上運行的。因此支持任意編程語言,并且內置了主流開發框架的模板,甚至 一行代碼不寫 ,也能發布項目,感受容器平臺的核心流程。
快速部署下面以我的表情包網站后端(Java 的 Spring Boot 項目)為例,演示一下如何使用該平臺。
發布首個版本
首先登錄微信云托管平臺,進入服務列表,可以看到已經被平臺托管的服務:
首次進入時需要用公眾號 / 小程序賬號創建環境,沒賬號可以免費申請一個~
點擊新建服務,輸入服務名稱,如果需要讓項目能被外網訪問的話,記得開啟公網訪問:
創建成功后,進入剛剛創建的服務,接下來我們要創建一個版本(可以理解為項目的版本號)。
目前支持三種上傳版本的方式,基本已經能夠滿足所有場景。
如果你的項目代碼只存在了自己的電腦上,可以選擇 本地上傳 ;如果項目已經發到了 GitHub、Gitee 等代碼倉庫中,可以直接從代碼庫拉取;如果已經有現成的鏡像了,那可以選擇鏡像拉取。
由于我的表情包網站后端代碼一直是存到 GitHub 上的,大家可以先 fork 我的倉庫到自己的倉庫中。
代碼倉庫:https://github.com/liyupi/father-backend
然后選擇 代碼庫拉取 的方式新建版本,選擇剛 fork 的倉庫,端口號和項目使用的端口號保持一致(這里是 8081):
除了上圖的基礎配置外,還可以根據需要做一些高級配置,比如指定容器構建文件(Dockerfile)的名稱、容器的 CPU 和內存配置(最低支持 0.25 核的超細粒度)、實例副本數、擴縮容條件等,還可以通過配置環境變量來區分測試和生產環境:
高級配置微信云托管平臺自帶 彈性擴縮容 能力,會根據訪問流量的大小自動增加和減少實例副本數,上能扛高并發、下能節約成本,非常靈活!
由于我已經在項目中寫好了 Dockerfile 文件,所以此處我們不用改任何高級配置,直接新建即可。
Dockerfile 文件如果你不會編寫 Dockerfile 文件,可以直接找同框架的項目 “抄” 一個。或者使用微信云托管提供的界面來定義啟動項目的方法:
新建版本后,微信云托管會自動執行拉取代碼、構建鏡像等操作,并且可以實時查看到日志:
部署中版本創建成功后,可以在版本列表中查看和管理,比如升級新版本、回退老版本等:
然后,進入 部署發布 ,首次發布時直接點擊 全量發布 即可:
發布成功后,你可以直接通過 web 界面在線調試后臺接口,比如測試一下我的表情包后臺的 /api/health 健康檢測接口,看到控制臺輸出 "ok",表示后臺已部署成功:
進入監控面板,啥都不用干,就能清晰地查看到后臺接口的調用情況、容器的 CPU 和內存資源占用等圖表,便于分析項目的運行狀況。試問如果你自己用服務器部署項目的話,誰去花時間給你搞監控面板呢?
服務監控還可以在日志面板中查看項目輸出的日志,支持自由檢索,這不比你自己登錄服務器看日志、或者搞一套日志服務要方便得多?
日志檢索自動發布
現在,我們已經成功發布了后臺的首個版本。如果之后項目代碼發生了變更,我們是否還要再重復執行一遍上述操作呢?
當然不用!
微信云托管提供了流水線功能,我們可以像工廠自動化生產一樣,讓項目的構建流程也全部自動化!
點擊新建流水線:
填寫要自動發布的代碼倉庫,默認該倉庫任何代碼修改都會觸發流水線的執行,你也可以通過指定目標目錄(比如 src)、推送觸發的分支來減小范圍,比如只是修改了 README 文件,就沒必要觸發了。還可以設置定時自動觸發,提高持續集成的效率。發布策略建議選擇 構建版本 + 鏡像 ,會比直接全量發布保險一些。
新建流水線然后我們隨便改一下倉庫里的代碼,微信云托管會通過倉庫的 webhook 鉤子感知到代碼的變化,并自動觸發流水線的執行:
自動構建流水線執行成功后,我們得到了一個船新版本。
灰度測試
這次我們在發布前,可以先進行一些測試,防止有 Bug 的代碼直接上線:
進入測試,我們可以配置測試的 URL 參數,比如 user = yupi,然后點擊灰度上線,在請求接口時只需要帶上 ?user=yupi 參數,就可以訪問到最新的測試版本了,而其他用戶訪問到的還是之前的老版本:
灰度測試如果你自測覺得沒啥 Bug 了,可以調整灰度流量的比例,讓部分同學可以公開訪問最新版本,沒問題后就可以全量發布啦:
其他優勢
怎么樣,是不是非常方便呢?其實國內的互聯網大廠,基本都是使用這種方式來進行項目自動化發布的,而不是人工登錄一臺臺服務器,反復輸入重復的命令來上線。
目前,各大云服務廠商基本也都提供了類似的平臺,但是微信云托管有一個 絕對優勢 :天然打通微信生態。你可以免鑒權、更加輕松地調用微信其他平臺的能力,比如云調用、消息推送、微信支付、小程序服務等。而且服務基于億級用戶同時在線的微信接入層實現,提供防數據爬取、防 DNS 劫持、防 DDoS 攻擊能力。微信用戶可以就近接入,享受更快、更穩定的安全網絡。
打通微信生態此外,微信云托管還提供了一鍵開通數據庫、對象存儲、資源監控等能力。也就是說,如果你要做一個后端項目,基本所有的資源都可以在微信云托管中申請和管理,不用到處開通、自行搭建了。
資源申請和監控成本
那相信有很多朋友會好奇了,這么好用的服務,一定貴的一批吧?
其實不然,微信云托管使用 按量計費 模式,通過實際使用的 CPU、內存等資源來計費,用多少付多少,不用的項目只要停掉(或者平臺自動縮容),就不會扣 1 分錢啦!我的編程導航等項目都是用這種模式去部署的,一年下來,的確比買同配置的服務器要劃算得多。
而且告訴大家個好消息:所有新用戶都能享有 3 個月的免費額度?!完全足夠學習和體驗了。反正不 piao 白不 piao,建議大家都去試試,感受云原生技術帶來的高效。
我也是最近才發現有免費額度,我說怎么沒扣費哈哈。。。
計費模式現在體驗云托管,輸出實踐文章,就能免費獲得200元代金券!優秀文章還有九種鵝廠周邊任選,喜歡的小伙伴可以參與下:https://wj.qq.com/s2/8971509/5219/
?? 點擊下方 閱讀原文 就能直達微信云托管官網了,感興趣的朋友試試吧~(PC端訪問才能使用哦)
以上就是本期分享,有幫助的話還請給魚皮一個 點贊 + 在看 ,謝謝大家!
往期推薦
考研結束,抓緊做這件事!
一個競賽上癮的學弟
N 年沉淀,騰訊這套系統終于開源!
抱歉,我不用別的測試工具了!
編程導航,涼涼!
總結
以上是生活随笔為你收集整理的微信发力了,一键部署网站后端!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET Core 中是否有 Po
- 下一篇: Dapr项目应用探索