O'Reilly SA Con Day 2

O'Reilly 2017 SA Con- Day2

概述

談起O’Reilly,大部分朋友都不會陌生,就是那個經(jīng)常見到的帶著小動物的IT書籍的出版媒體。

O'Relly從15年開始舉辦Software Architecture Conference,聚焦軟件架構(gòu)的相關(guān)內(nèi)容,包括架構(gòu)原則、實踐、發(fā)展趨勢等。

Software Architecture Conference的副標(biāo)題---“Engineering the Future of Software Architecture”,非常好的Slogon,讀一次就記住了 :)

此次2017 O‘Reilly London SA Con一共四天,2天Session + 2天培訓(xùn),接下來,我就和大家分享一下參加O'Reilly SA Con的見聞。


KeyNote

第2天的KeyNotes有4個,主要包括

Jams Lewis的《Thinking about platform》

主要講了Platform在Modern System中演進的重要性,包括像Netflix,Etsy等在微服務(wù)演進過程中構(gòu)建的平臺,總體有點抽象。:)

《The death of Cannot Reproduce》

這個話題闡述了隨著云環(huán)境、分布式、多語言、庫依賴、多核等因素的影響,“Cannot reproduce”這個問題在開發(fā)團隊中帶來的成本越來越高。演講者給了一個數(shù)據(jù):

在Apache Foundation Issues Queue中,大概有12849個resolution是 Cannot Reproduce"

最后給出了些研究的成果和建議,包括在環(huán)境搭建、架構(gòu)、測試測試等過程中可以應(yīng)用的。

SIG(Software Inproving Group)的《Engineering future of happy developers》

這個話題描述了他們的一項研究成果--對導(dǎo)致程序員焦慮、不開心因素的調(diào)研(不得不承認(rèn),老外好注重人性^_^),提出了一些關(guān)鍵點幫助開發(fā)者能最大化發(fā)揮他們的潛能。在SA Con的現(xiàn)場,SIG也提供了他們的一款產(chǎn)品

BetterCodehub,幫助檢測代碼的質(zhì)量,復(fù)雜度并提出重構(gòu)建議,感興趣大家可以試試。

Github的public repo是免費使用的。

《Breaking the rule》

演講者Dan North是《The RSpec Book》和《97 Things Every Programmer Should Know》的作者之一,25年+的從業(yè)經(jīng)驗,exTWer。

