Cognos 云最佳实践: 从单映像拓扑转移到多映像拓扑

帮助管理多映像 Cognos 云性能的最佳实践

与在传统的数据中心中一样,把 Cognos 部署到云中可能需要多台机器,所以云解决方案可能需要多个映像。性能、可伸缩性和高可用性等需求常常要求使用多映像拓扑。本文讨论管理这种多映像拓扑的最佳实践。

Stephan Jou, 技术架构师, IBM

Stephan Jou 是一位技术架构师、研究员和资深技术员,在 IBM Business Analytics 部门的 CTO 办公室 Technology & Innovation 团队工作。在从事 Cognos 软件期间,他设计并领导了几个早期产品的开发和产品化,这些产品涉及数据挖掘、神经网络、虚拟化、移动性、指示板和语义搜索。他在 IBM 当前的工作主要关注把学术机构和 IBM 的研究成果转化为 Cognos 和 SPSS 软件的产品战略。Jou 拥有 University of Toronto 的计算神经学和生物医学工程硕士学位,以及计算机科学和人体生理学双学士学位。



Lee William, 资深软件咨询工程师, IBM

William Lee 是通过 Cognos 收购进入 IBM 的资深软件咨询工程师。他是 IBM Business Analytics 部门 CTO 办公室 Technology & Innovation 团队的成员;他帮助为 Cognos 和 SPSS 软件产品制定技术愿景和发展方向。Lee 从 1992 年以来一直在 Cognos 和 IBM 工作,他拥有加拿大 Ottawa 的 Carleton University 的计算机科学和数学学士学位和计算机科学硕士学位。



Thanh Pham, 解决方案架构师, IBM

Thanh Pham 是 IBM Information Management Advanced Technology 的解决方案架构师。他当前的工作重点是帮助客户使用 IBM Mashup Center 产品和 IBM 云计算构建应用程序。在此之前,他担任 ECM/Filenet Business Process Framework 的架构师。



Biraj Saha, 咨询软件开发人员, IBM

Biraj Saha 是 IBM Cognos 的咨询软件开发人员,擅长 Framework Manager、Metrics Designer 和 Architect 等 Cognos 建模工具的元数据和算法设计和开发,以及 Cognos 8 BI Server 的 SOA 和 SDK 开发。在 2000 年之前,他是 EDS Systemhouse 的资深软件工程师,负责为许多客户进行各种基于 RDBMS 的开发项目,包括 ERP 和 RDBMS 厂商应用程序转换以及定制的 Java™、C++、存储过程和 4GL 应用程序。Saha 拥有加拿大 University of New Brunswick 的计算机科学学士学位,以及加拿大 University of Waterloo 的计算机科学硕士学位(主修面向对象数据库约束理论)。



2010 年 10 月 25 日

这是本系列的第一篇,本系列介绍在云中部署 Cognos 的最佳实践以及安装和配置技巧。本系列中使用 Cognos 8。

在开始讨论使用多个软件映像的最佳实践以及性能、可伸缩性和高可用性问题之前,我们先讨论一下云、工作负载以及 Cognos 8 如何利用云的功能。

Cognos 8 BI:系紧安全带

首先,向不熟悉 IBM Cognos 8 BI 的读者提供一些基础知识。

IBM® Cognos® 8 Business Intelligence (BI) 是 IBM 的 Information Management 品牌的成员之一。Information Management 品牌包含许多软件,除了 Cognos BI 之外,还有 DB2®、Cloudscape、InfoSphere™、Optim™、FileNet®、Informix® 和 OmniFind®。这些软件执行分析、数据和数据库管理、企业内容和遵从性管理、消息传递和协作、门户和 mashup 等任务。Cognos 软件和 SPSS 的统计分析软件构成 IBM 的业务分析产品组合。

