官术网_书友最值得收藏!

交付基礎(chǔ)設(shè)施解讀

下面我們來看看,在“交付基礎(chǔ)設(shè)施”這頂帽子下面,架構(gòu)師/技術(shù)領(lǐng)導(dǎo)者們究竟應(yīng)該關(guān)心哪些問題,又有哪些最佳實(shí)踐應(yīng)該被納入他們的視線。

交付基礎(chǔ)設(shè)施

快速交付

彈性基礎(chǔ)設(shè)施

持續(xù)交付流水線

部署運(yùn)行時(shí)

監(jiān)控

安全

API和架構(gòu)治理

構(gòu)建生態(tài)系統(tǒng)

開發(fā)者體驗(yàn)(DX)

服務(wù)邊界

事件驅(qū)動(dòng)架構(gòu)

公共網(wǎng)關(guān)

微服務(wù)SOA拓?fù)?/p>

數(shù)據(jù)自服務(wù)

獲取洞見

數(shù)據(jù)流水線設(shè)計(jì)

實(shí)時(shí)架構(gòu)和API

數(shù)據(jù)湖設(shè)計(jì)

數(shù)據(jù)即產(chǎn)品

細(xì)粒度授權(quán)

創(chuàng)新實(shí)驗(yàn)基礎(chǔ)設(shè)施和監(jiān)控體系

有序地創(chuàng)新

數(shù)據(jù)采集

金絲雀發(fā)布

Toggle架構(gòu)

路由技術(shù)

埋點(diǎn)和可視化

客戶觸點(diǎn)技術(shù)

一致的體驗(yàn)

統(tǒng)一客戶視角

內(nèi)容戰(zhàn)略

個(gè)性化

移動(dòng)應(yīng)用持續(xù)交付

跨渠道引流

1 彈性基礎(chǔ)設(shè)施

允許交付隨需獲得計(jì)算能力。在微服務(wù)語境下,這種彈性有兩層常見的含義:在生產(chǎn)環(huán)境下,服務(wù)可以隨負(fù)載動(dòng)態(tài)獲得和釋放計(jì)算資源,從而更高效地使用計(jì)算資源,更自動(dòng)化地應(yīng)對負(fù)載變化;在研發(fā)環(huán)境下,開發(fā)、測試、運(yùn)維等不同角色可以隨需動(dòng)態(tài)獲得完整的環(huán)境,從而統(tǒng)一環(huán)境、標(biāo)準(zhǔn)化研發(fā)實(shí)踐、規(guī)范化研發(fā)能力,并且給研發(fā)提供體驗(yàn)更好的開發(fā)環(huán)境。

為了實(shí)現(xiàn)彈性基礎(chǔ)設(shè)施,一方面基礎(chǔ)設(shè)施需要支持彈性,例如使用支持彈性計(jì)算的公有/私有云,并且有對生產(chǎn)環(huán)境的監(jiān)控和自動(dòng)化手段;另一方面應(yīng)用本身需要有可擴(kuò)展性,例如服務(wù)能分別獨(dú)立部署、無狀態(tài)化、容器化、有透明的前端負(fù)載均衡機(jī)制。有狀態(tài)服務(wù)(比如數(shù)據(jù)庫服務(wù))的彈性伸縮問題是特別需要考慮的重要挑戰(zhàn)。

2 持續(xù)交付流水線

用持續(xù)交付實(shí)踐打通微服務(wù)的開發(fā)、構(gòu)建、驗(yàn)證和部署流程。在數(shù)字化、服務(wù)化的背景下,眾多互相依賴的微服務(wù)形成的系統(tǒng)架構(gòu),對構(gòu)建、驗(yàn)證和部署造成更大的壓力:各個(gè)服務(wù)有獨(dú)立的代碼庫和構(gòu)建流程,又需要隨時(shí)能組合成可用的軟件;構(gòu)建產(chǎn)物需要有統(tǒng)一的存儲管理;完整的運(yùn)行時(shí)環(huán)境應(yīng)該能按需獲得;配置和部署應(yīng)該能快速準(zhǔn)確地完成。

為了應(yīng)對這些挑戰(zhàn),交付基礎(chǔ)設(shè)施中應(yīng)該包含完整的持續(xù)交付概念:流水線、環(huán)境管理、構(gòu)建產(chǎn)物管理等。應(yīng)該鼓勵(lì)對服務(wù)虛擬化,最好是每個(gè)主機(jī)運(yùn)行一個(gè)微服務(wù),而不共享使用主機(jī)。應(yīng)該包含配置自動(dòng)化工具,例如Chef、Puppet等。在服務(wù)化的背景下,持續(xù)交付流水線需要體現(xiàn)服務(wù)間的依賴關(guān)系和團(tuán)隊(duì)間的協(xié)作關(guān)系,設(shè)計(jì)一個(gè)運(yùn)轉(zhuǎn)良好的流水線不是容易的任務(wù)。

