快速擴展應用程序的6條經驗

雖然新冠肺炎大流行仍在對社區生活和經濟形成不利影響,可是在另外一方面,在電子商務、物流、在線學習、送餐、在線商業協做等領域,用戶對許多公司的產品和服務的需求都出現了大幅飆升。對於這些公司中的許多公司來講,就地避難所和禁閉令形成了用戶需求、以及交易和支付方式的改變,從而使一些公司的業務激增。這些激增使應用程序的使用量迅速飆升,從而可能會致使業務延遲和中斷,這會讓用戶感到沮喪。數據庫

若是你所在的企業的業務和應用程序負載急劇增長,你會作些什麼?你如何才能快速提升應用程序的性能和可擴展性,以確保良好的客戶體驗呢?如下是以正確方式快速擴展應用程序的6條經驗。後端

瞭解所有挑戰緩存

只解決部分問題可能達不到預期的效果,必定要考慮如下全部的因素。服務器

技術問題:負載下的應用程序性能(以及最終的用戶體驗)由延遲和併發之間的相互做用決定。延遲是特定操做所需的時間,例如網站響應用戶請求所需的時間。併發性是指系統能夠同時處理的請求數。當併發性不可伸縮時,需求的顯著增長可能會致使延遲的增長,由於系統不能在接收到全部請求時當即響應它們。這可能會致使糟糕的客戶體驗,由於響應時間從幾分之一秒增長到幾秒,甚至更長,以致於可能致使沒法響應全部請求。所以,雖然確保單個請求的低延遲可能很重要,但它自己可能沒法解決併發激增帶來的挑戰。所以,必須找到一種方法來擴展併發用戶數,同時保持所需的響應時間。此外,應用程序必須可以在多個雲提供商和內部部署服務器的混合環境中無縫擴展。網絡

計時:一個須要數年時間才能實現的策略,好比從頭開始從新設計應用程序,對於解決眼前的需求沒有什麼幫助。採用的解決方案應該可以在幾周或幾個月內開始擴展。架構

成本:不多有公司在沒有預算限制的狀況下應對這一挑戰,所以將前期投資降至最低並將增長的運營成本降至最低的戰略相當重要。併發

作好短時間和長期計劃機器學習

即便解決了在下降延遲的同時增長併發性的挑戰,也不要倉促進行可能付出高昂代價的短時間修復。若是應用程序的徹底從新設計不是有計劃的,那麼能夠採用一種策略,使現有的基礎設施可以根據需求進行大規模擴展。分佈式

選擇正確的技術ide

事實證實,開源內存計算解決方案是在保持或下降延遲的同時快速擴展系統併發性的最具成本效益的方法。例如,Apache Ignite是部署在商用服務器集羣上的分佈式內存計算解決方案。它將集羣的可用CPU和RAM池化,並將數據和計算分發到各個節點。Ignite部署在本地、公共雲、私有云或混合環境中,能夠將其插入現有應用程序和數據層之間的內存數據網格,而無需對其中任何一個進行重大修改。IGNITE還支持ANSI-99 SQL和ACID事務。

Apache Ignite內存數據網格就位後,數據庫中的相關數據將「緩存」在計算集羣的RAM中,而且可用於處理,而不會因正常讀寫基於磁盤的數據存儲而致使延遲。Ignite IMDG使用MapReduce方法,並在集羣節點上運行應用程序代碼,以便在整個集羣上執行大規模並行處理,同時最大限度地減小網絡上的數據移動。這種內存中的數據緩存、將計算髮送到集羣節點和MPP的組合顯著提升了併發性並下降了延遲,與基於磁盤的數據庫構建的應用程序相比,應用程序性能提升了1,000倍。

Ignite的分佈式體系結構只需添加新節點就能夠增長集羣的計算能力和RAM。IGNITE會自動檢測額外的節點,並跨集羣中的全部節點從新分配數據,從而確保CPU和RAM組合的最佳使用。輕鬆將節點添加到集羣的能力還可實現巨大的可擴展性,覺得業務快速增加提供支持。最後,IMDG經過將應用層對IMDG中的數據所作的更改寫回源數據存儲來確保數據一致性。

Apache Ignite還能夠經過支持兩個日益重要的戰略來驗證基礎設施的將來。

數字集成集線器(DIH):DIH架構能夠支持須要360度數據視圖的實時業務流程。它提供了一個通用數據訪問層,用於聚合和處理來自數據流以及內部和基於雲的源(包括內部和雲數據庫、數據湖、數據倉庫和SaaS應用)的數據。而後,多個面向客戶的業務應用程序能夠訪問聚合數據並之內存中的速度處理數據,而無需經過網絡移動數據。DIH自動將消費應用程序對數據所作的更改同步到後端數據存儲,同時減小或消除對這些數據源的API調用的須要。

混合事務/分析處理(HTAP):HTAP是對事務和分析的相同內存數據集的高速處理。這樣就不須要耗時的提取、轉換和加載(ETL)過程來按期將數據從聯機事務處理(OLTP)系統複製到單獨的聯機分析處理(OLAP)系統。HTAP由內存計算平臺提供支持,可在不影響總體系統性能的狀況下對運營數據運行預約義的分析查詢。

考慮開放源碼堆棧

要繼續建立經濟高效、可快速擴展的基礎設施,請考慮如下其餘通過驗證的開源解決方案:

  • Apache Kafka或Apache Flink,用於構建實時數據管道,用於將數據從股票行情或物聯網設備等流來源傳送到Apache Ignite內存數據網格。

  • Kubernetes用於自動部署和管理已在Docker或其餘容器解決方案中集成的應用程序。將應用程序放入容器中並使其管理自動化,這是在分佈式、混合、多雲世界中成功構建實時、端到端業務流程的關鍵。

  • Apache Spark,用於處理和分析大量分佈式數據。Spark利用Ignite內存計算平臺,利用經過Kafka或Flink流傳輸管道獲取的海量數據,更有效地訓練機器學習模型。

正確構建、部署和維護

因爲但願在更快的時間內部署這些解決方案,同時延遲的後果可能很是高,所以必須對項目可用的內部資源進行現實的評估。若是缺少專業知識或可用性,請堅決果斷地諮詢第三方專家。能夠根據合同輕鬆得到對全部這些開放源碼解決方案的支持,從而有可能得到所需的專業知識,而無需花費時間來擴大內部團隊。

瞭解更多信息

許多在線資源能夠幫助你快速掌握這些技術,並肯定哪些策略可能適合你的組織。

不管你的目標是在業務活動激增的狀況下確保最佳的客戶體驗,仍是爲大流行後的經濟復甦作準備,由內存計算提供支持的開源基礎設施堆棧都是將史無前例的速度與巨大的可擴展性相結合以實現實時業務流程的經濟高效的途徑。

【責任編輯:趙寧寧 TEL:(010)68476606】

相關文章
相關標籤/搜索