人
已閱讀
已閱讀
分布式系統架構在APP開發中的應用
來源:www.bqtao.cn ?? ?? 發布時間:2018-01-17
在APP開發等軟件項目中,系統架構的選擇非常重要。我們說的系統架構主要是指軟件項目在服務器運行時所需要的操作系統、硬件、網絡、各種應用服務等。
目前常見的一些APP開發系統架構有高并發架構、異地多活架構、容器化架構、微服務架構、高可用架構、彈性化架構等等。還有和這些架構相關的管理型的技術方法,如 DevOps、應用監控、自動化運維、SOA 服務治理等。
分布式系統架構是區別于單體架構而言的。為什么要使用分布式系統架構呢?
1、增大系統容量。我們的業務量越來越大,而要能應對越來越大的業務量,一臺機器的性能已經無法滿足了,我們需要多臺機器才能應對大規模的應用場景。所以,我們需要垂直或是水平拆分業務系統,讓其變成一個分布式的架構。
2、加強系統可用。我們的業務越來越關鍵,需要提高整個系統架構的可用性,這就意味著架構中不能存在單點故障。這樣,整個系統不會因為一臺機器出故障而導致整體不可用。所以,需要通過分布式架構來冗余系統以消除單點故障,從而提高系統的可用性。
3、除了以上主要兩點,分布式架構還有一些優勢,比如:
因為模塊化,所以系統模塊重用度更高;
因為軟件服務模塊被拆分,開發和發布速度可以并行而變得更快;
系統擴展性更高;
團隊協作流程也會得到改善;
等等。
不過,這個世界上不存在完美的技術方案,采用任何技術方案都是有得有失,也就是說,分布式系統在消除上述問題的同時,也給我們帶來了其他的問題。因此,我們需要清楚地知道分布式系統所帶來的問題。下面這個表格比較了單體應用和分布式架構的優缺點。

從上面的表格我們可以看到,分布式系統雖然有一些優勢,但也存在一些問題。
架構設計變得復雜(尤其是其中的分布式事務)。
部署單個服務會比較快,但是如果一次部署需要多個服務,部署會變得復雜。
系統的吞吐量會變大,但是響應時間會變長。
運維復雜度會因為服務變多而變得很復雜。
架構復雜導致學習曲線變大。
測試和查錯的復雜度增大。
技術可以很多樣,這會帶來維護和運維的復雜度。
管理分布式系統中的服務和調度變得困難和復雜。
也就是說,分布式系統架構的難點在于系統設計,以及管理和運維。所以,分布式架構解決了“單點”和“性能容量”的問題,但卻新增了一堆問題。而對于這些新增的問題,還會衍生出更多的子問題,這就需要我們不斷地用各式各樣的技術和手段來解決這些問題。
這就出現了我前面所說的那些架構方式,以及各種相關的管理型的技術方法。這個世界就是這樣變得復雜起來的。
總的來說,在APP開發時,選擇什么樣的系統架構,要綜合各方面的因素,以上的分析希望能給您提供一些參考。