在亞馬遜Web服務的世界中經常會聽到兩個短語:DevOps文化和云原生應用。但是它們到底意味著什么呢?如何在現實世界中實現呢?一家初創公司已經結合了這兩個概念,創建了一個應用,展示了用亞馬遜Web服務(AWS)云可以做什么。
Ekho的同名應用套件為客戶提供了各種數據挖掘Focus set,涉及到社交媒體流這樣的數據源。這可以幫助用戶度量廣告和市場營銷的執行情況,而且可以預設目標銷售機會,接觸到最可能的買家。Focus set通過他們的Web瀏覽器為終端用戶進行展示。
該公司的創始人兼CEO Kent Langley表示,有時候,挖掘社交媒體流可以生產億萬數據點,Ekho的系統必須徹底貫穿并且分析。還有些時候,這個系統可能發現數以萬計的數據點替代。可以擴展和收縮應用,而且基礎的AWS基礎架構可以讓Ekho管理非常廣泛的工作負載。
“如果沒有亞馬遜我們還會存在嗎?答案是也許吧,”Langley說道,“但是我會花費更多量級的成本才能達到我們現在所企及的高度,以及我們所擁有的能力。”
Ekho平均運行著大約32個彈性計算云實例,具體數量根據工作負載有所不同。但是這僅僅是冰山一角:在AWS簡單存儲服務或者S3中,還有計算實例訪問和億萬記錄分析。
該公司還是用Glacier進行長期的數據存儲,在最終分析完成之前,DynamoDB用來存儲臨時的計算結果,Elasticache是Redis內存數據庫,CloudFront內容交付網絡可以用數據集在用戶的瀏覽器上執行得更好,簡單消息服務和簡單郵件服務進行內網操作。
由于這些服務,Ekho的運營極為精簡,僅雇傭了八名員工,五名是自己的內部開發者。
在Ekho的DevOps文化中,應用開發者管理所有的操作服務以及編寫代碼開發應用。“在我自己和開發者之間,我們能夠很好地維系,”Langley說道,“我們并沒有取代操作的角色,我們只是將其分配給每一個開發者。”
因此,小型的初創公司也可以做大事業。“我們有個客戶說‘我們在你的數據庫中放了100萬行數據,’而且我不必外出購買一個單獨的服務器,”Langley說道,“我們可以自旋增加無數個服務器,而且我們可以擴展我們的核心基礎架構組件的規模,我們處理的所有數據都在我們的數據層的核心,工作一旦完成,我們就關閉這些服務器,總共也就花費兩個小時。”
如果Ekho正在運行一個傳統的數據中心基礎架構,Langley說他可能就拒絕了這樣的機會。
雖然亞馬遜的可擴展性是基礎,能夠讓DevOps靈活實現,實現正確的DevOps文化最終是人和流程的問題,遠遠超越了技術,Langley說道。實際上,有時候亞馬遜服務的寬度和廣度導致了比起解決的問題更多的復雜度。正如亞馬遜的基礎架構的靈活性,正確的應用設計才能夠充分利用它。
Langley在一本書中這樣說道,優雅地擴展是設計云原生應用的關鍵所在。《可擴展的藝術》講的就是他們公司應用設計的靈感。這本書介紹了Langley的AKF可擴展立方(Scalability Cube),這個立方體中沿著三個坐標軸設置分別為:X、Y、Z。
在這個系統中,X坐標軸可擴展指的是服務器水平擴展;Y坐標軸可擴展指的是垂直可擴展;Z坐標軸指的是數據優先級。“做一個云原生應用的關鍵就是在所有的三個坐標軸上都能夠可擴展,”Langley說道。
Ekho將自身也放置在Y坐標軸擴展性上,Langley說道,“思考Y的另一種方式就是服務層級的優先級,而且你經常會聽到術語微服務架構,這就是Y坐標軸優先級的一個例子,即將所有的服務都分解,”他說道。
頭腦中有這些可擴展性理念,以及一個基于Java的應用設計框架組合,最著名的就是Akka分布式應用框架,Ekho已經設計了自己的應用,能夠在完整的服務分離艙集群之間分割。這些分離艙隨后可以被放置到多個亞馬遜可用區域中;多個地域或者多個國家地域中;而且可用區域能夠實現彈性和災難恢復,以及性能和可擴展性。