技術生態(tài)圈
有了世界頂尖的硬件環(huán)境,軟件環(huán)境也不可少。下面我們著重介紹下Yahoo!的技術生態(tài)圈,看看Yahoo!使用了哪些產(chǎn)品和技術來支持大規(guī)模網(wǎng)絡應用。
在雅虎內(nèi)部構建一個超大規(guī)模應用其實并不是那么的復雜,因為我們已經(jīng)提供了一整套完整的技術體系來幫助開發(fā)人員快速建立起一個具有高可維護性的超大規(guī)模應用。
圖3 Yahoo!數(shù)據(jù)中心技術生態(tài)圈
從這張圖我們可以看到一個新應用在生態(tài)圈里和現(xiàn)有技術平臺的關系:
新應用(APPLICATION)只需要更多的關注自身的業(yè)務邏輯。與應用密切關聯(lián)的本地信息,我們有一些本地存儲(LOCAL STORAGE)技術來供應用使用,比如關系性數(shù)據(jù)庫MySQL、Oracle,存儲Key-value型數(shù)據(jù)的MDBM和Memcache。另外,雅虎還提供了大量的平臺服務(PLATFORM SERVICES)供我們各種應用使用。比如統(tǒng)一驗證平臺YCA來完成所有應用內(nèi)及應用間的身份驗證,統(tǒng)一防御平臺Ydod來幫助我們識別并且隔離惡意/濫用的流量,用戶信息服務UPS可以讓應用方便的獲取這個用戶的相關信息,如地理位置,興趣喜好等。個性化內(nèi)容推薦服務Slingstone,可以直接向用戶提供個性化的雅虎內(nèi)部及合作伙伴的內(nèi)容信息。另外新應用還能方便快捷的接入廣告平臺(AD SERVER),獲取個性化推薦的廣告。前端應用收集到的各種應用相關信息(如瀏覽點擊數(shù)據(jù)),通過我們構建在全球骨干網(wǎng)絡之上的數(shù)據(jù)高速公路(DATA HIGHWAY)這一統(tǒng)一數(shù)據(jù)通道,及時地回傳到雅虎全球最大的商用Hadoop群集。在Hadoop群集上不同應用及平臺服務根據(jù)各自的需求,處理對應的數(shù)據(jù),并將處理好的數(shù)據(jù)在通過雅虎全球骨干網(wǎng)絡分發(fā)到各個數(shù)據(jù)中心的服務端,以方便前端應用的調(diào)用。同時Yahoo!在云端(THE CLOUD)還提供共享的云存儲(STORAGE),以方便全球化應用的同步和調(diào)用各種共享數(shù)據(jù)。
除了這些常見的技術來幫助快速構建超大規(guī)模應用,我們還提供了大量的技術和產(chǎn)品來進行高效的運維和管理:
主機信息管理系統(tǒng):通過主機信息管理系統(tǒng)管理所有系統(tǒng)硬件信息,如CPU、內(nèi)存、硬盤、網(wǎng)卡地址、Console接口、電源接口、物理位置等。
角色配置管理系統(tǒng):主要是把主機根據(jù)角色分成不同的組,不同角色的主機會應用不同的配置。不同角色的主機有不同的運維團隊、系統(tǒng)配置、應用配置等。
網(wǎng)絡設備管理系統(tǒng):包括交換機上的訪問控制列表、負載均衡設備的配置、全球負載均衡配置,以及訪問狀態(tài)數(shù)據(jù)的統(tǒng)計。
統(tǒng)一的監(jiān)控平臺:用于從不同層面進行監(jiān)控,我們有所有主機系統(tǒng)數(shù)據(jù)的監(jiān)控,也有基于服務可用性的監(jiān)控。然后我們也有訪問量、訪問延時等應用層面的數(shù)據(jù)監(jiān)控,并可以和歷史數(shù)據(jù)進行比較。
所有的這些平臺大多都是雅虎運維團隊自行開發(fā)和維護的,更貼合Yahoo!的使用體驗,幫助對超大規(guī)模的主機進行統(tǒng)一和高效的管理。
運維團隊
前面的兩條分別是硬件和軟件環(huán)境,除了一流的硬件和完備的軟件環(huán)境,能夠?qū)崿F(xiàn)高可用性大規(guī)模應用的核心,還是人。所以我們在最后,會給大家介紹雅虎的全球運維團隊是如何工作的。
在Yahoo!我們的運維團隊除了基礎設施的Operation團隊,如數(shù)據(jù)中心現(xiàn)場工程師(SiteOps)、網(wǎng)絡運維工程師(NetOps)、基礎設施(DNS、DHCP等)運維團隊(InfraOps)和安全團隊(Paranoid)等。我們還會按照產(chǎn)品線劃分出Service Engineer團隊,來支持這項產(chǎn)品的應用運維。
SE(Service Engineer)團隊和大部分公司的系統(tǒng)運維工程師一樣,會負責生產(chǎn)系統(tǒng)維護,如部署應用、監(jiān)控報警、配置管理、變更管理及故障管理。除此之外,在雅虎SE團隊會更多的深入了解應用。