摘要:問你為什么要為仿真測試編寫工具這個項目的進展如何雖然我經常會提到,但是這個工具是在的架構基礎上寫的?,F在,我在忙一個叫做解決方案藍圖的項目,無論是否用到,這個工具都可以幫助人們完成仿真測試。
非商業轉載請注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/195743
Michael T. Nygard是一位從業二十余年的資深程序員,現任Cognitect首席架構師,他被譽為在線業務的“流動解決問題專家”。Nygard曾先后為美國政府、軍隊、銀行、金融、農業和零售等多個行業交付過運營系統,這種實際運營的經歷改變了他對軟件架構的看法,也讓他對在相當不友好的環境下構建高性能、高可靠性的軟件有了獨特的見解。他寫過多篇文章和社論,是軟件架構經典著作《架構之美》和《軟件架構師需要知道的97件事》的作者之一。Nygard最新出版的著作《發布!軟件的設計與部署》詳細展示了軟件發布前可能出現的種種問題以及相應的解決之道,書中所有主題都是通過作者自己研究過的真實案例來闡述的。
問:您曾經在博客中說過可能會寫幾本新書(Three Book Ideas),有最新的進展嗎?
任何時候,如果你問一位作者這個問題都會得到很有趣的回應。他會看起來很緊張,開始出汗,然后含糊地說一些并不連貫的話,同時他還會急迫地尋找最近的出口。我要說的是,現在這個階段我還沒有什么好宣布的。
問:《發布!》中提到的一些模式現在已經被廣泛采用,如 Circuit Breaker,已經有了 Netflix 的 Hystrix 這樣漂亮的實現,考慮到《發布!》是一本2007年出版的書,如今8年已經過去,你是否看到了一些新的穩定性/容量模式?
有一種重要的模式,它通過兩種方式顯示出來:異步式和反應式。我把它們看做一個硬幣的兩面。因為很多穩定性模式都要依靠阻塞線程才能起作用,所以這兩種方式都有用。
問:有時候簡單的錯誤就會造成整個系統宕機,這難道僅僅是程序員的一行代碼造成的嗎?可以引入什么機制來保證復雜系統的穩定性呢?
很多問題事實上就是一行代碼引起的,但是總是有其他因素來放大這個問題。外部環境的變化可能會導致一個潛在的錯誤顯現出來?;蛘咭晃徊僮鲉T的活動可能會觸發平時不會執行的代碼,從而導致問題出現。
有一些問題則是因為系統的大規模結構而產生的。比如,我并不喜歡SOA中的“實體服務”模型。原因是每個應用都需要很多實體。概率的規則告訴我們當所有實體服務都不工作的時候,擴展的系統很可能會出現故障。
所以,我會努力在微觀和宏觀范圍內都讓系統具有更大的恢復力(甚至是穩健性)。在微觀層面上,我使用書中提到的設計模式。在宏觀層面上,我分析系統的“故障域”。也就是說,當一個部件(硬件或軟件)壞掉的時候,受影響的應用和功能的范圍有多大?通過在應用間重新分配功能和把實體拆分成小平面,總有辦法把系統分割成獨立的故障域。
問:復雜的業務會導致復雜的系統嗎?作為一位架構師,如何做到不傷害正常業務處理流程的同時又保持架構簡單?
到目前為止,我沒有發現復雜業務和復雜系統之間的關聯性。我知道的系統復雜度的最強的預示變量就是規定。
問:DevOps和傳統運營工程師有什么區別?
DevOps強調同感。在DevOps的文化中,開發者關心他們的應用如何影響運營者們的生活。我的應用要求管理員必須在半夜保持清醒來做部署嗎?我怎么改變我的應用才能讓她能少花時間在終端上,從而擁有更多的時間和家人在一起?運營作為報答:我們如何才能創造一個更好的環境,讓開發者帶著勇氣創造并傳遞價值?
問:從2007年的C/S和B/S到現在的App和NoSQL,互聯網行業已經經歷了重大變革。很多敏捷方法都已經有所進化。這些年軟件發布都發生了哪些變化?還有什么是不變的?
我認為有三件事變化最大:
首先是Sun和微軟兩家公司統治的覆滅。在以前,幾乎所有公司的軟件開發都要用Java或 .Net,輔以當時發展迅速的Ruby on Rails社區。今天,經??梢砸姷绞褂貌煌Z言和運行時環境的系統。
第二,云部署環境已經戲劇性地改變了經濟。
第三點同時很大程度上也是前兩點造成的結果,開源操作工具已經使高可靠性的運營變得大眾化。在2007年的時候,需要花費上百萬美元才能做好數據中心自動化,集中管理,以及監控。如今,你可以下載所有這些。
問:隨著移動互聯網的興起,云服務的成熟,IT行業在發生天翻地覆的變化。作為一名架構師,應該重點關注哪些技術理念?
企業架構師之前關注的是圖表中“方盒內”的技術。也就是說,他們的目標是執行細節完備的標準化技術。
在現在的世界里,我認為架構師應該更加關心數據格式和數據表示法。也就是說,他們應該關心的是箭頭,而不是方盒。
問:Cognitect使用的編程語言主要是Clojure,這和大部分公司使用的主流語言(C / Java / C#)不同。你認為未來的編程語言會變成什么樣?
我并不適合回答這一問題。我只能說我看到很多開發者都在朝著函數式編程轉型。
問:在Cognitect,每周五開發者都會花時間在業余項目和開源軟件上。20%的總體工作時間是一個很大的比例。你們在這個每周都舉辦的活動中得到了什么收獲?這些收獲是否彌補了時間上的損失?
我們利用20%的時間創造了一些很多人都認可的項目,其中包括web框架Pedestal,以及最初的ClojureScript實現。今天,我們20%時間仍然用來開發Clojure,ClojureScript,Pedestal,以及其他一些新玩意兒,我們不久之后就會揭曉。
很長時間以來,我們一直都有一個習慣,就是質疑我們對軟件開發最基本的假設,我們通過檢驗自己的工作來找到構造軟件更好的方法。在20%時間里我們也是這么做的。所以這項活動并不是我們一直在做的一個愛好或日常工作。我們經常要評估這樣做是否值得。
到目前為止我們覺得這項活動是很有價值的。當我們說,我們想讓軟件開發對于每個人來說都變得更好時,我們是認真的。我們的開源工具就是其中的一部分。
問:你為什么要為仿真測試編寫工具Simulant?這個項目的進展如何?
雖然我經常會提到Simulant,但是這個工具是Stuart Halloway在Rich Hickey的架構基礎上寫的。
Simulant程序庫現在處于穩定狀態。我的目標在于幫助人們成功地應用這個工具。為此,我去年開了一個關于Simulant的網絡研討會。同時我也做了一個樣本項目,你可以在GitHub上找到。(https://github.com/mtnygard/simulant-example)
現在,我在忙一個叫做“解決方案藍圖(solution blueprint)”的項目,無論是否用到Simulant,這個工具都可以幫助人們完成仿真測試。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11699.html
摘要:大神何愷明受到了質疑。今天,上一位用戶對何愷明的提出質疑,他認為何愷明年的原始殘差網絡的結果沒有被復現,甚至何愷明本人也沒有。我認為,的可復現性經受住了時間的考驗。 大神何愷明受到了質疑。今天,Reddit 上一位用戶對何愷明的ResNet提出質疑,他認為:何愷明 2015 年的原始殘差網絡的結果沒有被復現,甚至何愷明本人也沒有。網友稱,他沒有發現任何一篇論文復現了原始 ResNet 網絡的...
摘要:是全球最大的加密貨幣交易所之一,一些市場觀察人士稱,在交易的代幣有助于支撐比特幣的價格。報告稱,在年月日的審計時點上,一家銀行以名義開具的賬戶下擁有美元的款項。截至年月底,波多黎各這類金融機構的現金與總資產的比率迅速攀升至以上。 在追求各種類型「共識」的數字貨幣世界里,對 Tether 的看法顯然很難達成共識,極具爭議,也引人矚目。 在尋找穩定代幣的投資者眼中,Tether 如神,是解...
摘要:作為業界更受關注的開放平臺,即將落地本土。力圖保持中立,化解外界對其公正態度的質疑。當然,所有好的產品依靠出色的團隊,擁有超一流的開發工程師。此外,一書作者也是數一數二的人物。 作為業界更受關注的開放PaaS平臺,即將落地本土。雖然還在處在測試階段,但Cloud Foundry已經吸引了足夠多業界和開發者的眼球。Cloud Foundry足夠吸引么?答案是肯定的。 Cloud Foundr...
閱讀 1446·2021-09-10 11:27
閱讀 2400·2019-08-30 15:53
閱讀 1317·2019-08-30 13:10
閱讀 2968·2019-08-30 11:09
閱讀 1074·2019-08-29 17:23
閱讀 664·2019-08-29 17:05
閱讀 2943·2019-08-29 15:10
閱讀 2339·2019-08-29 13:22