云原生应用构建:基于OpenShift
上QQ阅读APP看书,第一时间看更新

1.3 借助Red Hat开源解决方案实现云原生

如上文所述,云原生和PaaS、DevOps、微服务等概念是密不可分的。站在企业视角,使用Red Hat的企业开源解决方案进行敏态业务构建的路线图如图1-2所示。

图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中的横坐标是业务健壮性的提升,通常建设步骤如下。

第一步:建设单数据中心。大多数企业级客户,如金融、电信和能源客户的业务系统,都运行在企业数据中心内部的私有云上。在数据中心初期建设时,通常是单数据中心。

第二步:建设多数据中心。随着业务规模的扩张、业务重要性的提升,企业通常会建设灾备或者双活数据中心,这样可以保证当一个数据中心出现整体故障时,业务不会受到影响。

第三步:构建混合云。随着公有云的普及,很多企业级客户,尤其是制造行业的客户,开始将一些前端业务系统向公有云迁移,这样客户的IT基础架构最终成为混合云的模式。

关于PaaS、DevOps、微服务的能力构建,笔者在《OpenShift在企业中的实践:PaaS DevOps微服务》一书中已经有过非常详细的介绍。本书重点介绍如何通过开源分布式中间件实现云原生应用构建。(DevOps本书也有涉及,但侧重于DevSecOps的实现和通过Teckton构建CI/CD的介绍。)

我们在构建云原生应用时,可以借助社区开源软件,但对于企业客户而言,使用企业级的开源软件显然是更好的选择。针对云原生,Red Hat提供整套的企业级开源解决方案,以OpenShift为基础的整套容器化JBoss中间件以及应用开发框架。

Red Hat云原生平台包含三大部分:应用运行时、敏捷集成、流程自动化。如图1-3所示。

图1-3 Red Hat云原生应用平台

1)应用运行时包括OpenJDK、Red Hat Data Grid、Red Hat AMQ Broker和Red Hat OpenShift Application Runtimes。

·OpenJDK是Red Hat主导的JDK框架,Red Hat提供容器化镜像,可以用于运行Spring Boot类应用(如Fat Jar包)。

·Red Hat Data Grid是Red Hat分布式缓存,可以提升云原生应用的访问数据速度。Red Hat AMQ Broker是Red Hat消息中间件,用于实现云原生应用之间的异步通信。

·Red Hat OpenShift Application Runtimes(简称RHOAR)是Red Hat云原生运行时的集合,用于在OpenShift上开发Java或JavaScript应用程序。RHOAR提供了跨多个云基础架构的可移植性,使开发人员可以使用微服务、容器和DevOps自动化。Red Hat OpenShift Application Runtimes基于许多上游项目,如WildFly、Thorntail、Snowdrop、Eclipse Vert.x、Node.js、Apache Tomcat,支持Vert.x、Spring Boot、Node.js、Java EE、Quarkus等应用开发框架,它是Red Hat云原生应用的核心。

2)敏捷集成包括Red Hat Fuse、Red Hat 3Scale、Red Hat AMQ。

·Red Hat JBoss Fuse包括Apache Camel和消息中间件AMQ Broker等,它是一种能够更快实施的、流行的和通用的企业集成模式框架。

·Red Hat 3Scale是Red Hat提供的API治理方案,主要负责为云原生应用的API提供南北向的管理。

·Red Hat AMQ包含AMQ Broker和AMQ Streams两部分。AMQ Broker提供消息代理的功能;AMQ Streams,即企业级容器化Kafka集群,为云原生应用提供实时数据流平台。

3)流程自动化包含Red Hat Process Automation Manage和Red Hat Decision Manager。

·Red Hat Decision Manager(简称RHDM)是企业级规则自动化方案。RHDM以Drools作为核心规则引擎,提供了企业级应用服务器JBoss EAP、便捷的图形化管理工具,便于我们为云原生应用配置规则。

·Red Hat Process Automation Manager(简称RHPAM)是Red Hat流程自动化方案,它的核心组件是Drools和jBPM。RHDM旨在为云原生应用提供流程自动化。

本书从企业的视角,将Red Hat云原生应用平台与云原生应用构建之路的六大步骤相结合,帮助读者理解如何通过Red Hat企业级开源解决方案构建云原生应用。书中涉及的Red Hat云原生平台解决方案包括:Red Hat Enterprise Linux、Quarkus、Red Hat Data Grid、Red Hat AMQ Broker、Red Hat AMQ Streams、Red Hat Process Automation Manage、Red Hat Decision Manager、Red Hat Fuse、Red Hat 3Scale、Red Hat Single Sign On。后文也会介绍Red Hat企业级方案对应的上游开源项目,以便读者进行知识拓展。