人
已閱讀
已閱讀
分布式系統(tǒng)架構在APP開發(fā)中的應用
來源:lexintech.com ?? ?? 發(fā)布時間:2018-01-17
在APP開發(fā)等軟件項目中,系統(tǒng)架構的選擇非常重要。我們說的系統(tǒng)架構主要是指軟件項目在服務器運行時所需要的操作系統(tǒng)、硬件、網絡、各種應用服務等。
目前常見的一些APP開發(fā)系統(tǒng)架構有高并發(fā)架構、異地多活架構、容器化架構、微服務架構、高可用架構、彈性化架構等等。還有和這些架構相關的管理型的技術方法,如 DevOps、應用監(jiān)控、自動化運維、SOA 服務治理等。
分布式系統(tǒng)架構是區(qū)別于單體架構而言的。為什么要使用分布式系統(tǒng)架構呢?
1、增大系統(tǒng)容量。我們的業(yè)務量越來越大,而要能應對越來越大的業(yè)務量,一臺機器的性能已經無法滿足了,我們需要多臺機器才能應對大規(guī)模的應用場景。所以,我們需要垂直或是水平拆分業(yè)務系統(tǒng),讓其變成一個分布式的架構。
2、加強系統(tǒng)可用。我們的業(yè)務越來越關鍵,需要提高整個系統(tǒng)架構的可用性,這就意味著架構中不能存在單點故障。這樣,整個系統(tǒng)不會因為一臺機器出故障而導致整體不可用。所以,需要通過分布式架構來冗余系統(tǒng)以消除單點故障,從而提高系統(tǒng)的可用性。
3、除了以上主要兩點,分布式架構還有一些優(yōu)勢,比如:
因為模塊化,所以系統(tǒng)模塊重用度更高;
因為軟件服務模塊被拆分,開發(fā)和發(fā)布速度可以并行而變得更快;
系統(tǒng)擴展性更高;
團隊協(xié)作流程也會得到改善;
等等。
不過,這個世界上不存在完美的技術方案,采用任何技術方案都是有得有失,也就是說,分布式系統(tǒng)在消除上述問題的同時,也給我們帶來了其他的問題。因此,我們需要清楚地知道分布式系統(tǒng)所帶來的問題。下面這個表格比較了單體應用和分布式架構的優(yōu)缺點。
從上面的表格我們可以看到,分布式系統(tǒng)雖然有一些優(yōu)勢,但也存在一些問題。
架構設計變得復雜(尤其是其中的分布式事務)。
部署單個服務會比較快,但是如果一次部署需要多個服務,部署會變得復雜。
系統(tǒng)的吞吐量會變大,但是響應時間會變長。
運維復雜度會因為服務變多而變得很復雜。
架構復雜導致學習曲線變大。
測試和查錯的復雜度增大。
技術可以很多樣,這會帶來維護和運維的復雜度。
管理分布式系統(tǒng)中的服務和調度變得困難和復雜。
也就是說,分布式系統(tǒng)架構的難點在于系統(tǒng)設計,以及管理和運維。所以,分布式架構解決了“單點”和“性能容量”的問題,但卻新增了一堆問題。而對于這些新增的問題,還會衍生出更多的子問題,這就需要我們不斷地用各式各樣的技術和手段來解決這些問題。
這就出現了我前面所說的那些架構方式,以及各種相關的管理型的技術方法。這個世界就是這樣變得復雜起來的。
總的來說,在APP開發(fā)時,選擇什么樣的系統(tǒng)架構,要綜合各方面的因素,以上的分析希望能給您提供一些參考。