The Westin Building Exchange

Post Title Image (圖說:當年參訪 Amazon Spheres 的時候,剛好有拍到 The Westin Building,照片中的最左邊那一棟建築物。圖片來源:Ernest。)

✳️ tl;dr

  • 之前在西雅圖市區路過開會、或探訪咖啡與美食,走來晃去一直經過它,沒想到大有來頭。
  • 威斯汀大廈交換中心是位於華盛頓州西雅圖市中心的大型電信樞紐設施。 1
  • 該建築建於 1981 年(跟我差不多年代 XDD),
  • 最初名為威斯汀大廈,是當時總部位於西雅圖的威斯汀酒店集團的辦公室。
  • 它也是西雅圖網際網路交換中心(SIX) 和 Pacific Northwest Gigapop Pacific Wave Exchange 的所在地。

  • 自 2019 年或更早起,該建築資料中心產生的熱量透過管道輸送到亞馬遜的多普勒大樓 (Doppler) ,用於隔壁多普勒大樓和其他幾棟亞馬遜大樓的暖氣供應。
  • 亞馬遜估計,在該系統 25 年的預期使用壽命內,它將節省 8,000 萬千瓦時的電力,相當於 6,500 萬磅煤炭。

  • 起因是看到 The Verge 報導 Microsoft 打算將 GitHub 整個搬移進 Azure,而好奇在被收購之前的基礎設施情形。2
  • GitHub 在 2018 年被 Microsoft 收購。所以回頭查詢 2017 年的情況。
  • GitHub blog 曾描述:“Those facilities don’t store customer data, rather they’re focused on internet and backbone connectivity as well as direct connect and private network interfaces to Amazon Web Services.” 3
  • GitHub 現在 (2025) 正進行(史上?)最大規模的基礎設施遷移計劃,計劃在 24 個月內將整個平台從自有資料中心遷移到 Azure。
  • 這次遷移的核心驅動力是 AI 工作負載的爆炸性成長:GitHub Copilot 每天產生數百萬次程式碼建議,消耗大量運算容量,現有資料中心已達到物理擴展極限。(對外總是會有一套說法,聽聽看看參考就好)(有一種冷,叫做阿罵覺得你冷。有一種移,叫做____就請你移?!)
  • 遷移策略:大部分工作需在 12 個月內完成(因為需要新舊系統並行運行至少 6 個月),GitHub 已要求團隊延遲功能開發,優先處理基礎設施遷移。

  • GitHub 在 2024 年經歷了 119 起事件,包括 26 起主要中斷,平均修復時間約 106 分鐘。4
  • 好奇搬家之後的表現。
  • 有在使用 GitHub 的各位技術管理者們,好奇各位怎麼看?會觸發做些準備嗎?

5 6

✳️ 知識圖譜

(更多關於知識圖譜…)

%%{init: {'theme':'default'}}%%
graph LR
    GitHub[GitHub Platform]:::instance
    Azure[Microsoft Azure]:::instance
    Microsoft[Microsoft Corporation]:::instance
    Copilot[GitHub Copilot]:::instance
    CoreAI[CoreAI Division]:::instance
    DevDiv[Developer Division]:::instance
    
    DataCenter[North Virginia Data Center]:::instance
    Capacity[Capacity Constraints]:::concept
    Migration[Cloud Migration]:::concept
    IaaS[Infrastructure as a Service]:::concept
    Scalability[Scalability]:::concept
    
    AI_Workload[AI Workload Scaling]:::concept
    Compute[Compute Capacity]:::concept
    LLM[Large Language Model Infrastructure]:::concept
    
    MySQL[MySQL Clusters]:::instance
    Actions[GitHub Actions]:::instance
    Search[Search Services]:::instance
    
    PMI[Post-merger Integration]:::concept
    TechStack[Technology Stack Consolidation]:::concept
    ChangeManagement[Change Management]:::concept
    
    Fedorov[Vladimir Fedorov CTO]:::instance
    Daigle[Kyle Daigle COO]:::instance
    Dohmke[Thomas Dohmke Former CEO]:::instance
    
    OpenAI[OpenAI Partnership]:::instance
    DevCommunity[Developer Community]:::concept
    Teams[Microsoft Teams]:::instance
    
    GitHub -->|migrating to| Azure
    GitHub -->|acquired by 7.5B 2018| Microsoft
    GitHub -->|integrated into 2021| DevDiv
    GitHub -->|now reports to| CoreAI
    GitHub -->|operates in| DataCenter
    GitHub -->|faces| Capacity
    
    Capacity -->|drives need for| Migration
    Migration -->|enables| Scalability
    Azure -->|provides| IaaS
    Azure -->|enables| Scalability
    Azure -->|offers| Redundancy[Global Redundancy]:::concept
    
    GitHub -->|developed| Copilot
    Copilot -->|requires| AI_Workload
    Copilot -->|consumes| Compute
    Copilot -->|built with| OpenAI
    AI_Workload -->|needs| LLM
    CoreAI -->|supports| AI_Workload
    
    GitHub -->|operates| MySQL
    GitHub -->|provides| Actions
    GitHub -->|runs| Search
    
    Migration -->|described as| Existential[Existential for GitHub]:::concept
    Migration -->|follows| PMI
    Migration -->|requires| ChangeManagement
    Microsoft -->|aims for| TechStack
    
    Fedorov -->|leads| Migration
    Daigle -->|confirms| Migration
    Dohmke -->|departed before| Migration
    
    GitHub -->|switched to| Teams
    DevCommunity -->|relies on| GitHub
    
    Migration -->|may cause| Outages[Service Outages]:::concept
    Migration -->|delays| Features[Feature Releases]:::concept
    
    PastAttempts[Past Migration Attempts]:::concept -->|includes| GitInAzure[Git in Azure]:::instance
    PastAttempts -->|includes| AzureSites[Azure Sites Automation]:::instance
    PastAttempts -->|faced| Delays[Technical Delays]:::concept
    
    classDef concept fill:#FF8000,stroke:#CC6600,stroke-width:2px,color:#000
    classDef instance fill:#0080FF,stroke:#0059B3,stroke-width:2px,color:#fff
