廢話不多說,直接來幹的。這裏介紹壹套成熟的方案。
gitlab(代碼管理)+jenkins(持續集成)+k8s(服務管理)
其中涉及到的技術細節:dockerindockermakefile
gitlab使用介紹
gitlab是壹款類似github的開源代碼管理軟件,可在公司內網,直接搭建壹套私有代碼倉庫,適合團隊多人開發,具有完善的分支管理、角色管理、issue、裏程碑等。是非常優秀的壹款軟件。
jeknis使用介紹
這是壹款開源持續集成軟件,說人話就是使用他可以自動化部署服務。其具有gitlab相關的插件,安裝後可直接對接gitlab,當gitlab發生push或者merge代碼事件,會通知jeknis去完成最新推送的代碼的鏡像構建和部署。
推薦上面說的兩款技術和jeknis混合使用。
1.dockerindocker技術。顧名思義就是docker裏面運行docker,簡單點直接用dockerfile在jeknis鏡像的基礎上安裝docker客戶端或者k8s客戶端。這樣我們在容器中就可以直接調用宿主機的docker命令或者k8s命令。這對我們使用jenkins執行部署腳本,通知k8s或者docker部署服務,非常方便。
2.makefile之所以介紹這款他,是因為其具有壹個絕佳的功能,可以檢測文件內容是否發生變化,這樣對於微服務架構,其配合jenkins,無需指定什麽,就可以部署上發生文件變化的微服務。而不會影響到其他服務。
k8s使用介紹
這款當紅炸子雞?,相信大家耳聞已久。其實現了對docker的管理和編排。配合上***享存儲和其服務自動重啟機制,可以讓我們的服務無當機。
對於docker內部服務的暴露推薦ingress+service.
docker鏡像管理推薦harbor。
以上完整的自動化開發部署環境,有興趣的可以自行學習相關內容,進行搭建測試。