Github 棧的底端是硬體

2021-07-10 11:55:35 字數 1410 閱讀 8242

「github 最初是為我們自己建立的,我們基本上都是軟體工程師所以我們想要乙個好的工具做開發。」,lambert 如是說道,「我們使用 github 去構建 github,同時這也是我們每天去管理所有事物的東西。人力資源和法律團隊在他們的工作流程上也在使用 github。不僅僅只是程式設計師在使用 github。我們非常幸運能夠用其他公司不一定能做的方式完成了我們的**。如果你招一些開發者為廣告系統做開發,除非他們根本不在乎討不討厭廣告,否 則他們是不會願意幹的。而我們所有的開發人員都喜歡git並且所有的工作都圍繞著它,所以我們有為我們每天使用的工具而工作的特殊待遇。 」

github 棧的底端是硬體,它由幾百台分布在各地資料中心的x86伺服器組成。(github 沒有透露這些伺服器位於何處,但 lambert 確實說過,由於全球使用者基數增長,github 正在考慮在全球其他地區建立資料中心。)

「我們使用標準**商的現成機器,」 lambert 說道, 但沒有提及**商的名字和配置. 「我們對軟體執行做了很多優化,但針對硬體我們並沒有做不合適的大規模定製化。隨著規模變大,我們試圖讓軟體容錯性更好,並且將資料拷貝到一次性機器上, 這樣我們就用不著維修機器了。你只需要毀掉它,重新將資料放到另一台機器上。這會讓購買機器變得便宜,同時擴充套件的成本也更低。」

「我們確實需要構建定製化和非比尋常的東西,因為一旦我們做了,我們就失去了社群正在做的東西的好處。這也告訴了我們怎麼選擇資料庫,因為 mysql 是每個人都在用的資料庫。如果你使用它時碰到問題,這個問題別人也會碰到過,你自然不會碰到誰都無法理解的故障。」

硬體明顯沒有那麼有趣 ——尤其對於軟體工程師來說。但是 lambert 尤其對自家開發的部署系統 gpanel 感到興奮,它用 ruby 開發,掛鉤到 puppet 配置工具,讓公司裡的任何人都可以準備機器並在上面發布軟體。

「這讓我們像在公有雲上一樣部署軟體,卻又允許我們享受擁有自己的硬體的所有好處。」

github 的軟體基礎當然是 linux,lambert 也說過公司當然有足夠的專家來運**己的 linux。但它沒有這麼做,而是簡單地使用 canonical ubuntu 分布式伺服器。至於儲存 git **和 github **倉庫訪問控制系統的其他部分的資料庫,github 依賴 mysql 關聯式資料庫。github 自己維護 linux 和 mysql 軟體,以及 ruby 和 rails。github 聘用了 ruby 和 rails 社群的主要維護者,因此可以推論,github 在社群做自己的技術支援。但事實上隨著應用的規模擴大,github 同時擁有自定義版本的 ruby 和 rails。

fork **

「當資料來臨時,對我們來說真的是規模問題,我們正在使用乙個高可用的方式彈性儲存資料,」lambert 說道,」它是關於適應 git 具有可擴充套件性和易用性,因為它從來沒有考慮過這一點。我們測量,github 是最大的 ruby on rails 程式之一 – 許多公司都沒有大規模的執行 ruby。我們保持精益,做優化,以保持這種方式。

軟體是如何控制硬體的?

軟體的本質是 和資料,和資料最終都是以二進位制的形式儲存,二進位制就是01011101101001010這種數字串,為什麼二進位制串就能控制硬體呢?看了知乎的乙個答案我也有了自己的一點想法。其實一直就沒有二進位制這種東西,機器也不知道二進位制這種東西,它也識別不了,機器只能 識別 電壓的高低,高電壓...

什麼是硬體設計? 成功的硬體設計需要什麼?

硬體設計就是根據產品經理的需求prs product requirement specification 在cogs cost of goods sale 的要求下,利用目前業界成熟的 晶元方案或者技術,在規定時間內完成符合prs功能 function 效能 performance 電源設計 pow...

Git連線Github是遇到的問題

ssh t git github.com 報錯 warning permanently added the rsa host key for ip address 192.30.253.113 to the list of known hosts.這個需要修改,etc hosts,加上下面這行 19...