前言

随着数字经济的发展和企业数字化转型的深入,企业业务部门需要越来越快的应用开发,传统的开发模式和运维模式节奏缓慢,这两者之间的矛盾越来越突出。为了解决这种矛盾,云原生概念于2013年首次提出,云原生计算基金会在2015年成立。2018年云原生生态不断壮大,主流云计算供应商纷纷加入该基金会。业界更是称2019年为云原生技术的商业化元年。云原生架构为传统云计算领域的人才和传统信息系统开发者带来了新挑战,对企业IT更是极大的挑战。

很多朋友在学习实践云原生架构时感觉一头雾水。官方文档的语言障碍、入门文档的欠缺以及网上碎片化的资料,阻碍了云原生架构的普及和推广,提高了学习难度。本书正是在这种情况下编写的。

本书特色

本书由云原生的核心思想和理念入手,重点讲述企业引入云原生架构的必要条件、企业如何准备云原生开发和部署环境,企业如何运维云原生架构,并在最后提供云原生相关案例,为企业展现云原生的实战场景和步骤,从而让企业对云原生架构有一个直观的感受,也为企业引入云原生架构提供了样例。

读者对象

本书读者主要是以下人员:

● 云原生和微服务开发人员

● 云原生架构运维人员

● DevOps参与人员

● 项目经理

● IT部门主管

如何阅读本书

本书系统地讲解了云原生架构相关知识,以及如何实际构建云原生敏捷架构,在构建云原生应用时应该如何操作。各章内容大致如下:

第1章为云原生架构发展历程和相关基础理论知识。从云计算的演化开始讲解云原生的概念,并讲述了云原生基础架构和云原生应用两部分重要内容。同时还描述了云原生架构的主要思想精髓和设计模式,并引入了服务网格的介绍,展望了云原生的发展方向。本章内容主要侧重于核心理论的宣讲,重点让读者从理念上掌握云原生架构的核心要素。

第2章讲述了Kubernetes中的核心对象。云原生架构的敏捷基础架构都是建立在Kubernetes基础之上的,因此本章概要介绍了在后续实战中必须掌握的Kubernetes关键内容。本章也是对Kubernetes内容的有序梳理和归纳,从而使读者对Kubernetes有更深入的理解。

第3章从实战的角度描述了一个企业在构建云原生架构时应该如何部署一整套敏捷基础架构。本章先从部署本地Repository入手,然后讲解如何在裸机(Bare Metal)上部署Kubernetes环境,之后描述了如何部署针对Kubernetes的负载均衡设施,以及通过GlusterFS为Kubernetes提供存储支持。

第4章讲述云原生架构下的DevOps。云原生的一个核心理念是开发与运维的有效整合协作,因此本章重点介绍了云原生架构下的DevOps流程,以及云原生架构下的软件部署策略。在本章实战环节,介绍了目前最常用的GitLab软件部署以及如何在云原生开发过程中借助GitLab实现自动CI/CD。本章为读者提供了一整套DevOps方案,有助于读者理解云原生架构下的DevOps,也是企业向云原生应用转型的重要参考内容。

第5章讲述云原生架构下的日志解决方案。日志是解决业务系统问题的溯源依据。本章介绍了在云原生架构下如何收集日志、存储日志,并介绍了伴生模式和DaemonSet模式。在本章实战环节,介绍了目前最常用的日志存储系统Elasticsearch在不同环境中的部署,并通过Kibana来查询分析日志。最后介绍了在云原生架构下的日志收集模式和方案。本章内容有助于读者理解云设计模式,并掌握相关系统的设计和部署。

第6章讲述如何监控云原生架构。通过介绍云原生架构下Prometheus监控指标收集系统,讲解了如何通过各类Exporter来收集指标,以及通过Grafana来图形化展示各类指标。本章实战环节不仅讲述了如何部署以上系统,还通过如何监控Drupal站点的案例来进一步加强以上内容的理解,给出了监控的示范应用。

第7章重点描述了服务网格。云原生架构下的应用主要是以微服务形式提供的。随着微服务的发展与兴起,其规模也越来越庞大,服务治理的需求也越来越迫切。本章通过目前排名第一的Istio架构来阐述服务治理的各项要素,并介绍了分布式调用追踪、遥测度量收集、灰度发布应用、服务熔断和故障注入等常用场景。本章的实战主要以代码形式穿插在各内容中,让读者以直观的形式理解服务治理内容。

第8章汇集了前述章节的内容,并从多个方面描述不同的案例来示范云原生架构的部署、云原生应用的开发与运维等方面的内容。首先讲解了如何在Kubernetes中部署Drupal 8站点,阐述了存储卷、数据库、监控等方面的内容;其次介绍了时下最常用的Node.js系统架构开发运维过程,重点阐述了与GitLab相关的自动化构建和运维等功能;然后阐述了当下最流行的单点登录系统,从云原生的角度讲述如何定制、构建、部署和运维,形成了一个完整云原生应用方面的商用案例;最后从高校的视角来讲述一个企业组织在云原生架构转型过程中所需要改革的要素和面临的困难,有助于读者从顶层架构来推进云原生架构的应用。

致谢

感谢所有为云原生开发、普及和推广做出贡献的朋友们,是你们研发和推广了这么优秀的技术和产品。

感谢我的同事吴慧韫和云计算团队,他们给了我鼓励并提供了很多宝贵的建议。

感谢上海海事大学物流研究中心尤其是郝杨杨老师的热忱帮助,是他们支持了我的实验和相关活动。

感谢机械工业出版社的车忱编辑,在编写本书的过程中始终支持我的写作,他的鼓励和帮助使得我顺利完成全部书稿。

最后感谢我的妻子梁璟旻,在工作之余还要照顾孩子、做家务,让我有时间有环境去思考写作;也感谢我的宝贝女儿王颖,帮我整理部分书稿并录入。

谨以此书献给帮助过我的朋友们以及热爱云原生架构的朋友们!

王玉平