老闆,運維和開發又打起來了

往期推薦

正文

這些場景不知道你們以前是否經歷過?


老闆,運維和開發又打起來了

然後就在和測試mm愉快的聊天中度過了一天!

然而,和運維大兄弟們一般是這樣交流的:

老闆,運維和開發又打起來了

和運維撕逼不斷,但是問題卻很難解決!

以前公司沒使用Docker的時候以上這些經常會發生,自從用上Docker容器後,實現了開發、測試和生產環境的統一化和標準化。鏡像作為標準的交付件,可在開發、測試和生產環境上以容器來運行,最終實現三套環境上的應用以及運行所依賴內容的完全一致。現在和運維小哥哥小姐姐們相處可以說是如沐春風。

現在很多互聯網公司都在構建docker+微服務的架構體系。但是很多開發者根本不了知道微服務為什麼一定要用docker?

這裡必須要先說明物理機、虛擬機、容器三者的優缺點。基本概念所謂的物理機就是下面這樣的別墅:

老闆,運維和開發又打起來了

那麼虛擬機機就是下面這樣的套房:

老闆,運維和開發又打起來了

最後就是我們的容器,就是下面這樣的膠囊公寓:

老闆,運維和開發又打起來了

Docker本身並不是容器,它是創建容器的工具,是應用容器引擎。Docker有兩句口號:

“Build, Ship and Run”

“Build once,Run anywhere(搭建一次,到處能用)”。

容器是一種輕量級、可移植、自包含的軟件打包技術,使應用程序可以在幾乎任何地方以相同的方式運行。

容器之間是共享同一套操作系統資源的,由於容器是共享主操作系統的內核,因此就無法在服務器上運行與主服務器不同的操作系統,也就是說不能再Linux的服務器上運行Windows。

就如上面哪個圖一樣,每個膠囊容器是公用一個廁所,廚房,每個膠囊內無法再構建出自己的廁所和廚房!

容器的優勢

隔離強:

用了docker容器後,將Docker可以將我們的應用程序打包封裝到一個容器中,該容器包含了應用程序的代碼、運行環境、依賴庫、配置文件等必需的資源。

容器之間達到進程級別的隔離,在容器中的操作,不會影響道宿主機和其他容器,這樣就不會出現應用之間相互影響的情形!

可移植性:

現在:自從用上docker容器後,可以實現開發、測試和生產環境的統一化和標準化。鏡像作為標準的交付件,可在開發、測試和生產環境上以容器來運行,最終實現三套環境上的應用以及運行所依賴內容的完全一致。

在現在微服務的架構中,一個應用拆成幾十個微服務,每個微服務都對應有開發、測試、生產三套環境需要搭建。自己算算,如果採用傳統的部署方式,有多少環境需要部署。

曾聽聞某公司在新建一個項目的時候,要花整整一個禮拜來搭建環境,簡直是慘不忍睹!

輕量和高效:

和虛擬機相比,容器僅需要封裝應用和應用需要的依賴文件,實現輕量的應用運行環境,且擁有比虛擬機更高的硬件資源利用率。

在微服務架構中,有些服務負載壓力大,需要以集群部署,可能要部署幾十臺機器上,對於某些中小型公司來說,使用虛擬機,代價太大。如果用容器,同樣的物理機則能支持上千個容器,對中小型公司來說,省錢!

Docker正風靡全球,成為開發和運行容器的化應用的標準。它不僅為我們節約維護成本,還為應用提供更好的隔離性、可移植性、安全性。

最重要的是,它為微服務帶來的彈性伸縮,服務編排功能,已是當今大型互聯網應用不可或缺的一環,是離一站式解決問題最近的方案。能夠駕馭Docker,你才能進入架構的殿堂。

整理的Docker和java資料,需要的小夥伴關注+私信【資料】即可免費獲得!

老闆,運維和開發又打起來了

老闆,運維和開發又打起來了


分享到:


相關文章: