前言
为何写作本书
2014年,谷歌发布Kubernetes,引发云计算技术的巨大转变。Kubernetes诞生以后,Red Hat决定对原有的PaaS产品OpenShift进行重构,这一决定彻底改变了OpenShift的命运以及后续PaaS市场的格局。2015年6月,基于Kubernetes 1.0的OpenShift 3.0诞生,截至本书写作时OpenShift的最新版本已经是4.3,在全球的企业客户已经超过1800个。随着像OpenShift这样优秀的容器云平台的不断普及,越来越多的客户通过容器云构建了PaaS、DevOps和微服务架构,将应用迁移到容器云平台。但是,很多客户的应用构建仍然采用传统模式,这使得后续应用迁移到容器时需要巨大的工作量。那么,有没有基于容器模式、云模式的应用开发模式,使开发出的应用直接运行在容器云上呢?有,这就是云原生应用。
2018年,CNCF(Cloud Native Computing Foundation)组织对云原生进行了重新定义:云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。
从CNCF对云原生的定义来看,它与容器、服务网格、微服务等技术是密切相关的。这就带来一个问题:目前IT市场的容器云、服务网格、微服务琳琅满目,在构建云原生的时候,企业客户应如何选择呢?面对与云原生相关的几十个开源项目,企业客户要自行集成和运维,显然是不现实的。因此,如何在企业级容器云上构建企业级云原生应用得到了大家的广泛关注。
目前市面上已经有不少与容器、服务网格、微服务相关的书,但鲜有涉及基于企业级开源容器云构建云原生的。基于此,本书作者们决定撰写一本基于分布式开源中间件和OpenShift实现云原生的书。
本书主要内容
本书分为“云原生篇”和“OpenShift篇”两大部分。云原生篇介绍如何借助分布式中间件帮助客户实现云原生。OpenShift篇介绍OpenShift的高可用架构设计、最佳实践,以及在数据中心和公有云的部署方式。
云原生篇(第1~11章):旨在帮助读者理解云原生的理念以及分布式开源中间件在云原生中的应用场景。这部分内容由魏新宇完成。
在云原生篇中,我们会介绍云原生构建的六大步骤,然后结合Red Hat企业级开源解决方案,将六大步骤细化,通过几个独立的章节进行详细说明。章节之间既相互独立,又相互联系。在每章中,我们会从各项技术的产生背景以及企业应用角度进行阐述,然后结合具体的技术案例展开说明,以期读者能有系统的理解。需要指出的是,云原生部分旨在帮助读者理解云原生的理念以及分布式开源中间件在云原生中的应用场景,因此具体的安装配置步骤不是本书的重点。云原生部分的所有示例代码,都是为了方便读者更深入地理解架构和原理,而非提供安装手册(具体安装的步骤可以参照Red Hat官网:access.redhat.com)。
OpenShift篇(第12~14章):介绍OpenShift 4的集群规划、离线安装部署,以及OpenShift 4在公有云上的最佳实践。这部分内容由王洪涛(第12~13章)和陈耿(第14章)完成。
本书基于Red Hat JBoss中间件和OpenShift 3.11/4.2撰写,书中对涉及的JBoss企业级软件均给出了上游开源社区的介绍。社区版软件除了在安装上稍有差别,在功能实现和技术上都是一样的,因此本书也适合使用社区版的朋友阅读,当然,我们建议使用企业级版本以获得相应的支持和保障。
本书收录了魏新宇此前所写的一些技术文章,这些文章最初通过IBM developerWorks中国网站发表,其网址是https://www.ibm.com/developerworks/cn(IBM developerWorks现已更名为IBM Developer,新网址是https://developer.ibm.com/cn/)。文章列表为:
·《DevSecOps:打造安全合规的DevOps平台》
·《Quarkus:超音速亚原子Java体验》
·《基于Kubernetes集群的Serverless在IoT中的应用》
·《构建基于OpenShift面向生产的分布式消息和数据流平台》
·《通过Kubernetes和容器实现DevOps》
·《构建基于容器PaaS平台的分布式缓存》
·《基于OpenShift构建面向企业的CI/CD》
·《深度学习框架Caffe2在Kubernetes上的实践》
·《Linux中RPM的构建与打包》
·《ActiveMQ Artemis和Qpid在企业中的应用》
本书内容特色
·本书作者均为在一线工作多年的售前架构师,书中内容是作者们工作多年的项目经验总结。
·本书将OpenShift和分布式开源中间件结合起来,全面介绍云原生应用构建。
·本书介绍内容时均列举了实际的案例进行说明,方便读者理解。
·本书内容兼顾运维和开发,是一本秉承全栈理念的参考书。
本书读者对象
本书适合有一定OpenShift/Kubernetes基础的企业架构师、IT经理、应用架构师、开源技术爱好者。通过阅读本书,你既可以了解到通过分布式中间件实现云原生的方式,也能够了解到OpenShift 4最新的架构和最佳实践。
资源和勘误
本书参考资料均源于Red Hat官方技术文档和开源社区,具体可以参考:
云原生部分的代码地址在书中均已列出。
由于时间仓促,而且开源产品迭代较快,书中的内容相对于社区软件的最新版本难免有一定滞后。如果你发现本书中有错误或不足之处,可以关注魏新宇的公众号“大魏分享”(david-share),把你的意见和想法发给我。后面我会推送二维码组建微信群,与大家共同进行技术讨论。
祝你在阅读本书的过程中能有所收获。让我们在云原生技术与企业相结合的道路上共同成长!
致谢
写书是一件很耗费精力的事情。在写书过程中,我花费了大量的业余时间,也牺牲了不少照顾孩子的时间。在此,感谢我的两个孩子在我写作过程中对我的理解。
感谢另外两名作者陈耿和洪涛。这本书是我们共同努力的结果。
最后,衷心地感谢机械工业出版社华章公司的杨福川老师和李艺老师,他们在书稿的审阅过程中付出了大量的劳动,也为这本书提供了很好的建议。
魏新宇 2020年2月
感谢杨福川老师和李艺老师在写作过程中的帮助和鼓励。写一本书是很不容易的事情,没有这些帮助和鼓励,可能就没有足够的积极性和耐心来完成写作。本书的潜在读者大多是开源行业的技术人员,而这个人群往往希望能看到新颖且深入的信息。这就要求本书内容对主流技术有敏锐的洞察力。我试图尽力满足这一预期,所以在本书撰写阶段,也在不断调整、更新内容。真诚地希望读者朋友能够对本书提出批评和指正,也非常感谢读者朋友能够阅读本书。最后,还要感谢陈耿和新宇两位小伙伴。希望我们在开源这条路上不断进步。
王洪涛 2020年2月
非常感谢华章公司杨福川老师的策划与邀请,让我得以与新宇、洪涛两位资深的架构师及Red Hat老同事一起合著此书。感谢李艺老师对本书给予的极大支持,使之可以达到出版的要求。创作的过程一波三折,感谢家人对我的支持。衷心希望读者可以从本书中收获到对工作有价值的信息。
陈耿 2020年2月