爲何要考CKA和CKAD 和個人備考經驗

本文做者:zytan_cocoanode

前言:春節期間由於疫情影響只能在家,正好用來進行網上視頻複習,並在1月28日完成CKAD的考試,1月29日拿到經過證書,加上去年末拿到的CKA證書,我已經經過了CNCF的兩大認證,即CKA和CKAD。如今寫下這篇文章,介紹我爲何考CKA以及個人備考經驗,但願能夠幫助到有一樣想法的同窗。bootstrap

首先爲何要學習雲原生?

      2011年著名互聯網企業家和投資人Marc Andreessen在《華爾街日報》上指出「Software is eating the world」,他指出不少行業的創新領先者(例如廣告行業的谷歌,視頻行業的netflix)其實都是軟件公司。而如今這個趨勢愈來愈明顯,即全部的行業都在進行數字化改造,每一個行業的創新領先公司都是技術公司,是能充分利用互聯網技術優點的互聯網化的公司。而互聯網公司中,研發是重要的基礎部門。互聯網研發的兩個重要特色:1.是 Agile,即快速的迭代上線;2是scale,即能低成本進行快速彈性伸縮,流量激增的時候能快速擴容扛住,容量減小的時候也能快速縮容來下降成本。能比同行業的競爭對手進行更快的迭代和更低成本的伸縮是他們勝出的關鍵優點之一。架構

而要作到agile和scale,快速迭代的研發團隊流程,彈性伸縮的基礎設施還有易擴展和演進的系統架構,這三者缺一不可。而這三者的演進趨勢:研發流程從瀑布到Agile,再到如今的DevOps;系統架構從單體到分層, 再到微服務;基礎設施從實體機到虛機,再到容器和容器編排; 都無一不深入的體現出「惟有更好的支持Agile & Scale,纔是研發演進的方向「。而工程師之後不會有開發/測試/運維之分,只會有負責上層業務開發和維護的工程師和負責下層基礎設施開發和維護的工程師之分了,並且即便是業務工程師也須要了解和完成部分底層基礎設施的一些工做,(雖然嚴格來講基層技術設施和上層業務是解耦的。)因此每一個工程師要在將來的5年內保持競爭力,都須要瞭解雲原生的一些基礎知識,瞭解和使用Docker和Kubernetes技術。app

爲何要經過CKA + CKAD考試?

而要學習一門技術,尤爲是一門在不斷迭代而內容和範圍又很是普遍的技術(Kubernetes版本發佈很快,每一年4個大版本),若是不從一開始即創建一個大的picture即完整的知識體系,而是從一些細小的地方從源碼開始啃起,很容易陷入「只見樹木不見森林」的地步,並且學習效率也會偏低。而如何創建起一個大的picture呢?先從外到內,即先會使用,而後瞭解其原理和機制,必要的時候纔去定製。那麼如何驗證我已經從使用的角度來創建起大的picture呢?感謝CNCF的組織,他們有現成的Kubernetes學習和認證體系,即經過他們的認證,那麼能夠比較有信心的確認已經創建起一個完整的知識體系,從而爲下一步的學習和研究打下很好的基礎。而這個CNCF的認證體系就是CKA和CKAD。CKA適合系統管理員,CKAD適合應用開發者,兩個考試相同的部分是對Kubernetes的架構和術語都要求熟練了解, 不一樣的地方是CKA中會有setup cluster,debug 和fix cluster問題的內容,而CKAD會有Pod Design方面的內容。運維

而我在百度內部編寫大綱和教材,召集志願者做爲講師,並組織完成了10期Kubernetes Bootcamp即入門訓練營。每期採用線下授課方式,使用百度雲Kubernetes集羣做爲實際環境,採用邊講邊練的方式進行大量的實操,每期5個晚上,共5門課程12個小時。已經有500+工程師參加培訓,口碑反饋特別好。而經過CKA和CKAD認證更能驗證我組織的大綱和培訓方式是有助於學員進行雲原生基礎知識的學習,爲以後進一步業務上雲作好思想上和技能上的準備。ssh

 

準備考試的心得:

  1. 首先須要瞭解考試的特色。CKA和CKAD都是上機考試,沒有選擇/填空/問答之類的題目,全是上機面對Kubernetes集羣的操做,因此記住必定要在Kubernetes集羣裏多練習,minikube和katacoda提供的單機和網上集羣能夠多使用。另外由於CKA有Initial setup和TLS  bootstrapping的內容,因此去AWS或則Azure上建虛擬機,直接搭建集羣也是頗有幫助的,並且有些debug的操做是須要在集羣的master節點和node節點上ssh進去執行的,因此多本身搭建下是頗有必要的。
  2. 其次須要瞭解考試大綱。CKA和CKAD都有本身的大綱,比較詳細,須要針對大綱的每個內容進行有針對性的學習和準備。別以爲目的性太強,要創建起使用者的知識體系,這些大綱對應的內容是必需要掌握的。
  3. 最後須要熟悉Kubernetes的官網文檔,尤爲是Task部分。由於考試時間比較緊張,CKA 3個小時,CKAD2個小時,廣泛反應都是時間不夠。上機考試環境中是沒有時間讓你從頭來敲鍵盤輸入YAML文件內容的,更多都是找到Task對應的部分,Copy 現成的YAML文件下來,而後快速修改,最後完成指定操做。例如CKA和CKAD都有使用Secret的部分,即建立Secret,而後在Pod中經過環境變量或者Volume的方式來使用。建議比較省時的方法即在kubernetes.io/docs使用「inject+secret」查到第一個結果,即Task中的一個例子,而後把該例子中的YAML 內容Copy到考試使用的終端上,而後再根據題目要求修改下,最後執行,這樣能節省大量的時間。
  4. 另外別忘了CNCF提供了很優秀的線上視頻課程,其中面向管理員的《Kubernetes 基礎課程》(LFS258)和麪向開發者的《kubernetes開發員課程》(LFS 259)是頗有用的。在家封閉的這幾天,把這些視頻內容快速重溫了下,再去經過線上考試就內心有底多了。

 

後記:

固然呢,經過CKA和CKAD考試,對於某些同窗來講加強職場競爭力,甚至做爲入職某些雲企業的敲門磚是頗有用的,可是從個人角度來講,創建起從使用角度的整個知識體系(而這個體系是通過大企業和開源基金會認證和背書 過的),從而爲下一步的更深刻學習創建基礎,這纔是我但願達到的目的,而毫無疑問,CKA和CKAD能夠幫助我,確認我已經達到必定水準。微服務

原文連接地址:https://developer.baidu.com/topic/show/290630學習

相關文章
相關標籤/搜索