转载

WebSphere Liberty 和 Bluemix 让内部部署微服务迁移到云变得很轻松的 4 个原因

 

在将在内部部署环境内运行的 Web 或移动应用程序或微服务迁移到云时,需要考虑一些问题。其中部分问题包括:

  • IBM® WebSphere® Application Server Liberty 云平台针对内部部署的应用程序进行了哪些优化?
  • 我们如何将应用程序从我们的数据中心迁移到云中?
  • 我们如何安全地将云应用程序连接到资源,比如在我们数据中心内运行的数据库?
  • 能否扩展我们的应用程序来处理云中的工作负载可变性?
  • 我们如何监视云中的应用程序的性能?
  • 我们如何确保应用程序的具有 0 宕机时间的持续可用性?

我打算基于我将微服务迁移到的经验来回答这些问题。在此过程中,我会列出 IBM WebSphere Application Server Liberty 和 Bluemix® 有助于简化此迁移过程的 4 个原因。在本文中,我会先介绍 Liberty 配置文件及其部署方法。接下来将会介绍如何将应用程序迁移到云中,并安全地将云应用程序与内部部署的资源相连接。然后探讨如何扩展应用程序和监视它们在云中的性能。最后,我将回答云应用程序的持续可用性问题。

可以将本文作为指南,帮助您选择将内部部署的 Java® 微服务应用程序迁移到 Bluemix 中的 Liberty 配置文件的正确方法。本文还将解释在 IBM Bluemix 中运行微服务时可以获得的生命周期管理优势。

原因 1:使用 Bluemix,您能够在云中为内部部署的应用程序灵活地选择 Liberty 配置文件的最合适部署方法

 

快速提示!
您需要一个 Bluemix 帐户。(启用 免费试用版。或者更好的是,您是否知道 developerWorks Premium 提供了 IBM Bluemix 的 12 个月订阅和 Bluemix 上的 240 美元云贷款?)

IBM WebSphere Application Server Liberty 服务器是一个 轻量型、高度可组合、容易使用且经过 Java Enterprise Edition (EE) 7 认证的应用服务器。它是构建、运行和管理微服务的理想平台。它可以组合提供各种功能,可以根据需要将这些功能动态地添加到服务器中。IBM 通过 IBM Bluemix 平台即服务 (PaaS) 在云上提供 Lib,erty 配置文件,该 PaaS 基于开源的 Cloud Foundry 项目。

Bluemix 中提供了 Liberty 配置文件的 3 种部署方法,以便您可以为您的微服务选择最合适的方法:

  • WebSphere Application Server Liberty 运行时:此方法使用了 Cloud Foundry buildpack 部署微服务。下图展示了一个使用 Liberty buildpack 方法部署的实时通信微服务。在这里,用户必须使用 Cloud Foundry 命令行接口 (CLI) 将应用程序推送到 Bluemix。基于推送的应用程序类型,Bluemix 检测合适的运行时 buildpack 来部署该应用程序。在本例中,使用了 Liberty 运行时,因为应用程序是一个 Web 存档文件。此部署过程只需不到 5 分钟的时间。用户还可以在 CLI 命令中传递参数,以定义内存量和要部署的应用程序的实例数量。 WebSphere Liberty 和 Bluemix 让内部部署微服务迁移到云变得很轻松的 4 个原因

    点击查看大图

  • WebSphere Application Server Liberty Docker 容器:此方法使用了 Bluemix 中的 Docker 容器服务(称为 IBM Containers 服务)。IBM Containers 服务提供了一个容易使用的用户界面 (UI) 来管理 Docker 容器的生命周期。IBM Containers 服务在一个私有 Docker 注册表中包含各种 IBM 软件的经过认证的 Docker 镜像,以及一个 Liberty 镜像。您可以将 Liberty 镜像从私有注册表拉入到本地 Docker 环境。然后,可以对该镜像执行任何必要的更改,比如添加微服务应用程序,然后将新的自定义 Docker 镜像推送回私有注册表。随后,您可以将推送的镜像作为 Docker 容器部署在 IBM Containers 服务上。下图展示了一个使用 IBM Containers 服务中的 Liberty Docker 镜像部署的银行 Web 应用程序。 WebSphere Liberty 和 Bluemix 让内部部署微服务迁移到云变得很轻松的 4 个原因

    点击查看大图

  • Bluemix 的 WebSphere Application Server 服务:此服务将一个预先配置的 WebSphere Application Server Liberty 配置文件部署在虚拟机中。您可以通过 SSH 服务安全地连接到该虚拟机,并获取底层操作系统 (OS) 的完整访问权。该服务还提供了 Admin Center 来管理 Liberty 配置文件服务器。此服务提供了部署多层 WebSphere or Liberty Network Deployment 环境的能力,包括用于 Liberty 配置文件中的默认集群的 WebSphere Liberty 集合体。下图展示了一个使用此服务部署的 Liberty 配置文件服务器。 WebSphere Liberty 和 Bluemix 让内部部署微服务迁移到云变得很轻松的 4 个原因

    点击查看大图