IBM Cognos 8 BI 由四个面向任务的主要组件组成:

  1. IBM Cognos 8 BI Reporting:通过一个基于 web 的解决方案提供一系列报告功能,可以支持报告生命周期的所有阶段,例如:
    • 用户可以通过自助报告获取需要的信息,不必求助于 IT 人员。
    • 编写一次报告,即可随处访问。这让用户可以在多种设备上访问报告;支持超过 25 种语言,可以以多种格式发布报告,其他应用程序和过程可以访问报告。
  2. IBM Cognos 8 BI Analysis:让用户可以交互式地探索信息,无论数据存储在哪里(联机分析处理和维建模的关系源)。用户可以通过它快速地分析复杂问题,在汇总信息和事务级信息之间切换以寻找关键的数据,通过内置的可定制时间序列构造详细、全面的公司业务情况随时间变化的趋势 “视图”。
  3. IBM Cognos 8 BI Dashboards:提供含义明确的数据视图,帮助用户监视、度量和管理绩效;这个工具有助于提前发现小的异常情况,避免它们发展成严重的业务问题。可以对指示板进行个性化定制,产生用户需要的显示形式并以多种格式提供输出。
  4. IBM Cognos 8 BI Scorecarding:帮助用户分析通过指示板获得的报告,把结果转换为指标,然后产生前瞻性战略。用户可以用它创建的指标度量业务行动的结果,这有助于向其他用户推行这个战略。这个组件是业务操作的核心:
    • 可以给计分板中的每个指标分配一个所有者。
    • 可以按在整体战略路线中的优先级对每个计分板进行排名。
    • 每个计分板中可以嵌入 BI 功能,从而帮助对快速变化的业务情况进行分析。
    • 可以在总体战略路线中查看每个计分板,更方便地决定计分板如何适应总体计划的发展。

还可以通过各种组件扩展 Cognos 8 BI。


Cognos 8 BI:部署到云中

我们认为,业务分析软件和云计算显然是非常相配的组合。它们都能够突破传统系统带来的限制:

  • 云计算能够帮助共享数据资源,不需要把所有数据资源驻留在同一台机器上,有助于突破虚拟和物理资源存储限制。它跨云中(有时候包括云外)的各个系统平衡工作负载,从而消除 CPU 使用量高峰。它根据需要让预定义的应用程序测试系统和生产力应用程序可用,从而解决访问成本问题。
  • 业务分析把发现趋势和异常情况所需的大量操作自动化,大大减少人工操作;它创建便于查看的数据显示形式,把数据转化为信息,让用户可以轻松地看出趋势并分享发现的现象;它提供可能的解释和解决方法组合,把信息转化为知识,让用户能够把注意力集中在最重要的任务上 — 回答 “接下来应该怎么办?” 这个问题。

在本系列中

在本系列中,讨论基于我们自己的经验的最佳实践,包括:

  • 根据性能、可伸缩性和高可用性等需求管理 Cognos 多映像云拓扑。讨论如何使用现有的 Hosts 文件管理多个映像,扩展到不同的集群规模,使用私有映像创建快照,以及在哪里存储需要的文件。
  • 根据性能和可伸缩性需求确定架构规模。我们要讨论用户社区和地理分布如何影响性能,以及应用程序复杂性如何影响性能。还要提供关于部署后可伸缩性的一般规则。
  • 选择启用高可用性的设置。提供设置和维护云中的 Cognos 的建议以帮助实现高可用性和灾难恢复,包括如何使用 Cognos Gateways 和 Cognos Application Servers、Cognos Content Manager(活跃和备用两种模式)以及 IBM DB2 High Availability and Disaster Recovery (HADR)。
  • 一般的拓扑、安全性和数据考虑事项。讨论对于不同类型的工作负载和需求,应该把数据、查询数据库和身份验证源驻留在什么地方。

如果读者认为有必要的话,我们可能会在以后的文章中讨论 Cognos 8 BI/IBM Cloud 特有的安全最佳实践和安装形式。

我们首先提供一个简单的用于设计和测试拓扑的考虑事项列表(并不全面)。

关于开始使用云的四个提示

在设计和调整拓扑时:

  1. 开始时尽可能简单;只需满足需求即可,避免不必要的复杂性。
  2. 总是保持拓扑中的云实例数量尽可能少;增加实例很容易,所以最初应该低估需求。
  3. 第二条也适用于独特的云映像数量。例如,与创建多个不同的查询数据库映像相比,让单一 DB2 数据库映像在启动时定制本身更容易。
  4. 设计和测试拓扑的过程应该是迭代式的,像下面这样:
    1. 设计/调整拓扑。
    2. 创建/定制所需的实例。
    3. 安装/配置实例。
    4. 保存映像快照。
    5. 测试功能和性能。
    6. 重复。

现在,讨论本文的主要主题:管理多映像云拓扑的最佳实践。


最佳实践:使用 Hosts 文件管理多个映像

在使用多个云映像时,必须处理与这些映像相关联的有时候会变动的多个 IP 地址。

主机名把逻辑名称和 IP 地址关联起来;主机名常常由 DNS 服务器存储,程序可以通过 DNS 服务器把主机名映射到 IP 地址,或相反。例如,备用 Content Manager, version 10.3.0.1 的 IP 地址可能映射到主机名 cm_standby