3 部署運(yùn)行時(shí)

交付基礎(chǔ)設(shè)施應(yīng)該包含生產(chǎn)系統(tǒng)所使用的運(yùn)行時(shí)環(huán)境,并把生產(chǎn)環(huán)境前向拉通到驗(yàn)證和研發(fā)環(huán)節(jié)。為了在研發(fā)流程的出口得到服務(wù)化友好的交付物,最好是在整個(gè)開發(fā)過程中一直使用與生產(chǎn)環(huán)境近似的環(huán)境。例如開發(fā)人員應(yīng)該使用全套環(huán)境隨時(shí)驗(yàn)證,自動(dòng)化測試和手工測試都基于全套環(huán)境開展。在這種情況下,環(huán)境的設(shè)置、管理、更新不可能由每個(gè)開發(fā)人員和測試人員自己進(jìn)行,所以環(huán)境的管理更新必定是集中進(jìn)行的,環(huán)境的設(shè)置必定是自動(dòng)化的。

在《技術(shù)棧管理:云時(shí)代的研發(fā)環(huán)境》一文中,我們已經(jīng)介紹過“一個(gè)平臺、兩個(gè)PaaS服務(wù)、三個(gè)運(yùn)行時(shí)環(huán)境”的技術(shù)棧管理理念。特別需要注意的是,如何將生產(chǎn)數(shù)據(jù)拉通到驗(yàn)證和研發(fā)環(huán)節(jié)。

4 監(jiān)控

在微服務(wù)架構(gòu)中,系統(tǒng)由多個(gè)小服務(wù)組成,且廣泛使用異步通信,使問題和故障更難定位。因此交付基礎(chǔ)設(shè)施需要提供全面可靠的監(jiān)控機(jī)制,幫助交付團(tuán)隊(duì)了解系統(tǒng)的整體狀況。監(jiān)控的實(shí)現(xiàn)涉及日志、服務(wù)指標(biāo)跟蹤、業(yè)務(wù)語義綜合監(jiān)控等方式。在云環(huán)境下如何劃分和管理監(jiān)控的層級,監(jiān)控系統(tǒng)如何無侵入的在各個(gè)微服務(wù)體系中收集故障和信息,如何有效管理監(jiān)控的反饋環(huán),如何在前后端分離和移動(dòng)應(yīng)用情況下收集和監(jiān)控客戶端日志,都是常見的挑戰(zhàn)。

5 安全

當(dāng)數(shù)字化、服務(wù)化IT系統(tǒng)的數(shù)量劇增,安全的設(shè)置會變得更加復(fù)雜。在微服務(wù)架構(gòu)下,系統(tǒng)的安全性需要有一個(gè)整體的考慮。例如單點(diǎn)登錄、服務(wù)間的身份驗(yàn)證和授權(quán)、各種防御措施等安全考量不應(yīng)該下放到交付團(tuán)隊(duì),而應(yīng)該被涵蓋在交付基礎(chǔ)設(shè)施中統(tǒng)一提供、統(tǒng)一管理、統(tǒng)一更新。

交付基礎(chǔ)設(shè)施還應(yīng)該鼓勵(lì)安全實(shí)踐內(nèi)建(Build Security In),例如團(tuán)隊(duì)?wèi)?yīng)該熟悉OWASP安全列表和測試框架、需求分析中應(yīng)該包含安全需求和惡意用戶需求、測試過程中應(yīng)該包含安全性測試、應(yīng)該進(jìn)行自動(dòng)化安全性測試并納入持續(xù)交付流水線。這些流程與工作方法雖然不能完全以軟件代碼的形式承載,但它們同樣是交付基礎(chǔ)設(shè)施的重要組成部分。

主站蜘蛛池模板: 水城县| 庆安县| 承德县| 宜君县| 喀喇沁旗| 托克托县| 垫江县| 略阳县| 阳城县| 南平市| 南和县| 巨鹿县| 承德市| 瑞金市| 涞水县| 息烽县| 梓潼县| 治县。| 喀喇| 彰武县| 子洲县| 江达县| 康保县| 黑水县| 武安市| 湖南省| 富蕴县| 桂阳县| 偏关县| 兴和县| 台东市| 灵山县| 墨玉县| 广南县| 潮安县| 扎囊县| 富阳市| 兰西县| 个旧市| 榕江县| 永德县|