前言
我們看到越來越多的人將他們的想法傾注到網頁上。我們所指的這些人可能不熟悉網站設計和發布的技術細節,因此在建立他們的平臺(網站)時可能會遇到一些問題。使用什么托管服務?如何設置DNS和SSL?最重要的是,如何部署web應用程序?今天在這里,我們將討論和比較部署這類應用的不同平臺,并找到最適合你的平臺!
對于初學者來說,讓我們看看你有哪些選擇:
- 定期托管(Digital Ocean, AWS, GCP) + Jenkins
- GitHub動作/Bitbucket管道+ Heroku
- Travis-CI / Circle-CI
- 全自動云平臺
1、常規云托管+ Jenkins
Jenkins是CI/CD平臺上最大的騎手之一。它是一個自動化的CI/CD軟件,在主代理體系結構上工作。那么什么是主/代理呢?嗯,代理只是軟件的一種花哨說法,它安裝在一臺機器上,用于協調[和綁定]不同的構建。詹金斯使用一個主機連接和協調所有可用的代理。那么,你可以用什么機器來完成這些任務呢?大多數情況下,包含Docker的虛擬機(vm)是首選,因為這樣做更容易,然而,docker不是強制性的。可以使用的其他一些工具是物理服務器,甚至是運行在Kubernetes上的臨時容器。
優點:
- 它是高度可定制的。
- 它非常靈活,因為它有超過1.5K的插件。所以對于任何你想嘗試的測試用例,可能有人已經為你做過了:D。
- 即使您是第一個運行特定測試用例的人,您也可以構建自己的插件和/或共享庫=>一個友好的社區。
- 它支持更快的構建和緩存模塊。因為它不強迫我們使用docker鏡像,不像它的競爭對手,服務中的任何內容都可以緩存以備后用,因此它比許多競爭對手更快。
- 它并不局限于基于linux的系統。我們也可以使用windows系統。
缺點:
- 它是一個非托管服務。
- 您需要定期確保服務器正在運行、SSL已鎖定、有安全補丁或具有internet訪問權限。
- 您需要手動解決所有操作問題。例如,如果出現錯誤,則由您跟蹤并修復它。
2、Bitbucket管道/ Github操作Heroku
Bitbucket的管道是另一個類似于Jenkins的平臺,但更容易使用。Bitbucket管道的工作方式類似于Github的動作;使用Git版本控制系統。您可以根據所使用的平臺進行選擇。
管道是您不希望錯過的一個特性。有了管道,大部分SDLC(軟件開發生命周期)可以完全自動化。因此,比Jenkins更容易的替代方案(盡管功能有限)是位桶管道。
Bitbucket使用Docker鏡像來運行構建。圖像也可以在每個步驟中變化,從而更容易地分離SDLC的每個步驟。
優點:
- 當然,這比手動操作要容易,甚至比使用Jenkins(如果您關心的是簡單性)。
缺點:
- 它比Jenkins慢,因為它使用Docker圖像。
- 它不能跨管道共享產品。
- 管道工作的docker圖像。因此,每次更新時都會得到一個新映像,因此除非緩存,否則不會從以前的管道保存任何數據。然而,即使緩存,數據也會在7天后丟失。這意味著沒有從遠程位置獲取的任何文件都將丟失,這對于大型測試(具有大量輸入或基線字段)效果不佳。
3、Travis-CI/ Circle-CI
Travis-CI是社區中著名的CI服務機構。嗯,很多原因。最主要的原因之一是它對開源項目是免費的,這意味著你只需要為私人項目付費。它的持續集成環境還提供了多個運行時,即節點。JS, php, Python版本,數據存儲等等。因此,當托管在這個平臺上時,可以輕松地完成針對多個運行時/數據存儲的庫測試,而無需承擔本地安裝它們的負擔。
優點:
- Travis是一個易于設置的平臺。向項目中添加一些基本的構建指令,提交代碼……瞧!你的網站是實時的。
- 大量的服務和數據庫,如MySQL, PostgreSQL, Elasticsearch, redis, Riak, RabbitMQ, Memcached已經安裝,并等待啟用配置。
- Travis支持很多部署平臺,如Heroku, Cloud Foundry, OpenShift, Cloud Control, Nedejitsu等。
- Travis CI目前是一個成熟的平臺,大部分(如果不是全部的話)常見的抱怨都得到了改進。這包括支持顏色的文檔和日志…
缺點:
- 盡管它對開源項目是免費的,但付費計劃要付出沉重的代價——69美元/月是墊腳石。
- repos不能在Travis上直接修改[你可以,如果你付錢的話…,所以每次[甚至]需要做一個小的調整時都去到存儲庫中的文件是相當麻煩的。
- 建立建立矩陣的travis.yml文件相當困難。
- 對于免費計劃,由于基礎設施有限,構建隊列有時會非常長。
4、自動化的云平臺
最后,對于一個完整而簡單的自動化解決方案,我們可以選擇許多自動化云平臺中的一個。[其中,我個人更喜歡男招待,但這完全是主觀的?;旧?,大多數幕后的編碼工作已經為您完成了,因此您可以直接從git存儲庫部署代碼。
所有關于設置云服務器、web服務器和類似繁瑣任務的擔憂都不需要您操心。
在大多數情況下,你會得到免費的SSL和CDN的最新安全和許多其他津貼。由于比其他服務更便宜,也更容易使用,這些平臺涵蓋了大部分的使用。所以,除非你有一個專門的團隊準備全力進行手工測試,或者想花錢購買其他自動化系統,比如Jenkins(它仍然有很多手工工作要做),否則最明智的選擇是使用像Hostman這樣的自動化云平臺。
優點:
- 它很容易設置。
- 它是完全自動化的,所以菜單上沒有多少手動操作。
- 所有的操作問題都將由Hostman等提供者處理。
- 設置一次之后,就不需要定期管理了。你可以完全專注于編寫出色的代碼。
- 它支持開箱即用的自動Git部署,因此您不需要配置。
- 沒有供應商鎖定。
缺點:
- 與Jenkins等其他平臺相比,其功能可能有限。
- 到目前為止,現有的語言和框架還有些局限。例如,Hostman支持22個框架。但是像Jenkins這樣的提供商支持100多個插件,如果需要的話,還可以構建更多的插件。
更多細節請參考原文:
https://dev.to/asaurav/4-ways-of-deploying-web-Apps-in-2020-1a55