Cloud、Server、Edge:你的 App 究竟住在哪裡

Cloud、Server、Edge:你的 App 究竟住在哪裡

你存了一張照片,有人說:「別擔心,它在 cloud 裡。」你腦中浮現什麼,天上一團蓬鬆的白色物體?接著一位開發者提到在「edge」跑程式,聽起來很危險,像站在懸崖邊。這些字沒有一個是它日常意象所暗示的意思,而那種錯位造成了無止盡的小困惑。

這裡有個讓人安心的真相:在這些詩意的字背後,是普通建築裡的普通電腦。一旦你知道這點,關於「軟體住在哪裡」的這套詞彙就變得簡單,甚至有點無聊,是最好的那種無聊。

整個主題其實就是一個問題:是誰的電腦在跑這個,又跑在哪裡?這一組裡的每個字,都只是這個問題的不同答案。把這個問題放在心上,迷霧就會散開。

快速解答

cloud 不過是別人擁有並營運、透過網路存取的遠端電腦。server 是一台電腦(或程式),它的工作是服務別人,不論大小。edge 指實體上靠近使用者或裝置,不是「尖端」。host 某個東西,是把它跑在一台電腦上讓別人能連到。on-premise 指把它跑在你自己的電腦上、在你自己的建築裡。

關鍵字

  • Cloud(雲端)。 資料中心裡的遠端電腦,向供應商租用,透過網路連到。「in the cloud」是指「在某處別人的電腦上」,不是在天上。
  • Server(伺服器)。 一台電腦或程式,提供某些東西給別人:網頁、檔案、資料。「server」描述的是角色,不是大小。一個小盒子可以是 server;一台龐大的機器也可以。
  • Edge(邊緣)。 靠近使用者或裝置所在之處。「edge computing」是指在靠近使用者的地方做事,而非遠在天邊,好讓速度更快。
  • Host(主機 / 託管)。 當動詞,是把軟體跑在一台電腦上讓別人能用("we host the site")。當名詞,是做這件事的那台電腦。
  • On-premise / on-prem(地端)。 把東西跑在你擁有的電腦上、在你自己的所在地,而不是向 cloud 供應商租用。
  • Data center(資料中心)。 一棟塞滿電腦的建築,是「cloud」背後的實體現實。當你聽到「cloud」,就想像一座資料中心:一排排機器、大量纜線、轟隆作響的散熱風扇。
  • Client(客戶端)。 與 server 相對的角色。client 是發問的那台電腦或程式;server 是回答的那一個。你的手機通常是 client;它對話的對象通常是 server。

常見陷阱

一個常見陷阱,是把 cloud 想成某個特殊、魔法的地方。在夢幻的意義上它根本不是一個地方。它是建築裡一排排普通的電腦,由一家公司擁有,你付錢使用。「moving to the cloud」不過是指「租別人的電腦,而不是買自己的」。一旦剝去那層詩意,這個字就不再神祕。

server 這個字會騙人以為它指「一台又大又強的機器」。並不是。server 是個角色:服務東西給別人。你的筆電可以當 server。一個小裝置可以是 server。當有人說「the server is down」,他們是指那台本該服務請求的電腦或程式停了,不一定是某台巨型主機壞了。

edge 最狡猾。在日常用語裡,「edge」暗示危險("on the edge"),或趕時髦("cutting edge"、"edgy")。在科技裡,「the edge」就只是指靠近使用者或裝置,在地理上或網路上。「running at the edge」是指跑在靠近人的地方,讓回應快速。它跟風險或時尚毫無關係。如果你把「edge」讀成「cutting edge」,你會誤讀整個句子。

host 會絆倒人,是因為它有宴會的含義。host 是迎接賓客。在科技裡,host 是把軟體跑起來讓別人能連到。「Who hosts your website?」是指「誰的電腦在跑它?」,跟好客一點關係都沒有。

最後,on-premise(常縮寫成「on-prem」)就只是指「在你自己的電腦上、在你自己的建築裡」。人們有時把它當成老派或一定比較便宜,但它只是個位置選擇:你的機器,相對於租來的 cloud 機器。各有取捨;沒有哪個自動更好。

一個小小的附加陷阱藏在 data center 裡。這個詞聽起來很高科技、很抽象,但它是這整份清單裡最具體的東西:一棟真實的建築,塞滿真實的機器,吃著真實的電,靠真實的風扇保持涼爽。當你終於記得「cloud」就住在這樣的普通建築裡,最後那一點神祕感也就消散了。

serverclient 理清也有幫助,因為它們只有成對才說得通。它們描述一場對話裡的兩個角色:一個發問,一個回答。發問的是 client;回答的是 server。同一台電腦能依它正在做的事扮演任一角色,所以別把「server」想成一種機器、「client」想成另一種。它們是工作,不是物種。當你讀到「the client sends a request to the server」,它的意思就是「發問的程式送一個問題給回答的程式」。

把整組放在一起,一張簡單的地圖就浮現了。cloud 是某人資料中心裡租來的電腦。server 是任何正在回答的電腦,不論大小。edge 是那些電腦坐落在靠近你之處的地方。hosting 是把軟體跑起來的動作。on-prem 是替它選了你自己的建築。這一切都不是天氣、危險或好客,只是一組對「誰的電腦、在哪裡」的平實答案。

自然與不自然的例子

不自然: My files are floating up in the cloud, somewhere in the sky.

自然: My files are stored on the provider's remote computers, the cloud.

較不自然: Running at the edge sounds dangerous and unstable.

更好: Running at the edge means running close to users, so it's fast.

不自然: We need a server, so we bought the biggest, most powerful machine.

自然: We need a server, even a small computer can serve our requests.

不自然: We host our app, so we welcome it warmly.

自然: We host our app on a rented server, so users can reach it.

較不自然: We went on-premise because the cloud is too modern for us.

更好: We chose on-premise so we keep everything on our own computers.

迷你對照表

Word 聽起來像 實際上指
cloud 天上的某個東西 別人營運的遠端電腦
server 一台又大又強的機器 處於服務角色的電腦或程式,任何大小
edge 危險;時髦 靠近使用者或裝置
host 一個熱情的宴會主人 把軟體跑起來讓別人能連到
on-premise 老派的預設 跑在你自己的電腦上、在你的建築裡

快速練習

是非題。在下方對答案。

  1. "The cloud" is a special place in the sky.
  2. A server must be a very large machine.
  3. "At the edge" means close to the user.
  4. To host a website means to run it for others to reach.
  5. On-premise means renting computers from a cloud provider.

答案:

  1. False. It is remote computers someone else runs.
  2. False. Server is a role, not a size.
  3. True.
  4. True.
  5. False. On-premise means your own computers in your own building.

重點帶走

這一組裡的每個字,都把平實的現實藏在一個鮮明的意象背後。cloud 是租來的電腦,不是天空。server 是個角色,不是大小。edge 是「靠近你」,不是危險或時尚。host 是跑起來,不是迎賓。on-premise 就只是「你自己的機器」。當你讀到談軟體跑在哪裡的科技文章,在心裡把詩意翻回普通房間裡的普通電腦,整個主題就變得清楚、好掌握,而且遠比行銷話術讓它聽起來的樣子親切得多。下次有人說你的檔案「在 cloud 裡」,你可以笑一笑,腦中浮現某處一座嗡嗡作響的資料中心,並確切地知道他們的意思:就只是另一台電腦,做著它的工作,剛好屬於別人罷了。