%%{init: {'theme':'default'}}%%
graph LR
gh[GitHub]
dc[Data Center]
ghdc[GitHub owned data centers]
pop[Point of Presence]
pop_sea[Seattle POP]
pop_va[Northern Virginia POP]
th[Transit hotel]
th_wbe[Westin Building Exchange]
th_eqx_ash[Equinix Ashburn]
th_core_va1[CoreSite Reston VA1]
ix[Internet exchange and ISPs]
bb[Backbone network]
dwdm[DWDM and wavelength transport]
pci[Private cloud interconnect]
aws_dcx[AWS Direct Connect]
aws[AWS]

gh -->|operates| ghdc
gh -->|deploys| pop_sea
gh -->|deploys| pop_va

pop_sea -->|peers with| ix
pop_va -->|peers with| ix

pop_sea -->|located at inferred| th_wbe
pop_va -->|located at inferred| th_eqx_ash
pop_va -->|also interconnects at inferred| th_core_va1

pop_sea -->|connects via metro and long haul| ghdc
pop_va -->|connects via metro and long haul| ghdc

ghdc -->|linked by| bb
bb -->|uses| dwdm

pop_sea -->|uses private interconnect inferred| aws_dcx
pop_va -->|uses private interconnect inferred| aws_dcx
aws_dcx -->|connects to| aws

dc -->|has instance| ghdc
pop -->|has instance| pop_sea
pop -->|has instance| pop_va
th -->|includes| th_wbe
th -->|includes| th_eqx_ash
th -->|includes| th_core_va1
pci -->|has instance| aws_dcx

style dc fill:#FF8000,color:#ffffff,stroke:#333333,stroke-width:1px
style pop fill:#FF8000,color:#ffffff,stroke:#333333,stroke-width:1px
style th fill:#FF8000,color:#ffffff,stroke:#333333,stroke-width:1px
style ix fill:#FF8000,color:#ffffff,stroke:#333333,stroke-width:1px
style bb fill:#FF8000,color:#ffffff,stroke:#333333,stroke-width:1px
style dwdm fill:#FF8000,color:#ffffff,stroke:#333333,stroke-width:1px
style pci fill:#FF8000,color:#ffffff,stroke:#333333,stroke-width:1px

style ghdc fill:#0080FF,color:#ffffff,stroke:#333333,stroke-width:1px
style pop_sea fill:#0080FF,color:#ffffff,stroke:#333333,stroke-width:1px
style pop_va fill:#0080FF,color:#ffffff,stroke:#333333,stroke-width:1px
style th_wbe fill:#0080FF,color:#ffffff,stroke:#333333,stroke-width:1px
style th_eqx_ash fill:#0080FF,color:#ffffff,stroke:#333333,stroke-width:1px
style th_core_va1 fill:#0080FF,color:#ffffff,stroke:#333333,stroke-width:1px
style aws_dcx fill:#0080FF,color:#ffffff,stroke:#333333,stroke-width:1px
style aws fill:#0080FF,color:#ffffff,stroke:#333333,stroke-width:1px
style gh fill:#0080FF,color:#ffffff,stroke:#333333,stroke-width:1px

✳️ 地圖

Maps of The Westin Building

✳️ 延伸閱讀