探索 DevOps 結構

已完成

設計完善的結構就像高速公路,可以迅速將商業價值交付給終端使用者。 如果一有差池,情況恐怕就會像橋樑沖毀一樣,讓您無法達成最終目標。

軟體結構簡介

任何結構的長期可行性都需要設計、實行、升級和必然的變更才能成功。

實際運作實現前,結構只是理論。

William LeMessurier 是美國最傑出的結構設計師,並為創新的花旗集團紐約總部大樓提供設計和建設諮詢。 大樓在 1977 年完工。 隔年,有位研究大樓設計的普林斯頓大學生聯絡 LeMessurier 並表明設計可能具有的缺陷,因而讓 LeMessurier 發現建築結構確實有缺失。

大樓無法承受每小時 70 英里的風速,而根據氣象資料紐約市每 55 年至少出現一次。 如果風速達 70 英里,結構節點會失去作用,導致建築自第 13 層開始倒塌。 花旗大樓當時全樓層均已出租。 LeMessurier 必須通知所有者和市府官員。

他面臨職業道德上複雜而艱難的問題。 他必須向眾人示警結構的缺陷,並徵求他們的配合,搶在颶風吹垮大樓前修復缺陷。

這年夏天,颶風埃拉侵襲了紐約。 大樓已完成補強。 花旗集團大樓至今仍屹立不搖。

重要

軟體結構是基礎結構選擇,如果實行後要變更往往所費不貲。

軟體結構的特性:

  • 專案關係人,包括商務專案關係人、應用程式小組、QA 小組、營運、安全性和使用者。
  • 關注點分離:若要降低複雜性,請分開推動設計的考量。
  • 品質導向屬性:包括可擴縮性、擴充性、可靠性、可維護性和安全性。
  • 概念完整性:軟體結構表示軟體功能和如何維護結構、資料、流程完整性的整體願景。
  • 認知限制:組織必須創作通訊結構複本的設計。
  • 週期性樣式:為解決週期性問題,軟體結構專業領域需要開發標準方式。

名稱含「-性」的任何結構:

  • 稽核能力
  • 可用性
  • 相容性
  • 可組合性
  • 可設定性
  • 可存取性
  • 適應性
  • 可負擔性
  • 自訂功能性
  • 可證明性
  • 可部署性
  • 持久性
  • 可用性
  • 擴充性
  • 彈性
  • 互通性
  • 管理性
  • 可攜性
  • 可預測性
  • 可復原性
  • 可靠性
  • 可重複性
  • 重複使用性
  • 可擴縮性
  • 適用性
  • 社交性
  • 簡單性
  • 可測試性
  • 永續發展
  • 可追蹤性
  • 可複製性

建立軟體時,架構師必須判斷軟體結構的哪些「-性」最重要, 但很多因素有所抵觸。

例如,同時達到高效能和極端的擴充性很難,因為結構、作業和很多其他因素需要縝密平衡。

結構決策流程是平衡措施:平衡各結構決策的優缺點引導出折衷方案,所以架構師常感到扼腕。

過去幾年,軟體開發的核心工程實務漸進式開發,奠定重新發想結構如何與時俱進的基礎,以及在發展的同時如何保護重要的結構特性

DevOps 結構

Gene Kim 是著名的 DevOps 研究員、作者,並有卓越的遠見。 他找出實現 DevOps 必要的三個要素:

「一是文化特性, 再來當然是工具與技術, 三是結構。 您需要包含自動化在內的絕佳技術實務、 高信任度文化, 但唯有結構才能真正讓您達成目的。」

在《Accelerate》一書的研究中提到,很多類型的系統在系統類型與傳遞效能之間有著顯著關聯性,包括新系統、記錄系統、封裝商務軟體、大型主機軟體和內嵌軟體。 可部署性和可測試性尤其重要。

提示

良好的結構有助於可部署性和可測試性。

結構與組織

康威定律 (Conway's law)是 1967 年電腦程式設計師 Melvin Conway 提出的概念,並以他的姓氏命名。 康威定律認為設計系統的組織通訊結構會影響系統設計:

重要

康威定律:設計系統組織 (廣義) 創作的設計結構,常是組織通訊結構複本。

此定律的論證依據是軟體模組若要運作,多位作者必須定期溝通。

因此,系統的軟體介面結構會反映設計組織的社交界限,而跨組織的溝通更困難。

Enterprise DevOps 的架構師技能

架構師會開發並改進各種技能,例如:

  • 綜觀思考
  • 系统思维
  • 商務知識
  • 人際技能
  • 影響與領導技能
  • 技術結構的理解
  • IT 財務管理經驗
  • 時間管理
  • 企業結構 (EA) 架構公開
  • 向主管說明 IT 的能力
  • 簡報技能
  • 輔導技能
  • 了解資料結構與 IT 作業

重要

但 21 世紀成功最重要的技能什麼?

學習的意願和能力。