在過去的幾十年里,互聯(lián)網(wǎng)大大改變了人們的生活狀態(tài)。我們上網(wǎng),用各種app搜索信息、購買商品、與世界各個地區(qū)的人們進行無障礙溝通,其速度之快、操作之便捷,可謂史無前例。私家車的儀表盤上的屏幕可以為我們推薦電影,智能手機可以制作并發(fā)布視頻,我們還可以購買恒溫器,它們能在我們到達辦公室之前,提前調(diào)整房間的溫度。
盡管這些進步對外界來說就像魔法一樣神奇,但只有研發(fā)者們知道保障這些程序運行的開發(fā)技術(shù)到了何種水平。然而時代在發(fā)展,和商業(yè)打交道的每一個人都應該對此有所了解,這一點正在變得越來越重要。
原因很簡單:聰明的公司都明白,未來十年的競爭要求我們對信息技術(shù)要有新思路。從移動應用到電冰箱,都需要變得更為個性化、智能化,更注重反饋與交互。
公司需要恰當?shù)墓ぞ邅泶龠M機器的學習、獲取傳感器數(shù)據(jù)和處理超乎想象的高居不下的用戶流量的能力。
大勢不可逆。如果一款應用不能帶給用戶他們所期望的體驗,他們會另尋別家。
重構(gòu)應用構(gòu)建方式
過去幾年里,應用程序和網(wǎng)頁的使用規(guī)模不斷擴大,用戶量已經(jīng)達到上幾百萬甚至幾億級。在這種大流量、大數(shù)據(jù)的趨勢下,昔日的應用架構(gòu)開始土崩瓦解。最近,使用海量數(shù)據(jù)的趨勢,已經(jīng)激發(fā)了市場催生一個全新的科技團體的興趣,他們專門研究這個終端。
處理方法包括開拓全新的存儲空間、處理器和數(shù)據(jù)庫框架,以期輕松擴大跨集群服務器的規(guī)模,簡化處理過程,并提高各部分信息交流的速度。Google、LinkedIn、Facebook、Yahoo和Twitter正在一遍又一遍的重復這個過程。
其中一種模式應用于數(shù)據(jù)庫,幾乎每個人都從關(guān)系數(shù)據(jù)庫開始,最終制定出新計劃。一些公司花費了上百萬美元(還在繼續(xù)付出),犧牲個人時間,來尋找突破MySQL的自身規(guī)模局限的方法。
另一種模式則清晰地呈現(xiàn)在處理大數(shù)據(jù)的架構(gòu)中。這種特殊的技術(shù)在不同領(lǐng)域或許會有所不同,但所有大型網(wǎng)絡公司在處理實時、準實時和批量數(shù)據(jù)時,都會使用某種特定的架構(gòu)。它們都希望給用戶傳達一種迅捷的、個性化的體驗,還要確保內(nèi)部數(shù)據(jù)分析師和數(shù)據(jù)科學家能夠滿足這份工作的要求。
邂逅數(shù)據(jù)中心應用棧
所有IT創(chuàng)新的結(jié)果都令人印象深刻。Google、Facebook和Amazon為幾十億的用戶提供服務(可同時服務上百萬用戶)并儲存海量數(shù)據(jù)。但它們幾乎沒崩潰過。因為對基礎設施投入了大量的建設。
這些公司研發(fā)了許多知名技術(shù),其中包括MapReduce、Hadoop、Cassandra和Kafka。除此之外,它們還研發(fā)了一套新工具(有的源自初創(chuàng)公司,有的是實驗室開發(fā),有的則是開源項目),旨在幫助應用程序運行得更好,規(guī)模更大,并在必要的時候增加新功能。這些新工具包括Spark、Storm和Elasticsearch。
與新技術(shù)相配套的新架構(gòu)也隨之浮出水面,試圖解決為了研發(fā)能在大規(guī)模環(huán)境下穩(wěn)定運行的應用而帶來的問題。
一種架構(gòu)是微服務概念,就是將應用看成是一種可以為多種應用提供服務的服務集合,而不是使用自己專用組件的單片實體。除此之外,微服務減少了組件之間的相互依賴,提高了個人服務的可擴展性,這一切無需重建整套應用即可實現(xiàn)。
另一種大型架構(gòu)是集裝化趨勢,通過像Docker那樣的開發(fā)者友好型方式或像Linux控制組那樣的低層次方式構(gòu)建。集裝可以輕松給分散的服務器插入應用,根據(jù)運行處改變焦點。進一步說,開發(fā)者可以將焦點集中在應用需要運行的地方。
總的來說,這種新型分布式服務集成和架構(gòu)技術(shù)合稱“數(shù)據(jù)中心應用堆”。凡是想要構(gòu)建能在多重平臺上服務上百萬用戶的應用,并利用當今數(shù)據(jù)的數(shù)量、種類和速度的,都得使用服務集成或類似的技術(shù)理念。
實際上,這些技術(shù)正在迅速流行起來。它們當中有許多已經(jīng)成為初創(chuàng)公司技術(shù)鏈條上的主打,為的是傳遞從下一個大型消費者應用到下一個Salesforce.com之間的一切信息。
這些技術(shù)正在超越單純的網(wǎng)絡途徑,而進軍世界500強,甚至進入和IT創(chuàng)新者不沾邊兒的中型企業(yè)。他們了解數(shù)據(jù)中心服務(限于公司層面范圍內(nèi))的一切,渴望加入這令人興奮的創(chuàng)新中。.
“大數(shù)據(jù)”、“實時”和“物聯(lián)網(wǎng)”不僅僅是流行語。21世紀,公司的成功在很多方面都要依賴它們。
數(shù)據(jù)中心應用的操作系統(tǒng)
雖然數(shù)據(jù)中心應用技術(shù)越來越重要,但問題在于(IT供銷商、開源支持者或?qū)I(yè)的Facebook工程師不會告訴你)構(gòu)建十分困難。部署、管理和大規(guī)模Hadoop;部署、管理和大規(guī)模Cassandra;部署、管理和大規(guī)模Kubernetes。你必須清理和重復你想要的每個架構(gòu)或服務。
某種意義上說,公司或許不愿真正寫程序、建立數(shù)據(jù)管道和確認架構(gòu)的彈性。
像Google和微軟那種工程師眾多的大型公司分別用Borg和Autopilot系統(tǒng)為自己解決(或很大程度上解決)問題。系統(tǒng)會自動管理資源分配,實現(xiàn)服務器及為百萬用戶服務的應用程序的高實用性。是算法——而不是開發(fā)者或微軟架構(gòu)師——決定程序的走向和機器的數(shù)量。
當然了,它們是偉大的系統(tǒng),但同時也為公司所專有。Google也是最近才發(fā)布文件官方承認Borg的存在。微軟幾乎沒有公開討論過Autopilot的相關(guān)事宜,更別說是銷售了。