原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
原文連結地址:『高階篇』docker容器來說微服務導學(一)
跟我學過初級和中級的小夥伴,感謝有你們的支援哈哈,我開始高階篇了。這次設計到springboot 和spring cloud,重點是落地,之前的CICD涉及的面有老鐵說最後映象部署沒說,我說高階一定補上的!
微服務
微服務最近幾年比較火,不瞭解也沒關係,可以理解成一個專案的模組吧,微服務執行在docker容器裡面,如果管理docker容器用服務編排框架k8s。
為什麼要繼續高階篇
映象生產環境的自動化部署
- 不同行業IT系統更新頻率
縱向的是系統的更新頻率,黃色的是半年以上更新一次,綠色的部分是3-6個月,藍色的部分是每個月都要更新。橫向的是行業的細分:製造業,金融行業,網際網路行業,交通物流行業,零售業。其中網際網路的更新頻次最高92%的服務每個月都要更新。其中應該有很多服務一個月要更新多次。我相信如果一個行業如果要有競爭的優秀,更新頻率一定是在不斷的提高的。這就會倒逼越來越多的企業加入轉型,docker微服務就是方向。
- IT系統支撐所存在的問題
看2個比重最大的問題,系統複雜性越來越高,IT運維管理複雜,構建一個全功能團隊困難。應用頻繁的升級開發團隊會非常的痛苦:企業業務系統經過多年的發展,系統往往非常龐大,複雜度非常的高,要改動其中任何一個小功能都需要部署整個應用,敏捷開發和快速的服務根本無從談起,傳統行業在傳統的IT建設過程中往往會使用不同的技術,這就存在了技術之前的詫異很大,管理和運維就比較複雜,隨著這些問題的凸顯,企業向微服務進行轉型需求越來越強烈。
- 微服務架構落地情況
6%的企業應用了spring cloud開發框架,9%採用了dobbo和其他的微服務框架,51%考慮雲原生的架構方向轉型(公有云,私有云),因此可以看出來絕對部分企業有轉型的需求的。
- 2018年和2017年docker的使用情況對比圖
docker從2017年的7% 升級了4個百分點達到11%。考慮使用docker的應用的越來越多,特別是100臺伺服器以上的。
- 2017年的docker情況
企業的關注度才不斷的升高。docker的使用在不斷的普及,容器的成熟,對微服務的落地提供了很多的基礎,輕量化的容器是微服務的最佳環境。微服務在容器的環境下,在加上服務編排框架持續整合變成可能。
- 為何存在
騰訊,阿里,京東,包括新浪 都在使用docker。通過圖片的資料和案例說明:docker,服務編排,微服務值得我們去學習。可能在不久的將來將會是每一位開發和運維的老鐵不得不瞭解的技術。
高階具體說些什麼?
- 微服務
- 傳統架構演變微服務
- 微服務架構的架構圖優勢的不足
- 微服務帶來的問題和解決方案
從實戰的角度出發
1.傳統服務和微服務對比的方式來進行學習。
- 問題和業界的解決方案(springboot + spring cloud)
- 很多老鐵都是搞java的,瞭解下springboot 和 cloud跟微服務,跟docker的關係,跟服務編排框架的關係。
- 微服務例項開發
通過業務場景。從0開始一行不拉的開發完整個專案,微服務的開發有一個深刻的體會,服務開發過程中我們會用到,dubbo,spring boot ,spring cloud,閘道器,thrift。
體會到:dubbo的遠端呼叫,thrift跨語言的介面呼叫,spring boot快速開發。
- 幾個微服務,微服務需要怎麼來劃分。
- 他們之前的關係,他們是如何劃分的。
- 部署前的準備
- 服務docker化,調整配置,製作成docker映象。
- docker-compose,執行在docker容器中,保證容器間的正常通訊。
- docker倉庫,harbor搭建,push映象。
- kubernetes,mesos,swarm,初級我講了mesos,中級主要講了swarm,高階重點還是k8s。其實他們都是學會其中一種,基本都是龐統的。
- 服務編排
- 瞭解mesos,畫出架構圖,叢集環境,部署微服務
- 瞭解swarm,叢集環境,調整服務,部署服務
- 壓軸k8s,通過2017年docker承認k8s後,服務編排的領導地位,2017年爆發增長,企業上docker首選k8s,門檻太高了,光服務搭建都能壓死人。瞭解概念,基礎叢集搭建,小試牛刀,服務發現,認證授權,部署微服務。
- CICD和Devops
jekens 和gitlab 中級欠大家jekens這次補給大家。目的是從程式碼提交到流程更新全部自動化。
環境引數
- 做java的常用的IDEA
- 訊息服務用python3.6.3
- RPC框架Thrift0.10.0 跨語言
- Ubuntu-16.04
- Docker-18.03
- kubernetes-1.9.0
技術儲備
- 熟悉java 後臺開發
- 熟悉docker基本命令,映象容器什麼的
- 熟悉linux基本操作
PS:整體把握微服務,清晰理解微服務的各種概念,如果開發微服務,技術棧之間的微服務通訊,怎麼樣把一個服務執行在docker容器裡,服務之間是如何建立連線的,多種編排框架下服務的編排和服務的發現擴容。docker絕對是你以後必經只選。來我們一起努力,成為更好的自己。