1.Docker簡介

1、PaaS平臺前端


1.PaaS平臺概述linux

PaaS,即platform as service,翻譯爲:平臺即服務。docker

PaaS是一種雲服務,它提供了應用程序的開發和運行環境,藉助於PaaS服務,你無須過多的考慮底層硬件,並能夠方便的使用不少在構建應用時的必要服務,好比安全認證等。數據庫

PaaS 旨在支持 Web 應用程序的完整生命週期:生成、測試、部署、管理和更新。安全

PaaS 讓你無需購買和管理軟件許可證、應用程序基礎結構和中間件或開發工具和其餘資源,從而避免了開支和複雜操做。你管理本身開發的應用程序和服務,剩餘事項通常由雲服務提供商負責。併發

2.PaaS平臺的侷限性負載均衡

  • 主要提供應用的部署和託管;
  • 支持單種開發語言和框架;
  • 支持特定的服務,好比只支持某種隊列等;
  • 沒有很好的解決經常使用中間件的部署問題;
  • 難以解決應用和資源的隔離問題

 

3.Docker框架

能夠理解爲新一代的PaaS平臺,Docker也被稱爲第三代Paas平臺。分佈式

 

2、項目環境問題工具


 在咱們開發一個產品過程當中,通常都經歷這麼幾個過程:

首先,產品定位,收集並肯定需求;其次,產品專員製做原型界面;緊接着,研發人員根據原型需求進行技術選型以及環境搭建;最後,測試經過部署上線。

在這個流程中,不一樣的環境部署對於項目自己的正常運行風險是未知的:

  • 好比,咱們常常聽到的一句話是:在我本機調試是正常的啊 ! 
  • 再如,Java開發上傳文件功能,在本地開發時,使用的是window系統,而部署到測試環境時是linux系統,因此本地上傳文件路徑的間隔符能夠是//,而在linux中執行時變成了/,會致使上傳路徑找不到報錯,爲了兼容運行環境咱們只能將上傳路徑修改成:System.getProperty("file.separator") 
  • 還有,測試環境部署成功並測試經過,但將代碼合併到正式版本併發布後,發現前端調用接口出現大量超時,經排查是由於生產環境系統時間爲UTC時間,跟本地相差8個小時,那麼又得來調整時間;

以上的簡單例子無不體現不一樣的環境,執行相同的代碼,產生的結果迥然不一樣,這就是環境帶來的未知風險 !

除了環境不一樣帶來的未知風險,咱們還可能碰到爲不一樣的人配置相同的開發或測試環境等等,想一想就很是的煩 !!!

 

3、docker


 1.什麼是docker

引自知乎上的解釋:https://www.zhihu.com/question/28300645/answer/320388231

顧名思義,Docker爲集裝箱,Docker在實際應用中亦起集裝箱之用——將開發、運行環境打包,方便開發環境佈置以及運行環境部署,能夠較好地減小環境部署的時間,並且在電腦上每一個Docker容器能夠工做而互不影響。

與傳統方式相比,它有如下優勢:

①、開盒即用

Docker其實就像一份外賣,你拿來就能夠直接食用,不須要特別的加工,能夠節省大量的時間,而實際上這也是環境部署問題,傳統的常看法決方案還爲VM(Virtual machine,虛擬機)。

②、運行效率高

和其餘解決方案相比,Docker像穿着薄手套吃炸雞,其餘則是像穿着厚手套吃炸雞。雖然能達到同樣的效果,可是卻能更爲方便快捷。

VM有着一個較爲致命的缺點,那就是虛擬機須要將系統內核進行虛擬,每每須要消耗大量的資源。而在Docker中則相反,你能想象樹莓派2上能運行2499個Docker容器嗎?

不過安全性問題的確存在,在目前狀況下,亞馬遜(沒記錯吧)的解決方案是每一個虛擬機中單獨運行一個Docker,以保證環境安全性。

③、環境獨立

這兒又能夠拿集裝箱類比了,在集裝箱裏,每一個箱子能夠放的東西相互獨立,互不影響。就算你裝一箱子毛線和一箱子貓,貓也弄不亂另外一個箱子的毛線。

如同VM,在同一臺計算機中,能夠運行多個Docker,它們互不影響,獨立工做。

④、可二次開發

就和大多數飯店都是買東西來加工同樣,使用Docker可讓你拿別人作的半成品進一步加工,進而得出你須要成品。固然,你的成品也能夠本身使用,或交由他人進一步加工。

在Docker中,每一個人均可以將別人作好的image(鏡像,只讀)拿來進一步配置,進而獲得本身所須要的環境(Docker官網上也會提供不少image的),也能夠將本身配置好的環境封裝成image發佈交由他人使用。

⑤、可快速配置

如同各類傻瓜相機,稍微調節就可一鍵操做,省時省力(雖然傻瓜相機效果沒那麼好,但在Docker中並不會影響實際效果)。

經過Dockerfile能夠快速生成所需環境,配置極其方便。

⑥、自帶分佈式集羣管理

一個專業知識再強的工程師,在實際建築時效率也比不上一羣民工(並無貶低之意)。

自帶分佈式集羣能夠經過分佈式計算提升總的運算能力,亦可用於負載均衡。   

 
2.Docker的應用場景
  • Web 應用的自動化打包和發佈。
  • 自動化測試和持續集成、發佈。
  • 在服務型環境中部署和調整數據庫或其餘的後臺應用。
  • 從頭編譯或者擴展示有的OpenShift或Cloud Foundry平臺來搭建本身的PaaS環境。
 
3.Docker的"吉祥物"
每一個開源項目的背後,都有一個默默讓人記住的"吉祥物",而Docker的"吉祥物",更生動的說明其相似集裝箱的功能:
相關文章
相關標籤/搜索