DevOps 基於Walle的小型持續集成實戰(七)總結

該文章旨在描述從零開始搭建環境,中間遇到的問題以及最終的經驗總結。

當前版本針對於2.0 docker安裝版java

概要

總體流程貫通,基本能夠達到實用級別。知足2-5臺服務器,少許的應用部署是徹底能夠的,但達到必定規模以後則Walle和Jenkins的差別立刻就出來了,Walle的環境管理,服務器管理,上線通知,和各插件集成在這些巨大差距看來難以逾越。而除開Walle自己,整套設計還有很多能夠優化的點,例如編譯腳本,容器部署等。python

Walle仍舊有不少須要提升的地方

  • 發佈構建時(部署上線)服務器卡頓嚴重,基本不能夠多項目發佈。
  • 構建隊列,不能按隊列同時發佈多個任務逐一執行
  • 並行構建,不能同時執行經過任務
  • 自定義腳本,針對非git的項目不友善
  • 缺乏構建參數,目前僅有git的分支號和提交號,有時候須要傳入額外參數做用於啓動命令中
  • 環境變量,安裝較爲困難,docker-compose-python中對各環境變量支持很差。(例如angular-cli,使用起來至關彆扭)

該實戰中 - 編譯腳本能夠優化的地方

  • 重複腳本多,可使用其餘方式進行腳本管理,並相互引用。例如直接運行shell,groovy,python等。在環境準備時從git拉去腳本庫
  • 遠程包發佈,在無Ansible加持的狀況下,遠程多服務器發佈的效率不可恭維(雖然比人工強)。

該實戰中 - 容器部署能夠優化的地方

  • 日誌查詢難,運行時須要修改成sh方式啓動。nohup沒法直接使用,致使查詢日誌時候須要docker log等命令,學習成本較高
  • 服務監控難,docker-compose沒法勝任大規模集羣機器的監控(仍是須要k8s啊)

該實戰中 - 經驗分享

  • Docker內openjdk8運行時區不一致:能夠直接同宿主機映射時間命令;而後服務啓動設置額外參數(參考文章五,java部署篇)
  • Docker-compose啓動,則必須用Docker-compose命令中止;不然docker網絡沒法關閉會超出30個上線

後續

  • 想當初「docker學起來真麻煩,我又沒那麼多機器,無論怎麼我也不肯意用這些東西」,如今===>「Docker,真香!」
  • PS:最近可能會開一章k8s + SpringCloud部署實戰
相關文章
相關標籤/搜索