該文章旨在描述從零開始搭建環境,中間遇到的問題以及最終的經驗總結。
當前版本針對於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部署實戰