開發與維運

為什麼需要這本指南

什麼是好的應用?

根據ISO/IEC 25010的定義,好的應用應該具有以下屬性。
image.png
● 滿足功能需求:功能的完整度、正確性和恰當性。功能屬性(或者叫功能需求)永遠是架構設計中最基礎的一點,其他所有的屬性都可以劃為非功能屬性(非功能需求),又稱質量屬性。事實上,大部分的功能都可以用多種架構來實現,真正決定我們的架構選擇的因素往往是非功能需求,也就是下面這些需求。
● 性能效率:時間表現(例如響應時間、延遲)、資源利用率和系統容量(例如IO吞吐量,可伸縮性也可以認為是容量的一種表現。
● 可靠性:可用性、容錯性、可恢復性。
● 易用性:可學習性、可訪問性(例如W3C的可訪問性標準)、UI交互體驗等,本文暫不對易用性討論。
● 兼容性:共存能力(例如向上或向下兼容)、互操作性(例如不同的系統之間互相下達指令)、協同性,我們把系統的功能上的可擴展性也歸入兼容性中。
● 可移植性:可適配性、可安裝性、可替代性。
● 可維護性:可管理性、可監控性、可分析性和可測試性,模塊化程度(高內聚低耦合)通常也算可維護性的一部分。
● 安全性:機密性、完整性、不可偽造性、可審計性等,本指南中,安全性將不單獨作為一個章節,而是在各模塊設計過程中講解。您也可以參見阿里雲安全白皮書瞭解更多。
在衡量上述屬性時,您可以使用SMART(Specific、Measurable、Attainable、Relevant、Time-bound)原則:如果不滿足這些原則,可以不計入考慮範圍。實際上,還有一項DevOps也是我們在設計時必須考慮的非功能需求項,在後續部分章節中會體現。

什麼是好的架構設計?

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

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

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

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

雲上應用架構設計指南用於幫助您在阿里雲上,設計出好的應用程序,包括但不限於具備可伸縮性、可靠性、可管理性等上述提到的特性。想要在一本指南中涵蓋所有應用設計細節,是不太可能的,因此我們內容呈現會遵循“剛好夠用”的原則。
這本指南寫作的時候,也參考了很多行業先進經驗,在此對過往致力於雲上應用設計的前輩們表示感謝!

Leave a Reply

Your email address will not be published. Required fields are marked *