4種輕松部署網(wǎng)站或應(yīng)用程序的方法
后才能真正上線。在部署時(shí)制定可靠的計(jì)劃將成敗新功能。在決定用于托管和部署網(wǎng)站的服務(wù)時(shí),了解您要部署的網(wǎng)站的用途至關(guān)重要。您是希望自動(dòng)部署主分支機(jī)構(gòu)還是希望擁有更多控制權(quán)?持續(xù)集成(CI)有多重要?您是否有一個(gè)靜態(tài)站點(diǎn)或龐大的用戶信息數(shù)據(jù)庫?
在本文中,我們將介紹使您的網(wǎng)站上線的四個(gè)愉快的部署路徑,以及每個(gè)計(jì)劃的收益和成本。我還將討論一個(gè)適用于Shopify應(yīng)用程序環(huán)境的潛在集成計(jì)劃。無論您的技能水平或經(jīng)驗(yàn)如何,這些路徑中的至少一條應(yīng)該對您有用。
在開始之前,您應(yīng)該要部署一些東西(代碼庫或存儲(chǔ)庫)以及要使用的域名。如果需要注冊,Shopify提供域名注冊。如果您想直接跳過我最喜歡的Shopify部署選擇,請查看Heroku上的部分。
目錄
我有一個(gè)靜態(tài)網(wǎng)站和一個(gè)GitHub帳戶:GitHub Pages
我有一個(gè)靜態(tài)網(wǎng)站,或一個(gè)使用靜態(tài)網(wǎng)站生成器構(gòu)建的網(wǎng)站:Netlify
我想利用更自定義的管道:Heroku
我是一名自信的開發(fā)人員,我的網(wǎng)站很大:AWS,Azure,Low End Box和DigitalOcean
那么哪個(gè)選項(xiàng)最適合我的Shopify應(yīng)用程序?
1.我有一個(gè)靜態(tài)網(wǎng)站和一個(gè)GitHub帳戶:GitHub Pages
如果您的頁面是完全靜態(tài)的,也就是說,在將完整的站點(diǎn)代碼添加到存儲(chǔ)庫之前(通常是在“ build”或“ dist”目錄中),已對其進(jìn)行了編譯,則有許多托管和部署選項(xiàng)無需花費(fèi)任何費(fèi)用。最基本(也是完全免費(fèi)的)選項(xiàng)之一是將您的網(wǎng)站托管在GitHub Pages上。
使用GitHub Pages部署您的第一個(gè)站點(diǎn)
1.登錄GitHub并在“ username.github.io”處創(chuàng)建一個(gè)新的存儲(chǔ)庫,其中“ username”是您的帳戶用戶名。您可以改為為GitHub Organization創(chuàng)建一個(gè)頁面。
部署網(wǎng)站:GitHub創(chuàng)建存儲(chǔ)庫
2.在“創(chuàng)建資源庫”屏幕上,可以選擇一個(gè)主題并使用空的Jekyll模板自動(dòng)填充您的資源庫,也可以執(zhí)行我的操作并在主數(shù)據(jù)庫或master分支庫上編寫自己的靜態(tài)頁面。
部署網(wǎng)站:GitHub選擇主題
3.如果要添加自定義域,也可以在“創(chuàng)建存儲(chǔ)庫”頁面上進(jìn)行此操作。添加您自己的域還有更多步驟,例如,告訴域服務(wù)提供商GitHub Pages的IP地址,并等待滴答作響。GitHub的幫助部分提供了詳細(xì)說明。
如果需要,請強(qiáng)制執(zhí)行HTTPS,我建議您這樣做,因?yàn)樗梢允鼓恼军c(diǎn)更安全并與用戶建立信任。另外,GitHub將免費(fèi)為您生成證書。
部署網(wǎng)站:GitHub實(shí)施HTTPS
4.用這種方式設(shè)置存儲(chǔ)庫后,GitHub Pages將index.html在項(xiàng)目的根目錄或docs文件夾中查找文件。有了index.html您選擇的deploy分支中的文件,您的站點(diǎn)就可以運(yùn)行了!
部署網(wǎng)站:實(shí)時(shí)網(wǎng)頁抓屏
5.要將更新部署到頁面上,您需要做的就是直接或通過拉取請求在主分支上添加提交。
部署網(wǎng)站:GitHub部署更新
GitHub Pages確實(shí)有一些主要缺點(diǎn)。首先,您將GitHub綁定為版本控制平臺(tái)。將您的代碼帶到另一個(gè)服務(wù)(如BitBucket)并沒有多大意義,因?yàn)槟鷮o法推送到GitHub Pages。每個(gè)帳戶還僅限于一個(gè)GitHub Pages網(wǎng)站,并且該網(wǎng)站必須是靜態(tài)網(wǎng)站。此外,這是輕松進(jìn)行在線部署的途徑。沒有集成的CI管道,除了刷新頁面并看到事物已更新之外,您沒有得到多少反饋。
一頁設(shè)置和自動(dòng)HTTPS生成有一些好處。例如,我個(gè)人的“我是開發(fā)人員,這是我的聯(lián)系信息”網(wǎng)站仍托管在我的GitHub Pages帳戶上,并且可能在可預(yù)見的將來。當(dāng)我尋找一個(gè)更強(qiáng)大的靜態(tài)站點(diǎn)托管選項(xiàng)時(shí),我轉(zhuǎn)向Netlify。
通過Shopify合作伙伴計(jì)劃發(fā)展您的業(yè)務(wù)
無論您是提供網(wǎng)頁設(shè)計(jì)和開發(fā)服務(wù),還是想為Shopify應(yīng)用商店構(gòu)建應(yīng)用程序,Shopify合作伙伴計(jì)劃都將使您成功。免費(fèi)加入并獲得收益共享機(jī)會(huì),開發(fā)人員預(yù)覽環(huán)境和教育資源。
2.我有一個(gè)靜態(tài)網(wǎng)站,或一個(gè)使用靜態(tài)網(wǎng)站生成器構(gòu)建的網(wǎng)站:Netlify
選擇git存儲(chǔ)庫位置的選項(xiàng)是在GitHub Pages 上使用Netlify的第一個(gè)也是最明顯的好處。三巨頭(GitHub,GitLab或Bitbucket)中的任何一個(gè)都可以完全集成。為了本教程的緣故,我將堅(jiān)持使用GitHub作為我的git云存儲(chǔ)服務(wù)。在Netlify上創(chuàng)建帳戶后,距部署的工件僅幾步之遙。
使用Netlify部署您的第一個(gè)站點(diǎn)
1.從信息中心中選擇“添加站點(diǎn)”選項(xiàng),系統(tǒng)將指導(dǎo)您選擇git存儲(chǔ)庫存儲(chǔ)提供程序。
部署網(wǎng)站:Netlify創(chuàng)建新站點(diǎn)
2.按照屏幕上的提示將git提供程序與Netlify帳戶連接后,您需要選擇要部署的存儲(chǔ)庫。您可以選擇為組織或特定的命名存儲(chǔ)庫中的所有存儲(chǔ)庫啟用Netlify權(quán)限。出于安全原因,我喜歡逐個(gè)添加存儲(chǔ)庫。
部署網(wǎng)站:Netlify選擇存儲(chǔ)庫
3. Netlify將為您提供更多選擇,例如要部署的分支和目錄。
部署網(wǎng)站:Netlify分支目錄
4.我建議從GitHub(或您的存儲(chǔ)庫所在的任何地方)發(fā)出拉取或合并請求,以查看自動(dòng)包含的連續(xù)集成選項(xiàng)。最初,這個(gè)CI只是一個(gè)準(zhǔn)系統(tǒng),但是您有機(jī)會(huì)使用Netlify本身創(chuàng)建一個(gè)強(qiáng)大的系統(tǒng)。
部署網(wǎng)站:Netlify從GitHub提取或合并請求
5.在那里,您的站點(diǎn)已部署!開箱即用,Netlify為您提供了一個(gè)唯一的子域來查看您的應(yīng)用程序,但是您可能希望提供一個(gè)個(gè)人域。您可以從信息中心上的“設(shè)置”標(biāo)簽執(zhí)行此操作。
部署網(wǎng)站:Netlify部署成功
我將Netlify用作Gatsby Blog Starter的副本,因?yàn)樗綆Я宋臋n中右側(cè)的“部署到Netlify”按鈕。我感謝Netlify,因?yàn)樗杀镜土▽ξ业膶用赓M(fèi)),集成的CI和在合并PR時(shí)自動(dòng)進(jìn)行部署。它還提供對服務(wù)即服務(wù),表單處理和拆分測試以及您可能要使用的任何靜態(tài)站點(diǎn)生成器的支持。
在Sparkbox上,我們最近將Netlify用于兩個(gè)客戶端站點(diǎn),并且該過程非常積極。對于靜態(tài)或前端項(xiàng)目,這是一個(gè)不錯(cuò)的選擇。對于需要服務(wù)器端程序的應(yīng)用程序,我們喜歡使用Heroku。
您可能還會(huì)喜歡: Shopify應(yīng)用程序CLI:幫助您更快構(gòu)建的工具。
3.我想利用更自定義的管道:Heroku
雙方的Heroku和Netlify符合質(zhì)量部署流水線的要求; 但是,Heroku無疑更強(qiáng)大。Heroku提供了一個(gè)免費(fèi)層,其應(yīng)用程序在30分鐘后會(huì)“休眠”,這對于希望在購買工具之前先弄亂工具的開發(fā)人員來說是完美的。我還喜歡Heroku提供“愛好”級(jí)別的托管選項(xiàng),每月7美元,可以滿足Sparkbox的許多客戶端站點(diǎn)的需求。除了測試應(yīng)用程序外,“興趣”級(jí)別通常是必需的。Heroku提供了多種部署路徑;您可以使用GitHub,命令行g(shù)it或Docker進(jìn)行部署。為了保持一致,我將逐步完成最省力,最低思考的選項(xiàng):GitHub。
最好的管道不需要我們的團(tuán)隊(duì)考慮部署。相反,團(tuán)隊(duì)只是通過推送到GitHub(或您最喜歡的Git托管服務(wù))來決定是否準(zhǔn)備好共享代碼。管道負(fù)責(zé)其余的工作。
Ryan Cromwell,構(gòu)建和部署管道的特點(diǎn)
使用Heroku部署您的第一個(gè)站點(diǎn)
1.在Heroku上建立帳戶。在主頁上,選擇“新建”,然后選擇“創(chuàng)建新應(yīng)用”。
部署網(wǎng)站:Heroku創(chuàng)建帳戶
2.為您的應(yīng)用程序選擇一個(gè)唯一的名稱,然后繼續(xù)“創(chuàng)建應(yīng)用程序”。
部署網(wǎng)站:Heroku選擇名稱,創(chuàng)建應(yīng)用
3.您可以選擇為您的應(yīng)用程序創(chuàng)建管道,該管道允許您連接多個(gè)應(yīng)用程序并創(chuàng)建評(píng)論應(yīng)用程序?,F(xiàn)在,我將專注于在不指定管道的情況下部署我們的站點(diǎn)。從部署方法選項(xiàng)中選擇“ GitHub”,然后搜索要部署的存儲(chǔ)庫。然后點(diǎn)擊“連接”。
注意:您可能需要為GitHub帳戶創(chuàng)建OAuth令牌。Heroku非常擅長在屏幕上瀏覽流程。
正確配置GitHub后,來自GitHub的響應(yīng)將很快出現(xiàn)(對我來說大約是12秒)。如果需要,可以通過選擇所需的分支并單擊相應(yīng)的按鈕來啟用自動(dòng)部署。每次將新代碼添加到所選分支時(shí),自動(dòng)部署都會(huì)使您的應(yīng)用程序保持最新。
部署網(wǎng)站:Heroku配置GitHub
4.無論您選擇自動(dòng)部署,第一次部署都必須是手動(dòng)部署。幸運(yùn)的是,您只需要選擇要啟用的分支,然后選擇“部署分支”即可。
部署網(wǎng)站:Heroku啟用部署
5.再過幾秒鐘,您應(yīng)該能夠在Heroku域中實(shí)時(shí)查看您的應(yīng)用程序。Heroku通常足夠聰明,可以確定要運(yùn)行的任務(wù)。但是,如果您想運(yùn)行特定或自定義的構(gòu)建任務(wù),則可以在應(yīng)用程序的設(shè)置下進(jìn)行調(diào)整。在設(shè)置菜單中還可以配置自己的自定義域。
部署網(wǎng)站:Heroku自定義任務(wù)和域
專家提示:從應(yīng)用程序儀表板中查看“活動(dòng)”頁面,以進(jìn)行一鍵式回滾。您還可以在“更多”切換下查看服務(wù)器日志并運(yùn)行控制臺(tái)命令。
部署網(wǎng)站:Heroku“活動(dòng)”頁面
Heroku應(yīng)該滿足您作為開發(fā)人員的大部分需求,包括Shopify網(wǎng)站,具體取決于所選的價(jià)格等級(jí)和您想要的“ dynos”數(shù)量。對于大規(guī)模的電子商務(wù)應(yīng)用程序,或什至擁有專門的產(chǎn)品團(tuán)隊(duì)的任何事情,您可能想要更廣闊的產(chǎn)品。
您可能還會(huì)喜歡: 如何在應(yīng)用程序中使用相對分頁。
4.我是一名自信的開發(fā)人員,我的網(wǎng)站很大:AWS,Azure,Low End Box和DigitalOcean
由于全功能Web應(yīng)用程序的廣泛需求,我與之合作的電子商務(wù)團(tuán)隊(duì)使用了大型可擴(kuò)展的云托管服務(wù)。這是一個(gè)龐大的多品牌網(wǎng)站,具有數(shù)千種獨(dú)特的數(shù)據(jù)方案。如此規(guī)模,可以提供多種服務(wù)。以下是一些當(dāng)前最受歡迎的服務(wù):
過去幾年中,Amazon Web Services(AWS)通過提供眾多托管選項(xiàng)和高度可定制的體驗(yàn)而引起了巨大轟動(dòng)。
微軟的Azure也非常受歡迎,因?yàn)樗陌葱韪顿M(fèi)定價(jià)模式和頂級(jí)可伸縮性使其成為一個(gè)輕松的選擇。
如果您正在尋找裸機(jī)托管和超便宜的價(jià)格,Low End Box可以滿足您的要求。
我個(gè)人對DigitalOcean感興趣,DigitalOcean是此列表中較小的魚類之一(呵呵)。DigitalOcean廣泛的文檔資料和歡迎社區(qū)使其成為我的輕松選擇。
我最初是通過Hacktoberfest來介紹DigitalOcean的,該活動(dòng)每年10月由他們贊助,旨在吸引更多人為開源項(xiàng)目做貢獻(xiàn)。我將逐步介紹如何在DigitalOcean上設(shè)置“ Droplet ”(虛擬機(jī))。
設(shè)置為與DigitalOcean一起部署
1.您可以通過GitHub,Google或僅注冊一個(gè)帳戶來注冊DigitalOcean。我將通過GitHub進(jìn)行注冊。不幸的是,一旦您越過了這一簡單的步驟,您就會(huì)遇到麻煩。DigitalOcean當(dāng)前不為其服務(wù)提供任何免費(fèi)套餐(盡管上面有很多這樣的選擇)。幸運(yùn)的是,我得到了一點(diǎn)榮譽(yù),因此我仍然可以引導(dǎo)您完成設(shè)置過程。托管一個(gè)Droplet將使您每月花費(fèi)約5美元。
部署網(wǎng)站:DigitalOcean
2.確定付款方式后,系統(tǒng)會(huì)詢問您一些調(diào)查問題。在這里,您將為您的應(yīng)用命名,并默認(rèn)設(shè)置幾種技術(shù)。我跳過了一些較麻煩的問題,然后轉(zhuǎn)到儀表板。
注意:這里的“應(yīng)用程序”就是我們所謂的完整管道。同時(shí),“ Droplet”是您的應(yīng)用用來運(yùn)行的虛擬機(jī),就像服務(wù)器上的數(shù)字計(jì)算機(jī)一樣。
部署網(wǎng)站:應(yīng)用程序主屏幕
3.在這種情況下,我將部署一個(gè)Node.js應(yīng)用程序。因此,我單擊了“節(jié)點(diǎn)”選項(xiàng),并有一個(gè)預(yù)填充的Droplet,可以單擊下一頁。
部署網(wǎng)站:DigitalOcean部署您的Droplet
4.您可以滾動(dòng)選擇計(jì)劃/存儲(chǔ)大小,服務(wù)器位置,身份驗(yàn)證等選項(xiàng)。同樣,您必須命名您的Droplet,我只是以該應(yīng)用程序命名。準(zhǔn)備就緒后,選擇“創(chuàng)建液滴”按鈕以繼續(xù)。
注意:為了長期使用,您將需要設(shè)置SSH(安全外殼協(xié)議)以建立一種強(qiáng)大,簡單的方法來使服務(wù)識(shí)別您的計(jì)算機(jī)。DigitalOcean在其文檔中提供了有關(guān)設(shè)置SSH的深入教程。
部署網(wǎng)站:名稱Droplet
5.從這一點(diǎn)開始,您將需要從本地控制臺(tái)SSH到虛擬機(jī)中,或使用瀏覽器內(nèi)控制臺(tái)將項(xiàng)目從GitHub(或存儲(chǔ)庫所在的任何位置)克隆到虛擬機(jī)上。根據(jù)您的構(gòu)建要求安裝依賴項(xiàng),然后啟動(dòng)您的應(yīng)用程序。您應(yīng)該能夠?qū)δ谋镜刂鳈C(jī)進(jìn)行cURL訪問,并從應(yīng)用程序首頁獲得內(nèi)容返回。例如,如果您的站點(diǎn)在端口8000上運(yùn)行,則可以運(yùn)行curl http://localhost:8000/并希望獲得響應(yīng)。
部署網(wǎng)站:DigitalOcean最后步驟
要使您的網(wǎng)站完全正常運(yùn)行,還需要做更多的工作,例如設(shè)置代理服務(wù)器(例如Nginx)。但是,自定義和細(xì)微差別比我在單個(gè)博客文章中所涵蓋的要多得多。我衷心建議您查看DigitalOcean博客及其最近獲得的學(xué)習(xí)平臺(tái)Scotch.io,以獲取有關(guān)此刻更詳細(xì)的教程。
在您的應(yīng)用啟動(dòng)并在服務(wù)器上運(yùn)行后,您可以通過在瀏覽器窗口中鍵入服務(wù)器IP來訪問它。自定義域在DigitalOcean上可用,并且設(shè)置與列表中的先前服務(wù)非常相似。但是,對于大多數(shù)小型Shopify應(yīng)用程序,您可能不需要像DigitalOcean這樣的全功能服務(wù)。
通過Shopify合作伙伴計(jì)劃發(fā)展您的業(yè)務(wù)
無論您是提供網(wǎng)頁設(shè)計(jì)和開發(fā)服務(wù),還是想為Shopify應(yīng)用商店構(gòu)建應(yīng)用程序,Shopify合作伙伴計(jì)劃都將使您成功。免費(fèi)加入并獲得收益共享機(jī)會(huì),開發(fā)人員預(yù)覽環(huán)境和教育資源。
那么哪個(gè)選項(xiàng)最適合我的Shopify應(yīng)用程序?
對于部署和托管Shopify應(yīng)用程序的最快,最便宜和功能最豐富的選項(xiàng),我建議使用Heroku。盡管我的教程代表了基于瀏覽器的GitHub部署在Heroku上,但您也有機(jī)會(huì)通過heroku-cli進(jìn)行部署-在某些情況下可能會(huì)有所幫助。
無論哪種方式,Shopify都提供了一個(gè)稱為shipit-engine的Ruby gem,這使您的Shopify可以快速,無憂地部署。您所需要做的就是一個(gè)GitHub存儲(chǔ)庫,一個(gè)包含一些代碼的分支以及一個(gè)像Heroku這樣的部署環(huán)境。因此,轉(zhuǎn)到Shopify的存儲(chǔ)庫并按照自述文件安裝ShipIt Engine gem-您將很快上線。
就是這樣!您可以使用許多托管和部署服務(wù),但這是我的最愛。無論您選擇什么,我都建議將您最新的代碼庫站點(diǎn)保存在GitHub,GitLab或Bitbucket等在線版本控制存儲(chǔ)服務(wù)中。存儲(chǔ)庫為將來提供快速更改部署策略的機(jī)會(huì)。隨著流量的增長,您將學(xué)習(xí)和調(diào)整以最好地為您的客戶和用戶服務(wù)。希望我為您提供了各種選擇的知識(shí),以幫助您在時(shí)機(jī)成熟時(shí)做出明智的決定。