隨着微服務架構的流行,邁向雲原生的趨勢,容器化微服務就成爲了持續集成最好的手段,鏡像成爲了持續交付最好的產物,容器成爲了鏡像運行最好的環境,kubernetes
成了部署容器最好的生態系統和規範。實踐出真知,自學習kubernetes
以來,寫了一系列文章,首先,爲了發現知識盲點,查漏補缺,將知識點造成體系,決定將以前寫的文章作一個彙總,方便查看;其次,但願打通微服務落地kubernetes
的任督二脈,探索出一種工做模式,創建一條高度自動化的流水線,因而踏上了西天取經的道路,並梳理出了西遊路線圖,但願你們和我一塊兒打妖怪,早日到達雷音寺,取得真經,阿彌陀佛,成佛成仙,呵呵;最後,經過梳理明確學習的方向和目標,一步一步前進,勿急勿躁,也鞭策本身不斷學習、探索,由於有時真的就懶惰了,嘿嘿,正如四書五經《大學》中所言:「知止然後有定,定然後能靜,靜然後能安,安然後能慮,慮然後能得」,這是我最喜歡的話之一,也是懶惰時經常會想起的一句話,好了,不扯犢子了,嘿嘿。html
西遊路線圖(不斷探索中...):前端
持續集成 --- development
階段
代碼提交、代碼審覈、構建編譯、單元和功能測試、合併到代碼倉庫(git)、打包微服務成鏡像、上傳到鏡像倉庫 --- 全自動化。git
備註:持續集成流程很是重要,特別是互聯網行業,產品不斷的更新迭代,週期卻很短,業務系統微服務化後,就像一輛汽車被拆分紅各類組件,分配到不一樣的工廠加工生產,生產過程的每一個階段都須要按標準不斷的交互對接,保證最後組合在一塊兒的產物是符合預期設計標準的。至於持續集成的工做流程,每一個公司能夠結合本身的實際狀況,創建符合自身的持續集成流程。
該階段的產物是鏡像。web
持續交付 --- staging
階段
持續集成系統級別的發佈方案到chart
模板倉庫,使用k8s
的包管理器helm
一鍵部署預生產環境,自動運行聯調(集成)測試 --- 半自動化。docker
備註:生產環境必須由專人按照嚴謹、合理、承認、穩定的流程(滾動發佈、金絲雀發佈等)完成部署工做,咱們將這些方案編排成
chart
模板,並在預生產環境進行測試,沒問題後,持續集成到遠程倉庫。
該階段目的就是根據服務之間的依賴關係編排服務,並將服務部署代碼化,即基礎設施自動化,它的產物是chart
模板,能夠看做是一份DevOps文檔,裏面存放在各類各樣的運維腳本,自動化完成各式任務,這樣生產環境對於服務的發佈、更新、回滾、擴容均可經過編排文件實現,從而增長可塑性、易管理性、和自動化的能力。好比須要升級100個服務中的5個服務,只須要修改編排文件中5個服務的配置就好了,當編排文件提交後,生產環境經過命令一鍵更新,當發現新環境這5個服務有問題時,固然但願將這個5個服務原子回滾,若是沒有編排文件,須要人工記錄此次升級了哪5個服務。有了編排文件,只須要執行一個命令就revert到上一個版本了,並且全部的操做在代碼倉庫裏面都已經被記錄了。api
持續部署 --- production
階段
只須要一個命令,自動從遠程倉庫拉取特定的chart
模板,完整部署準備就緒的微服務腳手架到k8s生產環境 --- 全自動化。架構