項目開發模型
瀑布模型
敏捷開發
持續化集成
持續化集成
涉及代碼庫服務器(git),持續化集成服務器(Jenkins),項目服務器或者項目測試服務器(tomcat)
Jenkins擁有2000多個插件能滿足大部分需要
代碼的構建風格有
自由風格(圖形化界面,各個階段分模塊)
maven風格(圖形化界面,各個階段分模塊)
pipleline(流水線的風格)風格(使用腳本構建項目)---較為靈活后續可以與kebernate結合或者docker結合使用,將Jenkinsfile腳本文件放到代碼中實現管理,同時可以將腳本中的一些參數抽取出來,由用戶輸入,文件默認名稱Jenkinsfile,放在項目的根目錄
先是項目從git倉庫拉取(需要git認證,https認證或者ssh認證-git私鑰),之后maven打包,將項目發布到tomcat服務上(需要配置服務器認證)
整個熱部署過程及是maven當中那種熱部署,不同的就是加了Jenkins中拉取git上代碼的步驟
可以通過流水的方式構建項目並發送項目的構建結果到指定的郵箱中
項目重新部署的觸發器有使用特定的token與url結合的方式構建觸發項目的部署發布
設置每次隔一段時間掃描對應的項目,看項目代碼是否發生變化從而構建對應的項目
可以通過git的鈎子觸發項目部署,設置每次push的時候構建發布項目
配置發送郵件服務器,從而得到對應的項目構建的結果
可以使用sonar qube做代碼的校驗,與jenkins結合使用
流程是:git上拉取代碼,sonar qube代碼校驗,編譯打包(maven),發布項目到tomcat上,將項目的構建的結果發送郵箱中
docker容器化部署,區別於之前的虛擬機構建項目,少了一層操作系統,使用dockerfile可以構建普通項目的鏡像(分層鏡像結構,如:基本的鏡像jdk,之后就是jar包文件,多個鏡像構成一個總的鏡像,),鏡像是所有項目的本源,
docker上所有的每一個應用都是運行在一個單獨的容器當中的
harbor用來管理所有的項目鏡像,將鏡像部署到生產的部署
可以使用逗號分隔符分隔多個項目模塊,循環操作打包編譯多個項目模塊,也可使用循環操作應用於發布到集群環境中及多態服務器上
jenkins會通過插件的方式來通知生產的服務器從harbor上拉去鏡像,從而完成項目的部署
kubernetes(k8s)docker基礎之上所創建的用於緩解jenkins服務器編譯打包的壓力,應用於中大型的公司中
kubernetes可以實現在slave上創建一個jenkins服務器及pod節點,構建之后將項目部署到生產服務器,之間創建的kubernetes的pod節點刪除,從而達到緩解jenkins構建項目的壓力
使用nfs可以實現文件目的一些共享操作,例如jenkins的配置文件,maven倉庫地址
項目的在生產上執行的啟動腳本deploy也是放在項目根目錄保存的
其中git需要認證,harbor需要認證,sonar qube需要認證,每個認證都會生成一個,將這個id寫入到對應的認證的項目腳本中