春耕、夏耘、秋收、冬藏
如果將【云】看成是一片創(chuàng)新土壤
那么將工作負載放置在相宜的區(qū)域
會更容易收獲更可觀的業(yè)務成果
多云模式風行的云原生趨勢下,埋頭舞動鍵盤的碼農(nóng)選手們,更需要進階為感知與預判開發(fā)成果的創(chuàng)新工程師角色,自主選擇、把握在不同的數(shù)據(jù)中心和云服務提供商之間遷移工作負載的時機,以及簡易、敏捷、低成本的操作路徑。
五步設計云便攜性戰(zhàn)略
具有云便攜性的工作負載,如同易于拆卸的樂高積木組件一般,可在不同計算環(huán)境和基礎設施平臺上,進行輕松遷移、部署,打破特定供應商的鎖定僵局。高度靈活的云戰(zhàn)略,能支持開發(fā)者根據(jù)應用和業(yè)務需求進行云資源多樣化配置,或視情況更換提供商。
Akamai 結(jié)合多年的云計算服務經(jīng)驗以及企業(yè)客戶群體謀求改變云鎖定模式的迫切要求,建議正在起步或重構(gòu)云應用的開發(fā)者伙伴們,用以下五步設計企業(yè)的云計算便攜性戰(zhàn)略。
第一步:
明確真正的創(chuàng)新需求
讓云環(huán)境中的工作負載逐一“松動”起來的第一步,是客觀地確定工作負載的創(chuàng)新需求。事實上,經(jīng)??吹竭@樣的情況:在這一明確 brief 的初始步驟完成之前,開發(fā)團隊目光很容易被云提供商的誘人服務所吸引,使分析自身需求的過程受到主觀因素的影響。
因此,在確定需求范圍之前,可先不考慮云提供商?;貧w本心,了解滿足所有交付成果所需的功能和特性,確定軟件堆棧和依賴關系,以及滿足需求的其他組件。擁有一個客觀、簡潔的視角,就好比通過廣角鏡頭去觀察云,會更易于看清核心云基礎設施基元上運行的大量功能。
第二步:
審視、評估鎖定點
無論應用程序是仍處于構(gòu)建或規(guī)劃階段,還是已經(jīng)在云平臺上開發(fā)和部署,都要對當前的架構(gòu)設計進行評估,以確定該平臺特有的組件和服務。如果企業(yè)已經(jīng)確定了供應商鎖定點,可進一步評估以下問題。
通過以上自測問題的思考后,企業(yè)上云/用云團隊,就可以著手規(guī)劃理想的開源解決方案或其他可提供相同或類似功能的替代解決方案,評估實施所需的努力,并制定執(zhí)行計劃。
減免后顧之憂,企業(yè)也需要了解“架構(gòu)鎖定/運營鎖定”兩種鎖定形式。此時,如果在所有評估之后,企業(yè)仍然選擇堅持使用特定平臺的服務,請保留一個深思熟慮的退出策略,減輕對鎖定的擔憂。
第三步:
實現(xiàn)可靠的可擴展性
構(gòu)建 IT 環(huán)境的橫向可擴展性和廣泛分布,可利用云負載平衡技術,結(jié)合容器化、計算映像、配置管理以及分離有/無狀態(tài)組件來實現(xiàn)。在可能的情況下,狀態(tài)應該具有聲明性,由單一真實源維護和管理,并實現(xiàn)自動復制和同步。
第四步:
采用模塊化設計,保障業(yè)務連續(xù)
單體架構(gòu),意味著緊耦合關系,這種復雜系統(tǒng),往往會面臨牽一發(fā)而動全身的系統(tǒng)管理困境。讓開發(fā)者的工作變得繁瑣,且缺失靈活性與自由度。微服務、容器化趨勢下,工作負載更需要采用模塊化設計,明確定義不同的組件,并作為一個松散耦合的系統(tǒng)協(xié)同工作。
從成就業(yè)務價值的角度來看,云原生理念倡導的模塊化設計,可通過更新或替換單個組件,來保障業(yè)務交付的連續(xù)性,同時不影響整個工作負載的既有高效流程,整體提高可維護性、適應性和云的便攜性。
第五步:
一切皆代碼的 GitOps
開發(fā)云原生應用程序的朋友們,應該很熟悉聲明式部署法。該方法支持開發(fā)者對工作負載的應用程序、軟件、系統(tǒng)配置,以及在開發(fā)、暫存和生產(chǎn)環(huán)境中運行的每個部分進行編碼,自動部署新環(huán)境或復制現(xiàn)有環(huán)境,來簡化藍/綠部署流程,支持開發(fā)者在災備期間快速恢復。
使用 GitOps 方法,便可為開發(fā)者提供實現(xiàn)云便攜性的一體化窗口,并通過自動化管道的可靠性優(yōu)勢實現(xiàn)標準化部署,提高合規(guī)性/審計的可視性,并以代碼的形式執(zhí)行策略。