隨着微服務架構的流行,邁向雲原生的趨勢,容器化微服務就成為了持續集成最好的手段,鏡像成為了持續交付最好的產物,容器成為了鏡像運行最好的環境,kubernetes
成了部署容器最好的生態系統和規范。實踐出真知,自學習kubernetes
以來,寫了一系列文章,首先,為了發現知識盲點,查漏補缺,將知識點形成體系,決定將之前寫的文章做一個匯總,方便查看;其次,希望打通微服務落地kubernetes
的任督二脈,探索出一種工作模式,建立一條高度自動化的流水線,於是踏上了西天取經的道路,並梳理出了西游路線圖,希望大家和我一起打妖怪,早日到達雷音寺,取得真經,阿彌陀佛,成佛成仙,呵呵;最后,通過梳理明確學習的方向和目標,一步一步前進,勿急勿躁,也鞭策自己不斷學習、探索,因為有時真的就懶惰了,嘿嘿,正如四書五經《大學》中所言:“知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得”,這是我最喜歡的話之一,也是懶惰時常常會想起的一句話,好了,不扯犢子了,嘿嘿。
西游路線圖(不斷探索中...):
- 持續集成 ---
development
階段
代碼提交、代碼審核、構建編譯、單元和功能測試、合並到代碼倉庫(git)、打包微服務成鏡像、上傳到鏡像倉庫 --- 全自動化。
備注:持續集成流程非常重要,特別是互聯網行業,產品不斷的更新迭代,周期卻很短,業務系統微服務化后,就像一輛汽車被拆分成各種組件,分配到不同的工廠加工生產,生產過程的每個階段都需要按標准不斷的交互對接,保證最后組合在一起的產物是符合預期設計標准的。至於持續集成的工作流程,每個公司可以結合自己的實際情況,建立符合自身的持續集成流程。
該階段的產物是鏡像。
- 持續交付 ---
staging
階段
持續集成系統級別的發布方案到chart
模板倉庫,使用k8s
的包管理器helm
一鍵部署預生產環境,自動運行聯調(集成)測試 --- 半自動化。
備注:生產環境必須由專人按照嚴謹、合理、認可、穩定的流程(滾動發布、金絲雀發布等)完成部署工作,我們將這些方案編排成
chart
模板,並在預生產環境進行測試,沒問題后,持續集成到遠程倉庫。
該階段目的就是根據服務之間的依賴關系編排服務,並將服務部署代碼化,即基礎設施自動化,它的產物是chart
模板,可以看作是一份DevOps文檔,里面存放在各種各樣的運維腳本,自動化完成各式任務,這樣生產環境對於服務的發布、更新、回滾、擴容都可通過編排文件實現,從而增加可塑性、易管理性、和自動化的能力。比如需要升級100個服務中的5個服務,只需要修改編排文件中5個服務的配置就行了,當編排文件提交后,生產環境通過命令一鍵更新,當發現新環境這5個服務有問題時,當然希望將這個5個服務原子回滾,如果沒有編排文件,需要人工記錄這次升級了哪5個服務。有了編排文件,只需要執行一個命令就revert到上一個版本了,而且所有的操作在代碼倉庫里面都已經被記錄了。
- 持續部署 ---
production
階段
只需要一個命令,自動從遠程倉庫拉取特定的chart
模板,完整部署准備就緒的微服務腳手架到k8s生產環境 --- 全自動化。
第一部分 修行
- 一個典型的kubernetes工作流程
- 白話kubernetes的十萬個為什么
- NodePort,LoadBalancer還是Ingress?我該如何選擇
- 詳解 k8s RBAC(role based access control) 角色權限(敬請期待)
第二部分 西天取經
- 打包
- 部署
- 倉庫
- 發布
- 運維
- 監控
- 預警