走進支撐過8億用戶的Yahoo!數據中心

jopen 10年前發布 | 10K 次閱讀 Yahoo!

        【編者按】Yahoo!是一家全球知名的互聯網公司,擁有過 8 億的活躍用戶,提供了 60 多個全球化產品,分別部署在 20 多個國家或地區的數十萬臺服務器之上,然而雅虎全球的運維團隊卻僅有數百人。下面,我們通過雅虎北京全球研發中心高級系統運維工程師劉元概述的三個方面來 了解雅虎的技術運維體系,剖析超大規模網絡應用的運維挑戰,走進 Yahoo!數據中心!以下為原文:

        基礎設施

        “工欲善其事,必先利其器”——需要支撐超大規模的網絡應用,超大規模的全球基礎設施是必不可少的。所以我們先看 Yahoo!數據中心和全球的骨干網絡有哪些特別的設計和考慮,來幫支撐超大規模的互聯網應用。 

走進支撐過8億用戶的Yahoo!數據中心走進支撐過8億用戶的Yahoo!數據中心

        首先通過兩張圖片(圖1)來了解 Yahoo!數據中心。我們的數據中心大多是自主設計和建造的,尤其在北美地區,我們自主設計并建造了三個超大規模的數據中心。這三個數據中心初期設計的 容量均為 20 兆瓦,大概可容納 25000 到 30000 臺服務器及相應網絡設備,并均有能力通過后續容量擴展至 50 兆瓦以上。

        如果有參觀過國內數據中心,或者有數據中心建設經驗的同學可能會有所了解。影響數據中心建設的最主要因素往往不是網絡帶寬,而是電力和制冷。所 以,雅虎通過近 20 年的經驗積累,在這兩方面沉淀了大量的專利技術以提高數據中心的密集度。我們自行設計機架及其電源模塊以保證所有機架都能滿負荷工作,同時實現所有電源的 遠程網絡控制,這樣可以有效的提升可維護性,降低現場工程師的工作負擔。滿架的服務器機架還有另一個好處:所有的服務器都是前吸冷風,后排熱風,我們將服 務器機架相對排列(面對面,背對背),這樣就可以實現冷熱風道的隔離,甚至完全密封熱風通道,促使冷空氣在均勻通過所有服務器散熱后,由熱風通道排出。這 樣不僅降低了制冷面積,還提升了散熱效率。通過建設超大規模的數據中心,我們不僅增加了數據中心的密集度,提升了單個數據中心的計算能力,滿足了日益增長 的超大規模應用需求,同時還能提升數據中心現場工程師的管理效率,降低維護成本。此外,我們也不斷聚焦新技術的采用以降低能源消耗。我們數據中心通過精心 的設計,實現 PUE(能源使用效率=總體能源消耗/IT 設備能源消耗,越接近 1 代表能源效率越高)僅為 1.08 的業界領先水平。

        除了數據中心是我們自行設計并建造的,我們全球的骨干網絡也是自主設計。我們通過自行鋪設光纜或租用運營商網絡,構建了自己的 Yahoo!全球骨干網。所有的網絡設備都由我們的網絡運維團隊管理,核心網絡均是多鏈路冗余,實現單點網絡故障的自動轉移,而不依賴網絡運營商提供的 SLA。

走進支撐過8億用戶的Yahoo!數據中心

圖 2 全球骨干網絡示意圖(不代表 Yahoo!全球骨干網絡設計)

        我們的全球骨干網絡均為高帶寬互聯,區域內我們提供 10Gbps-40Gbps 乃至北美地區的 200Gbps 互聯帶寬,洲際間也提供 20Gbps 的多鏈路冗余。骨干網絡主要是傳輸雅虎內部數據,分發應用所需的數據到全球所有數據中心,收集全球用戶訪問數據到后端計算網格進行匯總和計算。

        Yahoo!全球骨干網絡除了與傳統運營商網絡互聯互通,以方便最終用戶能通過其運營商網絡快速接入雅虎的各項服務,同時我們還與其他的大型互 聯網公司有交換網絡連接,這樣我們與其他大型互聯網公司間的數據交換(如郵件數據交換)即可通過我們的交換網絡傳輸,不再依賴于運營商網絡。這樣不僅提高 了交換能力,更大范圍降低對網絡運營商的依賴性。

        技術生態圈

        有了世界頂尖的硬件環境,軟件環境也不可少。下面我們著重介紹下 Yahoo!的技術生態圈,看看 Yahoo!使用了哪些產品和技術來支持大規模網絡應用。

        在雅虎內部構建一個超大規模應用其實并不是那么的復雜,因為我們已經提供了一整套完整的技術體系來幫助開發人員快速建立起一個具有高可維護性的超大規模應用。

走進支撐過8億用戶的Yahoo!數據中心

