去哪兒網馬文: ESAAS平臺技術開發實戰
馬文,去哪兒網平臺事業部數據平臺研發工程師, 于2015年7月份加入去哪兒網, 在平臺事業部從事運維開發工作。其工作范圍主要有Mesos / Marathon / Docker等資源管理調度和容器方面的研究,ELK日志收集方面的研究,Elasticsearch數據搜索技術的研究以及Elasticsearch SAAS平臺的建設和運維工作。
馬文先生所在的去哪兒網ops部門屬于運維和開發部門,主要負責公司基礎設施的開發和保障,為公司提供基礎平臺的建設與基礎公共設施的建設。采訪過程中,馬文先生告訴筆者,作為公司的后勤保障部門,我們的工作就是為公司的其他業務部門提供優質的服務,例如某個業務需要搜索服務,我們就為他們提供搜索平臺;某個部門要使用日志收集功能,就會為他們提供這一服務。因此,如何建設一個強大的系統平臺,至關重要。為此,我們利用Mesos/Docker技術開發了Elasticsearch SAAS(ESAAS)平臺。
Elasticsearch SAAS(ESAAS)平臺在開發過程中遇到的***困難是什么?是如何解決的?隨后,筆者就這一話題與馬文先生進行了溝通。在談到相關的技術話題后,馬文先生在回答筆者提問時充分體現出了一名研發工程師的嚴謹,講話思維敏捷,邏輯清晰,除了技術上的相關內容溝通外,沒有過多的話語。
馬文先生表示,利用Mesos/Docker技術開發的Elasticsearch SAAS(ESAAS)平臺是2016年3/4月份剛剛上線的系統,是一個比較年輕的系統。在這個系統的建設過程中,主要遇到了三個方面的問題。
***,在系統建設初期遇到了服務編排的問題,這也是大部分私有云服務最核心的問題,主要是解決怎么才能把系統中的各個組件合理的編排在一個流程之內。在遇到這個問題后,團隊積極去尋找一些業內比較好的開源的成果,一是參考了ES官方提供的Elasticsearch Cloud這項服務,它是一個基于ES的基礎的云服務平臺。二是參考了亞馬遜提供的基礎云服務。除此之外,我們還結合公司內部的實際使用情況,比如在沒有進行這項業務之前,公司各個業務部門是怎么樣使用ES服務的,進行了系統的設計。
因此,在Elasticsearch SAAS(ESAAS)平臺開發過程中,主要參考了業界比較好的開源系統,結合公司內部的實際情況,進行了設計和開發。
第二,在服務上線后,后期的開發和維護過程中遇到的***的問題是私有云平臺內部資源過熱。所謂資源過熱,是因為Elasticsearch SAAS(ESAAS)平臺是一個資源池化的系統,把所有的資源都放到一個池子當中,就會出現這個問題。原因是由于我們提供的ES服務是以集群為單位的,每個業務線向我們申請ES服務時有時會造成資源扎堆的情況,例如某幾臺服務器由于Mesos調度的結果就會有比較集中的ES節點,就會造成幾種情況發生。***種是某些服務器的磁盤已經用滿,而其他服務器的磁盤利用率則不高。第二種是計算I/O比較大的幾個集群扎堆在一起,導致這些服務器的I/O會非常高,其他服務器利用率就會較低。
在解決資源過熱的問題上,分成了三個步驟。***步是統計整體平臺中資源的情況,統計磁盤扎堆的情況、I/O扎堆的情況,并將統計的結果做聚合分析,進行直觀展示,這樣就能看到集群里面哪一塊局部過熱。第二步是人工調整,根據***步的展示結果,通過人工遷移的方法去調整過熱的點,進行平衡使用。通過逐步調整,就會總結出一套規律和算法模式。第三步是根據人工調整的規則,變成自動化的處理,將重復的人工勞動,變成自動化。
馬文先生表示,Elasticsearch SAAS(ESAAS)平臺開發已經進入到第二步的調整,并且總結了一些經驗,接下來將會進入第三步,將重復的人工勞動變成自動化。逐步的系統就會自動解決資源過熱的情況,不再需要人工參與。他表示,目前系統已經覆蓋了30+的業務,在系統上已經有50個集群,已經承載了公司大部分的ES服務。存儲規模已經能夠達到200TB+的數據存儲量。此外,私有云的構建模式已經在公司推廣開來,其他的部門也在按照我們這種私有云的模式在后續構建一些其他相關的服務平臺。
在采訪結束前,筆者詢問了馬文先生對WOT峰會的一些建議,馬文先生表示,WOT不光是技術交流的峰會,更多的是一個平臺,技術人共同成長的平臺。在這個平臺上,有很多技術牛人聚集在一起,在一起分享,不僅對于我個人,對于技術圈都有推動作用。對我個人的提高也有推動。他建議我們應該多增加一些線下的技術交流,以推動技術人的共同成長。