雖然新冠肺炎大流行仍在對社區(qū)生活和經(jīng)濟造成不利影響,但是在另一方面,在電子商務(wù)、物流、在線學(xué)習(xí)、送餐、在線商業(yè)協(xié)作等領(lǐng)域,用戶對許多公司的產(chǎn)品和服務(wù)的需求都出現(xiàn)了大幅飆升。對于這些公司中的許多公司來說,就地避難所和禁閉令造成了用戶需求、以及交易和支付方式的改變,從而使一些公司的業(yè)務(wù)激增。這些激增使應(yīng)用程序的使用量迅速飆升,從而可能會導(dǎo)致業(yè)務(wù)延遲和中斷,這會讓用戶感到沮喪。
如果你所在的企業(yè)的業(yè)務(wù)和應(yīng)用程序負(fù)載急劇增加,你會做些什么?你如何才能快速提高應(yīng)用程序的性能和可擴展性,以確保良好的客戶體驗?zāi)?以下是以正確方式快速擴展應(yīng)用程序的6條經(jīng)驗。
了解全部挑戰(zhàn)
只解決部分問題可能達(dá)不到預(yù)期的效果,一定要考慮以下所有的因素。
技術(shù)問題:負(fù)載下的應(yīng)用程序性能(以及最終的用戶體驗)由延遲和并發(fā)之間的相互作用決定。延遲是特定操作所需的時間,例如網(wǎng)站響應(yīng)用戶請求所需的時間。并發(fā)性是指系統(tǒng)可以同時處理的請求數(shù)。當(dāng)并發(fā)性不可伸縮時,需求的顯著增加可能會導(dǎo)致延遲的增加,因為系統(tǒng)不能在接收到所有請求時立即響應(yīng)它們。這可能會導(dǎo)致糟糕的客戶體驗,因為響應(yīng)時間從幾分之一秒增加到幾秒,甚至更長,以至于可能導(dǎo)致無法響應(yīng)所有請求。因此,雖然確保單個請求的低延遲可能很重要,但它本身可能無法解決并發(fā)激增帶來的挑戰(zhàn)。因此,必須找到一種方法來擴展并發(fā)用戶數(shù),同時保持所需的響應(yīng)時間。此外,應(yīng)用程序必須能夠在多個云提供商和內(nèi)部部署服務(wù)器的混合環(huán)境中無縫擴展。
計時:一個需要數(shù)年時間才能實現(xiàn)的策略,比如從頭開始重新設(shè)計應(yīng)用程序,對于解決眼前的需求沒有什么幫助。采用的解決方案應(yīng)該能夠在幾周或幾個月內(nèi)開始擴展。
成本:很少有公司在沒有預(yù)算限制的情況下應(yīng)對這一挑戰(zhàn),因此將前期投資降至最低并將增加的運營成本降至最低的戰(zhàn)略至關(guān)重要。
做好短期和長期計劃
即使解決了在降低延遲的同時增加并發(fā)性的挑戰(zhàn),也不要倉促進行可能付出高昂代價的短期修復(fù)。如果應(yīng)用程序的完全重新設(shè)計不是有計劃的,那么可以采用一種策略,使現(xiàn)有的基礎(chǔ)設(shè)施能夠根據(jù)需求進行大規(guī)模擴展。
選擇正確的技術(shù)
事實證明,開源內(nèi)存計算解決方案是在保持或降低延遲的同時快速擴展系統(tǒng)并發(fā)性的最具成本效益的方法。例如,Apache Ignite是部署在商用服務(wù)器集群上的分布式內(nèi)存計算解決方案。它將集群的可用CPU和RAM池化,并將數(shù)據(jù)和計算分發(fā)到各個節(jié)點。Ignite部署在本地、公共云、私有云或混合環(huán)境中,可以將其插入現(xiàn)有應(yīng)用程序和數(shù)據(jù)層之間的內(nèi)存數(shù)據(jù)網(wǎng)格,而無需對其中任何一個進行重大修改。IGNITE還支持ANSI-99 SQL和ACID事務(wù)。
Apache Ignite內(nèi)存數(shù)據(jù)網(wǎng)格就位后,數(shù)據(jù)庫中的相關(guān)數(shù)據(jù)將“緩存”在計算集群的RAM中,并且可用于處理,而不會因正常讀寫基于磁盤的數(shù)據(jù)存儲而導(dǎo)致延遲。Ignite IMDG使用MapReduce方法,并在集群節(jié)點上運行應(yīng)用程序代碼,以便在整個集群上執(zhí)行大規(guī)模并行處理,同時最大限度地減少網(wǎng)絡(luò)上的數(shù)據(jù)移動。這種內(nèi)存中的數(shù)據(jù)緩存、將計算發(fā)送到集群節(jié)點和MPP的組合顯著提高了并發(fā)性并降低了延遲,與基于磁盤的數(shù)據(jù)庫構(gòu)建的應(yīng)用程序相比,應(yīng)用程序性能提高了1,000倍。
Ignite的分布式體系結(jié)構(gòu)只需添加新節(jié)點就可以增加集群的計算能力和RAM。IGNITE會自動檢測額外的節(jié)點,并跨集群中的所有節(jié)點重新分配數(shù)據(jù),從而確保CPU和RAM組合的最佳使用。輕松將節(jié)點添加到集群的能力還可實現(xiàn)巨大的可擴展性,以為業(yè)務(wù)快速增長提供支持。最后,IMDG通過將應(yīng)用層對IMDG中的數(shù)據(jù)所做的更改寫回源數(shù)據(jù)存儲來確保數(shù)據(jù)一致性。
Apache Ignite還可以通過支持兩個日益重要的戰(zhàn)略來驗證基礎(chǔ)設(shè)施的未來。
數(shù)字集成集線器(DIH):DIH架構(gòu)可以支持需要360度數(shù)據(jù)視圖的實時業(yè)務(wù)流程。它提供了一個通用數(shù)據(jù)訪問層,用于聚合和處理來自數(shù)據(jù)流以及內(nèi)部和基于云的源(包括內(nèi)部和云數(shù)據(jù)庫、數(shù)據(jù)湖、數(shù)據(jù)倉庫和SaaS應(yīng)用)的數(shù)據(jù)。然后,多個面向客戶的業(yè)務(wù)應(yīng)用程序可以訪問聚合數(shù)據(jù)并以內(nèi)存中的速度處理數(shù)據(jù),而無需通過網(wǎng)絡(luò)移動數(shù)據(jù)。DIH自動將消費應(yīng)用程序?qū)?shù)據(jù)所做的更改同步到后端數(shù)據(jù)存儲,同時減少或消除對這些數(shù)據(jù)源的API調(diào)用的需要。
混合事務(wù)/分析處理(HTAP):HTAP是對事務(wù)和分析的相同內(nèi)存數(shù)據(jù)集的高速處理。這樣就不需要耗時的提取、轉(zhuǎn)換和加載(ETL)過程來定期將數(shù)據(jù)從聯(lián)機事務(wù)處理(OLTP)系統(tǒng)復(fù)制到單獨的聯(lián)機分析處理(OLAP)系統(tǒng)。HTAP由內(nèi)存計算平臺提供支持,可在不影響整體系統(tǒng)性能的情況下對運營數(shù)據(jù)運行預(yù)定義的分析查詢。
考慮開放源碼堆棧
要繼續(xù)創(chuàng)建經(jīng)濟高效、可快速擴展的基礎(chǔ)設(shè)施,請考慮以下其他經(jīng)過驗證的開源解決方案:
· Apache Kafka或Apache Flink,用于構(gòu)建實時數(shù)據(jù)管道,用于將數(shù)據(jù)從股票行情或物聯(lián)網(wǎng)設(shè)備等流來源傳送到Apache Ignite內(nèi)存數(shù)據(jù)網(wǎng)格。
· Kubernetes用于自動部署和管理已在Docker或其他容器解決方案中集成的應(yīng)用程序。將應(yīng)用程序放入容器中并使其管理自動化,這是在分布式、混合、多云世界中成功構(gòu)建實時、端到端業(yè)務(wù)流程的關(guān)鍵。
· Apache Spark,用于處理和分析大量分布式數(shù)據(jù)。Spark利用Ignite內(nèi)存計算平臺,利用通過Kafka或Flink流傳輸管道獲取的海量數(shù)據(jù),更有效地訓(xùn)練機器學(xué)習(xí)模型。
正確構(gòu)建、部署和維護
由于希望在更快的時間內(nèi)部署這些解決方案,同時延遲的后果可能非常高,因此必須對項目可用的內(nèi)部資源進行現(xiàn)實的評估。如果缺乏專業(yè)知識或可用性,請毫不猶豫地咨詢第三方專家。可以根據(jù)合同輕松獲得對所有這些開放源碼解決方案的支持,從而有可能獲得所需的專業(yè)知識,而無需花費時間來擴大內(nèi)部團隊。
了解更多信息
許多在線資源可以幫助你快速掌握這些技術(shù),并確定哪些策略可能適合你的組織。
無論你的目標(biāo)是在業(yè)務(wù)活動激增的情況下確保最佳的客戶體驗,還是為大流行后的經(jīng)濟復(fù)蘇做準(zhǔn)備,由內(nèi)存計算提供支持的開源基礎(chǔ)設(shè)施堆棧都是將前所未有的速度與巨大的可擴展性相結(jié)合以實現(xiàn)實時業(yè)務(wù)流程的經(jīng)濟高效的途徑。
版權(quán)聲明:本文為企業(yè)網(wǎng)D1Net編譯,轉(zhuǎn)載需注明出處為:企業(yè)網(wǎng)D1Net,如果不注明出處,企業(yè)網(wǎng)D1Net將保留追究其法律責(zé)任的權(quán)利。