【51CTO.com快譯】如今,隨著軟件技術(shù)的不斷迭代,以及應(yīng)用范圍的持續(xù)擴(kuò)展,企業(yè)對于軟件架構(gòu)師的基本工程技能期望,也在急速攀升。其中包含了:全棧的架構(gòu)知識、以客戶為中心的產(chǎn)品設(shè)計思維、應(yīng)用平臺工程的實驗性創(chuàng)新思維、采用SRE實踐的針對生產(chǎn)環(huán)境的主動監(jiān)控和可觀測能力,以及更多的常態(tài)化工程實踐。而且,在某些特定的領(lǐng)域,工程知識的廣度會比技術(shù)技能的深度更加重要。
如下圖所示,從廣義上說,工程項目的組件可以被大致分為八種不同的類別。您不必成為所有這八個領(lǐng)域的專家,但是有必要去深耕某幾個領(lǐng)域,融會貫通,進(jìn)而成長為一名真正的軟件架構(gòu)師。下面,讓我們以學(xué)習(xí)路線的思路,逐一進(jìn)行深入討論:
一、軟件工程、架構(gòu)和設(shè)計模式
對于軟件工程、架構(gòu)、以及設(shè)計模式的基本知識,我向您推薦如下學(xué)習(xí)路徑:
- 軟件架構(gòu)的要點和參考文檔:由《軟件系統(tǒng)架構(gòu)(Software System Architecture)》一書所帶來的各種軟件觀點和架構(gòu)視角,涵蓋了各種制定軟件架構(gòu)時可遵循的指導(dǎo)性方法。
- 《軟件架構(gòu)的各種模式(Software Architecture Patterns)》:該書涵括了諸如分層、事件驅(qū)動、Reactive、消息驅(qū)動、微內(nèi)核、微服務(wù)、管道等常用的軟件架構(gòu)模式,可方便您從基礎(chǔ)上去掌握軟件架構(gòu)的各個要素。
- 基礎(chǔ)《設(shè)計模式(Design Patterns)》:為您梳理了22種設(shè)計模式,涵蓋了面向?qū)ο笤O(shè)計模式的各項基本要素,包括:創(chuàng)建、結(jié)構(gòu)和行為模式。
- 云原生設(shè)計模式:主要涵蓋了當(dāng)前流行的設(shè)計模式,例如:應(yīng)用程序的12項關(guān)鍵原則、域驅(qū)動設(shè)計、以及各種云設(shè)計模式。
- 企業(yè)架構(gòu):對于想通過企業(yè)架構(gòu)發(fā)展,來積累豐富經(jīng)驗的架構(gòu)師來說,了解TOGAF的The Open Group、以及諸如Zachman或PEAF等類似的框架,是必不可少的。
- 參考資料:在本領(lǐng)域的最后,您也可以參考為架構(gòu)師準(zhǔn)備的行業(yè)研究與報告、以及各種軟件體系架構(gòu)的標(biāo)準(zhǔn)和準(zhǔn)則。
二、基礎(chǔ)設(shè)施、云、DevOps與自動化
對于基礎(chǔ)設(shè)施、云、DevOps與自動化的基本知識,我向您推薦如下學(xué)習(xí)路徑:
- 基礎(chǔ)設(shè)施(計算、存儲和網(wǎng)絡(luò))涵蓋的基本要素包括:
- 計算:裸金屬(Bare Metal)、虛擬化(Hypervisor)、容器、容器編排、邊緣計算、無服務(wù)器、負(fù)載平衡等。
- 存儲:對象存儲、文件存儲(如NFS、SAN)、數(shù)據(jù)庫存儲、存儲復(fù)制等。
- 網(wǎng)絡(luò):基礎(chǔ)網(wǎng)絡(luò)(如集線器、網(wǎng)橋、交換機(jī)、路由器等)、拓?fù)?、LAN、WAN、VPC(虛擬私有云,Virtual Private Cloud,)、CIDR(無類別域間路由,Classless Inter-Domain Routing,https://cidr.xyz/)等。
- 云架構(gòu):涵蓋了三大云服務(wù)提供商的、有關(guān)在云中設(shè)計和運行各類流量負(fù)載的關(guān)鍵概念、設(shè)計原則、以及有關(guān)架構(gòu)的優(yōu)秀實踐:
- AWS的完善框架,以其卓越運營、安全性、可靠性、性能效率、以及成本優(yōu)化,成就了架構(gòu)支柱。
- Microsoft Azure的完善框架,同樣提供了成本優(yōu)化、高效運營、性能效率、可靠性、以及安全性。
- Google Cloud的架構(gòu),則以便捷的運營、安全性、隱私與合規(guī)性、可靠性、性能與成本優(yōu)化等方面,成為關(guān)鍵的原則。
- 您還可以通過鏈接--https://vedcraft.com/architecture/software-quality-strategy-is-essential-for-every-architect/,了解更多有關(guān)云遷移或框架采用的綜合文章。
- DevOps涉及到持續(xù)構(gòu)建與集成的生命周期、持續(xù)部署、持續(xù)交付、以及CI/CD 等方面,具體包括:
- “DevOps周期表”涵蓋了由digital.ai編譯的大多數(shù) DevOps工具和技術(shù)。
- 由Google發(fā)布的DevOps狀態(tài)報告研究。
- 有關(guān)GitOps、DevSecOps、AIOps、以及MLOps等最近趨勢。
三、質(zhì)量工程,持續(xù)交付
在了解質(zhì)量工程和持續(xù)測試的細(xì)微差別的基礎(chǔ)上,我向您推薦如下學(xué)習(xí)路徑:
- 持續(xù)交付:了解整個持續(xù)交付生命周期的基礎(chǔ)知識。加入開源的CD Foundation社區(qū),以分享和追更該領(lǐng)域的各種優(yōu)秀實踐。
- 敏捷交付實踐:可獲得某一種敏捷框架的認(rèn)證,例如SAFe(Scaled Agile Framework)。
- 質(zhì)量工程實踐:涵蓋了各種標(biāo)準(zhǔn)實踐的基礎(chǔ)知識,例如:單元測試、行為驅(qū)動測試、功能測試、健壯性測試、回歸測試、進(jìn)展測試(progression testing)、移動測試、可訪問性測試、像素測試、性能測試、以及安全性測試。
- 持續(xù)測試:通過諸如Selenium(等工具、以及實踐,涵蓋各種自動化的基本要素。
- 軟件質(zhì)量:您可以通過鏈接--https://vedcraft.com/architecture/software-quality-strategy-is-essential-for-every-architect/,來了解作為架構(gòu)師需要了解的軟件質(zhì)量的方方面面。
四、生產(chǎn)工程與SRE
為了了解現(xiàn)代化生產(chǎn)工程的動態(tài)實踐,我向您推薦如下學(xué)習(xí)路徑:
- 基礎(chǔ)的SRE實踐:《Google SRE知識書籍》涵蓋了SRE的相關(guān)原則、實踐和管理方面的各個要點。
- 面向生產(chǎn)的設(shè)計:從生產(chǎn)工程的角度出發(fā),用模式和反模式去設(shè)計應(yīng)用程序。
- 現(xiàn)代化實踐:通過混沌工程現(xiàn)代化實踐手段,來拓展您的知識。
五、平臺工程(Platform Engineering)的研究和認(rèn)知
要理解平臺工程的研究與相關(guān)性,我向您推薦如下學(xué)習(xí)路徑:
- 平臺工程:了解平臺工程團(tuán)隊的新趨勢,并獲取其相應(yīng)的應(yīng)用能力。
- 行業(yè)研究:通過鏈接--https://vedcraft.com/architecture/5-reports-every-software-architect-should-read/,了解Forrester、Gartner等的行業(yè)研究報告。
- 工程博客:通過鏈接--https://vedcraft.com/architecture/engineering-blogs-every-software-architect-should-read/,了解最佳實踐和案例研究。
六、數(shù)據(jù)工程、機(jī)器學(xué)習(xí)、人工智能
若想對數(shù)據(jù)工程、機(jī)器學(xué)習(xí)(ML)和人工智能(AI)有更加廣泛的理解,我向您推薦如下學(xué)習(xí)路徑:
- 數(shù)據(jù)工程:涉及到由Oracle編寫的《企業(yè)架構(gòu)師指南》,有助于理解Hadoop和Cloudera基本理論的《大數(shù)據(jù)基礎(chǔ)知識》,《云中數(shù)據(jù)湖》,以及使用Snowflake或Databricks(的新興數(shù)據(jù)云平臺等趨勢。
- AI和ML:您若想成為更具有廣泛能力的技術(shù)專家,理解和應(yīng)用AI與ML是至關(guān)重要的。您雖然不必成為該領(lǐng)域的數(shù)據(jù)科學(xué)家,但是您有必要了解如下有關(guān)AI和ML的知識:
- 通過《機(jī)器學(xué)習(xí)介紹》了解基本理論與算法。
- 知曉分類、回歸、聚類等機(jī)器學(xué)習(xí)算法。
七、可觀察性、監(jiān)控、分析
為了了解可觀察性、監(jiān)控和分析之間的細(xì)微差別,我向您推薦如下學(xué)習(xí)路徑:
- 應(yīng)用監(jiān)控:應(yīng)區(qū)別對待應(yīng)用狀態(tài)和系統(tǒng)性能的監(jiān)控。
- 可觀察性:將監(jiān)控的邊界擴(kuò)展到日志、指標(biāo)、數(shù)據(jù)跟蹤、用戶體驗等可觀察的元素上。
- 分析:了解按需使用行為、性能、市場、以及客戶分析的工具。
八、業(yè)務(wù)價值和以客戶為中心
為了了解業(yè)務(wù)價值和以客戶為中心的相關(guān)性,我向您推薦如下學(xué)習(xí)路徑:
- 商業(yè)價值:了解應(yīng)用的基本業(yè)務(wù)價值、價值流分析和映射等概念。
- 以客戶為中心:通過《數(shù)字化轉(zhuǎn)型之旅》了解客戶價值、以客戶為中心、及其相關(guān)的設(shè)計思維。
綜上所述,工程技能不僅僅與技術(shù)有關(guān)。作為一個合格的軟件架構(gòu)師,您需要全面了解和掌握與工程項目有關(guān)的方方面面。希望上面給您總結(jié)和列舉的八項技能,能夠為您的日常工作提供幫助。
原文標(biāo)題:Essential Engineering Skills For Every Software Architect,作者: Ankur Kumar
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】