各位大大好,
我是一位非本科、初入網站開發的新手工程師,過程中都完全自學,也因為如此,目前還缺乏許多知識需要去補齊,問了這個問題希望不要介意!
目前我是希望採用接案的模式幫一些新創公司做完全客製化的官方網站,平常自己練習都是用大家推薦的Heroku
,但看了它的付費方案後(25USD/月),我打消了繼續使用它的念頭。
於是我連續好幾天找了一堆資料,最後我得到幾個可能可行的方案:
MERN
網站架構,部署於 GoDaddy/DigitalOcean/Vultr/linode
等主機商,並用Shared Hosting
或VPS
方案MERN
網站架構,將前端部署於CDN
,後端RESTful API
用Docker
打包,部署於Google Cloud Run
,採用的是JANStack
的開發架構React
+ Node.js/Go Runtime
+ Google/AWS/Azure Serverless Function
+ Google/AWS/Azure NoSQL/SQL DB
,將前端部署於CDN
,後端單純就是可呼叫的API Endpoint
,採用的一樣是JAMStack
的架構如果採用的是方案1
,那麼我有幾個考量的點:
Shared Hosting
還是VPS
。(或是還有其他我沒想到的解決方案)如果採用方案2
或方案3
,考量的幾個點:
Google Cloud Run
: 每月免費提供200萬次呼叫/180,000vCPU-秒/360,000Gib-秒
,看起來是不太會超過的數字,但因為我還沒接過實際的案子,對網站流量之類的完全沒概念)Docker
之類的容器技術,那如果我採用Node.js
,會不會因為每次的冷啟動都會花費較久的時間載入、執行相依套件,造成執行時間/網路流量上的浪費。關於這個問題,我如果改用Go語言
開發會改善嗎?(因為我聽說基於Go語言
靜態編譯與自動垃圾回收的機制,跟雲端微服務的相性比較合)不好意思,我的問題很多,感謝耐心看完並給出建議的大大們!!
基本上如果要做到一條龍服務。
設計程式的費用與主機維護的費用。一定得要分開說明清楚。
且光主機維護的費用,就區分多種服務項目。
從最簡單的安裝架設及基本租用。到檢查監督及效能優化。
其價差可以從幾千到幾萬不等。
主機維護的部份要說明起來太多。但就針對你擔心的問題來講好了。
依GCP或是AWS而言。
它們都有其可以設定停損點的方式。
也就是你不用太過擔心一夜起來就幾干幾萬的費用。
當然了,設定這些也是會有一定的風險。
畢竟要停損,就只有一種做法。也就是將機器或是網路關閉。
一般設定停損點,不能設的太低,免得一直被停機。
我大多會設定一個我能承受的最高金額。
但平常也會仔細檢查各主機的運行情況。也會下監看處理。
最後:如果在於主機維護的程度不足的情況下。
我會建議你維護合約的部份,只負責安裝及起始化的費用就好。
而主機的費用還是交給客戶會比較安全。
或是少賺點,委任給專業的主機商幫忙處理。
非本科、初入網站開發
真的嗎?
那為什麼你提到的專有名詞
我都不會
我只有一句話可建議25USD/月是很實惠的價格
雖然我開發經驗比較偏向前端對於這些部署方案的詳細實作沒有太多理解。
但我認為可能都還是要看客戶的部屬需求吧?
他們是期望獲得容器/編譯後的檔案然後他們在自己的機器架
或者是整套服務都是你提供
所以我覺得好像沒有標準答案
至於方案2、3的
問題一:如果是幫客戶架站的話為什麼帳單會是你付?即使你要幫忙部署也應該要請求維運的費用吧?
問題二:你的「雲端Hosting」應該是只有指 serveless 架構(還有其他PaaS/IaaS的產品),的確在啟動期間 node.js 加載node module會造成冷啟動時間拉長所以用Go來撰寫的確會縮短這個時間。
還是要看客戶的部屬需求吧?
目前是打算整套服務都由我們來提供,但也因為沒有標準答案,才造成我們嚴重的選擇困難。
問題一:如果是幫客戶架站的話為什麼帳單會是你付?
目前的想法是:幫忙部署讓網站上線的錢我們會先幫忙付,到時侯再以主機維運為由向客戶收取費用。所以要是哪天帳單破表了,但是當初簽合約講好的是A金額,那我就要自行吸收了。(這會直接讓我睡公園...)
還是說,我可以直接在主機商或雲端廠商,針對不同的網站專案,設定不同的付款帳戶?
關於這方面的處理方式不曉得大家都是怎麼做的?
在啟動期間
node.js
加載node module
會造成冷啟動時間拉長所以用Go
來撰寫的確會縮短這個時間。
除了Go
以外,是不是其他的編譯式語言也能達到相同目的,例:Rust
不好意思,小弟我完全沒有見過世面,不曉得業界的大大們都是怎麼解決這些問題的
費用問題,如果你的客戶的流量真的這麼大,那我覺得可能就不適合按量計算的服務,直接找按時間計算比較省事跟划算。
然後可能我表達的沒有那麼精確,不一定是直接把帳單給他們客戶繳而是取得帳單後向他們請款or每個月收一個固定的維運費用。(但GCP好像有可以設定給客戶的帳戶子帳單的功能)
我是沒實際參與過這些營運上的事務,但按照以前工作的經驗,業務他們都是會額外再簽一個維護合約。而我們使用的通常都是IaaS的服務來架站(像是gcp的compute engine),這樣收費也單純很多畢竟7x24不關機。
至於一個Compute Engine要同時運行幾個網站這都能再去割,也許算一算可能應該會比25USD還便宜就是了?但終究是要看客戶的同上人數之類的。
至於冷啟動的問題,我會覺得等你們確定要用 serverless 的服務時再來想也許會比較合適。
但我自己認為,如果要為了這個問題改用語言也許不是一個好方向(但也也許你們團隊都會寫go/rust)
最後我也是覺得25USD/m 其實還蠻划算的,坦白說一個公司一個月付不出一千多台幣來維持網站運作到也真的不用開了。
冷啟動除非你是很大的專案,要不然應該不用考慮這個的差異時間。
網站也基本上沒人會想頻繁重啟。
會不會哪天我睡覺起來,就收到破百美金的帳單
被DDoS有可能,科科。
擔心這個就去找期間買斷的。25USD/m真的算便宜的了。
@Todd
至於一個Compute Engine要同時運行幾個網站這都能再去割,也許算一算可能應該會比25USD還便宜就是了?但終究是要看客戶的同上人數之類的。
感覺這個做法很棒,但限於MIS相關能力的不足,基於IaaS的服務應該會先Pass(深怕出現資安問題,或是需要各種微調、優化)
還是說,前輩有建議的學習資料,我可以研究看看!
@froce
冷啟動除非你是很大的專案,要不然應該不用考慮這個的差異時間。
網站也基本上沒人會想頻繁重啟。
看了官方文件的定價後,我想說Cloud Run是基於容器的服務,如果是容器的話,那網站是不是就會頻繁的重啟,每次的重啟都會有冷啟動的問題?
我在GCP上租了二台虛擬機,每個月大約NT$7000元,金額不低,但我也不覺得貴。
因為,我不必去24小時去擔心主機是否會不預期停擺?機器會不會壞掉?網路會不會中斷?他們有人顧著,我只管做好我的程式。
樓主不宜將精神耗費在託管費用上,要知道,管機器24小時不中斷是很折磨人的。
我也是打算不花太多力氣在託管問題上,但基於IaaS的服務,限於MIS相關能力上的不足,所以打算使用PaaS。
我在GCP上租了二台虛擬機,每個月大約NT$7000元,金額不低,但我也不覺得貴。
另外想請問大大,租用的兩台虛擬機,是各放一個網站+資料庫嗎,還是把一個虛擬機切好幾個空間出來用?看了大家的回答後,這個問題一直困惑著我
那如果是把一個虛擬機切出好幾個空間,感覺跟一般主機商提供的Shared Hosting的服務很類似,怎麼大家都是選擇像GCP/AWS的雲端虛擬機服務,而不考慮Shared Hosting?
一台專做網站主機,但可以切出很多網站,另一台則專做資料庫主機。
另外,家裡還得再準備一台,做資料庫同步。
自己架虛擬機的好處是,可以隨心所欲,比如我就有建立二個一模一樣的網站,一台叫做正式網站,給客戶用;一台叫做測試網站,若有新功能時,先在測試網站跑一陣子,等穏定後再移到正式網站。
正式站我用php7+mysql 10.3 ,測試站則用php8+mysql 10.5,就可以測試相容了,諸如此類,各種新版本的工具,未經完整測試前,怎麼敢給客戶用?Shared Hosting可能就不能讓您指定了。
如果您打算將來走這一途,我是建議,還是由自架摸起吧,早晚要面臨的。
您上面提到
【在幾乎零資訊的情況下給出預估的定價】我打死不肯幹這件事。
沒有和客戶深談之前,我絶不報價,還有,如果客戶開口說:『我們的需求很簡單.....』,我就戒慎恐懼了,更不敢隨便報價啦。
沒有和客戶深談之前,我絶不報價
關於這點我也認同,但畢竟出來做生意,基於合作的關係,不是他退就是我退囉。
一台專做網站主機,但可以切出很多網站
關於一台虛擬機切出多個網站,是透過在一台虛擬機裡,再額外多開其他虛擬機或容器嗎?
客戶說:「我要買車子,請報價」
是房車?吉普車?跑車?休旅車?
重點是省油?還是跑得快?或者要多載幾個人?
什麼都不知道,是要報什麼價啦?
雖說交淺不可言深,但【道不同,不相為謀】,合作是要長長久久,基本觀念若差異太大,就得好好考量。
我之前開會計事務所,有一個客戶是軟體公司,四個年輕人合夥,一個業務,三個設計師,開了一年,結束營業。
我問了其中一個設計師為何結束營業?是生意不好嗎?他說不是,是生意太好,業務能力太強,接進來的案子,三個設計師做不下去。
為什麼?我很好奇。
他說,業務什麼都敢報,客戶要求什麼都答應人家,但,簽完約收了訂金之後,才發現根本不是那回事,三個工程師沒日沒夜也做不出來。
至於,【一台專做網站主機,但可以切出很多網站】,我的功力差,我是購買plesk,利用它來切分網站和設定各網站的規格,很簡單,外行如我也會。
【道不同,不相為謀】,合作是要長長久久,基本觀念若差異太大,就得好好考量。
他自己會跑去問業界的公司,好確認自己的想法。所以我時常能看到他的想法在調整,相信他會慢慢改過來的
業務什麼都敢報,客戶要求什麼都答應人家,但,簽完約收了訂金之後,才發現根本不是那回事,三個工程師沒日沒夜也做不出來。
還好我們是沒有這個問題,他至少會先問過我,這些功能可不可行、做得出來嗎?
感謝大大的提醒,我會再多加注意。
如果我們真的做不起來,那也是我的功力不足,畢竟一路上都完全自學,又是非本科,如果做起來了真的算是運氣好,做不起來那也是應該的。
其實如果沒有特殊需求不需要把自己搞得那麼累,直接找好一點可以承受高附載的虛擬主機(就你說的 Shared Hosting )架設網站就好了,這樣暫時可以不用管後端主機維護問題,費用也是固定的。專心開發網站就好 ... 等有閒暇之餘再慢慢研究後端網站架設。
另外針對你的問題
1.費用問題 GOOGLE 的 GCP 後端可以設置費用上限和警告,超過一定的費用他會就會通知你。
2.不是用 DOCKER 是用 VM ,當然也有 Kubernetes (類似你說的 DOCKER 但設定更複雜、安全性也更高) 可以選用 ... 啟動速度就看你開幾個 CPU 和記憶體給他用,基本上不會比較慢。