本文做者: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能够帮助我,确认我已经达到必定水准。微服务