『高級篇』docker容器來講微服務導學(一)

原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
原文連接地址:『高級篇』docker容器來講微服務導學(一)java

跟我學過初級和中級的小夥伴,感謝有大家的支持哈哈,我開始高級篇了。此次設計到springboot 和spring cloud,重點是落地,以前的CICD涉及的面有老鐵說最後鏡像部署沒說,我說高級必定補上的!python

微服務

微服務最近幾年比較火,不瞭解也不要緊,能夠理解成一個項目的模塊吧,微服務運行在docker容器裏面,若是管理docker容器用服務編排框架k8s。linux

爲何要繼續高級篇

鏡像生產環境的自動化部署git

  • 不一樣行業IT系統更新頻率

縱向的是系統的更新頻率,黃色的是半年以上更新一次,綠色的部分是3-6個月,藍色的部分是每月都要更新。橫向的是行業的細分:製造業,金融行業,互聯網行業,交通物流行業,零售業。其中互聯網的更新頻次最高92%的服務每月都要更新。其中應該有不少服務一個月要更新屢次。我相信若是一個行業若是要有競爭的優秀,更新頻率必定是在不斷的提升的。這就會倒逼愈來愈多的企業加入轉型,docker微服務就是方向。spring


  • IT系統支撐所存在的問題

看2個比重最大的問題,系統複雜性愈來愈高,IT運維管理複雜,構建一個全功能團隊困難。應用頻繁的升級開發團隊會很是的痛苦:企業業務系統通過多年的發展,系統每每很是龐大,複雜度很是的高,要改動其中任何一個小功能都須要部署整個應用,敏捷開發和快速的服務根本無從談起,傳統行業在傳統的IT建設過程當中每每會使用不一樣的技術,這就存在了技術以前的詫異很大,管理和運維就比較複雜,隨着這些問題的凸顯,企業向微服務進行轉型需求愈來愈強烈。docker


  • 微服務架構落地狀況

6%的企業應用了spring cloud開發框架,9%採用了dobbo和其餘的微服務框架,51%考慮雲原生的架構方向轉型(公有云,私有云),所以能夠看出來絕對部分企業有轉型的需求的。springboot


  • 2018年和2017年docker的使用狀況對比圖

docker從2017年的7% 升級了4個百分點達到11%。考慮使用docker的應用的愈來愈多,特別是100臺服務器以上的。服務器


  • 2017年的docker狀況

企業的關注度纔不斷的升高。docker的使用在不斷的普及,容器的成熟,對微服務的落地提供了不少的基礎,輕量化的容器是微服務的最佳環境。微服務在容器的環境下,在加上服務編排框架持續集成變成可能。架構


  • 爲什麼存在

騰訊,阿里,京東,包括新浪 都在使用docker。經過圖片的數據和案例說明:docker,服務編排,微服務值得咱們去學習。可能在不久的未來將會是每一位開發和運維的老鐵不得不瞭解的技術。框架





高級具體說些什麼?

  • 微服務
  1. 傳統架構演變微服務
  2. 微服務架構的架構圖優點的不足
  • 微服務帶來的問題和解決方案

從實戰的角度出發

1.傳統服務和微服務對比的方式來進行學習。

  1. 問題和業界的解決方案(springboot + spring cloud)
  2. 不少老鐵都是搞java的,瞭解下springboot 和 cloud跟微服務,跟docker的關係,跟服務編排框架的關係。
  • 微服務實例開發

經過業務場景。從0開始一行不拉的開發完整個項目,微服務的開發有一個深入的體會,服務開發過程當中咱們會用到,dubbo,spring boot ,spring cloud,網關,thrift。
體會到:dubbo的遠程調用,thrift跨語言的接口調用,spring boot快速開發。

  1. 幾個微服務,微服務須要怎麼來劃分。
  2. 他們以前的關係,他們是如何劃分的。

  • 部署前的準備
  1. 服務docker化,調整配置,製做成docker鏡像。
  2. docker-compose,運行在docker容器中,保證容器間的正常通訊。
  3. docker倉庫,harbor搭建,push鏡像。
  4. kubernetes,mesos,swarm,初級我講了mesos,中級主要講了swarm,高級重點仍是k8s。其實他們都是學會其中一種,基本都是龐統的。
  • 服務編排
  1. 瞭解mesos,畫出架構圖,集羣環境,部署微服務
  2. 瞭解swarm,集羣環境,調整服務,部署服務
  3. 壓軸k8s,經過2017年docker認可k8s後,服務編排的領導地位,2017年爆發增加,企業上docker首選k8s,門檻過高了,光服務搭建都能壓死人。瞭解概念,基礎集羣搭建,小試牛刀,服務發現,認證受權,部署微服務。
  • CICD和Devops

jekens 和gitlab 中級欠你們jekens此次補給你們。目的是從代碼提交到流程更新所有自動化。

環境參數

  1. 作java的經常使用的IDEA
  2. 消息服務用python3.6.3
  3. RPC框架Thrift0.10.0 跨語言
  4. Ubuntu-16.04
  5. Docker-18.03
  6. kubernetes-1.9.0

技術儲備

  • 熟悉java 後臺開發
  • 熟悉docker基本命令,鏡像容器什麼的
  • 熟悉linux基本操做

PS:總體把握微服務,清晰理解微服務的各類概念,若是開發微服務,技術棧之間的微服務通訊,怎麼樣把一個服務運行在docker容器裏,服務之間是如何創建鏈接的,多種編排框架下服務的編排和服務的發現擴容。docker絕對是你之後必經只選。來咱們一塊兒努力,成爲更好的本身。

相關文章
相關標籤/搜索