2014年11月,Golang官方部落格釋出Go語言核心開發組成員Andrew Gerrand文章 《Half a decade with Go》,以紀念Go語言釋出5週年。Andrew Gerrand在文章中稱,Go語言在工業界向雲端計算轉型時代找到了自己的位置,目前一些重量級的雲端計算專案比如有名的Docker等都是用Go語言開發的,並預言“2015年將是Go語言急劇發展之年”(“ 2015 will be Go’s biggest year yet.”)。

64

Go語言:制霸雲端計算時代

從國內Go語言發展和應用來看,七牛算是國內第一家選Go語言做服務端的公司。在前段時間,《技術人攻略》對七牛CEO許式偉所做的一篇深度採訪( 採訪原文)中,許式偉對“為何早在2011年Go語法還沒完全穩定下來的情況下選擇Go作為儲存服務端的主體語言”給出自己的解釋。許式偉談到說:

程式設計哲學的重塑是Go語言獨樹一幟的根本原因,其它語言仍難以擺脫OOP或函數語言程式設計的烙印,只有Go完全放棄了這些,對程式設計正規化重新思考,對熱門的物件導向程式設計提供極度簡約但卻完備的支援。Go是網際網路時代的C語言,不僅會制霸雲端計算,10年內將會制霸整個IT領域。

前不久,Facebook也開源了很多Go語言庫,可前往GitHub託管地址檢視。

10大流行Go語言開源專案

適逢Go語言誕生5週年之際,外媒JavaWorld也釋出文章,整理了由Go語言開發的10大流行開源專案。Go語言目前從虛擬化到Git程式碼託管服務等方面,都有重量級專案現身,越發凸現Go語言在雲端計算時代的重要性。

1. Docker

到現在,Docker幾乎是Go再難找到也難以複製的一個成功案例。Docker專案在2014年9月份就拿到了C輪4000萬美元融資,版本迭代速度超快,目前從GitHub看到已有78個版本,而它僅僅是再2013年初才正式開始的一個專案而已。目前,國內Docker技術推廣也進行的如火如荼,比如 Docker中文社群,CSDN也建立了 Docker專區。CSDN CODE也將在近期與Docker中文社群合作,推出Docker技術文章翻譯活動,屆時也請大家多多關注,及時關注與參與。

Docker團隊之所以喜歡用Go語言,主要是Go具有強大的標準庫、全開發環境、跨平臺構建的能力。

GitHub託管地址: https://github.com/docker/docker

2. Kubernetes

Kubernetes是2014年夏天Google推出的Kubernetes,基於Docker,其目的是讓使用者通過Kubernetes叢集來進行雲端容器叢集的管理,而無需使用者進行復雜的設定工作。系統會自動選取合適的工作節點來執行具體的容器叢集排程處理工作。其核心概念是Container Pod(容器倉)。

GitHub託管地址: https://github.com/GoogleCloudPlatform/kubernetes

3. Etcd & Fleet

etcd是由CoreOS開發並維護鍵值儲存系統,它使用Go語言編寫,並通過Raft一致性演算法處理日誌複製以保證強一致性。目前,Google的容器叢集管理系統Kubernetes、開源PaaS平臺Cloud Foundry和CoreOS的Fleet都廣泛使用了etcd。詳情,可瞭解 《Etcd:用於服務發現的鍵值儲存系統》。 Fleet則是一個分散式的初始化系統。它們之所以選擇使用Go語言,則是因為Go語言對跨平臺的良好支援,以及其背後的強大社群。

GitHub託管地址: https://github.com/coreos/etcd

4. Deis

Deis是一個基於Docker和CoreOS的開源PaaS平臺,旨在讓部屬和管理伺服器上的應用變得輕鬆容易。它可以執行在AWS、GCE以及Openstack平臺下。詳情,可瞭解 《Deis v1.0正式釋出!》。

GitHub託管地址: https://github.com/deis/deis

5. Flynn

Flynn是一個使用Go語言編寫的開源PaaS平臺,可自動構建部署任何應用到Docker容器叢集上執行。Flynn專案受到Y Combinator的支援,目前仍在開發中,被稱為是下一代的開源PaaS平臺。

GitHub託管地址: https://github.com/flynn/Flynn

6. Lime

相對上面的幾款Go語言在雲端和伺服器端之外,Lime則顯得比較特殊。Lime,則是一款用Go語言寫的桌面編輯器程式,被看做是著名編輯器Sublime Text的開源實現。

GitHub託管地址: https://github.com/limetext/lime

7. Revel

Revel是一個高生產力的Go語言Web框架。Revel框架支援熱編譯,當編輯、儲存和重新整理原始碼時,Revel會自動編譯程式碼和模板;全棧特性,支援路由、引數解析、快取、測試、國際化等功能。

GitHub託管地址: https://github.com/revel/revel

8. InfluxDB

一個Go語音編寫的開源分散式的時序、事件和指標資料庫,無需外部依賴。其設計目標是實現分散式和水平伸縮擴充套件。

GitHub託管地址: https://github.com/influxdb/influxdb

9. Syncthing

一款用Go語言編寫的開源雲端儲存和同步服務工具,使用者的資料將由自己完全控制,所有的通訊全都加密,每個訪問節點都用加密證照驗證。該專案被認為是Dropbox和 BitTorrent Sync的開源替代, 詳情。Syncthing之所以選擇Go語言,也是出於跨平臺考慮。

GitHub託管地址: https://github.com/syncthing/syncthing

10. Gogs

Gogs則是一款由國人無聞( GitHub)開發的自助Git服務專案。Gogs的目標是打造一個最簡單、最快速和最輕鬆的方式搭建自助Git服務。據作者稱,之所以選擇使用Go語言開發,就是Go允許Gogs可以通過獨立的二進位制分發,且對跨平臺有良好支援。

GitHub託管地址: https://github.com/gogits/gogs

除了上面的10款流行Go語言專案外,我們這裡另外外大家推薦幾款Go語言相關的專案,如國人開發的Go Web應用框架 Beego、開源的Go語言開發環境 LiteIDE等,它們也都很流行,希望大家多多關注並支援國人開源專案。

自 csdn