原因 2:您可以将应用程序从数据中心迁移到云

 

为了研究如何轻松地将在内部部署环境中的 WebSphere Application Server Liberty 配置文件上运行的微服务迁移到云,我使用了一个网络银行应用程序。这个应用程序包含以下 4 个微服务,它们在我的私有数据中心中的 Liberty 配置文件上运行(参见下图):

  • 身份验证和授权服务
  • REST API 服务
  • 视频聊天服务
  • 网络银行 Web 应用程序
WebSphere Liberty 和 Bluemix 让内部部署微服务迁移到云变得很轻松的 4 个原因

点击查看大图

我计划使用前面描述的最适合每种服务的方法,将该应用程序迁移到 Bluemix PaaS 并在云中的 Liberty 配置文件上运行它。

将身份验证和授权服务迁移到 Bluemix

我使用了 OpenID Connect 安全标准 在数据中心中的两台虚拟机 (VM) 上实现了身份验证和授权服务。一台虚拟机用作 OpenID Connect 提供方,另一个虚拟机用作 OpenID Connect 应答方。对于此服务,我使用了 Bluemix 的 WebSphere Application Server 服务。我选择此服务是因为,我需要在云中的虚拟机中通过 SSH 服务访问底层操作系统。这样,我就可以在 OpenID Connect 提供方虚拟机和 OpenID Connect 应答方虚拟机之间建立安全的通信。

迁移微服务的过程非常简单。它要求使用 Liberty 配置文件 server package server_name 命令打包 Liberty 服务器,并将该包部署到 Bluemix 中每个虚拟机中的 Liberty 配置文件服务器。

将 REST API 服务迁移到 Bluemix

我在一个私有数据中心中 实现了 REST API 服务,并使用 Bluemix 中的 WebSphere Liberty Runtime 方法将此服务迁移到云。为了迁移此服务,我采取了以下步骤:

  1. 使用 Liberty 配置文件 server package server_name 命令对在数据中心中运行该服务的 Liberty 服务器进行打包。
  2. 使用 Cloud Foundry CLI cf push 命令将打包的 Liberty 服务器推送到 Bluemix。

push 命令确定采用 Liberty 作为 Liberty 包的目标运行时,并为它置备 WebSphere Liberty 运行时。

我的私有数据中心(如上图中所示)显示了 REST API 服务。此服务连接到包含银行客户概况数据的 MongoDB 数据库来读取数据,连接到包含银行客户帐户数据的 DB2 数据库(其中存储了银行的客户帐户信息)来写入数据。因为此客户帐户信息是敏感和机密的,所以它不能保存在云中,必须位于私有数据中心中。迁移到云的 REST API 服务必须通过安全连接来连接到内部部署的 DB2 数据库。

Bluemix 提供了 Secure Gateway 服务它提供了与私有数据中心中的资源的安全连接。Secure Gateway 服务使用一个 Docker 容器建立安全连接。Secure Gateway 服务可提供与多个内部部署资源的安全连接。因此,我还使用它与内部部署的 LDAP 资源建立了安全连接,该资源存储了客户身份验证和授权数据供身份验证和授权微服务使用。对于 MongoDB 数据库,我在 Bluemix 提供的 IBM Containers 服务中部署了一个 Mongo Docker 容器。在 WebSphere Liberty 服务中运行的 REST API 服务与 Mongo 容器交互,以读取客户个人信息。

