国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > 無服務(wù)器化地持續(xù)部署一個網(wǎng)站

無服務(wù)器化地持續(xù)部署一個網(wǎng)站

時間:2023-04-18 16:02:01 | 來源:網(wǎng)站運營

時間:2023-04-18 16:02:01 來源:網(wǎng)站運營

無服務(wù)器化地持續(xù)部署一個網(wǎng)站:Serverless 不僅僅是 Function as a Service,廣義上來講,Serverless 是云計算的一種模式。當(dāng)一個軟件產(chǎn)品運行時不直接管理機(jī)器(無論是物理機(jī)還是虛擬機(jī))進(jìn)行計算、存儲時,便可算是 Serverless 架構(gòu)。本文以一個構(gòu)建及部署一個靜態(tài)網(wǎng)站為例,介紹下如何無服務(wù)器化的 AWS 服務(wù)進(jìn)行低成本的持續(xù)部署(Continuous Deployment,CD)。這個方案可以擴(kuò)展到動態(tài)網(wǎng)站及其他形式的 web applications & services。

本文使用的例子是 A Serverless Pro 站點,使用 Hexo 框架。構(gòu)建靜態(tài)站點有許多高質(zhì)量的框架,部署 Hexo 靜態(tài)站點也有許多簡單高效的方案,本文僅僅是使用 Hexo 作為一個簡單的例子,不討論如 “為什么不使用 jekyll 做靜態(tài)站?”、“為什么不直接用 Github Pages?” 等問題。

總覽

下圖是最終構(gòu)建出來的 CD Pipeline。當(dāng)一個開發(fā)者 push 一個新 commit 時,新的改動會被自動構(gòu)建、部署到 AWS S3,進(jìn)而分發(fā)到 CloudFront CDN。




代碼管理

代碼管理使用的 CodeCommit 是類似于 Github 的服務(wù),相比 Github 的優(yōu)勢在于其對個人或小團(tuán)隊的 private repository 價格低了許多。本文的例子只將 Hexo 源碼 提交至 CodeCommit 而不是 Hexo 生成的靜態(tài)文件,這樣的好處是版本控制控制的是開發(fā)者寫的源碼,而不是 Hexo 生成的靜態(tài)文件。

構(gòu)建及測試

CodeBuild 是一個用來構(gòu)建及測試代碼的服務(wù),在例子中取代了如 Jenkin 、Gitlab CI 等成熟開源方案。CodeBuild 相對于成熟方案的優(yōu)勢在于,開發(fā)者不需要自己搭建服務(wù)器用于軟件構(gòu)建。本例子在源碼根目錄下創(chuàng)建了一個 buildspec.yml 文件,CodeBuild會根據(jù)這個文件在其所管理的容器實例里進(jìn)行構(gòu)建。

version: 0.2phases: install: commands: - npm install build: commands: - node_modules/.bin/hexo generate post_build: commands: - aws s3 sync public/ s3://$WEBSITE_BUCKET/ --cache-control max-age=3600 --delete本例子的部署過程比較簡單,只是使用 Hexo 命令生成靜態(tài)文件并在成功構(gòu)建之后將生成的文件上傳到相應(yīng)的 S3 Bucket 里。

Pipeline

CodePipeline 是一個用來將源碼、構(gòu)建、測試、部署過程串起來實現(xiàn) CD 的服務(wù)。下圖是該例子所使用的 Pipeline:




當(dāng)一個新的 commit 被 push 到 CodeCommit 的時候,會觸發(fā) pipeline 將源碼打包送到 CodeBuild。因為這個例子的部署過程僅僅是講文件上傳到 S3,所以在這個 pipeline 中便沒有 Deploy 這一 stage。如果是更復(fù)雜的軟件、服務(wù),則可能需要在這個 pipeline 中增加 Beta、Gamma 及 Prod 等 stages,并在各 stages 直接添加一些如集成測試之類的 steps。

DNS、證書 及 CDN

目前這個方案手動通過相應(yīng)的 AWS 服務(wù)生成及管理 SSL 證書、配置 CDN 分發(fā)及 DNS資源的創(chuàng)建。

優(yōu)勢與不足

這個方案擴(kuò)展到更復(fù)雜的動態(tài)網(wǎng)站、微服務(wù)也同樣適用。其優(yōu)勢在于不需要開發(fā)者太操心實現(xiàn) CD 所需要的構(gòu)建及測試服務(wù)器。一旦整條 pipeline 配置好,開發(fā)者每次提交及部署新代碼所需要做的,就是一個 git push。這對初創(chuàng)團(tuán)隊是非常好的事情,讓團(tuán)隊可以專注于開發(fā)業(yè)務(wù)本身,而不需要太考慮支撐業(yè)務(wù)開發(fā)的 infrastructure 的問題。

本文用于介紹該方案的例子也有明顯的不足:手動配置的步驟太多。好在 AWS 提供了 CloudFormation 這個服務(wù)讓 Infrastructure as Code 變得非常簡單。

另外,使用云服務(wù)會有另一個隱患,即 vendor lock-in,以后想遷移到其他平臺或技術(shù),都變得困難。

關(guān)鍵詞:部署,持續(xù),服務(wù)

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