從2018年9月11日開始寫高階篇到今天11月21日,短短2個月高階的收穫還是滿滿的。docker命令越來越熟悉,jenkins在中級篇裡沒有涉及到,這次也把jenkins的內容給補充了,在中級篇裡k8s,一直安裝很多坑,到現在可以順利的安裝k8s,而且一步一步安裝瞭解了etc,apiserver,ControllerManager。但是感覺還是不夠深入,下次計劃繼續k8s和實踐。重點還是實踐和k8s。
一起回顧下
微服務的概念
- 從軟體架構的進化引入的微服務,瞭解微服務的概念,知道了微服務的架構並不是完美無缺的,有很多優勢,獨立性(有自己的獨立棧),敏捷性(快速的迭代)。問題,數量龐大,指數級的增加我們必須考慮的它們之間如何進行通訊,服務編排也是我們需要考慮的。
- 微服務帶來的問題分析,服務間的通訊(一對一,一對多,同步非同步),通訊協議的維度分析了長見的協議(restapi,rpc,訊息佇列),也對比分析了幾個rpc框架(thrift,dubbo,motan,grpc)。服務編排,首先使用了對比的方式,展示了傳統服務和微服務在服務發現,服務更新,服務擴縮容上是什麼樣子,瞭解了微服務為什麼不能像傳統服務那樣支援。然後引出了服務編排的概念。
3.springboot&springcloud的內容,畢竟他們都是線下流行的跟微服務密切相關的,猶豫跟微服務相關的很多,初學者很容易混亂,讓老鐵在大腦中對springboot和springcloud有個關鍵的認識,知道它的使命是什麼,它的核心內容,以及它們在微服務中扮演什麼角色。
微服務的開發
分析了微服務的架構,也分別開發了多個微服務,在開發的過程中,體驗了springboot,springcloud,dubbo,跨語言的RPC通訊thift,然後這只是剛剛開始,其實都是為了服務編排考慮的。
為服務編排做準備
- 服務docker化
- Docker compose
- Docker 倉庫
搭建了一個私有的倉庫harbor
完事具備,只欠編排
學習本身是學類龐統的。學會一個其他基本都是一個原理。都是從入門開始,到架構設計,到環境搭建,最後到部署。
- Mesos(MySes可不是MeSes)
起步比較早很多大公司,還在用。
- Docker Swarm
已經在docker的安裝裡面了。 官方的原汁原味。
- kubernetes
猶豫kubernetes門檻比較高,我們花了前面幾個框架幾倍的時間來研究它,但是說實話,還沒完全的搞懂,為了讓大家更好的理解。部署了2次,一次非認證授權,一次需要認證。其實認證就是ssl 哈哈。一個模組一個模組純手工的搭建了k8s叢集。然後在叢集上演示了官方的例項。
- CICD&Devops
最後體驗了一把CICD和Devops,他們之間的關係還是很親密的。服務編排為Devops落地提供了土壤。服務編排其實就是為CICD和Devops而生的。搭建了gitlab和jenkins的部署。 在jenkins下編寫了pipline流水線指令碼,以及在流水線裡面編寫的shell指令碼。體驗了CICD,從提交了程式碼完成打包,做映象,push推送。最後完成服務的更新。最後說句千萬別用jenkins的容器。這東西不適合用容器。
PS:從看到這裡的基本都是真愛老鐵了,在這裡真心的謝謝大家。從docker初級,中級到高階。從4月份瞭解docker到現在已經7個月多了,對docker的執著學習一直在繼續,中間也有老鐵指出文章中的問題。感謝一路有你!真心的希望我寫的文章能對各位老鐵有幫助。文章前面放了一個沙灘腳印的圖片,希望我們在一起學習docker的路上,你我一起讓同行的人更多,感謝在這個過程中有老鐵願意分享我的文章,讓更多的人一起在docker的路上。我們一直在趕路。一起在努力!你累嗎,累就對了,因為至少證明你還活著!下一步學習docker腳步不會停止。繼續開啟我們的實踐篇通過網上開源的專案,完成docker環境下的部署和運維。