首页 > 图书中心 >图书详情
硅谷工程师教你Kubernetes:CI/CD云应用实践
作者:邱宏玮
定价:59元
印次:1-2
ISBN:9787302596417
出版日期:2022.01.01
印刷日期:2023.06.28
本书内容面向需要将Kubernetes与CI/CD集成的项目开发、部署和维护人员。CI/CD过程的设计没有标准答案,当导入Kubernetes与云原生(Cloud Native)相关技术之后变化就更多了,而要如何从这个庞大、复杂的架构中设计出一套适合项目团队的解决方案更是难上加难。作者秉持“授人以鱼,不如授人以渔”的理念,重点不放在讲述一成不变的操作流程,而是传授如何从问题出发去探索和找到Kubernetes与CI/CD集成中会遇到的各种实际问题及可行的解决方案。只有掌握方法论,开发人员在面对未来复杂多变的云原生态上将CI/CD导入Kubernetes才能做到游刃有余。
more >前 言 从在NAS厂商用C++编写应用程序,到如今在硅谷开放网络基金会推广与开发SDN开源项目,我深切体会到,软件界要找到一个符合所有场景的解决方案,可能性微乎其微。在具体使用环境中,只要任何环节中有一个点不同,就可能翻转整个架构。 “取之于社会,用之于社会”是我一直以来秉持的理念。这样的信念支持我与伙伴们创建了两个网上社区:SDNDS-TW与CNTUG,作为供大家交流有关SDN(软件定义网络)及云原生(Cloud Native)经验知识的平台。正是因为找不到一个完美的解决方案,因而每个人自身的工作经验都是无可替代的,没有任何孰是孰非、孰优孰劣之分。因此,过去几年我很积极地与伙伴们定期聚会,邀请许多相同领域中的爱好者来分享自己的经验。我深信,每一次的经验交流只要能够让一个人受益于其中,那么此次的分享交流就有价值。 除了通过社区让爱好者们有一个交流信息的平台外,我也极力推荐大家通过撰写文章的方式来分享经验。通过撰写文章,我们就会思考如何系统地表达自己的思维过程,让读者能够更加真切地理解作者的经验和心得;与此同时,在反复自我答疑的过程中会加深作者自己对该概念的理解,更能厘清自己的不足之处,使自己也受益匪浅。 基于这样的愿望,我创建了个人的博客网站(https://hwchiu.com),持续针对SDN、Linux、Cloud Native等相关领域分享我的学习笔记。除了帮助自己复习相关概念外,也期许自己的文章能在互联网的世界中帮助到更多的爱好者或用户,如同那些曾经撰写文章,使我获益良多的前辈一样。2020年年底,我尝试创建了属于自己的Facebook粉丝页:硅谷牛的耕田笔记。在粉丝页中,我会定期发布各种翻译文章,或者自己撰写的原创文章,与各位网友分享各种云计算的新知识。 此次因为铁人赛的机缘,让我有机会接触到图书出版这个领域,对我来说更是一个全新的挑战。我一直在思考,如果有机会出一本Kubernetes相关的图书,这本书应该是什么形式呢?就每年更新频度为3到4次的Kubernetes开发流程而言,任何书面出版的内容始终跟不上官方的这个更新速度,而其间最大的差异可能就是中英文版本的阅读习惯。鉴于此,我希望编写一本以思考为出发点的图书,毕竟Kubernetes的用法千奇百怪,不同行业的用法完全不同,其本身就是一个不存在“最佳解”的管理平台。 本书的内容并不包含Kubernetes这套容器管理平台的运行原理及其操作方法,因此读者需要对Kubernetes的使用与操作有一定的基础,了解它的基本概念。由于CNCF(Cloud Native Computing Foundation,云原生计算基金会简介)涉及的领域过于广泛,除了三大基本组件(计算、存储与网络)外,安全、部署、安装、监控等众多领域皆包含于此。不同项目的搭配就会产生不同的火花与用法,没有人有办法在这个世界上找出一个完美的适合所有领域的项目组合,因此我们在这方面需秉持“与其授人以鱼,不如授人以渔”的理念。本书着重介绍如何培养读者分析问题的思路,从思路中去探讨可行的解决方案,接着通过分析、测试与评估来找出最符合团队当前应用场景和需求的答案。 Kubernetes的特性使得它适用的领域众多,与其专注于单一领域的探讨,不如去研究所有领域都会面临的集成问题,也就是如何将Kubernetes集成到团队现有的DevOps文化中。更精准的说法是CI/CD(Continuous Integration/Continuous Delivery,Continuous Deployment,即持续集成/持续交付,持续部署)该怎么设计,才能够让项目团队的所有成员都可以享受到 Kubernetes 带来的好处。 基于这个概念,本书将探讨CI/CD流程与Kubernetes集成中会遇到的各种困境,例如本地开发人员是否需要独立Kubernetes集群,CI过程是否需要Kubernetes来进行测试,以及CD的做法有哪些,GitOps与传统的CD部署方式又有什么不同。每个主题实际上都有为数不少的开源项目提供了解决方案,但也因为没有一个项目能够符合所有团队的需求,所以才会有这么多项目被开发出来。使用项目并不困难,困难的是如何从中挑选出一个适合自己的方案。 本书针对各个主题从3个层面去解析。首先厘清问题的本质,寻求解决方案时需要纳入思虑的项目,以及团队实战使用时可能会遇到何种困难。接着介绍数种可能的解决方案并分析每种解决方案带来的利弊。最后从中挑选一个解决方案作为范例,实际展示如何使用该项目并与Kubernetes集成。 本书更像是工具书,以实战中会遇到的各环节为基础去探讨如何取舍。千万不要直接复制本书中的使用范例用于团队的工作流程中,就如同书中一再强调的,本书希望带给读者的是如何去面对问题,接着培养读者思考问题的能力,从中找出一个适合自己团队的工作流程。 如何学习与使用新项目如今已经是大家都必须掌握的一种技能,不同的项目与架构层出不穷,唯有通过不断练习与思考,培养一套适合自己的思路流程才能在这瞬息万变的Cloud Native领域中为团队带来最大的效益。
more >