本文做者: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
而要學習一門技術,尤爲是一門在不斷迭代而內容和範圍又很是普遍的技術(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
固然呢,經過CKA和CKAD考試,對於某些同窗來講加強職場競爭力,甚至做爲入職某些雲企業的敲門磚是頗有用的,可是從個人角度來講,創建起從使用角度的整個知識體系(而這個體系是通過大企業和開源基金會認證和背書 過的),從而爲下一步的更深刻學習創建基礎,這纔是我但願達到的目的,而毫無疑問,CKA和CKAD能夠幫助我,確認我已經達到必定水準。微服務