他以高德拉特的《Goal》作為背景,提出了We are really really bad at adopting and benefiting new technology。原因是大部分人沒有識別limitation,或者對它認(rèn)識過于樂觀。:(

他提出了adopting new tech的4個主要步驟:

(1) What is power of X

(2) What limitation does X diminish

(3) Which X's rules enabled us to manage the limitation

(4) Which new rules will we need

然后依次例舉了一些技術(shù),如持續(xù)交付、微服務(wù)架構(gòu)等在這幾個主要步驟上對應(yīng)的限制和我們應(yīng)該如何制定適合自己場景的rule。最后,強調(diào)了隨著新技術(shù)的快速演進,我們應(yīng)該謹(jǐn)慎的對待新技術(shù)所帶來的limitation。

話題

今天話題的內(nèi)容比較多,分享幾個印象深刻的。

《What we learned moving 65,000 Microsofties to DevOps on the public cloud

分享者來自微軟VSTS的負(fù)責(zé)人,講了微軟內(nèi)部如何將過去幾十年建立起來的一系列不同的內(nèi)部工具,演進成一個基于公有云的開發(fā)者平臺VSTS。并通過引入一系列實踐,實現(xiàn)Microservice&DevOps的轉(zhuǎn)型過程。內(nèi)容涉及的比較廣,包括敏捷/全功能團隊,DevOps,工程實踐,流水線,提了5個核心點,每個點的信息量都很大。

Customer Focused。除了講需求,也提到了對于團隊一些核心目標(biāo)的變化,關(guān)注局部到關(guān)注端到端,給了很多相關(guān)的指標(biāo)可以借鑒。

Production First。這部分主要關(guān)注的是團隊對產(chǎn)品,而非項目的態(tài)度,以及對SLA的保障。

Team Autonomy。提到了幾個級別的Autonomy,Organization/Roles/Teams/Cadence和Practices。

Engineering practice。這部分講了一些重要的工程實踐。PR的Review機制、集成測試轉(zhuǎn)變成更多單元的測試、構(gòu)建的依賴解耦,提高搭建E2E環(huán)境的完整性和效率。


Infrastructure as resource

。這部分主要講基礎(chǔ)設(shè)施。和Infrastructure As Code的做法類似,對于基礎(chǔ)設(shè)施的易操作性。

《Evolutionary Architecture》- Neal Ford(TW)

An evolutionary architecture supports incremental, guided change as a first principle across multiple dimensions.


演進式架構(gòu)并不是新概念,2016年Neal Ford在TW Insight的Microservices as an Evolutionary Architecture里就曾提到過。不過這次的分享,內(nèi)容更系統(tǒng)化,包括Fitness的維度,如何支持Constant change,以及Pipeline的重要性等。另外,他的這本書《Evolutionary Architecture》已經(jīng)出版了,感興趣的朋友可以關(guān)注一下。

這里有一個Neal Ford的Evolutionary Architecture Workshop Slides,大家可以下載參考。

《CQRS and event sourcing: A DevOps perspective》

兩位演講者講了CQRS和Event Sourcing的概念(雖然是作鋪墊,但基礎(chǔ)的東西講的有點忒啰嗦....)。

然后講了在他們的項目中應(yīng)用CQRS和Event Sourcing過程中的實踐,包括:

? Building resilient systems

? Approaches for logging and monitoring

? Scaling applications

? Deployment and infrastructure as code

? Security

其中Scaling部分講的還挺有意思,提到進行藍(lán)綠部署時對Event Bus處理的情況。思路不難,主要還是Bus本身無狀態(tài),所有的Event都存在Store里。

聽完后又和演講者溝通了下,在藍(lán)綠遷移的時候,Bus的遷移過程和一般的服務(wù)遷移過程并無太大差異,更多的注意幾點:

? (1)用LB控制A(Blue) -> B(Green)的遷移,保障遷移后,新的消息去了B

? (2)對已經(jīng)進入A(Blue)的消息及時進行處理,確保不丟。同時新進入的B也在處理消息。

? (3)等A(Blue)中的消息處理完畢,將A的環(huán)境釋放。

Architecture Katas

一天的議程結(jié)束后,晚上有個bonus的環(huán)節(jié)---Architect Kata。

有點像Code kata,但不是大家聚在一起寫code,而是做Architecture Design。

"So how are we supposed to get great architects, if they only get the chance to architect fewer than a half-dozen times in their career?" --Ted Neward

“如果架構(gòu)師在職業(yè)生涯中的設(shè)計有限,如何成為偉大的架構(gòu)師呢?”——Ted Neward

Neal Ford介紹了一下游戲規(guī)則,然后大家開始自由組隊,各個團隊挑選題目。

過程中分成了2個迭代,每輪迭代內(nèi)團隊自主討論,用白紙畫出架構(gòu)圖。



每個迭代會有需求的變化和不同的技術(shù)挑戰(zhàn)。

迭代結(jié)束后,各個團隊present結(jié)果,其他團隊提問。

評委點評。這次的評委是James Lewis和其他幾個TWer的講師,過程中各種拆臺 :(

這種方式蠻好的,很多產(chǎn)品架構(gòu)穩(wěn)定了,架構(gòu)師的練習(xí)機會相應(yīng)減少。在快速變化的業(yè)務(wù)場景中,架構(gòu)師更需要不斷的思考、練習(xí),有助于做好技術(shù)方案的平衡。后續(xù)可以和小伙伴在公司中練習(xí)起來。

最后,給大家附個參考題目列表,方便各位也回去在團隊中開展類似的Kata。

總結(jié)

這兩天的內(nèi)容主要是記錄一些Session,后續(xù)再匯總一篇,講講從這次會議中看到的一些趨勢和心得。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容