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