日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker容器实战思维

發布時間:2023/12/4 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker容器实战思维 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Docker成功的基礎

  • Docker的實現用到的基礎技術(cgroups, namespace,分層文件系統)在Docker之前已經存在很多年,并且 Linux Containers(LXC)也在很多企業的環境中得到了大量的應用實踐,并得到明顯優勢。Google大規模容器集群的性能比傳統虛擬機也要高很多,接近bare Metal。與傳統虛擬機相比,容器集群讓公司擁有秒級別而非分鐘級別的彈性計算伸縮能力,同事使用更少的機器運行更多實例。
  • Docker的優勢:Docker首次創造了一種簡單容易運行的并且覆蓋應用全生命周期的工作流,用戶可以通過簡單指令或者Restful API來拉取,打包,運行,維護容器。這種簡單化從根本上降低了應用程序不是的難度,極大提高了應用運行時環境的不是,維護的效率。用戶可以不依賴類似Ansible, Chef,Puppet這類的配置管理和發布系統,不需要再部署中同事光之基礎系統與軟件的安裝配置,以及應用的安裝調試。
  • Docker提高統一實踐方法,每個服務(或應用)維護一個Dockerfile文件,即使用編排工具如Docker Compose,一個服務(或應用)也只需要維護一個docker-compose.yml文件。應用程序及其運行時環境全部打包到一個簡單易讀的Dockerfile或者Compose文件,開發團隊和運維團隊可以透明的合作維護這個文件,極大降低了溝通成本與部署成本,極大滿足了研發團隊與DevOps(開發運維一體化)團隊,運維團隊之間的溝通需求,清晰劃分了責任邊界。

研發人員眼中的容器

  • 快速上手新的技術:新技術起點都是從Demo開始,學習新系統標準思路:最小系統原則,從變量最少的系統開始,循序漸進的學習
  • 通過Docker使用,用戶可以將精力和注意力都盡可能放在語言本生學習上,而無需折騰系統環境的各種配置。Docker官網口號就包含了以上含義:Build,Ship and Run Any App,Anywhere,即任何應用都可以構建,發布,運行與任何環境,Docker將環境的影響因素降至最低,使開發者能統一的掌握整個應用的生命周期。
容器化的代碼倉庫
  • 我們可以將平時積累的特定功能化的Docker容器提交到自己的容器倉庫中,這樣在接新的系統時候,可以快速規劃所需要的資源,并在最短時間內利用積累的模塊搭建起系統,從而可以快速完成任務,另外研發過程中的各種發布版本,也可以用Docker容器的方式保存,以后遇到類似需求,可以直接運行,調試并且復用代碼。
面向業務編程
  • 開發工作中,除了算法之類,在本質上是解決業務問題,滿足需求方的要求。所有能快速掌握新的業務需求和新的技術棧,是對一個有效技術人員迫切的要求。
  • 使用Docker快速掌握新技術要點并完成適當的技術儲備。假定讀者是Python技術棧后端,實現網站后臺的建設,那如何快速實現移動應用的Restful Api Server? 我們可以利用Docker Hub搜索適合作API服務的Python快速開發框架,更具自身業務需求修改Dockerfile,訂制符合要求的鏡像,然后快速啟動一套能滿足相關API的系統。

容器化開發模式

  • 傳統模式:開發團隊在開發環境完成軟件開發測試,本地完成單元測試,測試通過,則可提交代碼到git管理倉庫。測試團隊打包進行測試。運維吧應用部署到測試環境,安撫團隊或者測試團隊再次測試,沒問題后運維或者部署人員發布到生產。
  • 上述過程涉及到三個環境:開發,測試,生產,以及三個團隊:開發,測試,運維。多個環境和多個團隊之間的交互。容易出現彼此環境的不一致情況造成的各種問題。
  • 容器模式下,應用是以容器形式存在,所有和該應用相關的依賴都會在容器中,因此移植方便,不存在像傳統模式那種環境不一致的情況
  • 以下比較兩種流程圖,左邊為傳統開發流程,右邊容器化開發流程
操作流程
  • 容器化應用中,項目架構師或者PM和開發人員的作用貫穿整個開發,測試,生產三個環節。
  • 首先,架構師或PM根據項目預期創建好需要的基礎base鏡像,例如nginx,tomcat,mysql鏡像,或者將Dockerfile風發給所有開發人員,所有開發人員根據Dockerfile創建的容器或者從內部倉庫下載鏡像進行開發,達到開發環境的充分一致。若開發過程中需要添加新軟件,執行要在base鏡像的Dockerfile添加修改即可。
  • 接著開發結束后,架構師調整Dockerfile或者Docker鏡像,然后風發給測試部門,測試部門馬上可以進行測試,消除部署困難等難題。
  • 例如,用java開發語言,使用Tomcat, Weblogic作為中間件服務器,后臺數據庫使用Oracle,Mysql等容器開發之前開發到測試的流程如下圖,
  • 容器化之后開發,測試,運維工作流程如下圖:
注意事項
  • 開發測試環境,推薦使用-v共享文件夾來存儲開發人員的代碼,避免頻繁打包
  • 利用基礎base鏡像繼承特性調整鏡像的輕微變更。例如當使用程序對不同版本JDK支持,只需修改base鏡像JDK設置,之后其他依賴的鏡像重新創建過程中就可以自動完成更新

小結

  • 以上基于公司之前使用Docker Compose實戰中的一些思考,持續交付注重的是效率。一直研發流程上最讓人抓狂的是研發周期的管理。無論傳統模式還是款速迭代,瀑布流,都需要有完善的代碼周期支持。容器化正好契合了這一需求,為產品研發帶來了生產力的提升。

上一篇:Docker之Dockerfile詳解
下一篇:SpringCloud Alibaba 框架下公司架構圖

總結

以上是生活随笔為你收集整理的Docker容器实战思维的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。