自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

譯文
云計算
瞧瞧Docker容器到底如何簡化應(yīng)用程序的開發(fā)和部署、促進(jìn)最佳實踐,以及帶來基于微服務(wù)的新一批應(yīng)用程序。

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

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

[[131061]] 

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

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)系。

[[131062]]

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

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

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

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

[[131063]]

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

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

#p#

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

[[131064]]

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

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

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

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

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

[[131065]]

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

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

[[131066]]

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

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

原文標(biāo)題:4 ways docker fundamentally changes application development

責(zé)任編輯:Ophira 來源: 51CTO
相關(guān)推薦

2021-11-24 09:00:00

云計算開發(fā)應(yīng)用

2011-12-06 10:10:59

云計算移動應(yīng)用

2015-12-14 16:18:03

云計算物聯(lián)網(wǎng)應(yīng)用程序開發(fā)

2020-09-24 10:14:27

云計算云原生數(shù)據(jù)

2013-11-19 15:35:01

2023-04-25 14:33:48

2012-02-08 15:06:31

ibmdw

2015-10-26 09:56:46

數(shù)據(jù)中心樂高積木

2011-07-01 09:46:44

云計算遷移

2020-01-03 14:03:46

云計算開發(fā)云原生

2012-09-07 10:14:39

云計算ITJava

2022-09-19 00:37:13

SaaS云計算開發(fā)

2021-11-05 11:03:33

云計算開發(fā)技術(shù)

2011-07-05 09:48:02

云計算遷移

2021-10-11 09:00:00

云原生Kubernetes安全

2020-12-28 14:40:47

云計算云應(yīng)用SaaS

2017-12-10 14:13:14

云服務(wù)云原生應(yīng)用程序

2015-01-06 09:59:59

云應(yīng)用程序Java開發(fā)SQL

2012-07-18 11:29:32

ibmdw

2012-09-24 09:29:11

云應(yīng)用部署云計算模式應(yīng)用性能監(jiān)控
點贊
收藏

51CTO技術(shù)棧公眾號