Kubernetes 與容器技術學習方法

今天我們來談一談,學習 Kubernetes 和容器技術體系的最佳方法,到底是什麼。

學習一門綜合性的技術,不應該著急一頭扎進去看源碼。理清楚自己的定位,才是最重要的。

定位一:純粹的開發人員

如果你是一位純粹的開發人員,無論是前端、後端,還是應用、遊戲的開發,你首先應該明白這樣兩個道理:

  • Kubernetes 和容器技術主要解決的,是代碼編寫完成後的事情。這不單單是發佈或者 CI/CD,而是指從你執行完 git commit && git push 之後開始,都應該進入容器化的管理流程當中,當然包括後續的發佈、運維、升級、回滾等所有階段。
  • Kubernetes 體系的核心,是為開發者提供編寫代碼過程中的“微服務編程範式”。

比如,在你編寫代碼的時候,你應該清楚地知道:我該如何劃分模塊,就能更方便地利用到 Kubernetes 的 Pod 模型,來構建更加低耦合、高內聚的代碼製品,讓我後面的升級和重構工作更加容易。

再比如,當你的代碼需要與一個外部資源進行交互的時候,你應該首先想到:我的這個外部資源,是不是可以作為一個 Kubernetes 的 CRD 放到 Etcd 裡面。這樣,我編寫的代碼,就可以遵循一個自定義 Controller 或者 Operator 的編程範式,通過聲明式 API 的方式來執行業務邏輯。這樣寫出來的代碼一定會更加簡單、健壯、容易維護。

這樣的例子其實非常多。作為開發人員,你最應該關注的,是 Kubernetes API 對象的細節、容器設計模式以及 Kubernetes API 編程範式。

Kubernetes 與容器技術學習方法

Kubernetes 裡的所有 API 對象

你應該習慣於把你的服務想象成一個個容器,把整個應用想象成一個 Pod,學會把基於容器和 Kubernetes 的設計思想和架構方式,融入到自己平常的工程實踐當中。你應該大量實踐這些思想和設計模式,編寫各種各樣的 CRD 和 Controller,並想辦法提高這些自己編寫的自定義 Controller 項目的性能和服務能力。你應該嘗試扮演公司或者組織中推廣微服務和雲原生體系倡導者,並熱心地幫助團隊成員共同學習 Kubernetes 的設計思想和 API,全力幫助 Istio 或者 Knative 這樣的 Service Mesh 和 PaaS 平臺在組織中落地。

這些,都是增強你在即將到來的雲計算時代競爭力的有效手段。

當然,如果你對 Kubernetes API 以及編程範式還不熟悉,甚至對 Kubernetes API 的普適性還有所懷疑,那麼你可以閱讀一下《深入剖析 Kubernetes》的最後一篇文章。相信 Kubernetes API 成為雲上編程標準的故事,一定會對你有所啟迪。

定位二:專注於服務器端的編程人員 / 運維工程師

而如果你是一位專注於服務器端的編程人員,或者運維工程師,那麼你更應該關注的是 Kubernetes 這個項目背後的實現原理,它所體現出來的 Borg 和 Omega 項目多年來大規模集群管理的經驗教訓。

比如,聲明式 API 的設計與實現原理,Informer、Controller 這些機制的實現方式,為什麼說 Etcd 最適合的場景是配置管理,集中式集群調度器的核心機制與常用策略都有哪些。

此外,Kubernetes 項目的各個可擴展性接口,也是你需要重點關注和理解的對象,比如 CNI 和網絡插件的工作方式、CSI 和存儲插件的設計、Kubernetes Volume 管理的完整流程,以及 CRI 的設計和各種 container runtime 的異同。

從這個角度來說,Kubernetes 項目就是當前雲計算平臺層開源項目的事實標準,熟悉它的思想、架構、實現細節甚至核心組件的源碼,不僅是學習這項技術的必經之路,也是傳統後端技術人員向雲端轉型的最佳途徑。

Kubernetes 與容器技術學習方法

Kubernetes 通過存儲插件管理容器持久化存儲的原理

你應該嘗試扮演公司和組織中進行雲原生和基礎架構轉型的關鍵角色,而不是充當傳統和守舊那一方。你應該嘗試用容器和 Kubernetes 化的思想來影響周邊的每一位工程師。要記住,這個進程每前進一步,你的價值就放大一分。

定位三:學生、剛剛入行的初學者

而作為學生、剛剛入行的初學者,或者是對這個領域充滿興趣準備在這裡作為一番的後端從業人員,我希望你對容器和 Kubernetes 技術體系的學習和實踐,更要關注這個項目和平臺背後更深層的基礎和底盤部分,這包括:

1、瞭解操作系統和硬件的實際工作方式,尤其是 CPU、存儲和網絡。

2、充分理解操作系統的設計,甚至可以根據需要重新實現或者繞過某些部分,這是你後面進行系統性能優化的關鍵所在。

3、理解“所有系統都是分佈式系統”的道理。瞭解經典的分佈式系統設計的思想,並從實際的工程實踐中理解這些解決思路,這也是 Kubernetes 這個分佈式項目構建的基礎。

只有清楚了自己的定位,你才能夠在 Kubernetes 這樣一個大而全的技術體系面前做到“有所放矢,有的放矢”,才能夠把容器和 Kubernetes 這項技術發展浪潮,與自己的技術路線和個人成長曆程,真正地關聯起來。

Kubernetes 與容器技術學習方法

Kubernetes 項目核心功能的“全景圖”

一旦明確了定位,抓到了這其中的精髓和主線,那麼接下來的學習過程對於你來說,其實就是“無招勝有招”,可以隨心所欲地按照你實際的項目、所關心的領域逐步展開,而完全不必拘泥於某種特定的套路了。

關於睿雲智合

深圳睿雲智合科技有限公司成立於2012年,總部位於深圳,並分別在成都、深圳設立了研發中心,北京、上海設立了分支機構,核心骨幹人員全部為來自金融、科技行業知名企業資深業務專家、技術專家。早期專注於為中國金融保險等大型企業提供創新技術、電子商務、CRM等領域專業諮詢服務。


自2016年始,在率先將容器技術引進到中國保險行業客戶後,公司組建了專業的容器技術產品研發和實施服務團隊,旨在幫助中國金融行業客戶將容器創新技術應用於企業信息技術支持業務發展的基礎能力改善與提升,成為中國金融保險行業容器技術服務領導品牌。


此外,憑藉多年來在呼叫中心領域的業務經驗與技術積累,睿雲智合率先在業界推出基於開源軟交換平臺FreeSwitch的微服務架構多媒體數字化業務平臺,將語音、視頻、webchat、微信、微博等多種客戶接觸渠道集成,實現客戶統一接入、精準識別、智能路由的CRM策略,並以容器化治理來支持平臺的全應用生命週期管理,顯著提升了數字化業務處理的靈活、高效、彈性、穩定等特性,為幫助傳統企業向“以客戶為中心”的數字化業務轉型提供完美的一站式整體解決方案。


分享到:


相關文章: