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