精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

云計(jì)算的樂高積木Docker如何重構(gòu)應(yīng)用程序開發(fā)

責(zé)任編輯:editor005

作者:布加迪編譯

2015-04-02 13:30:09

摘自:51CTO

完全封裝的Docker容器能夠?yàn)槲⒎?wù)應(yīng)用程序構(gòu)建一種高效的分布式模型,從而支持微服務(wù)。Docker讓任何人都可以充分利用封裝方面的最佳實(shí)踐(具體表現(xiàn)為結(jié)合別人的容器),從而改變了云開發(fā)實(shí)踐。

  Docker的發(fā)展勢態(tài)如同森林大火,勢不可擋。這項(xiàng)新型的Linux容器技術(shù)引燃了一路上的一切東西,面對其迅猛發(fā)展的勢頭,我們許多人還沒有回過神來。Docker不僅是有史以來最受歡迎的開源項(xiàng)目之一,它還從根本上改變了人們考慮構(gòu)建應(yīng)用程序的方式。

  基于Docker的應(yīng)用程序背后的許多理念從嚴(yán)格意義上講并非很新穎,但Docker給那些舊觀念帶來了全新視角。借助許多云開發(fā)實(shí)踐,Docker促進(jìn)了最佳實(shí)踐,比如12-Factor應(yīng)用程序。這些最佳實(shí)踐當(dāng)初是為了構(gòu)建基于PaaS的應(yīng)用程序而開發(fā)的,如今普遍適用于基于Docker的應(yīng)用程序。

  


  我們能從Docker熱潮中學(xué)到什么?不妨看一看這四個(gè)方面。

  1. 微服務(wù)架構(gòu)大行其道

  整體式云應(yīng)用程序的程序開發(fā)已玩完了。取而代之的是微服務(wù)架構(gòu),這種架構(gòu)可以將大型應(yīng)用程序及所有內(nèi)置功能分解為更小的、目的導(dǎo)向的服務(wù),而這些服務(wù)又可以借助通用的REST API與對方進(jìn)行聯(lián)系。

上世紀(jì)90年代,有一種類似的概念,名為基于接口/組件的架構(gòu)。而最近,面向服務(wù)架構(gòu)(SOA)似乎迎來了一些發(fā)展勢頭。如今,微服務(wù)概念已成為Docker社區(qū)的一個(gè)標(biāo)準(zhǔn)文化基因,流行的趨勢是將應(yīng)用程序分解為分離的、極簡的、專門的容器,這些容器專注于只做好一件事。

  完全封裝的Docker容器能夠?yàn)槲⒎?wù)應(yīng)用程序構(gòu)建一種高效的分布式模型,從而支持微服務(wù)。這讓規(guī)模較小的開發(fā)團(tuán)隊(duì)有機(jī)會(huì)得以使用較大規(guī)模的架構(gòu)(比如Facebook和推特使用的那種架構(gòu)),因而改變了云開發(fā)實(shí)踐。

  2. 讓開發(fā)和運(yùn)營的關(guān)系更緊密

  盡管Puppet、Chef、Salt及其他工具引領(lǐng)了開發(fā)運(yùn)營(DevOps)潮流,但這些工具在運(yùn)營團(tuán)隊(duì)當(dāng)中比在開發(fā)人員當(dāng)中更受歡迎。

  

