技術(shù)人上云的七個重要姿勢
作者介紹:徐桂林,當(dāng)前在FIT2CLOUD負責(zé)公司的技術(shù)布道和生態(tài)合作。在此之前先后供職于意法半導(dǎo)體、Autodesk和阿里云。徐桂林熱衷于云計算(尤其是公有云IaaS平臺),有過多年AWS的生產(chǎn)環(huán)境工作經(jīng)歷,是較早在國內(nèi)分享AWS上實踐經(jīng)驗的作者之一。
現(xiàn)在,業(yè)務(wù)上云已經(jīng)成為一個潮流。尤其是對于公司內(nèi)部的技術(shù)人員而言,經(jīng)常會有很強的技術(shù)沖動去讓業(yè)務(wù)上云。同時,云供應(yīng)商們的大力宣傳讓公司決策層及業(yè)務(wù)人員對于上云也有非常高的期待。但是,不管怎么說,公司業(yè)務(wù)系統(tǒng)上云還是一個技術(shù)活。作為公司內(nèi)技術(shù)人員,仍然要從技術(shù)的角度充分考慮上云的路徑、節(jié)奏以及具體技術(shù)方案。所以,很多時候技術(shù)人員的上云姿勢比上云自身還重要。選擇一個正確的上云姿勢會讓你的上云過程更加順利,并能夠為未來充分釋放云生產(chǎn)力奠定基礎(chǔ),最終達成公司上云的初心:促進業(yè)務(wù)創(chuàng)新。
姿勢一:掌握正確的上云節(jié)奏
當(dāng)企業(yè)決定上云后,掌握正確的上云節(jié)奏是讓整個上云過程順利的最關(guān)鍵因素。一般來說,如下路徑是企業(yè)最常見的上云節(jié)奏:
在這個節(jié)奏中,技術(shù)人員要特別注意下面兩點:
上云過程的第一步(在云上進行開發(fā)測試)是一個非常重要的步驟,這是技術(shù)人員更深入理解云的關(guān)鍵階段。但現(xiàn)實過程中很多技術(shù)人員都忽略了這一步的重要性。他們習(xí)慣于選擇一些測試工具在云上進行測試,然后以這個測試結(jié)果作為認識云的主要信息來源。如果測試結(jié)果合適的話就直接在云上部署服務(wù)。這種方式經(jīng)常會讓技術(shù)人員在未充分了解云的情況下上線服務(wù),會給后來云上運維及運營帶來很多不確定因素。一個更為推薦的方式是技術(shù)人員以云為開發(fā)測試環(huán)境,并在其上不斷迭代版本,盡早暴露系統(tǒng)在云上運行的問題。同時,這個過程也是技術(shù)人員深入理解云平臺,不斷調(diào)整使用云資源方式的過程。另外,由于云資源的按需付費特征,從成本上看其也特別適合作為開發(fā)測試環(huán)境。
在整個上云過程中,不同階段對于云平臺的要求是不盡相同。如果就IaaS層面來說,我們認為上圖不同階段對于云平臺的要求大體如下
所以,隨著上云過程的不斷深入,技術(shù)人員需要持續(xù)考察云平臺的支撐能力是否能夠匹配當(dāng)前的上云階段的需求。
姿勢二:選擇合適你的云平臺
目前,市場上云供應(yīng)商比較多,即使是面向技術(shù)人員的IaaS和PaaS也有不少。所以,如何為你的上云業(yè)務(wù)選擇合適的云平臺就是技術(shù)人員必須要面對的重要問題。不同業(yè)務(wù)、同一個業(yè)務(wù)不同階段對于云平臺的需求都不盡相同。就IaaS層面來說,技術(shù)人員在選擇云平臺時需要注意如下幾個問題:
避免被企業(yè)宣傳所影響,拋棄“云是萬能鑰匙”的認識。在選擇任何云平臺前都要充分做好驗證工作(POC);
明確核心驗證指標,避免要一個面面俱全的方案。即使是今天,云平臺仍然在快速發(fā)展階段,可能還沒有為你提供全面完整的解決方案。但是,如果因此而望而卻步則有可能因噎廢食。所以在做云平臺驗證之前需要明確業(yè)務(wù)要求的核心指標,之后再以此為參照做云平臺的驗證工作。對于目前還不能完全滿足的其他指標可以考慮通過技術(shù)架構(gòu)、輔助工具、管理方式等途徑解決;
轉(zhuǎn)變思路,拋棄不再合適的做法。用戶對于云時代IT基礎(chǔ)設(shè)施的很多需求沒有改變,但是也有不少思路發(fā)生了巨大變化。例如,自服務(wù)IT就是一個非常好的例子。傳統(tǒng)IT中企業(yè)傾向通過集中化申請、審批每一份資源來控制成本,而在云時代使用這一套方式管理云資源將極大限制云平臺的生產(chǎn)力。一個更好的方式可能是通過成本預(yù)算和費用管理的方式來控制,但不去限制技術(shù)人員如何具體使用每一項資源。只有這樣才能夠充分釋放技術(shù)人員的生產(chǎn)力,達到效率和成本的新均衡。
姿勢三:使用API管理你的云資源
當(dāng)技術(shù)人員上云后,其最常見的云資源管理方式就是云平臺的Web控制臺。用戶可以通過控制臺申請、釋放資源,完成資源的配置等等??刂婆_對于用戶管理云資源很直觀,但是控制臺UI交互的方式卻限制了云資源“可編程”特性的發(fā)揮,限制通過自動化完成開發(fā)、測試以及運維管理工作的能力。所以,技術(shù)人員上云過程中一定要注意盡可能多使用云平臺提供的API工具(包括命令行工具和各種語言SDK)管理資源。通過這些工具,技術(shù)人員可以完成很多控制臺并不擅長的工作,例如:
常見的批量操作,例如按一定標準批量申請、釋放資源,對于一批資源進行批量配置等。
流程自動化操作,例如自動化完成資源獲取、初始化、業(yè)務(wù)部署以及加入系統(tǒng)這一整個流程。
資源調(diào)度操作,例如按照一定標準完成資源自動擴縮容,以提高系統(tǒng)應(yīng)對不同業(yè)務(wù)負載的能力。
姿勢四:隔離開發(fā)測試與生產(chǎn)環(huán)境
在傳統(tǒng)IT中,很多公司的開發(fā)測試環(huán)境與生產(chǎn)環(huán)境相關(guān)獨立,甚至網(wǎng)絡(luò)也相互隔離。這是一個非常必要的最佳實踐,但在云上如何落實這一實踐?其實,云為此提供了一種最簡單直接的方案,就是通過不同的云帳號來完成不同環(huán)境的隔離。不同云帳號之間資源、網(wǎng)絡(luò)天然隔離,并且可以把他們交給不同的人員進行管理。當(dāng)然,這種隔離也會帶來數(shù)據(jù)交換的不方便,一般來說有下面幾個途徑解決不同帳號下的數(shù)據(jù)交換問題:
通過云平臺提供的跨帳號資源共享能力。例如,跨帳號的鏡像共享機制,數(shù)據(jù)跨帳號訪問的授權(quán)問題。
通過集中化的服務(wù)交換數(shù)據(jù)。例如,通過集中化的制品(artifacts)庫在開發(fā)測試和生產(chǎn)環(huán)境中共享部署組件包。
姿勢五:讓你的系統(tǒng)更有彈性
業(yè)務(wù)負載上的彈性是系統(tǒng)彈性最重要的指標。云平臺為業(yè)務(wù)負載彈性提供了非常好的基礎(chǔ)設(shè)施支持。無論是傳統(tǒng)的應(yīng)用,還是新型云應(yīng)用都可以從此獲取極大幫助。例如,傳統(tǒng)游戲應(yīng)用都是按分區(qū)模式運營,并且很少涉及到線上跨區(qū)數(shù)據(jù)訪問。云的這種彈性交付模式也可以讓其在開合服上帶來很大靈活性。而新型云應(yīng)用一般都按水平伸縮和狀態(tài)無關(guān)來設(shè)計技術(shù)架構(gòu),則更能發(fā)揮云平臺的彈性。因此,技術(shù)人員決定上云時需要仔細思考業(yè)務(wù)負載的彈性特征如何,能否在技術(shù)架構(gòu)或者基礎(chǔ)設(shè)施層讓整個系統(tǒng)更有彈性,從而讓你的系統(tǒng)因為上云可以獲得更好的彈性。
除了業(yè)務(wù)負載上的彈性,業(yè)務(wù)系統(tǒng)的容錯性和高可用同樣也是系統(tǒng)彈性設(shè)計中的重要考量。云上資源的獲取非常容易,所以在容錯處理乃至備份容災(zāi)方面都可以充分利用這個特點。在系統(tǒng)出現(xiàn)問題時快速搭建全新環(huán)境并及時切換很多時候比在原來系統(tǒng)中恢復(fù)服務(wù)更有效。同樣,云平臺帶來的另外一個好處就是全國(乃至全球)的基礎(chǔ)設(shè)施資源標準化,可以讓你的系統(tǒng)非常容易在不同區(qū)域進行部署,并且當(dāng)一個區(qū)域出問題時候還可以及時切換到其他區(qū)域。這也是一個增強服務(wù)彈性和系統(tǒng)高可用性的重要途徑之一。
姿勢六:讓自動化和云為伴
自動化是大家經(jīng)常提到的東西,并且在傳統(tǒng)IT中也在不斷的強調(diào)。那么技術(shù)人員上云和自動化有什么特別的關(guān)系?簡單來說,云為傳統(tǒng)IT中最難自動化的部分(基礎(chǔ)設(shè)施)提供了自動化的可能,這也就意味著整個IT系統(tǒng)有可能從零開始全自動化搭建完成。傳統(tǒng)IT技術(shù)人員的自動化鏈條很多時候都是以基礎(chǔ)設(shè)施準備到位,甚至初始化完成為起點。而在云上技術(shù)人員一定要努力將自己的自動化鏈條向前延伸。具體來說,包括如下幾點:
- 自動化基礎(chǔ)設(shè)施資源的獲取過程。這不僅僅包括計算資源(如虛機)的獲取,還包括如磁盤、負載均衡器、虛擬網(wǎng)絡(luò)、帶寬、公網(wǎng)IP等等。
- 自動化基礎(chǔ)設(shè)施資源的連接過程。例如,磁盤掛載、負載均衡器掛載,綁定IP等等。
- 自動化基礎(chǔ)設(shè)施的初始化工作,包括鏡像加載,基礎(chǔ)軟件安裝,初始化配置,甚至應(yīng)用部署等。
為此,很多云平臺還為用戶自動化基礎(chǔ)設(shè)施提供了專門服務(wù),如虛機及容器的鏡像、基礎(chǔ)設(shè)施模板、虛機的metadata&userdata,代碼部署服務(wù)等等。這些服務(wù)都值得技術(shù)人員去了解和試用。
姿勢七:用好云上安全工具,其實云比你想象的要安全得多
安全是很多客戶對于云平臺最大的擔(dān)心。也正因如此,云供應(yīng)商對安全做了大量的投入,提供了很多安全工具。對于技術(shù)人員來說,首先需要牢記在心的云上安全基本原則就是“責(zé)任共擔(dān)原則”,也就是說云上安全是由云平臺和客戶共同擔(dān)當(dāng)。所以,云平臺客戶和技術(shù)人員一定不要指望上云后所有的安全問題都自動解決了,仍然要持續(xù)地加強自身的安全意識和安全技術(shù)能力。不過好消息是,和傳統(tǒng)IT比,云供應(yīng)商提供了更為豐富、更加易用的安全工具集,可以幫助用戶更容易地構(gòu)建一個安全服務(wù)。展開來說,包括如下幾個方面:
- 在數(shù)據(jù)可靠性上,云平臺的存儲服務(wù)(無論對象存儲、快存儲還是數(shù)據(jù)庫存儲)都是分布式,且數(shù)據(jù)有多份拷貝,整體來說是值得信賴的。如果仍然有擔(dān)心,云上的數(shù)據(jù)備份服務(wù)也非常方便,而且很經(jīng)濟。
- 在數(shù)據(jù)存儲階段,云平臺提供的多種數(shù)據(jù)加密服務(wù)(各種存儲服務(wù)都有支持)是一個非常好的選擇。不僅數(shù)據(jù)加密、解密過程對用戶透明,而且用戶可以選擇不同的密鑰生成機制,保證數(shù)據(jù)安全性完全可控。
- 在數(shù)據(jù)傳輸過程中,無論是對外網(wǎng)還是在內(nèi)網(wǎng)都可以使用HTTPS協(xié)議,并且用戶都可自帶證書。
- 在數(shù)據(jù)訪問權(quán)限上,云平臺提供的權(quán)限管理及主子帳號機制可以在保證正常使用便利性的同時盡可能避免權(quán)限外泄。
當(dāng)然,由于國內(nèi)網(wǎng)絡(luò)環(huán)境的惡劣性,網(wǎng)絡(luò)攻擊時而發(fā)生,如何保證網(wǎng)絡(luò)訪問安全是一個頭疼的問題。在這方面,云平臺無論從資源還是技術(shù)投入來說都會強于個體客戶,所以這方面選擇信賴云平臺也是合理的。同時,云平臺還會聚集大量的第三方安全公司,客戶從此選擇自己需要的合適云安全供應(yīng)商也很方便。除此之外,主流云平臺都會主動通過各種行業(yè)安全及合規(guī)認證,這對于有行業(yè)合規(guī)要求的客戶非常有幫助。整體來說,作為技術(shù)人員,在上云過程中首先要樹立“責(zé)任共擔(dān)”的安全意識,然后重點關(guān)注云平臺的安全工具、以及云平臺推薦的各種安全最佳實踐等,并按照業(yè)務(wù)需求使用好它們。如此,你會發(fā)現(xiàn)云平臺其實比你想象的要安全得多。
【原文來源:云頭條】