当云平台和基于云的解决方案已经成为现实。越来越多的企业在利用宿主软件、解决方案和服务的优势,将非核心竞争业务外包出去,从而降低成本,提高生产力。
企业想要缩短实现价值的时间,更愿意以现有资产为基础,而不是重新开始。在云环境中,资产共享和重用变得很迫切。要创建一个新资产,比如少量用户使用的特定应用程序,那么通过导入现有资产(可能是另一个现有应用程序),并针对专门目的对它进行调整,就可以轻松做到。
软件即服务(SaaS)应用程序,比如允许业务用户进行协作、创建和共享资产的
IBM® Blueworks Live,被认为是以资产为中心的。在 Blueworks Live
的例子中,有可以与团队中的其他成员共享的业务流程管理(BPM)资产。
对于此类以资产为中心的 SaaS 应用程序,需要提供正确数量的隔离和共享特性。某些资产可以在整个云社区中共享,而另外一些资产可能是保密的,仅在租户边界内可用。尽管确保租户边界内的资产安全是强制性的,但是租户之间以资产为中心的协作也是有必要的。我们将这称之为协作式多租户,在这种环境中,跨越租户边界的用户可以共同协作来开发和共享工件(如果他们选择这么做的话)。
在构建多个 SaaS 应用程序的过程中,我们使用 IBM Rational
Asset Manager 作为 IBM Cloud 中的共享组件,来满足以资产为中心的协作的很多需求。IBM
Rational Asset Manager 是一个协作式软件开发工具,组织可以用它来识别、管理和治理软件资产和服务的设计、开发和消费。可以将其看作一个具有一组丰富的以资产为中心的功能(比如,上载、下载、搜索、报告、治理,等等)的资产库。它能处理任何类型的资产,包括应用程序、组件、模式、运行系统和产品的软件、服务、框架及模板。
本文展示一种利用 Rational Asset Manager 实现协作式多租户的方法,并描述
Rational Asset Manager 在支持协作同时为多租户应用程序保持适当级别的资产隔离和私密性方面所扮演的关键角色。找出有关如何在
IBM Cloud 中提供、配置和管理 RAM 的实践信息。
资产隔离和共享是一种支持以下情景的能力:除非明确地要求这种行为(属于一个租户的资产对其他租户可见),否则,属于一个租户的资产对其他租户不可见。可以利用
RAM 提供的 “资产社区” 概念来轻松获得此行为。
Rational Asset Manager 将资产社区定义为按公共用途和目的分组的资产集合。社区
是一个环境,其中的用户与一组相关的资产进行交互。社区管理员向用户和用户组分派角色和权限,来设置对社区不同级别的访问。这种范围划分可用于实现资产隔离:
- 对于每个租户,租户管理员作为社区管理员,在 Rational Asset
Manager 中创建资产社区。这一资产社区是私有的。社区中的资产仅在租户边界内可见。
- 租户的所有注册用户都成为该资产社区的注册成员,具有发布和下载资产的能力。
- 发布资产时,用户默认可以发布到社区。
- 可选地,允许每个社区管理员为用户在其组织中设置附加的角色,比如说,以便支持资产审查或治理流程。
公共资产社区
为促进跨租户边界的协作,支持租户之间新的关系模型,从而驱动整个云社区的更大价值,SaaS
提供者可能想要创建一些公共资产社区,并提供一些可以被所有租户重用的资产。想要寻求资产的反馈,或者与其他租户协作开发资产的租户,可能也想要利用公共资产社区:
- 在 Rational Asset Manager 中创建一个或多个公共资产社区。
- 为公共社区创建隐式成员关系,即每个注册到云解决方案的用户都自动成为这些公共社区的成员。
- 允许任何注册用户在公共社区中发布和下载资产。
图 1 展示了用于资产共享和隔离的架构。
图 1:云租户之间的资产隔离和共享
IBM Cloud 中提供 Rational Asset Manager
的映像,当前版本是 7.2.0.2。使用 Add Instance 向导(如图 2 所示),配备已经安装
Rational Asset Manager 的 VM。这一 Rational Asset Manager
实例正运行在内嵌的 IBM WebSphere Application Server 中。这对于开发和测试来说很有用。
图 2:IBM
Cloud 中的 RAM 单实例映像
但是对于生产环境来说,需要安装 Rational Asset
Manager 集群来提供负载均衡和故障切换功能。目前 IBM Cloud 还不提供这样的生产映像,所以您必须自己进行设置。在下一节中,我们将分享相关经验。
基本思路是从基本 Red Hat Enterprise Linux(RHEL)映像开始,然后构建
Rational Asset Manager 集群。图 3 展示了完整的拓扑。具体来说:
- RAM 节点 1 和 RAM 节点 2:一个具有两个节点的
Rational Asset Manager 集群,每个节点运行两个 Rational Asset
Manager 服务器。可以通过增加更多节点和/或在一个节点中增加更多 Rational Asset
Manager 服务器来扩大规模。
- RAM Deployment Manager 和
License Server:Rational Asset Manager 设置应用程序负责安排集群中
Rational Asset Manager 的安装和配置,它必须安装在部署管理器节点中。Rational
License Server 安装时必须配备足够的许可密钥,以允许对 Rational Asset
Manager 进行预计水平的并发用户访问。
- Rational Asset Manager Load
Balancer:一个负责跨多个 Rational Asset Manager 服务器分布负载的
VM。这一 VM 是客户使用 Rational Asset Manager 集群的入口点。
- Storage Mount VM:一个附加到
IBM Cloud 存储器的 VM,用于存储资产。
- Database:系统中一个用于数据库服务器的共享
VM。
- LDAP:系统中一个用于用户目录的共享
VM。
图 3:在 IBM
Cloud 中生产环境下运行的 Rational Asset Manager
配置 RAM 节点和 Deployment Manager
是一个多步骤流程,在产品文档中有详细的说明。下面几节介绍在 IBM Cloud 中实现集群所必需的附加配置。
用于资产的共享存储器
Rational Asset Manager 使用文件系统来存储工件。在配置
Rational Asset Manager 时,必须为持久存储文件和索引指定一个文件夹位置。在集群环境中,这个文件夹必须位于共享驱动器中,以便所有的
Rational Asset Manager 服务器能够访问它。
在 IBM Cloud 中,可利用 Storage 来实现同样的功能。正如在
Best practices to architect applications in the IBM
Cloud 中所讨论的一样,IBM Cloud Storage 允许在多个 VM 之间持久存储和共享文件。图
3 展示了附加到所配备的 IBM Cloud Storage 的 Storage Mount VM。
Storage Mount VM RHEL 映像中已经有一个网络文件系统(NFS)服务器可用,只需要配置并启动即可。NFS
客户端也在每个附加到 Storage Mount VM 的 RAM 节点中启动。通过该设置,Rational
Asset Manager 可以在 IBM Cloud Storage 中存储用户工件。图 3 中对此进行了描绘。
许可问题
Rational Asset Manager 利用 Rational Common
Licensing 来实施许可证。您需要提供一个永久许可证密钥,或者设置 Rational License
Server 具有所需的 FLEXlm 许可证密钥,并配置 Rational Asset Manager
以连接到 License Server。
为生成基于 FLEXlm 的许可证密钥,需要安装了 Rational License
Server 的机器的主机 ID,此主机 ID 用于识别您将密钥注册到的硬件。主机 ID 可以是磁盘序列号或者
MAC 地址。许可证密钥文件仅运行在其生成时所指定的 License Server 中。
Rational License Server 提供的许可证密钥依赖于
MAC 地址或者磁盘序列号。在 VM 可被删除和重新配备(比如说)以便从故障恢复的云环境中,这会带来新的挑战。这是由于
IBM Cloud 中重新配备的 VM 与以前取消配备的 VM 虽然具有相同的静态 IP,但它们具有不同的
MAC 地址。
因此,在 Rational License Server 的主机 ID
变更的情况下,必须为新主机重新发布许可证,并注册到 License Server。另外,具有永久许可证能够彻底绕过
License Server。
将资产导入企业
如果租户想要将资产从云环境导入到企业防火墙后面的企业环境中,他们也可以通过
Rational Asset Manager Eclipse Asset Management 透视图进行认证,然后浏览或导入资产。图
4 中展示了这一过程。
图 4:利用 Eclipse
Rational Asset Manager 客户端将资产导入到企业中
根据访问 Rational Asset Manager
的方式,用于支持同时从浏览器环境和 Eclipse 环境访问 Rational Asset Manager
的部署配置显得有点复杂。RAM 同时采用基于表单的认证(使用浏览器)和基本访问认证(使用 Eclipse)。因此,必须配置平台访问,以同时支持基本的和基于表单的认证,从而同时支持云访问和预置(on-premise)访问场景。本解决方案部署一个
WebSEAL 实例集群,这些 WebSEAL 实例都配置为同时支持基本认证和基于表单的认证。根据入站请求中的
HTTP 头部,流量被路由到适当的 WebSEAL 实例。在后续的文章中,将会更详细地解释 WebSEAL
在整个解决方案中扮演的角色。
对于图 3 中的每个 VM,激活脚本描述了在特定 VM 中启动服务器和服务所必需的活动顺序。例如,激活脚本可能包括诸如启动
NFS 客户端、启动 WebSphere® Application Servers 和安装所需的共享存储器之类的步骤。这确保了,如果
VM 重启,所有服务将自动启动并可访问。
IBM Tivoli® Monitoring 部署在 IBM Cloud
中,用于监测所有云 VM 的性能和可用性。通过创建一些代理来监测 URL、日志和网络连通性,我们能够检测问题,很多情况下还可以自动从问题中恢复,无需人工干预。在
Rational Asset Manager 子系统中,检测到并试图恢复的故障包括:
- 无法访问共享存储器。
- 一个或多个 RAM 服务器宕机或者无响应。
- 日志(比如 ramDebug.log、SystemOut.log)中的错误,比如许可证错误、连通性问题、线程挂起。
- 不可用的共享数据库服务器。
后续文章将会描述如何部署和配置 IBM Tivoli Monitoring,来自动化云解决方案的监测和恢复。
除了建立 Rational Asset Manager 生产集群并在 IBM
Cloud 中可靠运行之外,还应当考虑如何为资产定义分类和治理流程。
虽然没有最佳答案,适合您的并不一定适合于别人,但有些提示需要注意:
- 哪些资产类型对于您的云解决方案有意义?例如,您可能具有高级架构和设计资产、实现资产,甚至有市场营销和演示资产。
- 考虑在您的资产类型上定义附加的分类属性,可以用于方便搜索。例如,基于行业(比如零售或医疗保健)、行业中的领域、成熟度等级(比如级别
1、2、3)、采用模式、自定义特征(例如,原样的和可配置的)等的分类。
- 对资产的细粒度访问控制的语义因素是什么?例如:
- 谁能创建资产?
- 谁能删除资产?
- 用户能否查看或修改其他用户的资产?
- 用户能否与其他用户共享资产?
- 是否允许资产的重新共享?
虽然这些考虑因素并不特定于云部署,但是云固有的共享特征,使得提前考虑这些标准实践并最小化解决方案部署之后的变更(这会影响到很多租户)变得尤为重要。
本文描述了如何利用以资产为中心的协作来集合多个想法类似的组织,从而以低于传统方法的成本来构建应用程序。这样一个云解决方案使得用户能够利用流行的社会网络技术来增进相互之间的交互;仍然保持企业资产所需级别的安全性、治理和完整性。本文还阐述了如何通过部署构建在
Rational Asset Manager 上的云解决方案,来充分发挥以资产为中心的协作的优势。
学习
获得产品和技术
- 在 IBM Cloud 查看在 IBM Smart Business Development and
Test 上可用的
产品映像。
讨论
|