ISV 客户博客系列:Minitab通过Windows Azure推出云端Qeystone

编者注 : 本博客出自Minitab企业Web架构师Michael Yeaney之手,描述了公司如何使用Windows Azure以及持续集成为其客户快速构建分析解决方案。

Minitab公司. 领先的软件质量改良提供商。Minitab统计软件——我们的旗舰产品——已经被用在全世界几乎每个六西格玛(Six Sigma)计划中。Minitab的质量培训师教你质量改良统计和如何与Minitab一起分析你的数据。Minitab的质量伴侣支持和指导你学习六西格玛(Six Sigma)团队从项目开始一直到结束。依靠Minitab产品和服务的帮助,一些杰出的公司实现了世界级质量,包括宝马、通用电气、杜邦公司、波音公司、耐克、Procter & Gamble和一些领先的六西格玛(Six Sigma)咨询公司。

概述

我们的Qeystone产品套餐是建立在Windows Azure之上的精益六西格玛(LSS)市场的项目投资组合管理系统。由几个离散的应用程序组成,Qeystone充分利用Windows Azure的可用功能,目的是为LSS从业人员提供一个强大的、统一的分析平台。项目数据是LSS项目团队成员通过一些能将他们的数据发送至Qeystone云服务数据存储库中的桌面接口收集而来的。一旦提交,此数据能够跨多维索引,能被用于以近实时方式提供分析和汇总。此信息为客户企业的所有流程改进项目提供最新的可见性。

Qeystone产品套件的核心组件有:

云服务: 基于Web的HTML/Javascript仪表盘用于管理数据存储库和汇总/报告信息。此外也提供用于所有依赖Qeystone产品的核心REST管理服务。

桌面工具: 完全自定义信息收集和特定于LSS市场(价值流图、流程图等)的数据可视工具。连接到云服务,部署(见上面)供所有数据需求。

Web / 移动: 专注于任务的接口,用于快速信息传递。

部署管理工具: 专门用于快速定制、 部署和管理的客户站点的工具。使用了Qeystone REST 管理API.

许可的门户网站: 全公司安全令牌服务 (STS) 纳入发牌管制、订阅管理、配额等。此外还提供用于连接应用程序的web目录功能。建立在Windows Identity Foundation (WIF)和WS-Federation标准之上。

使用传统方法开发这样一个拥有扩展性的一套产品通常会花费几个月时间,消耗大量的人力资源。但是,使用灵活的服务于Windows Azure的Qeystone,我们可以让应用程序可用而且极快(程序8到12个月就能预览测试)。

Qeystone体系结构

Qeystone产品套件中的所有组件的高级视图如下所示;在适当情况下,列出了为每个组件使用的Windows Azure服务。

Qeystone 产品套件的核心是云计算平台——为所有连接上的应用程序提供集中式数据管理。此平台包括一个典型的web/队列安装程序和几个增强功能(见下图)。这种面向大众的web角色处理REST API——调用自所有客户端应用程序,操作有关任何单个特定的数据结构的元数据。这些调用可能导致额外的延迟命令,比如数据提取、索引、生成导出/报告,这些将会被传送到实例到一个或者多个可用的后台计算角色Windows Azure 存储队列。除了检测这些传入命令队列,这些后台计算节点也负责允许web角色派发分析/汇总请求给他们的实时WCF分析服务集合。这两种不同的输入至后端计算节点的方法提供清洁分离命令和分析请求系统。

云计算体系结构

Qeystone系统是针对于Windows Azure环境分析许多独立服务器设计的,相对于依靠传统的“big iron”企业数据分析途径。所有的系统组件旨在运行在1至N台电脑上,目的是为有着大量计算需求的客户提供快速切强大地计算。为了充分利用这点,客户部署不断通过 Windows Azure 诊断从内部系统,根据预先确定的阈值的性能计数器数据跟踪监视。如果某个特定的客户超出这些阈值时,将发送警报到我们的支持工程师评估客户是否能够停留在当前订阅范围内。利用Windows Azure弹性的可扩展性,客户部署为6至24台机器,这通常会花费几周或甚至几个月,现在可以在提供客户订阅允许发生缩放的几分钟内完成。

数据存储子系统的另一个重要部分是备份和还原系统崩溃、用户错误或应用程序错误事件中的能力。通过利用管理 API 提供的 Windows Azure ,我们能够创建一个完全自动化的系统,每天备份SQL AzureWindows Azure 存储的关键数据。这些备份可用于根据需要的还原操作。

