技術(shù)人觀點(diǎn):開發(fā)人員在處理云應(yīng)用時(shí)該注意什么?

責(zé)任編輯:editor005

作者:核子可樂編譯

2016-03-14 14:28:55

摘自:51CTO

我們與28位分別來(lái)自23家企業(yè)的高管人員進(jìn)行了交流,希望了解這些負(fù)責(zé)立足于云環(huán)境進(jìn)行應(yīng)用程序開發(fā)與部署的技術(shù)領(lǐng)導(dǎo)者如何看待相關(guān)議題。多租戶——這一點(diǎn)對(duì)于內(nèi)部環(huán)境開發(fā)人員而言最難解決,因?yàn)榇祟悜?yīng)用并非面向防火墻后的單一客戶所構(gòu)建。

我們與28位分別來(lái)自23家企業(yè)的高管人員進(jìn)行了交流,希望了解這些負(fù)責(zé)立足于云環(huán)境進(jìn)行應(yīng)用程序開發(fā)與部署的技術(shù)領(lǐng)導(dǎo)者如何看待相關(guān)議題。

當(dāng)被問及“開發(fā)人員需要在處理云應(yīng)用時(shí)注意什么?”時(shí),各位企業(yè)高管人員給出了以下意見與建議:

應(yīng)用程序性能管理應(yīng)該分為主動(dòng)與被動(dòng)兩類,特別是在面對(duì)開發(fā)與生產(chǎn)等不同場(chǎng)景的情況下。我們需要在開發(fā)階段獲取更多測(cè)試信息。APM工具將幫助我們?cè)趹?yīng)用直接觸及生產(chǎn)環(huán)境前對(duì)其加以測(cè)試,并有效縮短產(chǎn)品進(jìn)入生產(chǎn)環(huán)境并被交付至用戶手中的周期。

了解應(yīng)用程序的十二因素。如何對(duì)應(yīng)用程序中的服務(wù)進(jìn)行遠(yuǎn)程消費(fèi)?了解其中的關(guān)聯(lián)性是解決問題的關(guān)鍵所在。

開發(fā)人員應(yīng)當(dāng)保持云中立性。所有應(yīng)用程序都需要具備可移植能力。對(duì)于高級(jí)應(yīng)用程序,我們需要將云因素排除在設(shè)計(jì)藍(lán)圖之外。在編寫應(yīng)用時(shí),保持其云中立特性、構(gòu)建通用API并封裝特定的云依賴關(guān)系。大家不要假定使用某種特定虛擬機(jī)。為應(yīng)用選定運(yùn)行區(qū)域,這對(duì)安全性非常重要要。不過VCenter不具備分區(qū)特性,因?yàn)槠渲饕嫦蛩接性扑鶚?gòu)建。我們需要在設(shè)計(jì)之初考慮到這些前提。如果大家打算面向公有云進(jìn)行應(yīng)用開發(fā),則需要利用微服務(wù)實(shí)現(xiàn)規(guī)模擴(kuò)展——即考慮單一服務(wù)規(guī)模所帶來(lái)的多重影響。沙箱屬于Amazon以及V Container接口的縮影,大家可以借此了解二者之間的沖突點(diǎn)所在。

跳出固有思維,因?yàn)槔吓砷_發(fā)人員采用的方法往往無(wú)法適應(yīng)當(dāng)前需求。了解業(yè)務(wù)需求與客戶需求,并為問題提供最為簡(jiǎn)單的解決方案。針對(duì)需求進(jìn)行實(shí)現(xiàn)方法定制。保持統(tǒng)一的發(fā)展愿景,同時(shí)著眼于目標(biāo)及需要解決的問題進(jìn)行知識(shí)共享(使用JetBrains中的UTrack以及JIRA實(shí)現(xiàn)協(xié)作,盡可能提高社交水平)。大家需要通過添加簡(jiǎn)化要素盡可能降低應(yīng)用復(fù)雜度。

積極動(dòng)手。選定一款簡(jiǎn)單應(yīng)用,然后立足于AWS進(jìn)行構(gòu)建——這也正是AWS的最大價(jià)值所在。API與使用指南都是學(xué)習(xí)云服務(wù)相關(guān)知識(shí)的絕佳途徑。

考慮應(yīng)用何時(shí)需要進(jìn)行規(guī)模擴(kuò)展,應(yīng)用中的哪些組件需要進(jìn)行規(guī)模擴(kuò)展。立足于容器架構(gòu)實(shí)現(xiàn)諸如登錄等功能,從而建立共享式應(yīng)用。必須保證自己具備按需擴(kuò)展的能力。審視使用模式并考慮不同類型的用戶是否應(yīng)當(dāng)采用同樣的使用模式。了解我們不希望親手構(gòu)建的部分——換言之,了解我們可以直接使用哪些后端即服務(wù)選項(xiàng)(例如API網(wǎng)關(guān)以及數(shù)據(jù)管理服務(wù))。了解哪些元素可以具備云服務(wù)供應(yīng)商鎖定特性在,則哪些能夠幫助我們?cè)谑袌?chǎng)上獲取差異性優(yōu)勢(shì)。