圖 3 Yahoo!數據中心技術生態圈

        從這張圖我們可以看到一個新應用在生態圈里和現有技術平臺的關系:

        新應用(APPLICATION)只需要更多的關注自身的業務邏輯。與應用密切關聯的本地信息,我們有一些本地存儲(LOCAL STORAGE)技術來供應用使用,比如關系性數據庫 MySQL、Oracle,存儲 Key-value 型數據的 MDBM 和 Memcache。另外,雅虎還提供了大量的平臺服務(PLATFORM SERVICES)供我們各種應用使用。比如統一驗證平臺 YCA 來完成所有應用內及應用間的身份驗證,統一防御平臺 Ydod 來幫助我們識別并且隔離惡意/濫用的流量,用戶信息服務 UPS 可以讓應用方便的獲取這個用戶的相關信息,如地理位置,興趣喜好等。個性化內容推薦服務 Slingstone,可以直接向用戶提供個性化的雅虎內部及合作伙伴的內容信息。另外新應用還能方便快捷的接入廣告平臺(AD SERVER),獲取個性化推薦的廣告。前端應用收集到的各種應用相關信息(如瀏覽點擊數據),通過我們構建在全球骨干網絡之上的數據高速公路(DATA HIGHWAY)這一統一數據通道,及時地回傳到雅虎全球最大的商用 Hadoop 群集。在 Hadoop 群集上不同應用及平臺服務根據各自的需求,處理對應的數據,并將處理好的數據在通過雅虎全球骨干網絡分發到各個數據中心的服務端,以方便前端應用的調用。 同時 Yahoo!在云端(THE CLOUD)還提供共享的云存儲(STORAGE),以方便全球化應用的同步和調用各種共享數據。

        除了這些常見的技術來幫助快速構建超大規模應用,我們還提供了大量的技術和產品來進行高效的運維和管理:

  • 主機信息管理系統:通過主機信息管理系統管理所有系統硬件信息,如 CPU、內存、硬盤、網卡地址、Console 接口、電源接口、物理位置等。
  • 角色配置管理系統:主要是把主機根據角色分成不同的組,不同角色的主機會應用不同的配置。不同角色的主機有不同的運維團隊、系統配置、應用配置等。
  • 網絡設備管理系統:包括交換機上的訪問控制列表、負載均衡設備的配置、全球負載均衡配置,以及訪問狀態數據的統計。
  • 統一的監控平臺:用于從不同層面進行監控,我們有所有主機系統數據的監控,也有基于服務可用性的監控。然后我們也有訪問量、訪問延時等應用層面的數據監控,并可以和歷史數據進行比較。

        所有的這些平臺大多都是雅虎運維團隊自行開發和維護的,更貼合 Yahoo!的使用體驗,幫助對超大規模的主機進行統一和高效的管理。

        運維團隊

        前面的兩條分別是硬件和軟件環境,除了一流的硬件和完備的軟件環境,能夠實現高可用性大規模應用的核心,還是人。所以我們在最后,會給大家介紹雅虎的全球運維團隊是如何工作的。

        在 Yahoo!我們的運維團隊除了基礎設施的 Operation 團隊,如數據中心現場工程師(SiteOps)、網絡運維工程師(NetOps)、基礎設施(DNS、DHCP 等)運維團隊(InfraOps)和安全團隊(Paranoid)等。我們還會按照產品線劃分出 Service Engineer 團隊,來支持這項產品的應用運維。

        SE(Service Engineer)團隊和大部分公司的系統運維工程師一樣,會負責生產系統維護,如部署應用、監控報警、配置管理、變更管理及故障管理。除此之外,在雅虎 SE 團隊會更多的深入了解應用。

走進支撐過8億用戶的Yahoo!數據中心

圖 4 團隊協作

        從產品設計之初,我們就會和產品經歷及研發團隊共同討論系統架構設計,確保開發團隊將要實現的是高可用性、高可擴展性及高可維護性的產品。產品 測試階段,我們也會和測試團隊保持密切的溝通,使測試環境能夠最大程度模擬生產環境的各種場景,以保證我們產品經過了完整有效的測試。系統上線前,我們還 會和各個團隊評估整個產品的可維護性,并確定應用的容量規劃及其故障轉移策略,確保 SE 團隊充分了解如何在生產環境中維護該項產品。由于不同的團隊可能在不同的國家和地區,所以只有更緊密的全球化協作,才能為用戶提供一個高可用性、高可維護 性的全球化產品。

        產品上線以后,才是產品整個生命周期的開始,我們需要確保產品在其設計的生命周期內,都能夠按照我們的預期提供高可用性的服務。所以在日常維護 中,我們會和產品及研發團隊一同分析產品運行狀態,分析總結各種故障,不斷的修正已有的 Bug,提供新功能的建議與意見。根據各地用戶分布及產品的運行狀態,修正我們的容量規劃及故障轉移策略,進一步提升用戶體驗。

        結語

        以上只是雅虎在超大規模應用運維體系的簡單概述,并沒有太多的技術細節,瑾作拋磚引玉之用。雅虎全球運維團隊的工程師利用他們的智慧,不斷創新,一一應對各種挑戰,完成一個個不可能完成的任務。

來自: CSDN
                    <span id="shareA4" class="fl">                          </span>
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!