对于复杂的解决方案,最好部署一个内部 DNS 服务器来管理这些主机名。另外,计算机还有一个 hosts 文件,操作系统使用它把主机名映射到 IP 地址。在许多情况下,使用 hosts 文件管理实例集群更容易:

  • 在 UNIX® 上,hosts 文件位于 /etc/hosts。
  • 在 Windows® 上,hosts 文件位于 \Windows\System32\Drivers\etc\hosts。

对于本文,假设所有实例都在同一个 Cognos 区域中,因此处于相同的私有类 IP 范围内。如果云实例位于不同的地理区域,可能需要考虑处理多个类 IP 范围。


示例:采用单一映像的有弹性的 Cognos 8 集群

请记住,包含的映像尽可能少的云解决方案总是更容易管理。例如,尽管 Cognos 8 云部署可以包含起不同作用(网关、分派器、内容管理器等等)的多个实例,但是只创建一个可定制的通用映像往往更容易管理。

Cognos 8 集群可以包含三个逻辑组件:

  • 网关
  • 分派器和内容管理器
  • 数据库

构建集群的方法之一是使用三个单独的云映像:

  • 网关映像(Cognos 和 Apache)
  • 分派器云映像
  • DB2 数据库映像

请记住规则:映像应该尽可能少。在这个场景中,动态地扩展解决方案有一些特殊的困难,在把所有组件装载在单一云映像中的场景中没有这些问题。

可以先创建一个云映像,其中包含所有软件组件(Cognos 8、Apache 和 DB2)。然后,定义从这个映像动态地启动和配置实例的动态增长机制。

这需要执行三个主要步骤:

  1. 在单一云映像中安装所需的所有软件。
  2. 使用主机名别名配置解决方案集群。
  3. 使用 hosts 文件把这些别名映射到一个实际实例和相关联的 IP 地址。

主机名别名

创建包含以下条目的 hosts 文件:

  • myCognos。当前实例的别名(与 localhost 相似)。
  • vm-db2。DB2 实例的别名。
  • vm-gateway。Cognos 网关实例的别名。
  • vm-cognos1。第一个 Cognos 分派器的别名。
  • vm-cognos2 ... vm-cognos10。另外 9 个可能存在的 Cognos 分派器的别名。

在默认情况下,hosts 文件中的所有别名映射到 localhost,这是当前机器实例的别名。

在 Cognos 8 Configuration 工具的 Environment 选项卡上,输入表 1 中的设置:

表 1. 配置设置
Gateway URL把 localhost 替换为 vm-gateway
Dispatcher URI输入 10 个分派器的 URI:http://vm-cognos1:9080/p2pd/servlet/dispatcher/ext、http://vm-cognos2:9080/p2pd/servlet/dispatcher/ext 等
Controller URI for gateway把 localhost 替换为 myCognos
External dispatcher URI把 localhost 替换为 myCognos
Internal dispatcher URI把 localhost 替换为 myCognos
Dispatcher URI for external applications把 localhost 替换为 myCognos
Content Manager输入 10 个分派器:http://vm-cognos1:9080/p2pd/servlet/dispatcher/ext、http://vm-cognos2:9080/p2pd/servlet/dispatcher/ext 等

在表 1 中的 URI 中,把端口 9080(安装在 Websphere® Application Server 中时分派器使用的默认端口)替换为适合您环境的端口号。例如,如果使用 Tomcat 而不是 WebSphere Application Server,那么使用 9300。

这些配置设置允许简便地把云拓扑从单实例集群扩展到 12 个实例,只需启动实例并修改 hosts 文件。

现在看看集群规模。

集群规模为 1

任何实例都可以作为规模为 1 的独立集群。安装的所有软件(Cognos 8、Apache 和 DB2)都在一个实例上运行。

集群规模为 2

对于规模为 2 的集群,两个实例扮演以下角色:

  • Instance 1 作为 DB2。
  • Instance 2 作为网关、分派器和内容管理器。

对 Instance 1 的 hosts 文件做以下修改,让 Instance 1 作为 DB2:

Instance 1 主机名别名新设置
myCognosInstance 1 IP
vm-db2Instance 1 IP
vm-gatewayInstance 2 IP
vm-cognos1 ... vm-cognos10Instance 2 IP

对 Instance 2 的 hosts 文件做以下修改,让 Instance 2 作为网关、分派器和内容管理器。

Instance 2 主机名别名新设置
myCognosInstance 2 IP
vm-db2Instance 1 IP
vm-gatewayInstance 2 IP
vm-cognos1 ... vm-cognos10Instance 2 IP

注意,对 hosts 文件的修改应该会立即生效;在大多数操作系统上(包括 Windows 和 Linux),让新的和更新过的主机条目生效不需要重新启动任何服务。另外,已经在运行的任何 Cognos 8 实例也不需要重新启动。

