4個(gè)技巧構(gòu)建多云應(yīng)用程序
通常有兩種力量推動圍繞多云的討論:自由選擇組織所需的云計(jì)算工具和平臺,以及這些選擇帶來的復(fù)雜性。
這并不總是那么容易,但組織有多種方法可以構(gòu)建IT架構(gòu),提供跨環(huán)境的一致性并避免供應(yīng)商鎖定。企業(yè)需要遵循獲取有關(guān)如何構(gòu)建多云應(yīng)用程序并了解何時(shí)不值得這樣做的建議。
在構(gòu)建多云應(yīng)用程序之前考慮這些因素
無論是發(fā)生中斷、價(jià)格變化、與供應(yīng)商的關(guān)系破裂,還是其他原因,很多企業(yè)都希望構(gòu)建自己的應(yīng)用程序,以便在認(rèn)為合適的時(shí)間和地點(diǎn)移動代碼。
但是,編寫與云計(jì)算無關(guān)的代碼不僅僅涉及避免使用特定于平臺的工具。以下是構(gòu)建可在多個(gè)云平臺上使用的應(yīng)用程序時(shí)需要記住的四個(gè)因素:
1.不要在源代碼中包含密碼和API密鑰等敏感信息。
2.為應(yīng)用程序提供單一入口點(diǎn)。要***限度地降低故障點(diǎn)風(fēng)險(xiǎn),使用循環(huán)域名系統(tǒng)記錄在云計(jì)算提供商之間分配負(fù)載。
3.盡可能自動化以最小化復(fù)雜性。
4.不要完全排除本機(jī)工具。云計(jì)算供應(yīng)商可能擁有真正獨(dú)特、有價(jià)值的服務(wù),或者避免使用特定工具的成本可能高于供應(yīng)商鎖定的風(fēng)險(xiǎn)。
考慮何時(shí)以及如何規(guī)劃可遷移性
組織優(yōu)化其特定云平臺的工作負(fù)載越多,以后移動這些應(yīng)用程序就越困難。如果IT團(tuán)隊(duì)想要獲得可遷移性,他們需要了解使用的服務(wù)的含義以及如何將應(yīng)用程序錨定到給定平臺。
例如,云計(jì)算提供商推動與其競爭對手進(jìn)行功能奇偶校驗(yàn),但這并不一定能夠更輕松地在云平臺之間遷移工作負(fù)載。即使兩個(gè)提供商具有可比較的服務(wù),它們也通過不同的API提供。開發(fā)人員需要重寫組件才能在其他云平臺上工作。
盡管如此,遷移性并不是***的。事實(shí)上,從長遠(yuǎn)來看,即使成本較高,找到適合工作負(fù)載的合適平臺也會更具成本效益。如果企業(yè)擁有深度互聯(lián)的應(yīng)用程序,***將它們托管在自己的數(shù)據(jù)中心內(nèi),以限制流量費(fèi)用、集成和安全問題。
克服平臺差異
部署多云戰(zhàn)略的組織需要彌補(bǔ)應(yīng)用程序部署在不同云中的執(zhí)行方式不同的事實(shí)。企業(yè)可以通過限制擴(kuò)展到一個(gè)云平臺,在不同的云平臺中運(yùn)行并行部署或抽象某些組件來實(shí)現(xiàn)這一目標(biāo)。
如果組織使用諸如Apache Meos或Kubernetes之類的軟件將部署同質(zhì)化,以抽象應(yīng)用程序平面或使用諸如Ansible、Chef或Puppet之類的DevOps工具,則會采用規(guī)模和重新部署方法。
運(yùn)行并行部署與擴(kuò)展和重新部署方法類似,但事務(wù)和其他任務(wù)是共享的。這將需要在重復(fù)的應(yīng)用程序組件之間使用負(fù)載均衡器,但不需要特殊的部署技術(shù),因?yàn)橹挥泄ぷ髟谠破脚_之間移動。
當(dāng)應(yīng)用程序組件需要跨云平臺進(jìn)行擴(kuò)展或故障轉(zhuǎn)移時(shí),IT團(tuán)隊(duì)可以使用基于適配器設(shè)計(jì)模式的某種私有中間件。這會將不同的云平臺提供程序API拉入單個(gè)API,然后開發(fā)人員可以使用它。如果提供商的服務(wù)不同,則創(chuàng)建更高級別的抽象,以將組織的API映射到每個(gè)云中的特定功能。
簡化持續(xù)集成和持續(xù)交付(CI/CD)管道
與云計(jì)算提供商無關(guān)的持續(xù)集成和持續(xù)交付(CI/CD)管道可以簡化多云應(yīng)用程序的部署過程,如果IT團(tuán)隊(duì)選擇采用這種方式,則可以選擇多種方案。
大多數(shù)云計(jì)算供應(yīng)商都支持安全文件傳輸協(xié)議。雖然它容易出錯(cuò),但開發(fā)人員可以使用它來交換、更新或刪除端點(diǎn),同時(shí)保持部署的性質(zhì)。
IT團(tuán)隊(duì)還可以使用容器來集中應(yīng)用程序構(gòu)建,并避免在多個(gè)環(huán)境中部署整個(gè)應(yīng)用程序代碼。應(yīng)用程序映像可以保存到任何云都可以訪問的容器存儲庫中,開發(fā)人員可以使用給定提供程序的編排工具來啟動應(yīng)用程序映像。
如果企業(yè)仍然想要使用一些云原生服務(wù),還有其他一些技巧可以解決依賴性分發(fā),盡管它們可能會降低可遷移性并增加復(fù)雜性。例如,如果只有一個(gè)提供商擁有上傳內(nèi)容交付網(wǎng)絡(luò)資產(chǎn)的工具,請確保每次使用該云平臺將內(nèi)容上傳到該CDN,即使目標(biāo)是另一個(gè)云平臺。
無論采用哪種方法,企業(yè)還必須確定將在每個(gè)環(huán)境中運(yùn)行的部署后任務(wù),以便平衡云中的負(fù)載。同樣,更多的云平臺會增加復(fù)雜性,因此請注意應(yīng)用程序依賴的托管功能以及需要額外管道自制的方式。