云端的觀念及技術,影響了消費性產品的設計方式,同時影響企業(yè)內部對IT 資源的配置及架構的設計規(guī)劃,對于軟件開發(fā)團隊而言,也開始越來越頻繁運用云端服務來輔助設計
在前幾年成了火紅的流行名詞,在整個資訊業(yè)界,許多人努力讓自己正在做的事情跟云端扯上關系,好讓自己也晉升為「云端概念」一族,以便獲得更多的關注。當然,就和大多數暴起流行的名詞一樣,「云端計算」的概念也收到了來自許多人的質疑。他們在想,究竟「云端計算」會不會又是一個像大多數快速竄紅的流行名詞一樣,最終不可避免地又進到了無疾而終的命運?
不過,時間已來到了今天,事實證明了云端計算的想法、概念、技術、平臺,正確切的落實在我們的每一天生活當中。iCloud 上好萊塢女星的照片外流事件,一方面突顯了云端平臺的安全性問題,另一方面也正好說明了人們生活和云端服務之間的緊密程度。
除了通過云端概念、技術所打造出來的服務已經開始深植在人們的生活中之外,云端技術及平臺對企業(yè)內部的 IT 資源建立、配置、及營運的方式也產生了很大的沖突。
傳統在規(guī)劃企業(yè)內部的 IT 資源時,考慮的方式都是將資源集中在企業(yè)內部為主,因此,無論是硬件或是軟件的采購,都是以這種模式為基礎去思考的。除了采購之外,IT 架構的規(guī)劃,也是從 IT 資源集中在企業(yè)內部的方式去設計。
云端讓IT資源與架構重新配置
不過,云端的觀念及技術,影響的層面不只是消費性產品的設計方式,同樣也會、也正在影響企業(yè)內部對 IT 資源的配置,以及對 IT 架構的設計規(guī)劃。從很久以前,有些企業(yè)就開始采用一些在云端上的服務,來取代自行建置的傳統方式。就像是利用 Google 的 Gmail 來取代自行架設電子郵件伺服器一樣。
又好比現在很多軟件開發(fā)團隊,開始使用一些云端上的服務來輔助開發(fā)流程的進行,例如,有些人使用 GitHub 的服務,來做原始碼的版本控管、做議題及瑕疵的追蹤、也利用它的 Wiki 資訊,做團隊中的共同編輯。
云端服務對企業(yè)的影響,從軟件開發(fā)團隊的應用情況來看,也就可以看出端倪。
因為將 IT 資源配置于云端,可以得到一些好處,像是節(jié)省初期成本、降低維護人力、……等等,都是「云端計算」的概念所強調的各種好處。而另一方面,企業(yè)傳統將 IT 資源的配置于企業(yè)內的方式,開始逐步的朝云端配置時,設計、規(guī)劃架構的方式也會和傳統的不同。
云端上有計算資源、頻寬資源、也有儲存資源、甚至有更高階的資料庫資源。當這些資源不再是位在企業(yè)內部、而是置放于云端,又或者對企業(yè)來說,當他們采用部份在內部、部份在云端的方式時,規(guī)劃整體架構的方式就會有所不同。
面對云端環(huán)境的IT架構師
因此,現在已經開始有所謂「云端架構師(Cloud Architect)」的角色應運而生。這樣的角色在企業(yè)里應該提供什么樣的作用呢?
他應該了解企業(yè)在 IT 資源上的需求,也明白各種不同云端平臺、服務的特性,妥善運用這些平臺及服務來滿足企業(yè)的需求。就好比,企業(yè)對于伺服器的計算需求,云端架構師必須評估像是基于安全性的考量,是否適合放在云端平臺上,以及,對計算的需求量究竟應該如何配置,是最節(jié)省成本的。同時,在規(guī)劃整個架構時,也必須將未來的發(fā)展?jié)摿{入考量,讓整體架構能夠隨著需求量增加,而提高服務的規(guī)模。
光是看IaaS的云端平臺,其計費方式各家都有所不同,有的儲存空間貴、頻寬便宜,有的相反,頻寬便宜、儲存空間貴。
如何依據企業(yè)的各種應用分別儲存、在頻寬、在計算量的需求,選用合適的云端平臺,就成了云端架構師的工作之一。甚至,在可能的情況下,混用不同的云端平臺,分別利用其優(yōu)勢來滿足企業(yè)需求,更能發(fā)揮優(yōu)化成本的作用。
軟件開發(fā)團隊中的云端架構師
除了身負企業(yè)內部 IT 資源規(guī)劃及設計的「云端架構師」之外,「云端架構師」的這個角色,放在開發(fā)團隊里頭又有不同的意義。除了企業(yè)內部 IT 資源開始有云端化的趨勢之外,新開發(fā)之軟件服務的架構,在云端化的方向上也前進得很快。當開發(fā)團隊所開發(fā)出來的軟件服務,不再只是局限運用自有的機房空間里的資源,而是開始運用云端上的計算資源時,軟件架構的設計及規(guī)劃的方式,也會和傳統的方式有所不同,因此,在開發(fā)團隊中也會需要「云端架構師」的角色。
舉一個例子來說,在 AWS EC2 上,有所謂 on-demand instance(需要時才開)以及 reserved instance(預留開啟),二者價格不同。由于 reserved instance 需要先付一筆錢,并且約定使用的期限,所以它的價格比 on-demand instance 較低。這是很合理的,對 Amazon 來說,它可以預期一段長期的用量,它就更好排程。當然,預付也是讓價格可以更低的原因之一。如果你是一名云端架構師,你的工作就是應該評估,對團隊來說,究竟那種方式比較符合需求。on-demand instance 的好處是可以很動態(tài)的隨著需求來運用,但缺點就是單位時間的成本會比 reserved instance 高。而 reserved instance 則正好相反。
更有趣的是,AWS 還有另一種稱為spot instance的東西。從 AWS 優(yōu)化 CPU 使用率的觀點來看,spot instance是個有意義的產品。它是一個什么樣的東西呢?因為 AWS 的機器眾多,并不見得分分秒秒 CPU 計算力都被使用耗盡,因此,總會有閑置不用的 CPU 計算能力,既沒有 reserved instance 把它們配置走,也沒有 on-demand 的 instance 用掉。因此,AWS 讓有興趣的人,對閑置的計算力做競標,價高者得。對 AWS 來說,這些閑置不用的計算力與其白白的浪費掉,不如以「可能比較低」的價格來吸引需要計算力的人,不論價格為何,總是比白白浪費來得劃算。
由于 AWS 允許其他人隨時可能會再出更高的價格把計算力買走,當這件事發(fā)生時,你所用的 instance 就會被收走。因此,這種型態(tài)的 instance 仍然有個先天的關鍵缺點。
當然,天下沒有白吃的午餐的道理。不過,在我們過去的應用中,團隊里的聰明同事想到一些短期的工作,例如進行一些后端背景作業(yè)的程式,很適合應用 spot instance。一來,它們并不需要長期運行,二來,即使執(zhí)行到中間被 AWS 收回、工作未完成,也能通過「工作佇列(Job Queue)」的機制重新加以執(zhí)行。
這么一來,上述這種應用方式,可以善用 spot instance 的低成本優(yōu)點,卻又不會因為其缺點而有太大的損失,而成了一種很好的應用方式。
這就是一個說明云端架構師重要性的好例子。運用云端上的服務和產品,其模式和傳統在某些面向上來說會有很大的不同。上述的應用,若是以傳統的方式來進行,可能就是運用 reserved instance 來做。但其實背景作業(yè)并不需要持續(xù)進行,這使得你的 reserved instance 一樣會有 CPU閑置的情況,導致成本浪費。但是,懂得運用其他服務的架構師,就會知道此類的應用適合運用 spot instance 來進一步降低成本,這正是云端架構師的作用及價值。
云端的時代無疑的已經到來,而云端架構師這種全新登場的角色對接下來企業(yè)或是軟件開發(fā)團隊來說,都會愈來愈重要。