将视频聊天服务迁移到 Bluemix

为了将 视频聊天服务 从私有数据中心迁移到云,我使用了 Bluemix 中的 WebSphere Liberty 运行时方法。迁移视频聊天服务的步骤与将 REST API 服务迁移到云的步骤类似,但没有数据库。

迁移网络银行 Web 应用程序

网络银行 Web 应用程序的迁移是与身份验证和授权微服务的迁移捆绑在一起的。它们捆绑在一起是因为,该 Web 应用程序和该微服务在内部部署环境中的同一个 Liberty 配置文件服务器中运行。将身份验证和授权服务迁移到云时,Web 应用程序将和微服务一起迁移。

部署架构

下图显示了我迁移到 Bluemix PaaS 的 4 个微服务的部署架构。

WebSphere Liberty 和 Bluemix 让内部部署微服务迁移到云变得很轻松的 4 个原因

点击查看大图

通过将微服务从我的私有数据中心迁移到云,我发现 IBM Bluemix PaaS 提供了多种方法来部署在 Liberty 配置文件运行时上运行的新的或现有的微服务。它允许用户选择最适合其微服务的方法。它使得在云中运行的微服务能够安全地连接到在私有数据中心内运行的资源,提供一种真正的混合云环境。最后,它提供了一个容易使用的直观 UI,这提高了生产力,而且有助于降低将内部部署的应用程序迁移到云的劳动成本。

原因 3:您可以扩展和监视应用程序来处理云中的工作负载可变性

 

IBM Bluemix 提供了多个综合性服务(比如自动扩展和监视)来管理完整的微服务生命周期。这些服务可添加到部署在 Bluemix 中的微服务上。对于微服务的扩展,IBM Bluemix 支持手动垂直、水平扩展,以及通过 Bluemix Auto-Scaling 服务自动扩展。下面的窗口显示了 Overview 页面中的手动扩展设置,还显示了添加到在 Liberty 运行时上运行的 cfbank 微服务的 Auto-Scaling 和 Monitoring and Analytics 服务。

WebSphere Liberty 和 Bluemix 让内部部署微服务迁移到云变得很轻松的 4 个原因

点击查看大图

在手动扩展设置中,可以使用 INSTANCES 设置来手动更改微服务需要水平扩展的实例数量。可使用 MEMORY QUOTA 设置来手动更改分配给要垂直扩展的微服务的每个实例的内存。要添加服务,可单击微服务 Overview 页面上的 ADD A SERVICE OR API 链接。如果已创建服务并将它绑定到微服务,可以重用它并使用 BIND A SERVICE OR API 链接绑定到另一个微服务。让我们看看这些服务的工作原理。

用于微服务的 Auto-Scaling 服务

通过将 Auto-Scaling 服务添加到微服务,微服务可增加或减少计算容量。它基于预先配置的扩展策略而添加或删除运行微服务的 Liberty 配置文件运行时实例。在 Policy Configuration 窗口(下图)中,可以定义 策略配置属性 来满足微服务的服务等级协议。该策略使用 4 种度量类型来自动扩展微服务,包括内存、响应时间、吞吐量和 JVM 堆。

WebSphere Liberty 和 Bluemix 让内部部署微服务迁移到云变得很轻松的 4 个原因

点击查看大图

下图显示了使用内存利用率规则创建的自动扩展策略。在第一个实例的内存利用率增长超过 60% 时,此规则就会扩展一个实例。

WebSphere Liberty 和 Bluemix 让内部部署微服务迁移到云变得很轻松的 4 个原因

点击查看大图

下图显示了 Auto-Scaling 策略的 Metric Statistics 页面。此页面显示每个实例的当前资源使用率或每个实例的平均资源使用率,具体基于 Select Application Instance 列表中的选择。此页面显示微服务的内存、JVM 资源使用率、吞吐量(请求数/秒),以及响应时间。

WebSphere Liberty 和 Bluemix 让内部部署微服务迁移到云变得很轻松的 4 个原因

点击查看大图

WebSphere Liberty 和 Bluemix 让内部部署微服务迁移到云变得很轻松的 4 个原因

点击查看大图

