1.Docker項(xiàng)目
創(chuàng)新互聯(lián)建站專注于山東網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供山東營(yíng)銷型網(wǎng)站建設(shè),山東網(wǎng)站制作、山東網(wǎng)頁設(shè)計(jì)、山東網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造山東網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供山東網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
網(wǎng)址為 。
介紹:Docker是一種操作系統(tǒng)層面的虛擬化技術(shù),可以在操作系統(tǒng)和應(yīng)用程序之間進(jìn)行隔離,也可以稱之為容器。Docker可以在一臺(tái)物理服務(wù)器上快速運(yùn)行一個(gè)或多個(gè)實(shí)例。例如,啟動(dòng)一個(gè)Cent OS操作系統(tǒng),并在其內(nèi)部命令行執(zhí)行指令后結(jié)束,整個(gè)過程就像自己在操作系統(tǒng)一樣高效。
2.golang項(xiàng)目
網(wǎng)址為 。
介紹:Go語言的早期源碼使用C語言和匯編語言寫成。從Go 1.5版本自舉后,完全使用Go語言自身進(jìn)行編寫。Go語言的源碼對(duì)了解Go語言的底層調(diào)度有極大的參考意義,建議希望對(duì)Go語言有深入了解的讀者讀一讀。
3.Kubernetes項(xiàng)目
網(wǎng)址為 。
介紹:Google公司開發(fā)的構(gòu)建于Docker之上的容器調(diào)度服務(wù),用戶可以通過Kubernetes集群進(jìn)行云端容器集群管理。
4.etcd項(xiàng)目
網(wǎng)址為 。
介紹:一款分布式、可靠的KV存儲(chǔ)系統(tǒng),可以快速進(jìn)行云配置。
5.beego項(xiàng)目
網(wǎng)址為 。
介紹:beego是一個(gè)類似Python的Tornado框架,采用了RESTFul的設(shè)計(jì)思路,使用Go語言編寫的一個(gè)極輕量級(jí)、高可伸縮性和高性能的Web應(yīng)用框架。
6.martini項(xiàng)目
網(wǎng)址為 。
介紹:一款快速構(gòu)建模塊化的Web應(yīng)用的Web框架。
7.codis項(xiàng)目
網(wǎng)址為 Labs/codis。
介紹:國(guó)產(chǎn)的優(yōu)秀分布式Redis解決方案。
8.delve項(xiàng)目
網(wǎng)址為 。
介紹:Go語言強(qiáng)大的調(diào)試器,被很多集成環(huán)境和編輯器整合。
容器是將應(yīng)用和其依賴打包在一起的一個(gè)集合。
我們要發(fā)布一款應(yīng)用,一般流程是先在測(cè)試服務(wù)器上開發(fā),配置環(huán)境,測(cè)通,然后再到生產(chǎn)環(huán)境,配置環(huán)境依賴然后部署應(yīng)用。當(dāng)我們有大量架構(gòu)不同的應(yīng)用需要配置到不同的生產(chǎn)環(huán)境,比如公有云、虛擬機(jī),很容易因?yàn)榄h(huán)境的不容導(dǎo)致發(fā)布失敗。
為了解決這個(gè)問題,受集裝箱的啟發(fā),我們將應(yīng)用和其依賴打包成一個(gè)輕量級(jí)、獨(dú)立的、標(biāo)準(zhǔn)的集合,使其可以順暢地運(yùn)行在任何一個(gè)安裝了容器管理系統(tǒng)的服務(wù)器中而不需要額外配置環(huán)境。這個(gè)集合就是容器。
容器使得開發(fā)運(yùn)維人員只需要在發(fā)布之初在本地配置一次環(huán)境,就可以無差別地在測(cè)試環(huán)境、開發(fā)環(huán)境,公有云服務(wù)器、虛擬機(jī)上運(yùn)行和維護(hù)應(yīng)用。
Docker是使用Go語言開發(fā)的一個(gè)開源項(xiàng)目,實(shí)現(xiàn)輕量級(jí)的操作系統(tǒng)虛擬化解決方案,Docker可以自行搭建和配置開發(fā)環(huán)境,可以方便地創(chuàng)建使用容器,并且提供鏡像倉庫。
Doker的核心概念包含:
容器與以容器為基本單位,提供構(gòu)建發(fā)布運(yùn)行應(yīng)用的平臺(tái)。
Kubernetes是容器集群管理系統(tǒng),是一個(gè)開源的平臺(tái),可以實(shí)現(xiàn)容器集群的自動(dòng)化部署、自動(dòng)擴(kuò)縮容、維護(hù)等功能。主要概念有:
參考文檔:
1、服務(wù)器編程:以前你如果使用C或者C++做的那些事情,用Go來做很合適,例如處理日志、數(shù)據(jù)打包、虛擬機(jī)處理、文件系統(tǒng)等。
2、分布式系統(tǒng)、數(shù)據(jù)庫代理器、中間件:例如Etcd。
3、網(wǎng)絡(luò)編程:這一塊目前應(yīng)用最廣,包括Web應(yīng)用、API應(yīng)用、下載應(yīng)用,而且Go內(nèi)置的net/http包基本上把我們平常用到的網(wǎng)絡(luò)功能都實(shí)現(xiàn)了。
4、開發(fā)云平臺(tái):目前國(guó)外很多云平臺(tái)在采用Go開發(fā),我們所熟知的七牛云、華為云等等都有使用Go進(jìn)行開發(fā)并且開源的成型的產(chǎn)品。
5、區(qū)塊鏈:目前有一種說法,技術(shù)從業(yè)人員把Go語言稱作為區(qū)塊鏈行業(yè)的開發(fā)語言。如果大家學(xué)習(xí)區(qū)塊鏈技術(shù)的話,就會(huì)發(fā)現(xiàn)現(xiàn)在有很多很多的區(qū)塊鏈的系統(tǒng)和應(yīng)用都是采用Go進(jìn)行開發(fā)的,比如ehtereum是目前知名度最大的公鏈,再比如fabric是目前最知名的聯(lián)盟鏈,兩者都有g(shù)o語言的版本,且go-ehtereum還是以太坊官方推薦的版本。
自1.0版發(fā)布以來,go語言引起了眾多開發(fā)者的關(guān)注,并得到了廣泛的應(yīng)用。go語言簡(jiǎn)單、高效、并發(fā)的特點(diǎn)吸引了許多傳統(tǒng)的語言開發(fā)人員,其數(shù)量也在不斷增加。
使用 Go 語言開發(fā)的開源項(xiàng)目非常多。早期的 Go 語言開源項(xiàng)目只是通過 Go 語言與傳統(tǒng)項(xiàng)目進(jìn)行C語言庫綁定實(shí)現(xiàn),例如 Qt、Sqlite 等。
后期的很多項(xiàng)目都使用 Go 語言進(jìn)行重新原生實(shí)現(xiàn),這個(gè)過程相對(duì)于其他語言要簡(jiǎn)單一些,這也促成了大量使用 Go 語言原生開發(fā)項(xiàng)目的出現(xiàn)。
Go語言由Google公司開發(fā),并于2009年開源,相比Java/Python/C等語言,Go尤其擅長(zhǎng)并發(fā)編程,性能堪比C語言,開發(fā)效率肩比Python,被譽(yù)為“21世紀(jì)的C語言”。
Go語言在云計(jì)算、大數(shù)據(jù)、微服務(wù)、高并發(fā)領(lǐng)域應(yīng)用應(yīng)用非常廣泛。BAT大廠正在把Go作為新項(xiàng)目開發(fā)的首選語言。
Go語言能干什么?
1、服務(wù)端開發(fā):以前你使用C或者C++做的那些事情,用Go來做很合適,例如日志處理、文件系統(tǒng)、監(jiān)控系統(tǒng)等;
2、DevOps:運(yùn)維生態(tài)中的Docker、K8s、prometheus、grafana、open-falcon等都是使用Go語言開發(fā);
3、網(wǎng)絡(luò)編程:大量?jī)?yōu)秀的Web框架如Echo、Gin、Iris、beego等,而且Go內(nèi)置的 net/http包十分的優(yōu)秀;
4、Paas云平臺(tái)領(lǐng)域:Kubernetes和Docker Swarm等;
5、分布式存儲(chǔ)領(lǐng)域:etcd、Groupcache、TiDB、Cockroachdb、Influxdb等;
6、區(qū)塊鏈領(lǐng)域:區(qū)塊鏈里面有兩個(gè)明星項(xiàng)目以太坊和fabric都使用Go語言;
7、容器虛擬化:大名鼎鼎的Docker就是使用Go語言實(shí)現(xiàn)的;
8、爬蟲及大數(shù)據(jù):Go語言天生支持并發(fā),所以十分適合編寫分布式爬蟲及大數(shù)據(jù)處理。
簡(jiǎn)單得來說,Docker是一個(gè)由GO語言寫的程序運(yùn)行的“容器”(Linux containers, LXCs); 目前云服務(wù)的基石是操作系統(tǒng)級(jí)別的隔離,在同一臺(tái)物理服務(wù)器上虛擬出多個(gè)主機(jī)。Docker則實(shí)現(xiàn)了一種應(yīng)用程序級(jí)別的隔離; 它改變我們基本的開發(fā)、操作單元,由直接操作虛擬主機(jī)(VM),轉(zhuǎn)換到操作程序運(yùn)行的“容器”上來。
Docker是為開發(fā)者和系統(tǒng)管理員設(shè)計(jì)的,用來發(fā)布和運(yùn)行分布式應(yīng)用程序的一個(gè)開放性平臺(tái)。由兩部分組成:
Docker Engine: 一個(gè)便攜式、輕量級(jí)的運(yùn)行環(huán)境和包管理器。(注* 單OS vs 單線程,是不是跟NodeJS特別像?)
Docker Hub: 為創(chuàng)建自動(dòng)化工作流和分享應(yīng)用創(chuàng)建的云服務(wù)組成。(注* 云端鏡像/包管理 vs npm包管理,是不是跟npm特別像?)
從2013年3月20日,第一個(gè)版本的Docker正式發(fā)布到 2014年6月 Docker 1.0 正式發(fā)布,經(jīng)歷了15個(gè)月。 雖然發(fā)展歷程很短,但Docker正在有越來越流行的趨勢(shì)。
其實(shí)Container技術(shù)并非Docker的創(chuàng)新,HeroKu, NodeJitsu 等云服務(wù)商都采用了類似這種輕量級(jí)的虛擬化技術(shù),但Docker是第一個(gè)將這這種Container技術(shù)大規(guī)模開源并被社區(qū)廣泛接受的。
好的部分
Docker相對(duì)于VM虛擬機(jī)的優(yōu)勢(shì)十分明顯,那就是輕量和高性能和便捷性, 以下部分摘自: KVM and Docker LXC Benchmarking with OpenStack
快
運(yùn)行時(shí)的性能可以獲取極大提升(經(jīng)典的案例是提升97%)
管理操作(啟動(dòng),停止,開始,重啟等等) 都是以秒或毫秒為單位的。
敏捷
像虛擬機(jī)一樣敏捷,而且會(huì)更便宜,在bare metal(裸機(jī))上布署像點(diǎn)個(gè)按鈕一樣簡(jiǎn)單。
靈活
將應(yīng)用和系統(tǒng)“容器化”,不添加額外的操作系統(tǒng),
輕量
你會(huì)擁有足夠的“操作系統(tǒng)”,僅需添加或減小鏡像即可。在一臺(tái)服務(wù)器上可以布署100~1000個(gè)Containers容器。
便宜
開源的,免費(fèi)的,低成本的。由現(xiàn)代Linux內(nèi)核支持并驅(qū)動(dòng)。注* 輕量的Container必定可以在一個(gè)物理機(jī)上開啟更多“容器”,注定比VMs要便宜。
生態(tài)系統(tǒng)
正在越來越受歡迎,只需要看一看Google的趨勢(shì)就知道了, docker or LXC.
還有不計(jì)其數(shù)的社區(qū)和第三方應(yīng)用。
云支持
不計(jì)其數(shù)的云服務(wù)提供創(chuàng)建和管理Linux容器框架。
有關(guān)Docker性能方面的優(yōu)勢(shì),還可參考此IBM工程師對(duì)性能提升的評(píng)測(cè),從各個(gè)方面比VMs(OS系統(tǒng)級(jí)別虛擬化)都有非常大的提升。
Performance Characteristics of VMs vs Docker Containers by Boden Russel (IBM)
Performance characteristics of traditional v ms vs docker containers
有爭(zhēng)論的部分
任何項(xiàng)目都會(huì)有爭(zhēng)論,就像Go,像NodeJS, 同樣Docker也有一些。
能否徹底隔離
在超復(fù)雜的業(yè)務(wù)系統(tǒng)中,單OS到底能不能實(shí)現(xiàn)徹底隔離,一個(gè)程序的崩潰/內(nèi)存溢出/高CPU占用到底會(huì)不會(huì)影響到其他容器或者整個(gè)系統(tǒng)?很多人對(duì)Docker能否在實(shí)際的多主機(jī)的生產(chǎn)環(huán)境中支持關(guān)鍵任務(wù)系統(tǒng)還有所懷疑。 注* 就像有人質(zhì)疑Node.JS單線程快而不穩(wěn),無法在復(fù)雜場(chǎng)景中應(yīng)用一樣。
不過可喜的是,目前Linux內(nèi)核已經(jīng)針對(duì)Container做了很多改進(jìn),以支持更好的隔離。
GO語言還沒有完全成熟
Docker由Go語言開發(fā),但GO語言對(duì)大多數(shù)開發(fā)者來說比較陌生,而且還在不斷改進(jìn),距離成熟還有一段時(shí)間。此半git、半包管理的方式讓一些人產(chǎn)生不適。
被私有公司控制
Docker是一家叫Dotcloud的私有公司設(shè)計(jì)的,公司都是以營(yíng)利為目的,比如你沒有辦法使用源代碼編繹Docker項(xiàng)目,只能使用黑匣子編出的Docker二進(jìn)制發(fā)行包,未來可能不是完全免費(fèi)的。 目前Docker已經(jīng)推出面向公司的企業(yè)級(jí)服務(wù)(咨詢、支持和培訓(xùn))。
新聞標(biāo)題:go語言虛擬化邊緣云的簡(jiǎn)單介紹
轉(zhuǎn)載來源:http://www.rwnh.cn/article0/dooccio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、企業(yè)網(wǎng)站制作、云服務(wù)器、微信公眾號(hào)、ChatGPT、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)