O'Reilly SA Con Day 2

O'Reilly 2017 SA Con- Day2

概述

談起O’Reilly,大部分朋友都不會(huì)陌生,就是那個(gè)經(jīng)常見(jiàn)到的帶著小動(dòng)物的IT書(shū)籍的出版媒體。

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

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

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


KeyNote

第2天的KeyNotes有4個(gè),主要包括

Jams Lewis的《Thinking about platform》

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

《The death of Cannot Reproduce》

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

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

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

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

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

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

Github的public repo是免費(fèi)使用的。

《Breaking the rule》

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

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

他提出了adopting new tech的4個(gè)主要步驟:

(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)等在這幾個(gè)主要步驟上對(duì)應(yīng)的限制和我們應(yīng)該如何制定適合自己場(chǎng)景的rule。最后,強(qiáng)調(diào)了隨著新技術(shù)的快速演進(jìn),我們應(yīng)該謹(jǐn)慎的對(duì)待新技術(shù)所帶來(lái)的limitation。

話題

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

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

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

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

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

Team Autonomy。提到了幾個(gè)級(jí)別的Autonomy,Organization/Roles/Teams/Cadence和Practices。

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


Infrastructure as resource

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

《Evolutionary Architecture》- Neal Ford(TW)

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


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

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

《CQRS and event sourcing: A DevOps perspective》

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

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

? Building resilient systems

? Approaches for logging and monitoring

? Scaling applications

? Deployment and infrastructure as code

? Security

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

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

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

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

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

Architecture Katas

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

有點(diǎn)像Code kata,但不是大家聚在一起寫(xiě)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è)計(jì)有限,如何成為偉大的架構(gòu)師呢?”——Ted Neward

Neal Ford介紹了一下游戲規(guī)則,然后大家開(kāi)始自由組隊(duì),各個(gè)團(tuán)隊(duì)挑選題目。

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



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

迭代結(jié)束后,各個(gè)團(tuán)隊(duì)present結(jié)果,其他團(tuán)隊(duì)提問(wèn)。

評(píng)委點(diǎn)評(píng)。這次的評(píng)委是James Lewis和其他幾個(gè)TWer的講師,過(guò)程中各種拆臺(tái) :(

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

最后,給大家附個(gè)參考題目列表,方便各位也回去在團(tuán)隊(duì)中開(kāi)展類(lèi)似的Kata。

總結(jié)

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容