集群规模为 3

启动第三个实例,通过修改 hosts 文件分配以下角色:

  • Instance 1 作为 DB2。
  • Instance 2 作为网关。
  • Instance 3 作为分派器/内容管理器。

例如,像下面这样修改 Instance 3 的 hosts 文件:

Instance 3 主机名别名新设置
myCognosInstance 3 IP
vm-db2Instance 1 IP
vm-gatewayInstance 2 IP
vm-cognos1 ... vm-cognos10Instance 3 IP

把集群规模扩展到 4 至 12

要想把集群规模扩展到 3 个实例之上,只需重复前面描述的步骤。增加一个实例,把余下的 vm-cognos 别名分配给新实例的 IP,从而让它作为额外的分派器加入拓扑。例如,增加第四个实例并修改 Instance 4 的 hosts 文件:

Instance 4 主机名别名新设置
myCognosInstance n IP
vm-db2Instance 1 IP
vm-gatewayInstance 2 IP
vm-cognos1Instance 3 IP
vm-cognos2 ... vm-cognos10Instance 4 IP

实际上,在分派器列表 中添加云实例,就能动态地扩展解决方案。分派器列表作为负载平衡器,Cognos 8 按分派器在 Cognos 配置中出现的次序联系它们。

对于这个示例,10 个分派器的限制(这个拓扑中的实例总数为 12 个)是随意设置的;可以根据需求降低或提高。


使用私有映像创建快照

在开发解决方案时,一定要通过在 IBM Cloud 中创建私有映像创建工作的快照。除了提供备份之外,私有映像会记录对映像的所有软件安装和配置,可以节省时间。

例如,通过创建操作系统以及所有存储库修改、安全性/防火墙设置和一些常用工具的私有映像,可以为其他映像提供一个起点,这样就不需要每次都 “从头开始”。创建这种基映像快照 是推荐的最佳实践。

修改私有映像时会创建一个新的私有映像,但是只存储第一个映像和第二个映像之间的差异。例如,在基映像中安装 Cognos 8 时,创建一个新的私有映像,结果是一个小得多的映像。这个映像只需要存储刚添加的 Cognos 8 软件。

不能删除中间的任何私有映像,因为为了节省空间私有映像只存储映像之间的差异(称为 delta 修改)。例如,如果映像 C 基于映像 B,映像 B 基于映像 A,那么不能删除映像 B,因为 C 依赖于它;IBM Cloud 通过对 B 应用修改生成 C。


云中的文件

IBM Cloud 中的文件存储在两个地方 — 在与云实例相关联的文件系统上或在挂载的目录中。

文件可以存储在与云实例相关联的文件系统上。这个本地文件系统相当于 PC 的硬盘驱动器。存储在这里的文件应该被认为是临时的,因为每个实例的文件系统不是永久的。如果关闭实例(或发生了某种故障),那么存储在此文件系统上的信息就会丢失。另外,其他实例无法访问存储在云实例中的文件。

文件还可以存储在从 IBM Cloud 存储实例挂载的基于文件系统的目录中。这个云文件系统相当于连接多个 PC 的 NAS(网络可寻址存储)单元。由于 IBM Smart Business Development and Test Cloud 的存储提供备份和冗余保证,存储在这里的文件可以被认为是永久的。

所有实例都可以访问并共享挂载的目录中存储的文件。可以向 IBM Smart Business Development and Test Cloud 单独购买额外的存储备份和恢复服务。

如果文件需要存储在云映像之外或需要在云实例之间共享,那么把文件存储在从 IBM Storage Cloud 挂载的目录中。在多映像 Cognos 8 部署中,应该考虑把以下文件存储在挂载的目录中,而不是本地实例中:

  • 基于文件的数据源
  • 共用的软件
  • 共用的部署脚本(允许更新/调整这些脚本,而不需要修改多个私有映像)
  • 预先构建的 hosts 文件和其他配置文件(可以复制到云实例中)
  • 重要的审计或日志文件的拷贝(这样的话,即使原来的实例关闭,它们也会保存下来)
  • 数据库备份文件

结束语

我们希望这些最佳实践能够帮助您更好地管理多映像云拓扑,从而在 IBM Cloud 中有效地运行 Cognos。把云计算和智能业务分析结合在一起可以让您的应用程序极具竞争力。

请在 Cognos 站点和 developerWorks 上查找关于在云中运行 Cognos 的更多信息(见 参考资料)。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Cloud computing, Information Management
ArticleID=555999
ArticleTitle=Cognos 云最佳实践: 从单映像拓扑转移到多映像拓扑
publish-date=10252010