利用邏輯、數(shù)學(xué)與藝術(shù)手段構(gòu)建用戶界面——同時(shí)使用各類更為先進(jìn)的編程語(yǔ)言。利用自己的技能對(duì)應(yīng)用做出轉(zhuǎn)型。尋找一位導(dǎo)師,在其幫助下打下堅(jiān)實(shí)的專業(yè)知識(shí)基礎(chǔ),這些都將在未來(lái)起到重要作用。另外,在工作中保持激情。

利用黑客馬拉松活動(dòng)實(shí)現(xiàn)快速高效的應(yīng)用開發(fā)。認(rèn)真審視安全性。鼓勵(lì)開發(fā)人員與軟件團(tuán)隊(duì)參與黑客馬拉松,從而快速構(gòu)建應(yīng)用程序并提供更出色的用戶體驗(yàn)。部署前快速發(fā)現(xiàn)問題,而非完全依賴于測(cè)試部門。

考慮哪些組件可以發(fā)生故障,利用AWS與GCQ啟動(dòng)對(duì)應(yīng)實(shí)例,直接查看哪些組件正常起效而哪些遇到了問題。持續(xù)測(cè)試并了解開發(fā)成果的實(shí)際執(zhí)行效果。

不要對(duì)應(yīng)用程序的運(yùn)行位置進(jìn)行假設(shè)。保證所構(gòu)建的應(yīng)用能夠運(yùn)行在任意環(huán)境當(dāng)中。從起步階段將安全考量納入開發(fā)流程。構(gòu)建抽象機(jī)制,從而保證應(yīng)用可由一種云環(huán)境遷移至另一種當(dāng)中。不要過度依賴于單一云環(huán)境或者技術(shù)方案。

安全性——關(guān)注最為重要的方面,特別是隔離各租戶的數(shù)據(jù)并保護(hù)敏感數(shù)據(jù)。

可擴(kuò)展性——必須有能力在特定時(shí)間段內(nèi)處理峰值資源需求。

成本控制——優(yōu)化應(yīng)用程序以實(shí)現(xiàn)成本效益,由于公有云資源在進(jìn)行性能與擴(kuò)展性優(yōu)化時(shí)成本較高,這一點(diǎn)也變得愈發(fā)重要。基礎(chǔ)設(shè)施成本如今主要由軟件廠商而非客戶承擔(dān)。

日志記錄——最重要的是能夠調(diào)試問題并捕捉一切與故障相關(guān)的信息,從而在盡可能無(wú)需客戶協(xié)助的前提下實(shí)現(xiàn)問題修復(fù)。

可部署性——SaaS的一大重要優(yōu)勢(shì)在于能夠隨時(shí)實(shí)現(xiàn)快速部署。我們的架構(gòu)必須能夠處理實(shí)時(shí)部署,從而輕松應(yīng)對(duì)客戶直接可見的零宕機(jī)時(shí)間效應(yīng)。

多租戶——這一點(diǎn)對(duì)于內(nèi)部環(huán)境開發(fā)人員而言最難解決,因?yàn)榇祟悜?yīng)用并非面向防火墻后的單一客戶所構(gòu)建。

自動(dòng)化——底層基礎(chǔ)設(shè)施必須以自動(dòng)化方式實(shí)現(xiàn)設(shè)施部署與擴(kuò)展性調(diào)整,且無(wú)需大量人為介入。

了解如何利用特定指南資料實(shí)現(xiàn)模式設(shè)計(jì)。云環(huán)境下的設(shè)計(jì)模式往往缺乏充足的說明素材,從業(yè)者對(duì)其亦理解不深。我們需要率先考量模式相關(guān)問題。對(duì)設(shè)計(jì)模式進(jìn)行抽象化處理,從而確保我們始終參與其中并由此實(shí)現(xiàn)職業(yè)生涯積累。在了解到基礎(chǔ)模式之后,大家可以逐步體會(huì)更為復(fù)雜的執(zhí)行模式。不要重復(fù)過去犯過的錯(cuò)誤。很多人都從閱讀說明文檔開始學(xué)習(xí)。事實(shí)上,觀察他人的工作成果,掌握他人的工作經(jīng)驗(yàn)并閱讀博文以及在線資源等都是很好的學(xué)習(xí)方式。很多企業(yè)已經(jīng)開始公開討論其云架構(gòu)。大家不妨觀察十家不同企業(yè)所使用的架構(gòu)與實(shí)現(xiàn)模式。這將幫助大家在構(gòu)建自己的解決方案時(shí)擁有更為開闊的思路。

