《云原生应用构建》魏新宇,王洪涛,陈耿著|(epub+azw3+mobi+pdf)电子书下载
图书名称:《云原生应用构建》
- 【作 者】魏新宇,王洪涛,陈耿著
- 【丛书名】云计算与虚拟化技术丛书
- 【页 数】 394
- 【出版社】 北京:机械工业出版社 , 2020.06
- 【ISBN号】978-7-111-65786-6
- 【价 格】99.00
- 【分 类】软件工程
- 【参考文献】 魏新宇,王洪涛,陈耿著. 云原生应用构建. 北京:机械工业出版社, 2020.06.
图书封面:
图书目录:
《云原生应用构建》内容提要:
本书由三位一线售前架构师撰写,是他们工作多年的经验总结。内容兼顾开发和运维两个方面,是一本秉承全栈理念的云原生领域的参考书。全书共14章,分为“云原生篇”和“OpenShift篇”两部分。云原生篇(第1-11章)旨在帮助读者理解云原生的理念以及分布式开源中间件在云原生中的应用场景。在云原生篇中,我们会介绍云原生构建的六大步骤,然后结合RedHat企业级开源解决方案,将六大步骤细化,通过几个独立的章节进行详细说明。OpenShift篇(第12-14章)介绍OpenShift4的集群规划、离线安装部署,以及OpenShift4在公有云上的最佳实践。
《云原生应用构建》内容试读
言商面■■■房■溶■■■■■■■■■蓝■是■■萄图■图■■图■
■■■
第一部分P6d/
云原生篇
■第1章云原生应用的构建之路■第2章传统Linux上构建应用包■第3章云原生Java的实现
■第4章DevOps和DevSecOps的实现
■第5章构建分布式消息中间件和数据流平台■第6章构建分布式缓存■第7章构建业务流程自动化■第8章云原生应用的安全
■第9章分布式集成与API管理
■第l0章云原生应用与Serverless的结合■第11章人工智能在容器云上的实践
:■过■■量■■型■■■度
:度明题海■
■■
Chowter1第1章
云原生应用的构建之路
从本章开始,我们进入本书的“云原生篇”。笔者在2019年11月出版的《OpenShift在企业中的实践:PaaS DevOps微服务》一书中,介绍了如何借助OpenShift建设PaaS
DevOps和微服务能力,从内容逻辑上说,本书的“云原生篇”是该书的续集。
在接下来的几章中,我们将依次介绍:传统Linux上构建应用包、云原生Java的实现、DevOps和DevSecOps的实现、构建分布式消息中间件和数据流平台、构建分布式缓
存、构建业务流程自动化、云原生应用的安全、分布式继承与API治理、云原生应用与
Serverless的结合、人工智能在容器云上的实践。在介绍的过程中,我们会引入大量实践经验,以期对读者有一定借鉴意义。
1.1云原生应用
1.1.1什么是云原生应用
传统的软件开发流程是瀑布式的,开发周期比较长,并且如果有任何变更,都要重新走
一遍开发流程。在商场如战场的今天,软件一个版本推迟发布可能到发布时这个版本在市场上就已经过时了;而竞争对手很可能由于在新软件发布上快了一步就抢占了客户和市场
相比于传统应用,云原生应用非常注重上市速度。云原生应用是独立的、小规模松散耦合服务的集合,旨在充分利用云计算模型提高应用发布速度、应用灵活性和应用代码质量,并降低应用部署风险。虽然名字中包含“云原生”三个字,但云原生的重点并不是应用部署在何处,而是如何构建、部署和管理应用。通过表1-1,我们可以比较清晰地看出云原生应用与传统应用之间的差别。
第1章云原生应用的构建之路3
表1-1云原生应用与传统应用的差别
传统
云原生
重点关注
使用寿命和稳定性
上市速度
开发方法
瀑布式半敏捷型开发
敏捷开发、DevOps
团队
相互独立的开发、运维、质量保证和安全团队
协作式DevOps团队
交付周期
长
短且持续
紧密耦合
松散耦合
应用架构
单体式
基于服务
基于应用编程接口(API)的通信
以服务器为中心
以容器为中心
适用于企业内部
适用于企业内部和云环境
基础架构
依赖于基础架构
可跨基础架构进行移植
纵向扩展
横向扩展
针对峰值容量预先进行置备
按需提供容量
1.1.2云原生应用开发和部署的四大原则
云原生应用所构建和运行的应用,旨在充分利用基于四大原则的云计算模型。
口基于服务的架构:基于服务的架构(如微服务)提倡构建松散耦合的模块化服务。采用基于服务的松散耦合设计,可帮助企业提高应用创建速度,降低复杂性。
口基于API的通信:即通过轻量级API来进行服务之间的相互调用。通过API驱动的
方式,企业可以通过所提供的API在内部和外部创建新的业务功能,极大提升了业
务的灵活性。此外,采用基于API的设计,在调用服务时可避免因直接链接、共享
内存模型或直接读取数据存储而带来的风险。
口基于容器的基础架构:云原生应用依靠容器来构建跨技术环境的通用运行模型,并在不同的环境和基础架构(包括公有云、私有云和混合云)间实现真正的应用可移植性。此外,容器平台有助于实现云原生应用的弹性扩展。
口基于DevOps流程:采用云原生方案时,企业会使用敏捷的方法,依据持续交付和
DevOps原则来开发应用。这些方法和原则要求开发、质量保证、安全、IT运维团队以及交付过程中所涉及的其他团队以协作方式构建和交付应用。
在了解了云原生应用开发和部署的四大原则后,我们接下来介绍云原生应用的构建之路。
1.2云原生应用构建之路的步骤
云原生应用的构建之路一共分为6个步骤。步骤1:发展DevOps文化和实践。
要完成云原生应用的构建之路,开发和T运维团队必须进行多方面的变革,以便更加
4《第一部分云原生篇
快速高效地构建和部署应用。各行各业的客户都需要周全地考虑各种活动、技术、团队和流程,因为这些要素综合起来才能实现DevOps文化。因此,要想充分利用新技术,采用更加快速的方案,实现更为密切的合作,企业必须切实遵循DevOps的原则和文化价值,并围绕这些价值来进行组织和规划。借助于Red Hat的OpenShift,企业可以实现DevOps以及进一步的DevSecOps技术的落地,具体内容将在本书第4章展开介绍。
步骤2:借助轻量级应用服务器,为现有单体应用提速。
在开启云原生应用之旅时,企业不能只关注开发新的应用。很多传统应用都是确保企业顺利运营和不断创收的关键所在,不能简单地取而代之。企业需将这类应用与新的云原生应用整合到一起。但是,如何加快现有单体式应用的运行速度呢?
正确的方法是:将现有的单体式架构迁移到模块化程度更高且基于服务的架构中,并
采用基于API的通信方式,从而实施快速单体式方案。在开始实施将单体式应用重构为微
服务的艰巨任务前,企业应该先为他们的单体式架构奠定坚实的基础。虽然单体式应用的敏捷性欠佳,但其受到诟病的主要原因是自身的构建方式。运行快速的单体式应用可以实现微服务所能带来的诸多敏捷性优势,而且不会增加相关的复杂性和成本。
通过对快速单体式方案进行评估,可以确保应用在构建时遵循严苛的设计原则,以及正确定义域边界。这样,企业就能在需要时以更加循序渐进、风险更低的方式过渡至微服务架构。如能以这种方式实现快速单体式应用的转型,即可为优良的微服务架构打下扎实的基础。借助于Red Hat OpenShift和轻量级的应用服务器Red Hat JBoss EAP,我们可以将传统单体应用迁移到容器中,为现有单体应用提速。随着OpenShift承载的单体应用越来越
多,就会涉及传统ESB分布式的问题,即分布式集成,这部分内容会在本书第9章进行介
绍。使用分布式缓存为单体应用提速的内容,会在后面第6章展开介绍。
步骤3:借助PaaS平台和DevOps加快应用开发速度。
可复用性一直都是加速软件开发的关键所在,云原生应用也不例外。但是,云原生应用的可复用组件必须经过优化,并整合到容器PaaS平台和DevOps中。例如,CI/CD开发流水线、PaS提供的滚动升级和蓝/绿部署、自动可扩展性、容错等,可以大幅提升云原生应用的开发速度。通过OpenShift实现CI/CD开发流水线的具体内容将在本书的第4章介绍
步骤4:选择合适的应用开发框架。
随着物联网(IoT)、机器学习、人工智能(AI)、数据挖掘、图像识别、自动驾驶等新兴技术的兴起,应运而生的应用开发框架也越来越多,如图1-1所示。我们需要根据特定的业务应用需求来选择语言或框架,因此不同的云原生应用会采用不同的应用开发框架。这就要求容器PaaS平台能够支持多种应用开发框架。Red Hat OpenShift可以支撑多种应用开发框架,后面章节会详细介绍云原生Java(第3章)和Serverless(第l0章)在OpenShift上的实现。此外,我们也会在第11章中介绍人工智能在容器云上的实践。为了方便读者理解云原生开发,我们在第2章会先介绍如何在传统Liux上构建应用包。
第1章云原生应用的构建之路5
兰lava EE
spring
夏.NEr
@2
AMICROPROFILE
》play Reactivex
U
©unktion
JAKARTA EEundertow
■Scala VERTX
无服务器
轻量级/底入式
响应式
n●de sjaueny
ERU联OSS⑨
JavaScript无处不在
云原生Java
图1-1应用开发框架
步骤5:借助可重复的流程、规则和框架,实现T自动化,加速应用交付。
通过T自动化流程、避免手动执行T任务,是加速交付云原生应用的重点。IT自动
化管理工具会创建可重复的流程、规则和框架,以替代或减少会延迟上市的劳动密集型人工。这些工具可以进一步延伸到具体的技术(如容器入、方法(如DevOps),再到更广泛的
领域(如云计算、安全性、测试、监控和警报)。因此,自动化是T优化和数字化转型的关
键,可以缩短实现价值所需的总时长。如何使用规则引擎与流程工具实现T自动化将在第
7章进行介绍」
步骤6:推动变革,采用模块化程度更高的架构。
在微服务开发架构中,应用被拆分成最小的组件,并彼此独立。此种软件开发方案强调高精度、轻量化,力求在多个应用中共享相似的流程。虽然微服务架构不要求使用特定的底层基础架构,但基于容器的平台更易于微服务的落地。
通过微服务架构,企业可以在一天内多次执行生产部署。从架构的角度来看,微服务需将每一个服务拆分成各自的部署单元。随后,用户可单独管理和部署每个微服务,并且可能由不同的团队来负责各个微服务的生命周期。但是,实施微服务架构需要一定的投资和技能,企业在引入微服务时,可以采用Monolith First方案,即先构建一个单体式应用。这样做的目的是:先充分理解你的应用所属的域,然后更好地识别其所包含的有限上下文,这些上下文将作为转换成微服务的候选内容。这有助于避免技术债务,比如因不了解应用的所属域和有限上下文就构建一组微服务而产生的修复成本。能够支持不同的框架、语言和云原生应用开发方案的企业级PaaS平台(如OpenShift),是云原生应用成功的关键。除此之外,在使用微服务后,我们还应考虑云原生应用的安全,如认证授权、单点登录、流量控制等。
随着微服务的普及、业务系统复杂性的增加,我们还需要考虑API治理和业务系统分布式
集成。云原生应用的安全、分布式集成和API治理内容,将会在第8章和第9章介绍。
6第一部分云原生篇
1.3
借助Red Hat开源解决方案实现云原生
如上文所述,云原生和PaaS、DevOps、微服务等概念是密不可分的。站在企业视角,使用Red Hat的企业开源解决方案进行敏态业务构建的路线图如图1-2所示。
单数据中心
多数据中心
混合云
云原生应用
微服务高级管理
微服务治理
●
●
基于Openshift结合分布式开源中间件
实现DevOps
基于Red Hat方案实现
基于OpenShift和SpringCloud/
AP管理分布式集成
sto实现微服务治理
和流程自动化
构建PaaS平台
基于OpenShift实现
Devops
开箱即用的PaaS功能
业务健壮性
图1-2企业构建敏态IT
图1-2中的纵坐标为业务敏捷性,企业业务敏捷性方面的转型通常包含以下几步。第一步:构建PaaS平台。PaaS平台为开发人员提供了构建应用程序的环境,旨在加快应用开发的速度,实现平台即服务,使业务敏捷且具有弹性。近几年容器技术的崛起更是促进了PaaS的发展,Red Hat OpenShift就是首屈一指的企业级容器PaaS平台。
第二步:基于PaaS实现DevOps。PaaS平台是通过提高基础设施的敏捷而加快业务的敏捷,而DevOps则是在流程交付上加快业务的敏捷。通过DevOps可以实现应用的持续集成、持续交付,加速价值流交付,实现业务的快速迭代。
第三步:实现微服务治理。通过对业务微服务化改造,将复杂业务分解为小的单元不同单元之间松耦合,支持独立部署更新,真正从业务层面提升敏捷性。在微服务的实现上,客户可以选择采用Spring Cloud,但我们认为Istio是微服务治理架构的未来方向。
第四步:实现微服务高级管理。在微服务之上实现API管理、微服务的分布式集成以
及微服务的流程自动化。通过API管理帮助企业打造多渠道的生态。
第五步:云原生应用。在PaaS、DevOps、微服务、微服务高级管理之上,借助于分布式开源中间件,实现云原生应用的构建。
图1-2中的横坐标是业务健壮性的提升,通常建设步骤如下。
第一步:建设单数据中心。大多数企业级客户,如金融、电信和能源客户的业务系统,都运行在企业数据中心内部的私有云上。在数据中心初期建设时,通常是单数据中心。
···试读结束···