最近研讀了不少關于架構師的書籍和文章怖竭,通過這篇文章對所閱的內(nèi)容做一個總結速侈,與大家分享∩埽總的來說辛辨,如果一個技術人員想成長為一個合格的架構師敷硅,不僅需要技術上的優(yōu)勢以及對業(yè)務的深入理解,同時對架構師這個角色也需要有深刻的理解愉阎,知道什么是架構绞蹦,以及為什么需要架構,只有這樣榜旦,才能最終成長為一個合格的架構師幽七。
一、什么是架構溅呢?
所謂架構澡屡,就是對要解決的問題的邊界進行界定,并根據(jù)界定的邊界對目標系統(tǒng)進行切分咐旧,保證多個角色能夠并行或者串行地工作驶鹉,最終基于有效的溝通機制,保證切分的部分能夠有效地整合在一起铣墨,完成目標系統(tǒng)所有工作室埋。
二、為什么需要架構伊约?
1姚淆、架構解決的是人的問題。
架構產(chǎn)生的原因最終還是為了解決人的問題屡律,是與人的利益相關的腌逢。每個人的能力有限、時間有限超埋,同時人對目標系統(tǒng)有更高的要求搏讶,但是在更高的要求下佳鳖,目標系統(tǒng)的復雜性使得單個人完成這個系統(tǒng)比較困難,此時就需要通過架構來解決媒惕,幫助人解決問題系吩。
2、架構的目標是用來解決利益相關者的關注點吓笙。
這里的利益相關者包括業(yè)務方淑玫、產(chǎn)品經(jīng)理、客戶/用戶面睛、項目經(jīng)理絮蒿、研發(fā)人員、運維人員叁鉴、運營人員土涝。由于這些相關者存在沒有解決的關注點以及通電,因此需要架構來進行解決幌墓。
三但壮、怎樣做架構?
1常侣、識別真正的問題蜡饵。
識別真正的問題,就是要發(fā)現(xiàn)利益相關者的關注點和痛點胳施,找出問題所在溯祸,并根據(jù)要解決的問題,對目標系統(tǒng)的邊界進行界定舞肆。
識別真正的問題的第一要點是要找出問題的主體焦辅,是誰的問題?架構師要有這個自覺:真正的問題不需要找架構師椿胯,發(fā)現(xiàn)問題永遠都比解決問題更重要筷登。
識別真正的問題的第二要點是要找出到底是什么問題。只有確定了問題的主體哩盲,才能明確問題的邊界前方,最終找出是什么問題。
2种冬、對架構進行切分镣丑。
切分的導火索是人的負載太重;
切分的原則是便于不同的角色娱两,對切分出來的部分并行或者串行地開展工作;
切分的每個部分的責任人的權利義務對等金吗,對自己的利益負責十兢。
切分的最終結果都會落地到組織機構上趣竣,才能讓架構落地并推進;康威定律:設計系統(tǒng)的組織旱物,其產(chǎn)生的設計和架構等價于組織間的溝通結構遥缕。
架構的切分一定是樹狀的,而且層次越少越好宵呛,盡可能是一棵平衡樹单匣。
3、對切分部分設立溝通機制宝穗。
對這些切分出來的部分户秤,設立溝通機制,使得這些部分能夠進行有效的聯(lián)系逮矛,合并組裝成一個整體鸡号,完成目標系統(tǒng)的所有工作。
4须鼎、架構具有迭代和演化性
在系統(tǒng)真正投入生產(chǎn)使用之前鲸伴,再好的機構都只是假設,產(chǎn)品越晚被使用者使用晋控,失敗的成本和風險就越高汞窗。
通過最小可用產(chǎn)品理念,做出最小的可用產(chǎn)品赡译,盡快獲取客戶的反饋仲吏,迭代演化產(chǎn)品,能夠有效減少失敗的成本和風險捶朵。
5蜘矢、構建閉環(huán)反饋架構
企業(yè)通向DevOps的三條必經(jīng)之路:
第一條道路:系統(tǒng)思維
開發(fā)驅(qū)動的組織機體,其能力不是制作軟件综看,而是持續(xù)交付客戶價值品腹。架構師需要由全局視角和系統(tǒng)思維,深入理解整個價值交付鏈红碑,從業(yè)務需求舞吭、研發(fā)、測試析珊、集成到部署運維羡鸥。
第二條道路:強化反饋環(huán)
任何過程的改進的目標都是加強和縮短反饋環(huán)。
度量驅(qū)動開發(fā):在系統(tǒng)忠寻、應用和業(yè)務三個層次惧浴,通過三級監(jiān)控,構建三個反饋環(huán)奕剃,在監(jiān)控測量基礎上持續(xù)改進系統(tǒng)和架構衷旅。
1捐腿、系統(tǒng)層監(jiān)控計算網(wǎng)絡存儲,構建系統(tǒng)層的反饋環(huán)柿顶。
2茄袖、應用服務層,監(jiān)控業(yè)務嘁锯、應用宪祥、服務,甚至整個研發(fā)流程家乘,構建應用和服務層的反饋環(huán)蝗羊。
3、客戶體驗層烤低,監(jiān)控端用戶和分析網(wǎng)站用戶行為肘交,構建和客戶的反饋環(huán)。
第三條道路:鼓勵勇于承擔責任扑馁、冒險試錯和持續(xù)提升的文化
架構師要深入領會這三條道路涯呻,關注整個價值交付鏈的效率,關注每個環(huán)節(jié)的閉環(huán)反饋腻要,鼓勵和推動公司的試錯文化复罐,打造全系統(tǒng)的閉環(huán)架構,提升整個系統(tǒng)效能雄家。
6效诅、領會康威定律
設計系統(tǒng)架構之前,先看清組織架構趟济,也要看組織文化(民主合作式乱投、集權式、叢林法則式顷编、人才密度)戚炫,再根據(jù)情況調(diào)整系統(tǒng)架構或者組織膠骨。
如果團隊是分布式的媳纬,系統(tǒng)架構是單塊的双肤,開發(fā)、測試钮惠、部署協(xié)調(diào)溝通成本大茅糜,嚴重影響效率,嚴重時團隊之間還容易起沖突素挽。
集中式和嚴格職能(業(yè)務蔑赘、開發(fā)、測試、運維米死、部署)的企業(yè)锌历,很難推行服務和DevOps贮庞,推行Dockers/PaaS平臺也會比較困難峦筒。