不要忘記,云環(huán)境是一套非常強(qiáng)大的開發(fā)平臺(tái)。充分利用云與其它各類資源。利用云服務(wù)實(shí)現(xiàn)快速迭代、頻繁部署并最終打造出高質(zhì)量應(yīng)用。

可擴(kuò)展性與安全性。開發(fā)人員需要從起步階段認(rèn)真思考安全性需求。將零宕機(jī)時(shí)間作為前提性目標(biāo)。

性能與指令。盡可能在代碼中添加指令,從而簡(jiǎn)化未來(lái)的故障排查工作。數(shù)小時(shí)的服務(wù)宕機(jī)有可能帶來(lái)數(shù)百萬(wàn)美元損失。了解APM配置并構(gòu)建修復(fù)指令。另外,在性能層面確定哪些狀況可以接受,而哪些絕對(duì)不能接受。

脫離應(yīng)用本身從技術(shù)層面審視V5原則。服務(wù)器架構(gòu)正是我們的指向目標(biāo)(例如Amazon Lambda——其中包含一段代碼,在被調(diào)用時(shí)會(huì)運(yùn)行Nano服務(wù))。

目前已經(jīng)有大量平臺(tái)開始引入眾多業(yè)務(wù)功能,這意味著我們可以借此創(chuàng)建預(yù)測(cè)模型,同時(shí)定義業(yè)務(wù)算法并為預(yù)測(cè)模型提供分析素材。立足于開發(fā)領(lǐng)域的知識(shí),并將其與抽象思維結(jié)合起來(lái)。Google Tensor Flow、Google Now以及微軟目前都開始提供開源機(jī)器學(xué)習(xí)服務(wù)。大家可以考慮如何利用這些新成果解決問題。

考慮到越來(lái)越多的應(yīng)用遭受黑客攻擊,我們需要始終將安全性作為關(guān)注重點(diǎn)。安全性與可靠性可謂相互依存。確保應(yīng)用具備應(yīng)對(duì)流量峰值以及長(zhǎng)期發(fā)展所需要的擴(kuò)展能力。盡快幫助客戶從應(yīng)用中獲取價(jià)值。

了解當(dāng)前可供使用的各類工具。著眼于規(guī)模化及性能水平進(jìn)行應(yīng)用設(shè)計(jì)。預(yù)測(cè)可能發(fā)生的變化。著眼于產(chǎn)品的當(dāng)前作用,并預(yù)測(cè)其如何與企業(yè)環(huán)境下的其它產(chǎn)品進(jìn)行集成。保證應(yīng)用具備可擴(kuò)展能力。將安全性引入其中,否則我們的應(yīng)用將無(wú)法通過合規(guī)審查。將用戶體驗(yàn)視為設(shè)計(jì)工作的核心。

自動(dòng)化與驗(yàn)證機(jī)制。如果大家在云應(yīng)用中使用現(xiàn)代工具方案,但卻發(fā)現(xiàn)其并不適應(yīng)當(dāng)前實(shí)際需求,那么請(qǐng)果斷將目光轉(zhuǎn)回較為陳舊的實(shí)現(xiàn)模式。通過互聯(lián)網(wǎng)了解其它廠商的實(shí)際作法。盡可能利用開源工具實(shí)現(xiàn)大規(guī)模遷移(例如Netflix)。通過這種方式,大家將獲得出色的思維方式與解決方案。

安全性為先,保證應(yīng)用中不存在可被利用的漏洞。堅(jiān)持使用多租戶環(huán)境以實(shí)現(xiàn)規(guī)?;杀拘б?。

開發(fā)者與DevOps團(tuán)隊(duì)需要以云原生角度理解應(yīng)用程序,而非服務(wù)交付方式。很多工具內(nèi)置有大量功能,但往往并不切合我們的實(shí)際需求。因此大家應(yīng)當(dāng)進(jìn)一步學(xué)習(xí)與性能表現(xiàn)、用戶體驗(yàn)以及面向最終用戶的應(yīng)用服務(wù)效果相關(guān)的知識(shí)。了解應(yīng)用是否可用且是否具備用戶友好特性。掌握應(yīng)用依賴性與可擴(kuò)展性。與DevOps及運(yùn)維團(tuán)隊(duì)交流,從而了解代碼成果的實(shí)際運(yùn)行情況。

大家對(duì)于開發(fā)人員處理云應(yīng)用的方式這一議題又有哪些觀點(diǎn)?請(qǐng)?jiān)谠u(píng)論中與我們分享。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)