Docker、kubernetes、微服務、SpringBoot/Cloud...好亂!到底要不要學?
來自專欄 猿論
Docker、微服務日益火熱的今天,相信標題上這些名詞大家都不陌生。但也相信有很多同學並不夠清楚他們的概念,不理解它們的關係,也可能有這樣的疑惑:不知道跟我有沒有關係?要不要學習?怎麼去學習?學哪些東西?沒關係,今天我們就從頭捋捋,讓大家都能得到自己的答案。
Docker誕生於2013年,之後就是迅速串紅、火的已經發燙。它為什麼會火呢?有什麼牛x的技術嗎?並沒有,docker的技術都是linux內核早已存在的技術,像LXC呀,cgoup呀,namespace呀,都是很早就存在的。那docker有啥高明的地方?很重要的一個就是image,它定義了一個交付標準,早期docker官網首頁的三個最大的單詞:build,ship,run。詮釋了docker和核心:image的構建,image的傳輸,image的運行。docker就是定義並且實現了這些標準。那為什麼直到2013年docker才出現呢?以前怎麼沒有人有這樣的想法?其實想法一直都有,只是docker出現的時機更好,往往決定性的因素並不是技術本身,而是互聯網的發展,市場的需要。
時至今日-2018年,Docker已歷經5年發展,Docker公司揭露了今年最新的Docker年度數據報告,至今在Docker上的容器鏡像下載次數已經超過了370億次,容器化的應用有高達350萬個,目前在LinkedIn網站上的Docker相關職缺也有15,000個。全球活躍的Docker使用者社群已有200多個,包括台灣也有。
隨著docker、容器的日漸成熟,容器編排的問題就凸顯出來,大量的容器怎麼去管理,怎麼調度,怎麼啟停都成了迫切需要解決的問題。有需求就有人去解決,ApacheMesos、kubernetes、docker swarm陸續登場,大有三足鼎立之勢,而隨著各自的發展,到了2017年下半年,google的親兒子kubernetes的呼聲越來越高,社區也更加活躍、成熟。2017年底,docker swarm和ApacheMesos陸續宣稱支持kubernetes,預示著容器編排大戰的結束,kubernetes已然成為容器編排領域的事實標準。
服務編排框架的成熟,使得容器的管理越來越方便、高效,容器帶來的好處也隨之凸顯:提升資源利用率節省成本、更高效的持續集成,持續交付、解放運維、快速擴縮容,應對突發流量...
服務編排框架的成熟也讓微服務的概念得以落地,同時也催生了java界微服務化的方案,像SpringBoot,SpringCloud。然而服務編排一定是對微服務的編排嗎?也就是我們容器里運行的一定是微服務嗎?不是的,我們可以運行任何服務,我們現有的業務可以不做任何改造就運行到容器中,讓kubernetes去管理、調度。至於微服務呢,只是有了kubernetes,讓微服務變得容易管理了。讓我們有條件把服務拆分的足夠小,足夠簡單。再也不用擔心運維管理的複雜了。了解了docker,服務編排,微服務的關係,我們在看看他們在企業的落地情況。
下面是數人云2018年初做的it行業系統調查報告
這張圖縱向的是系統更新頻率,其中互聯網行業的更新頻率最高,有92%的服務要每月都更新,並且其中一定有很多的服務要一個月更新多次。
這張圖統計的是目前企業it系統支撐所存在的問題。我們看兩個比重最大的問題,一個是系統的複雜性越來越高,一個是運維管理複雜。在傳統單體架構或者SOA架構下,應用如果頻繁升級更新,開發團隊會非常痛苦。為什麼呢?企業的業務系統經過多年發展,系統往往會非常龐大,複雜性越來越高,要改動其中任何一小部分,都需要重新部署整個應用,敏捷開發和快速交付根本無從談起。還有傳統企業在長期的IT建設過程中,往往會使用到不同的技術,這導致技術棧之間差異很大,統一的管理和運維變將得非常複雜。隨著這樣一些問題越來越凸顯,企業向微服務架構轉型的需求也越來越強烈。
這張圖是目前微服務架構在企業的落地情況:有6%的企業已經部分引入了Spring Cloud開發框架。另外,9%的受訪企業採用了Dubbo等其他微服務框架。此外,還有51%的企業在考慮往雲原生方向轉型,包括公有雲、私有雲。由此可見,絕大部分企業是有架構轉型的需求的。
這張圖是2017年docker的使用情況。在接受調研的企業中,在生產環境中採用Docker的比例為9%,測試環境使用達22%。而且規模越大的企業,尤其是伺服器規模在500台以上的,是Docker容器的主要採用者。另外,正在考慮評估中的佔到被調研企業的一半以上。企業的關注度急劇升高,Docker使用正在快速普及。而容器和微服務相輔相成,他們成熟的時間點也非常契合。
接下來我們看幾個大廠在docker上的進程。
由此可見,docker,服務編排將是企業發展的必經之路。也是我們每一位開發、架構、運維同學必須了解的內容。如果你正在找工作,docker,k8s,微服務也一定能給你的簡歷增加一個大大的亮點!
這麼多的內容我們要怎麼去系統的學習呢?
別著急,慕課網給我們準備了很好的入門課程哦:《Docker+Kubernetes微服務容器化實踐》
真心的希望這門課程能夠幫助到大家!讓我們一起努力,變成更好的自己!
作者:劉果國
鏈接:https://www.imooc.com/article/28359
來源:慕課網
本文原創發佈於慕課網 ,轉載請註明出處,謝謝合作
推薦閱讀:
打造個人品牌 so easy !_慕課手記
有獎徵文003期|程序員進階路上,哪本書你認為很不錯,對你幫助很大?
Docker容器可視化監控中心搭建
TensorFlow深度學習(一):環境搭建
開發基於以太坊的DApp,都要會哪些技能?
推薦閱讀:
※阿里雲新手秘笈包--如何創建雲桌面?
※分散式系統設計:簡介
※阿里雲新手秘笈包--VPC環境下怎樣配置FTP服務
※我國雲計算迎來「黃金窗口」期