Windows Azure 的弹性对核心产品的开发也有帮助。设计和建造大型、 多实例开发和测试环境一向是高昂的努力。通常,这意味着由于平行度和状态,bug 都未在开发周期后期找到。然而,在Windows Azure上构建这样一个系统的启用测试"真正的"配置,允许竞赛、 时间安排冲突等,将快速、 轻松地解决这些棘手问题。

许可门户

许可门户允许受信任的用程序(例如,Qeystone)完全代理所有用户身份验证、 授权和索赔分配到单个机构的处理。当一个受信任的应用程序代理一个门户网站身份的授权请求时,这其中信息包含用于选择用于标识当前用户的适当机构。这些当事人可能是任何SAML/WS-FED兼容服务,如ADFS,OpenID或默认的Minitab身份验证提供程序。

链接基于云的身份提供程序到内部系统会被Windows Azure 服务总线启用,以便为这些集成提供所需的双向消息。利用基于主题的访问和服务总线的多播的功能,我们就能够发送和接收邮件之间的所有 Qeystone 部署和内部支持系统,允许紧密集成的必要驱动器在许可门户。服务总线的力量是能够立即利用企业级邮件基础结构,无需安装、 部署和更新的开销。这是另一个Windows Azure极好的例子,使我们能够专注于建筑产品而不是支持基础结构。

应用租赁

由于敏感的客户信息将放在Qeystone 系统内,我们早就决定构建和部署 Qeystone 云服务作为单租客的应用程序。这意味着每个客户部署已隔离计算、存储帐户、SQL Azure 和服务总线实例。尽管从实施的角度来说,可能会让我们花费更多,使用独立部署所获得的额外安全性还是受到了我们客户的好评,并且它更接近传统的企业开发模型。一个典型的部署方案可能如下所示:

请注意在上面的图中,为每个客户建立单独的信任边界,减少跨部署数据泄漏的风险。这些信任也可能会扩展到更多的功能(例如,使用ADFS集成)的客户网站。

发展面临的挑战

和任何大规模产品开发工作一样,很多周期中花费在开发的应用程序开发生命周期上。尽管内置的Windows Azure SDK工具提供Windows Azure应用程序简单且功能强大的部署选项,但他们还是不能轻松容纳高度控制/经审计的部署环境,原因如下:

  • 个别开发商能够发布控制应用程序的部署。
  • 我们不能有选择地推向生成/科各种 Windows Azure 网站的开发、 测试、 负载测试和回归目的在受控的方式 (请注意这是不同于 Visual studio 提供的 Windows Azure 工具内置的配置支持)。
  • 生产部署没通过审核、 人类的工作流,以便部署和升级仅通过控制渠道流量。

基于这些原因,我们开发了一个联系在一起的产品发展管道的所有关键组件的内部的自定义部署机制: VS2010,Windows Azure 模具和 SDK、 TFS 2010 年和 CruiseControl.NET。下图概述了此工作流:

请注意当签入 (从而推动我们的 CI 环境),代码时会自动触发此工作流,也可以通过手动触发自定义构建脚本。这些自定义脚本允许"挑选"的确切的生成、 分支,和/或将部署到我们的产品开发使用的许多 Windows Azure 帐户之一的变更集的支持工程师。每个自动的构建拉选定的源分支、 生成产品、 启动 Windows Azure 模拟器,并运行通过我们整个套件的单元测试和自动化的核查。只有成功的测试运行后是生成可用于部署到选定的站点。利用服务管理 API,生成软件包上载到所选的 Windows Azure 帐户作为活动、 分阶段的部署。如果此部署站点内部的帐户 (例如,测试、 回归等),暂存环境被交换到生产。但是,如果网站是一个客户帐户,VIP 交换不执行,而向客户支持技术人员离开这最后的一步。如上文所述,该手动步骤指示通过控制渠道客户的部署。

总结

Windows Azure 提供了许多功能强大的现成的功能——快速地让开销占软件即服务(SaaS)应用程序开发成本一小部分。此外,它已删除很多技术上将严重妨碍系统(如 Qeystone)发展的限制。放弃这些问题的困扰, Minitab专注于为客户提供无与伦比的价值和令人难以置信的速度,如果没有Windows Azure几乎是不可能的。

本文翻译自:https://blogs.msdn.com/b/windowsazure/archive/2012/05/30/isv-guest-post-series-minitab-launches-qeystone-into-the-cloud-with-windows-azure.aspx