如何克服大規(guī)模應(yīng)用程序的性能挑戰(zhàn)?
譯文【51CTO.com快譯】大規(guī)模(Web-scale)應(yīng)用程序需要高性能和大規(guī)模可擴展性,以出色的用戶體驗支持大量用戶。它們必須按需擴展,為快速壯大的用戶群提供服務(wù),同時提供出色的性能、靈活性和彈性。大規(guī)模應(yīng)用程序日益應(yīng)用于金融服務(wù)、醫(yī)療保健、在線商業(yè)服務(wù)、媒體、電信及其他行業(yè);在這些行業(yè),系統(tǒng)用戶的數(shù)量不斷增長,它們的要求也在不斷變化。
開發(fā)大規(guī)模應(yīng)用程序的一個挑戰(zhàn)是依賴基于磁盤的傳統(tǒng)數(shù)據(jù)庫。這些數(shù)據(jù)庫在規(guī)模環(huán)境上帶來了不可接受的延遲。此外,將數(shù)據(jù)從操作型數(shù)據(jù)庫轉(zhuǎn)移到分析型數(shù)據(jù)庫的提取、轉(zhuǎn)換和加載(ETL)過程意味著數(shù)據(jù)在分析之前是陳舊的。如今要消除基于磁盤的數(shù)據(jù)庫引起的延遲,最簡單、***效和***成本效益的策略就是部署內(nèi)存計算(IMC)平臺。
內(nèi)存計算簡述
內(nèi)存計算基于跨分布式計算集群的大規(guī)模并行處理,共享集群中的所有可用內(nèi)存和CPU能力。集群可以使用商用服務(wù)器來構(gòu)建,并通過添加新節(jié)點進行擴展。添加新節(jié)點后,系統(tǒng)會自動重新平衡數(shù)據(jù)在節(jié)點之間的分布,提供極高的可擴展性和數(shù)據(jù)冗余。
與直接在基于磁盤的數(shù)據(jù)庫上構(gòu)建的應(yīng)用程序相比,IMC平臺的處理速度可提高1000倍或更多。一些IMC平臺支持ANSI-99 SQL和ACID事務(wù),因而更容易將IMC平臺整合到現(xiàn)有的大規(guī)模應(yīng)用程序中,并且讓內(nèi)存計算平臺充當(dāng)應(yīng)用程序的記錄系統(tǒng)。
IMC平臺的速度和可擴展性能夠?qū)崿F(xiàn)事務(wù)/分析混合處理(HTAP)(即操作/分析混合處理(HOAP)或集事務(wù)和分析性能于一體的處理)。HTAP能夠在不影響系統(tǒng)性能的情況下,對大規(guī)模的操作數(shù)據(jù)集進行分析?;趦?nèi)存計算平臺等HTAP解決方案的大規(guī)模應(yīng)用程序讓公司可以實時了解用戶行為,并實時響應(yīng)不斷變化的行為帶來的任何機會或威脅。
IMC平臺的主要功能和特性,包括如下:
充當(dāng)現(xiàn)有應(yīng)用程序的內(nèi)存數(shù)據(jù)網(wǎng)格
針對現(xiàn)有的應(yīng)用程序,IMC平臺用作在應(yīng)用程序?qū)雍蛿?shù)據(jù)層之間插入的內(nèi)存數(shù)據(jù)網(wǎng)格(IMDG),無需丟棄和更換底層數(shù)據(jù)庫。底層RDBMS、NoSQL或Hadoop數(shù)據(jù)庫中的數(shù)據(jù)加載到IMC集群的內(nèi)存中。集群節(jié)點上放在一起的大規(guī)模并行處理極大地提升了性能。如果IMDG支持SQL,與數(shù)據(jù)網(wǎng)格之間的聯(lián)系就像使用標(biāo)準(zhǔn)SQL命令來操作和分析數(shù)據(jù)一樣容易。
充當(dāng)新應(yīng)用程序的內(nèi)存數(shù)據(jù)庫
針對新的或重新設(shè)計架構(gòu)的應(yīng)用程序,一些IMC平臺可以充當(dāng)獨立的內(nèi)存SQL數(shù)據(jù)庫(IMDB)。為了保護內(nèi)存中的數(shù)據(jù)在重啟或斷電期間不會丟失,一種經(jīng)濟高效的策略是使用“持久存儲”。這在下面會有討論。
持久存儲
可以將“持久存儲”功能添加到部署在普通磁盤、固態(tài)磁盤(SSD)、閃存、3D XPoint或其他存儲級內(nèi)存技術(shù)上的分布式ACID事務(wù)和與ANSI-99 SQL兼容的磁盤存儲系統(tǒng)。
如果是IMDB,持久存儲在重啟或斷電時可保留數(shù)據(jù),讓應(yīng)用程序可以訪問保存在整個集群內(nèi)存中的更大數(shù)據(jù)集。如果是IMDG,持久存儲讓企業(yè)可以將完全操作的數(shù)據(jù)集保留在磁盤上,而將數(shù)據(jù)集的一小部分保留在內(nèi)存中,以此兼顧基礎(chǔ)設(shè)施成本和應(yīng)用程序性能。持久存儲的一個重要好處是,它在服務(wù)器重啟后可以讓用戶立即處理數(shù)據(jù),無需等待所有數(shù)據(jù)重新加載到內(nèi)存中。
機器學(xué)習(xí)
一些IMC平臺現(xiàn)擁有集成的、完全分布式的機器學(xué)習(xí)和深度學(xué)習(xí)庫,這些庫已針對大規(guī)模并行處理進行了優(yōu)化。這讓每種機器學(xué)習(xí)或深度學(xué)習(xí)算法能夠針對駐留在IMC集群每個節(jié)點上的內(nèi)存中的數(shù)據(jù)進行本地運行,因而可以持續(xù)更新機器學(xué)習(xí)或深度學(xué)習(xí)模型,而不影響性能,即便在PB級規(guī)模下也是如此。
與其他應(yīng)用程序集成
IMC必須作為整個架構(gòu)堆棧的一部分來運行,并與其他有用的解決方案輕松集成。比如,下列開源解決方案都能無縫集成:Apache Ignite內(nèi)存計算平臺、Apache Kafka流處理平臺、Apache Spark分布式通用集群計算框架以及Kubernetes開源容器編排系統(tǒng)。
開源
所有上述解決方案都是開源這不足為奇。開源解決方案對于已啟動數(shù)字化轉(zhuǎn)型和全渠道客戶互動計劃的企業(yè)至關(guān)重要,并使開發(fā)大規(guī)模應(yīng)用程序?qū)τ诖蟠笮⌒〉钠髽I(yè)來說變得切實可行。開源提供了一種可靠又成熟的策略,可用于開發(fā)應(yīng)用程序,前期投入低得多。它讓企業(yè)更牢牢地掌控自己的命運,因為大多數(shù)開源項目基于標(biāo)準(zhǔn)的方法緩解了供應(yīng)商鎖定現(xiàn)象。另外,開源項目帶來出色創(chuàng)新的速度比傳統(tǒng)的專有供應(yīng)商模式快得多。
大規(guī)模應(yīng)用程序若要帶來預(yù)期的好處,企業(yè)須獲得大規(guī)模環(huán)境下的實時應(yīng)用程序性能。 IMC為實現(xiàn)這個目標(biāo)提供了唯一切實可行的、經(jīng)濟高效的途徑,這在Gartner的預(yù)測中有所體現(xiàn)。
Gartner預(yù)測,到2019年,75%的云原生應(yīng)用程序開發(fā)將使用內(nèi)存計算或使用IMC的服務(wù),讓主流開發(fā)人員能夠?qū)崿F(xiàn)高性能、大規(guī)??蓴U展的應(yīng)用程序。架構(gòu)師、開發(fā)人員和***技術(shù)官了解了大規(guī)模架構(gòu)對數(shù)據(jù)中心未來而言的重要性,才會立即開始研究內(nèi)存計算解決方案具有的功能、靈活性和可擴展性。
原文標(biāo)題:How to Solve the Performance Challenges of Web-Scale Applications,作者:Nikita Ivanov
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】