摘要:分布式數(shù)據(jù)庫的結(jié)合,帶來諸多的好處部署簡單,使用鏡像部署非常簡單,特別是對集群環(huán)境,使用鏡像的部署還可以再數(shù)據(jù)庫上提前集成等架構(gòu),真正實現(xiàn)一步到位。
來自重慶慧谷科技的蔣勇先生,作為SequoiaDB社區(qū)的“骨灰級成員”,于最近分享了主題為“Dockerizing SequoiaDB”的技術(shù)專題,分享主要介紹了他們公司如何使用Docker制作國內(nèi)領(lǐng)先的NoSQL數(shù)據(jù)庫SequoiaDB的鏡像的過程,以及有關(guān)Docker和Core OS一些介紹和使用心得,那么筆者就將對他的演講進行歸納總結(jié),順便談一談Docker與分布式數(shù)據(jù)庫結(jié)合的必要性。
技術(shù)新潮流 - Docker隨著如今開源軟件以及開源項目的熱潮,Docker作為如今在技術(shù)圈非?;鸨囊豢铋_源軟件產(chǎn)品,除了開源項目的貢獻非常活躍,目前應(yīng)用也十分的廣泛,包括Redhat在內(nèi)的多個操作系統(tǒng)都已經(jīng)能支持Docker,而更是無數(shù)的軟件已經(jīng)在使用Docker鏡像進行安裝部署。
那么Docker是什么呢?
Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。幾乎沒有性能開銷,可以很容易地在機器和數(shù)據(jù)中心中運行。最重要的是,他們不依賴于任何語言、框架包括系統(tǒng)。
這是對Docker的一個官方解釋,簡單說,有兩個部分:
1) 對于應(yīng)用程序,曾經(jīng)我們需要為了不同的系統(tǒng)專門的調(diào)整應(yīng)用程序的代碼或者是構(gòu)造相應(yīng)的依賴包驅(qū)動等等,大大增加了開發(fā)量以及開發(fā)的難度。現(xiàn)在,Docker向不同的應(yīng)用程序,提供了一個統(tǒng)一的環(huán)境。
2) 對于服務(wù)器,為了支持不同版本的應(yīng)用,曾經(jīng)可能需要在物理機上安裝多個版本或者不同的GuestOS或者說虛擬機。這就大大占用了物理機的性能,影響了最終程序的表現(xiàn),提高了資源的成本。
使用Docker容器的方式,對于應(yīng)用程序,不需要開發(fā)多種多樣的版本或者是針對OS每個版本的升級再進行代碼方面的調(diào)整,實現(xiàn)了廣泛的兼容性和開發(fā)的最簡性。同時對于物理機,部署的環(huán)境“瘦身”也節(jié)約了更多的資源,將更多的資源用于提高應(yīng)用程序本身的性能。
CoreOS是Docker的不二之選?之前大概介紹了Docker,那么服務(wù)器上面還是需要最基本的應(yīng)操作系統(tǒng)才能支撐Docker容器,那么這么多中的Linux內(nèi)核OS究竟哪一個好呢?筆者和很多Docker技術(shù)專家的的觀點就是Core OS。
CoreOS是一個基于Linux 內(nèi)核的輕量級操作系統(tǒng),為了計算機集群的基礎(chǔ)設(shè)施建設(shè)而生,專注于自動化,輕松部署,安全,可靠,規(guī)?;?。作為一個操作系統(tǒng),CoreOS 提供了在應(yīng)用容器內(nèi)部署應(yīng)用所需要的基礎(chǔ)功能環(huán)境以及一系列用于服務(wù)發(fā)現(xiàn)和配置共享的內(nèi)建工具。
簡單說,CoreOS去掉了大量的非必要的功能,只保留了Server端需要的最基本功能,真正意義做到了“輕量化”。
此外,CoreOS還做到了:整體系統(tǒng)升級/回滾方案;容器化所有非系統(tǒng)應(yīng)用、無包管理器;集群化調(diào)度器Fleet;分布式高可靠的KV存儲系統(tǒng)ETCD
這些特性都讓它成為Docker生態(tài)的首選操作系統(tǒng)。不過最新的消息是,CoreOS不滿足于做Docker生態(tài)下的一環(huán),它正在推出自己的容器AppC計劃,想對Docker來一招“釜底抽薪”。當(dāng)然,現(xiàn)階段并沒有出現(xiàn)完全的兩者 “分手”,所以對于普通使用者,并沒有太大影響。
Docker+分布式數(shù)據(jù)庫數(shù)據(jù)庫是每一個軟件項目必須的一個部分,作為這樣的一類底層基礎(chǔ)軟件,兼容性、通用性、易用度都是需要考慮的重點。非常遺憾的是,現(xiàn)在的操作系統(tǒng)以及數(shù)據(jù)庫都沒有完全的實現(xiàn)完全的通用。特別對于NoSQL數(shù)據(jù)庫這樣的分布式系統(tǒng),需要部署在多臺物理機時,對于通用性要求就更高了。
目前,像SequoiaDB已經(jīng)實現(xiàn)了自動化的安裝,大大提升了部署的效率,但是考慮到部署之后的配置以及不同環(huán)境下的調(diào)試問題,仍然可能會耗費不小的人力物力。所以基于剛剛提到的Docker的優(yōu)點,作為一個通用的基礎(chǔ)軟件,NoSQL數(shù)據(jù)庫的Docker化就成了必須。
一個簡單的例子,你可以用docker把數(shù)據(jù)庫的數(shù)據(jù)與數(shù)據(jù)庫程序本身分離開:用一個container A作為數(shù)據(jù)存儲,然后另一個container B運行數(shù)據(jù)庫。當(dāng)你想升級數(shù)據(jù)庫時,用新的container C替換掉container B即可。
Docker+分布式數(shù)據(jù)庫的結(jié)合,帶來諸多的好處:
1) 部署簡單,使用鏡像部署非常簡單,特別是對集群環(huán)境,使用Docker鏡像的部署還可以再數(shù)據(jù)庫上提前集成Hadoop、Spark等架構(gòu),真正實現(xiàn)“一步到位”。
2) 方便應(yīng)用的更新,應(yīng)用的更新只需要考慮制作一個新的鏡像就可以與容器適配,無需重新再調(diào)整與底層的配置。數(shù)據(jù)和程序的分離,這樣升級替換等等都不會影響到數(shù)據(jù)。
3) 操作簡單方便,除了底層免除了復(fù)雜的與環(huán)境進行配置的工作,操作也更加方便,配置好的Docker鏡像在部署時候只需要一條指令就可以了。
4) 開發(fā)、應(yīng)用環(huán)境一致,Docker讓數(shù)據(jù)庫能做到 開發(fā)---測試---實施應(yīng)用 三個階段的環(huán)境是完全一致的。降低開發(fā)到應(yīng)用過程中的工作量,開發(fā)出來就能保證實際應(yīng)用環(huán)境上能同樣的運行。
5) 系統(tǒng)穩(wěn)定,因為Docker的隔離作用,將應(yīng)用與OS獨立開,這樣能更好保證整個系統(tǒng)的穩(wěn)定性。
6) 節(jié)省系統(tǒng)資源,系統(tǒng)只需要運行一個統(tǒng)一的環(huán)境就可以,不需要占用太多性能去支持運行環(huán)境本身,能將更多的系統(tǒng)資源投入到應(yīng)用當(dāng)中。
有了這些特性, Docker+數(shù)據(jù)庫,將成為一個數(shù)據(jù)庫發(fā)展的新方向,Docker這樣的通用性和簡單操作解決方案,大大提高了數(shù)據(jù)庫使用的效率,幫助使用者節(jié)約了大量成本。
Docker是如今技術(shù)圈的新潮流,開發(fā)人員是最樂見于Docker的這種應(yīng)用部署模式,因為應(yīng)用的生命周期起始于開發(fā)人員的開發(fā)系統(tǒng),經(jīng)過開發(fā),測試,壓力測試,等過程,最終應(yīng)用發(fā)布到生產(chǎn)系統(tǒng),并可能在不同的生產(chǎn)系統(tǒng)中遷移。應(yīng)用開發(fā)人員對此都會有切身的體會,任何微小的運行環(huán)境的錯誤都會導(dǎo)致應(yīng)用出現(xiàn)問題,尤其在講究快速敏捷的今天,應(yīng)用模塊,新的代碼,新的配置,被快速的加入應(yīng)用的環(huán)境中,可能還沒等寫入到文檔,新特性就已經(jīng)被推送到生產(chǎn)上了。作為一個新的技術(shù),筆者也希望更多的產(chǎn)品能加強與Docker的結(jié)合,幫助產(chǎn)品更好的使用。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26423.html
摘要:類似包中的功能這很好的解決了的大數(shù)據(jù)級瓶頸問題。也支持分布式的機器學(xué)習(xí)算法,比如使用機器學(xué)習(xí)庫。部署本文將通過講解如何快速部署容器,并通過一些簡單的機器學(xué)習(xí)例子展示如何使用這個航母級別的組合拳。 showImg(https://segmentfault.com/img/remote/1460000004838121); 題圖為美國尼米茲核動力航空母艦 介紹 大數(shù)據(jù)時代,我們常常面對海量...
摘要:期待大家的參與上海站圓滿結(jié)束,嘉賓和觀眾熱情不減,現(xiàn)場分享也讓上海觀眾收獲到滿滿的干貨,期望我們未來為大家?guī)砀嘤腥さ脑掝}。 SegmentFault D-Day Docker 主題沙龍上海站,在五角場 VMware 上海研發(fā)中心完美結(jié)束,本次沙龍我們邀請具有實踐經(jīng)驗的四位嘉賓,分享滿滿的干貨,為開發(fā)者們介紹 Docker 技術(shù)及其應(yīng)用。 showImg(https://segmen...
摘要:并不是因為它是閃亮的新事物或者它是一些虛構(gòu)的最佳實踐,而是因為像亞馬遜或者已經(jīng)在這上面投入了年的心血,他們告訴了我們?nèi)绾螛?gòu)建真正有規(guī)模的系統(tǒng)。截止目前,我們已經(jīng)部署了由亞馬遜等提供的重量級虛擬化服務(wù)器。 周一時候數(shù)人云與大家分享了一篇關(guān)于Docker的反方言論——《一份Docker的反方辯論——我還是用Heroku好了》,一周之后,同樣的作者,又為Docker正名,寫了一篇正方言論。D...
閱讀 3083·2023-04-25 18:54
閱讀 2601·2021-11-02 14:40
閱讀 3210·2021-09-23 11:58
閱讀 2441·2019-08-30 13:50
閱讀 1247·2019-08-29 12:46
閱讀 3134·2019-08-28 17:51
閱讀 690·2019-08-26 11:47
閱讀 912·2019-08-23 16:17