下图显示了 Auto-Scaling 服务的 Scaling History 页面。此页面包含缩减和扩展的实例的扩展历史。可以选择 Completed、Failed 或 Scaling(正在扩展)等扩展状态选项来查看详细状态。您可以定义一个自定义范围来自定义 Scaling History 视图。

WebSphere Liberty 和 Bluemix 让内部部署微服务迁移到云变得很轻松的 4 个原因

点击查看大图

用于微服务的 Monitoring and Analytics 服务

IBM Bluemix 为微服务提供了全面的监视功能。下图显示了 Monitoring 服务的 Availability 页面。此页面基于我选择的查看时间范围和微服务的响应时间而显示云中的微服务可用性。

WebSphere Liberty 和 Bluemix 让内部部署微服务迁移到云变得很轻松的 4 个原因

点击查看大图

下图显示了 Monitoring 服务的 Performance Monitoring 页面。此页面显示运行微服务的 Liberty 运行时的 CPU、平均线程池和 Java 堆使用率,以及垃圾收集次数和持续时间。

WebSphere Liberty 和 Bluemix 让内部部署微服务迁移到云变得很轻松的 4 个原因

点击查看大图

下图显示了 Monitoring 服务的 Log Analysis 页面。此页面基于我选择的搜索条件和时间范围而显示针对该微服务的各种应用程序和 Liberty 配置文件日志。要缩小显示的日志列表,可以选择 Time range selection 字段旁边的日志文件过滤器。

WebSphere Liberty 和 Bluemix 让内部部署微服务迁移到云变得很轻松的 4 个原因

点击查看大图

通过查看这些页面和它们的细节,可以看到 IBM Bluemix 在云中提供了丰富的有用数据,用于扩展和监视云中的微服务。

原因 4:您可以确保没有宕机时间的持续可用性

 

IBM Bluemix 帮助企业确保其微服务的没有宕机时间的持续可用时间。作为标准实践,开发团队必须对其微服务执行必要的更改来修复缺陷,向服务添加新特性,或者将微服务更新到运行时的新版本。其中每个任务都需要重新部署微服务。在云环境中,重新部署通常导致服务中断,除非云平台提供了 0 宕机时间的部署方法。

IBM Bluemix 提供了 0 宕机时间部署方法 来将微服务部署到 Bluemix 中的所有可用运行时。在 0 宕机时间部署中,当部署微服务的新版本时,Cloud Foundry Router 将生产流量映射到微服务的旧版本和新版本。它还在微服务的新版本上执行一系列测试来确保没有回归。最终,它取消映射来自微服务的旧版本的流量,而微服务的新版本将会接受所有生产流量。

结束语

 

在本文中,我根据自己的经验,回答了使用 IBM WebSphere Application Server Liberty 配置文件和 Bluemix 将内部部署的微服务应用程序迁移到云的常见问题。我的经验表明,只需极少的工作即可轻松地将内部部署的微服务迁移到云,无需牺牲微服务在内部部署环境中拥有的任何功能。通过在云中运行微服务,您可以更少地关注微服务的操作方面,而将更多的精力放在新的或现有微服务中提供的新功能上,因为 PaaS 管理着微服务的所有操作方面。


BLUEMIX SERVICES USED IN THIS TUTORIAL:

  • Bluemix 的 WebSphere Application Server 服务 为您自己的 Red Hat Enterprise Linux 来宾系统上预先配置和托管的 WebSphere Application Server 选择 Liberty、Classic 或 ND 安装。
  • Secure Gateway 服务 给您的 Bluemix 环境带来了混合集成功能。它提供了从 Bluemix 到内部部署云或其他云中运行的其他应用程序和数据来源的安全连接。
  • IBM Container 可帮助您构建和部署容器,使用它们来打包您的应用程序和服务。每个容器基于一种镜像格式(包括一组标准操作),而且本身是一个执行环境。
  • Bluemix Auto-Scaling 服务 使您能自动增加或减少应用程序的计算能力。
  • Monitoring and Analytics 服务 在您的应用程序上实现所需的可视化和可控化。

相关主题:来自 developerWorks 的微服务文章

相关主题:WebSphere Liberty 开发人员中心

相关主题:Bluemix 开发人员社区


    
正文到此结束
Loading...