天天看點

為什麼需要這本指南什麼是好的應用?什麼是好的架構設計?什麼是雲上應用架構設計的特點?為什麼需要雲上應用架構設計指南?

什麼是好的應用?

根據ISO/IEC 25010的定義,好的應用應該具有以下屬性。

為什麼需要這本指南什麼是好的應用?什麼是好的架構設計?什麼是雲上應用架構設計的特點?為什麼需要雲上應用架構設計指南?

● 滿足功能需求:功能的完整度、正确性和恰當性。功能屬性(或者叫功能需求)永遠是架構設計中最基礎的一點,其他所有的屬性都可以劃為非功能屬性(非功能需求),又稱品質屬性。事實上,大部分的功能都可以用多種架構來實作,真正決定我們的架構選擇的因素往往是非功能需求,也就是下面這些需求。

● 性能效率:時間表現(例如響應時間、延遲)、資源使用率和系統容量(例如IO吞吐量,可伸縮性也可以認為是容量的一種表現。

● 可靠性:可用性、容錯性、可恢複性。

● 易用性:可學習性、可通路性(例如W3C的可通路性标準)、UI互動體驗等,本文暫不對易用性讨論。

● 相容性:共存能力(例如向上或向下相容)、互操作性(例如不同的系統之間互相下達指令)、協同性,我們把系統的功能上的可擴充性也歸入相容性中。

● 可移植性:可适配性、可安裝性、可替代性。

● 可維護性:可管理性、可監控性、可分析性和可測試性,子產品化程度(高内聚低耦合)通常也算可維護性的一部分。

● 安全性:機密性、完整性、不可僞造性、可審計性等,本指南中,安全性将不單獨作為一個章節,而是在各子產品設計過程中講解。您也可以參見阿裡雲安全白皮書了解更多。

在衡量上述屬性時,您可以使用SMART(Specific、Measurable、Attainable、Relevant、Time-bound)原則:如果不滿足這些原則,可以不計入考慮範圍。實際上,還有一項DevOps也是我們在設計時必須考慮的非功能需求項,在後續部分章節中會展現。

什麼是好的架構設計?

這本手冊叫做應用架構設計指南,剛剛我們讨論了什麼是好的應用程式。那麼,什麼是架構設計?架構的核心就是以抽象的方式考慮所有重要的點(也就是上面列出的點)。什麼是設計?設計的核心就是解決系統的一個或多個問題。是以架構設計,核心目的就是解決系統内重要的問題,在現有條件下,做出的恰當決策,盡可能滿足剛才提到的好的應用的幾個特點。應用架構設計僅着眼于元件級别及更大的粒度,不會過多關注元件内部的實作,重點在于元件功能、元件結構以及元件之間的依賴。

什麼是雲上應用架構設計的特點?

進行雲上的應用架構或網站設計時,我們需要考慮到雲的特點:本地部署的應用通常是一個較大的整體,而雲上應用會被拆散成若幹個小的服務或元件,通過API或其他協定通信。雲上的各類資源也是分散的,随時可以新增執行個體進行水準擴充。我們可以總結雲上和本地應用架構部分不同點如下。

為什麼需要這本指南什麼是好的應用?什麼是好的架構設計?什麼是雲上應用架構設計的特點?為什麼需要雲上應用架構設計指南?

為什麼需要雲上應用架構設計指南?

雲上應用架構設計指南用于幫助您在阿裡雲上,設計出好的應用程式,包括但不限于具備可伸縮性、可靠性、可管理性等上述提到的特性。想要在一本指南中涵蓋所有應用設計細節,是不太可能的,是以我們内容呈現會遵循“剛好夠用”的原則。

這本指南寫作的時候,也參考了很多行業先進經驗,在此對過往緻力于雲上應用設計的前輩們表示感謝!

繼續閱讀