Docker是第一種在開發(fā)人員當(dāng)中與在運(yùn)營工程師當(dāng)中一樣受歡迎的開發(fā)運(yùn)營工具。原因何在?因?yàn)殚_發(fā)人員可以在容器里面工作,而同時(shí)運(yùn)營工程師可以在容器外面工作。

  開發(fā)團(tuán)隊(duì)采用Docker時(shí),他們?yōu)檐浖_發(fā)生命周期增添了一層新的敏捷性。一大區(qū)別在于一致性。基于Docker的應(yīng)用程序在筆記本電腦上運(yùn)行與在生產(chǎn)環(huán)境中運(yùn)行完全一模一樣。由于Docker圍繞應(yīng)用程序封裝整個(gè)狀態(tài),你沒必要因底層操作系統(tǒng)存在的架構(gòu)差異而操心失去依賴項(xiàng)或軟件缺陷。

  3. 為持續(xù)集成確保一致性

  


  持續(xù)集成能夠?qū)崿F(xiàn)代碼測試自動(dòng)化,因而一向是減少成品中軟件缺陷數(shù)量的好方法。不過持續(xù)集成存在兩大弊端。

  首先,很難封裝所有依賴項(xiàng)。Jenkins和Travis等傳統(tǒng)的持續(xù)集成/持續(xù)交付(CI/CD)技術(shù)通過獲取源代碼庫,構(gòu)建應(yīng)用程序組件。雖然這種方式相對適用于許多應(yīng)用程序,不過二進(jìn)制依賴項(xiàng)或操作系統(tǒng)層面的變化會(huì)讓代碼在生產(chǎn)環(huán)境中運(yùn)行起來與在開發(fā)/測試/質(zhì)量保證環(huán)境中運(yùn)行起來略有不同。由于 Docker將應(yīng)用程序的整個(gè)狀態(tài)封裝起來,更能確保代碼在開發(fā)/測試/質(zhì)量保證環(huán)境中與在生產(chǎn)環(huán)境中運(yùn)行起來一模一樣。

  其次,持續(xù)集成并不是為微服務(wù)架構(gòu)構(gòu)建的。持續(xù)集成的設(shè)計(jì)思路其實(shí)假設(shè)應(yīng)用程序位于一個(gè)代碼庫當(dāng)中。然而,Docker最佳實(shí)踐鼓勵(lì)各個(gè)Docker容器都松散耦合的微服務(wù)架構(gòu)。這帶來了新一代的持續(xù)集成/持續(xù)交付工具,比如Drone和Shippable,它們都是從頭設(shè)計(jì)的,設(shè)計(jì)當(dāng)初就著眼于Docker容器。這些工具讓你可以開始測試從多個(gè)代碼庫獲取的多容器應(yīng)用程序。

  4. 確保最佳容器彼此協(xié)作

  Docker 并不調(diào)整你自己的服務(wù)窗口,比如Hadoop、Nginx或MongoDB,而是鼓勵(lì)開源社區(qū)在Docker Hub中相互協(xié)作、微調(diào)容器,這個(gè)公共代碼庫讓每個(gè)人都可以使用同類中最佳容器。由于Docker容器能夠封裝狀態(tài),它們讓你可以更靈活地配置運(yùn)行起來最佳的軟件。

  因此,Docker讓任何人都可以充分利用封裝方面的最佳實(shí)踐(具體表現(xiàn)為結(jié)合別人的容器),從而改變了云開發(fā)實(shí)踐。這就像云組件有一套樂高積木,它們終于有了組合起來的標(biāo)準(zhǔn)。

  云計(jì)算領(lǐng)域的樂高積木

  時(shí)常出現(xiàn)這一幕:一項(xiàng)新技術(shù)出現(xiàn)后,顛覆了現(xiàn)狀。就在不久前,云計(jì)算領(lǐng)域還以按需提供、API驅(qū)動(dòng)的虛擬機(jī)以及圍繞虛擬機(jī)建立的服務(wù)為主。這帶來了一系列旨在克服虛擬機(jī)局限性的工具。

  Docker 在迅速改變云計(jì)算領(lǐng)域的規(guī)則,徹底顛覆云技術(shù)格局。Docker為持續(xù)集成/持續(xù)交付、微服務(wù)、開源協(xié)作和開發(fā)運(yùn)營鋪平了道路,不但改變了應(yīng)用程序開發(fā)生命周期,還改變了云工程技術(shù)實(shí)踐。每天,成千上萬新的開發(fā)人員在開心地重新設(shè)計(jì)或構(gòu)建基于Docker的新應(yīng)用程序。想在不斷變化的世界保持競爭力,關(guān)鍵是要明白Docker熱潮會(huì)涌向何方。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 米脂县| 三原县| 错那县| 阜阳市| 富民县| 大新县| 梅河口市| 赣州市| 莱阳市| 汉寿县| 沙湾县| 固安县| 江源县| 铁岭市| 和静县| 呼和浩特市| 天峻县| 东莞市| 南和县| 屏东县| 道孚县| 如东县| 龙州县| 阿克陶县| 温泉县| 武陟县| 庄浪县| 萍乡市| 三亚市| 色达县| 连平县| 定边县| 千阳县| 新和县| 定州市| 井陉县| 云南省| 托克托县| 历史| 嫩江县| 株洲市|