DevOps 基於Walle的小型持續集成實戰(一)概述

該文章用於概述一個小型持續集成環境的搭建的方案

什麼是持續集成?

持續集成做爲當今軟件開發實踐,能夠簡單理解爲團隊開發相對頻繁的集成他們的工做,通常讓每一個成員天天至少集成一次,而這回形成天天會有屢次的版本發佈。因而咱們須要應用到自動化的構建模式(編譯發佈到測試監控),從而儘早的發現集成中的錯誤。html

持續集成流程

經常使用生態
  • 倉庫管理java

    • Git 代碼倉庫(Gitlab,Gitee)
    • Nexus 包私服庫
  • 構建工具node

    • Jenkins 熱門-構建發佈工具
    • Ansible 配置管理工具
    • Walle 構建發佈工具
  • 運行環境python

    • Linux 系統
    • Docker 容器
    • Nginx 負載均衡域名解析
  • 構建環境nginx

    • maven
    • nodejs
    • python
    • java

經典流程

手工發佈 - Java SpringBoot應用到一臺服務器

特徵:一個環境,一臺服務,少許應用git

  • 一、Maven打包 mvn clean compile package -Dmaven.test.skip=true
  • 二、放到服務器 scp -r xxx.jar username@192.168.0.1:/data/app/ or FTP工具
  • 三、登陸服務器 ssh root@192.168.0.1
  • 四、停用舊應用 ps -ef | grep java -> kill -9 xxxx
  • 四、啓用新應用 nohup java -server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -jar /data/app/xxx.jar > /data/app/xxx.log 2>&1 &
手工發佈 - React-Antdpro 應用到一臺服務器

特徵:一個環境,一臺服務,少許應用web

  • 一、Npm打包器 npm run build
  • 二、放到服務器 本地壓縮dist.rar -> scp -r dist.rar username@192.168.0.1:/data/nginx/ or FTP工具 -> 解壓內容
  • 三、登陸服務器 ssh root@192.168.0.1
  • 四、停用舊應用
  • 五、啓動新應用 https://segmentfault.com/a/11...

延伸問題

⚠️ 在低頻次小規模更新下,該方案能夠在用最少的資源和適度的時間花費上獲得平衡。若是出現 多人協做,發佈頻繁,多臺服務,多套環境咱們該如何管理這些內容?

多人協做,如何代碼管理?以及相關依賴引用?

如下方案供選擇,解決代碼管理問題(他們比svn擁有更靈活更開放的管理手段)
  • Gitlab 公網 / 私服
  • Gitee 國內較好的代碼倉庫管理服務
  • Github

https://git-scm.com/npm

如下方案供選擇,解決通用模塊引用以及外網拉取依賴緩慢問題
  • Nexus 包私服庫,包含衆多類型的包,例如maven

發佈頻繁,如何自動化腳本替換人工做業?

如下方案供選擇(他們能夠將一系列的執行腳本在服務端執行,一次腳本維護完畢則經過簡單的觸發便可完成各類功能)

多臺服務,如何快速批量多端構建執行?

多套環境,該如何服務隔離快速部署?

  • Docker 容器引擎
  • Docker-Compose 單主機容器編排工具
  • Docker Swarm 多主機容器編排工具
  • Kubernetes(k8s) 更爲強大的多主機容器編排工具

https://blog.csdn.net/notsalt...服務器

服務異常,如何能快速定位和發現?

  • Zabbix 硬盤,內存,CPU採集監控與預警
下階段會基於Walle講解如何搭建一個小型的持續集成環境
相關文章
相關標籤/搜索