您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
   
 
 
     
   
 订阅
  捐助
实现程序到云环境的持续交付
 
作者:石琎,杨性权 来源:IBM 发布于 2015-03-04
   次浏览      
 

近年来,云计算中的基础设施即服务(IaaS)依赖其高可扩展易配置的特点已有颠覆传统硬件的趋势,这也对“持续交付”的实现提出了新的机遇和挑战。IBM UrbanCode Deploy with Patterns 是一款新型的环境管理与部署解决方案,利用它不仅可以在 OpenStack、Amazon、VMware vCenter 等不同的云上设计、部署或更新一个“全栈式”的环境,还可以与 IBM UrbanCode Deploy 集成实现应用程序到云环境的端到端的持续交付管道。下面本文将从相关概念、安装配置、拓扑结构和应用场景及等方面为您详细介绍这一可实现程序到云环境“持续交付”的工具。

向云环境“持续交付”所面临的问题

众所周知,云计算有 IaaS(Infrastructure as a Service) ,PaaS(Platform as a Service) ,SaaS(Software as a Service) 三种服务模式。其中的基础设施即服务 IaaS 可将硬件进行虚拟化,使用户可以按需定制自己所需的基础设施(计算资源、网络资源、存储资源等),即本文所指的“云环境”。硬件的虚拟化亦即基础设施的代码化,它使我们可以像编制程序那样管理与部署环境,并给依赖脚本自动化的“持续交付”带来了便利。不过面对如 OpenStack、Amazon Elastic Compute、VMware vCenter 等诸多云提供商,分别手动编写各自的环境管理与部署脚本依然是一个不小的挑战。

IBM UrbanCode Deploy with Patterns 概述

IBM UrbanCode Deploy with Patterns 是一个环境管理与部署方案,它提供了用于绘制环境蓝图(blueprint)的图形化编辑器和进行代码编写的文本编辑器,用户可以通过拖拽 - 修改属性 - 编辑代码的方式在不同的云上设计、部署或更新一个“全栈式”的环境,还可以与 IBM UrbanCode Deploy 集成实现应用程序到云环境的端到端的持续交付管道。人们可以使用 IBM UrbanCode Deploy with Patterns 管理他们的程序负载,获得从计算资源级到程序级的更高级别的控制;用户可以利用改进的协作生命周期管理和可移植云来快速地设计、部署和重用环境。 IBM UrbanCode Deploy with Patterns 通过自动提供云环境加速了应用程序的开发部署,它的核心功能包括:

环境蓝图文本/图形化设计器

为了尽可能简化定义和更新云环境的过程, IBM UrbanCode Deploy with Patterns 中的核心组件模式设计器具有图形化和文本两个视图,以便达到容易理解,快速开发并易于进行版本控制的目的。其中文本视图基于 Eclipse Orion 实现,内部规范使用 OpenStack Heat 编制模板 (HOT) 格式来定义环境,真正实现了“基础设施代码化”,这些代码可以被版本化被分支、变更和合并,如图 1 所示:

图 1. IBM UrbanCode Deploy with Patterns 文本编辑器

图形化设计视图中可以清晰地查看整个环境以及各部分之间是怎么协作的。通过简单的拖拽即可快速地在云中绘制环境蓝图。

图 2. IBM UrbanCode Deploy with Patterns 图形化编辑器

两个视图之间支持无缝切换,用户可以在图形化视图中画出轮廓后再使用文本视图中的查找替换语法纠错等文本功能修改一些细节,二者之一的选择修改都会反映在另一个视图中,通过二者的灵活切换,用户可以快速准确地绘制 / 编写好自己的环境蓝图。

“全栈式”环境蓝图跨云可移植性

“全栈式”环境

何为“全栈式”环境?“全栈式”环境即指从基础设施到应用程序的所有相关程序和配置组合在一起的环境。有了 IBM UrbanCode Deploy with Patterns 的帮助,用户在进行程序自动化部署的时候申请的基础设施不再是一台空白虚机,而是包含了操作系统、存储模块、网络及安全规则等相关资源的开箱可用的“实机”,用户可以直接在此基础上继续安装中间件,应用程序等其他组件。这个被代码化的“全栈式”环境可以在开发、测试、部署等软件生命周期中一致地流转,继而保障“持续交付”的顺利进行。

将同一环境蓝图部署到不同的云

IBM UrbanCode Deploy with Patterns“ 全栈式”环境蓝图是通过基于 OpenStack 云环境平台的 Heat 编配模板定义的。它还在很多关键方向扩展了 Heat ,例如扩展了除 OpenStack 之外的其他云环境提供商,比如 AWS。 IBM UrbanCode Deploy with Patterns 还向资源栈提供了额外的资源类型,这些资源类型可以将正在开发的程序包含进来。

在此基础上,通过为不同的云系统创建不同的配置文件,用户可以在只开发一个“全栈式”环境蓝图的基础上将该蓝图部署到多个云。

具体来说:用户可以首先选择一个没有绑定云系统的账户登录系统,并使用通用资源( reference resource )创建一个不依赖具体云系统的环境蓝图,如图 3 所示:

图 3. 创建与云系统无关的环境蓝图

然后为每个云系统新建对应的配置文件中并单击工具栏添加按钮将所需属性添加到每个配置文件中并编辑,如图 4 和清单 1 所示:

图 4. 为每个云系统创建对应的配置文件

清单 1. 为 OpenStack 云部署环境的配置文件“config4OpenStack”

 parameters:

image: TODO

Referenced_Image_server_name: TODO

flavor: m1.small

key_name: TODO

network_id_Referenced_Network: TODO

server_url: http://192.168.27.101:8080/landscaper

Referenced_Component_version: LATEST

Referenced_Component: TODO

ucd_server_url: https://192.168.27.102:8443

ucd_user: admin

ucd_password: TODO

Referenced_Image_Referenced_Storage_Volume_Attachment_id: TODO

Referenced_Security_Group: TODO

public_network_id: TODO

清单 2.为 VMware 云部署环境的配置文件“config4OpenStack”

resource_registry:

OS::Nova::Server : IBM::VCenter::Server

parameters:

...同清单 1-1...

最后在进行部署操作时使用对应云环境的认证用户登录既可以选择对应该云环境的配置文件或者在部署窗口中再次修改属性进行部署,对应云环境中的可用资源均可在部署窗口的下拉框中获得。如图 5 所示 :

图 5. 选择配置文件实现环境蓝图的跨云部署

高效更新原有环境

和传统的配置工具需要重启环境更新配置不同, IBM UrbanCode Deploy with Patterns 原生地支持增量更新环境。在环境蓝图的更新应用到一个已存的环境时,如果变更只是增加了一些服务器,组件或者存储资源,那么这些元素直接就加上了;如果服务器的类型变了,变更节点会被去除并重新配置而其他的节点保持不变;只有所有的基础镜像改变时整个环境才会被重建。设计器中的“应用到”按钮提供了该功能,如图 6 所示:

图 6. 将环境蓝图更新应用到原有环境

与 IBM UrbanCode Deploy 集成实现端到端的持续交付管道

经过简单配置, IBM UrbanCode Deploy with Patterns 还可与 IBM UrbanCode Deploy 进行集成以实现应用程序或组件到云环境的端到端的持续交付管道。具体来说在 IBM UrbanCode Deploy with Patterns 设计器中可以将 IBM UrbanCode Deploy 中的组件作为资源直接使用,在 IBM UrbanCode Deploy 中也可以选择 IBM UrbanCode Deploy with Patterns 中的环境蓝图并按照蓝图中的配置部署环境,如图 7、图 8 所示。文章的后续部分将涉及到 IBM UrbanCode Deploy with Patterns 与 IBM UrbanCode Deploy 的集成方法及如何在 IBM UrbanCode Deploy 中选择蓝图创建环境。

图 7. IBM UrbanCode Deploy 中的组件资源

图 8. 在 IBM UrbanCode Deploy 中选择环境蓝图部署环境

IBM UrbanCode Deploy with Patterns 的拓扑结构

经典安装的情况下, IBM UrbanCode Deploy with Patterns 及其相关系统将组成如图 9 所示的拓扑结构:

图 9. IBM UrbanCode Deploy with Patterns 的拓扑结构

IBM UrbanCode Deploy with Patterns 设计服务器

该服务器提供了 IBM UrbanCode Deploy with Patterns 的 web 界面,包括绘制环境蓝图和控制环境蓝图访问权限的界面。

IBM UrbanCode Deploy

IBM UrbanCode Deploy 提供了组件的相关信息,用户也可以直接从 IBM UrbanCode Deploy 创建程序环境。

IBM UrbanCode Deploy with Patterns 引擎及其扩展

该引擎是添加了 IBM 扩展的 OpenStack Heat 引擎。该引擎管理云基础设施,负责在云中配置、更新、删除资源。

云发现服务

IBM UrbanCode Deploy with Patterns 其中的一个组件,该服务向设计服务器提供了可用的云资源信息,比如在部署环境时初始化属性下拉框。

OpenStack 认证服务

该服务提供了 OpenStack 系统的认证句柄,用于两产品之间的集成

云系统

相关的云托管了具体的虚拟资源

IBM UrbanCode Deploy with Patterns 的配置

IBM UrbanCode Deploy 与 IBM UrbanCode Deploy with Patterns 的集成

IBM UrbanCode Deploy 与 IBM UrbanCode Deploy with Patterns 的集成需要进行双向认证,要完成集成用户既需要将前者与后者连接又需要将后者与前者连接。在配置前者到后者的连接之前需要先在前者的设置页面创建新的认证句柄,如图 10 所示。大多数情况下在安装后者时即可指定所要连接的前者的 URL ,认证句柄或用户名密码。如果没有在安装时进行配置,则可先在后者所在的虚机中修改 /var/lib/tomcat6/webapps/landscaper/WEB-INF/classes/config.properties 文件中的 com.ibm.landscaper.ucdeploy.url 和 com.ibm.landscaper.ucdeploy.token 属性或 com.ibm.landscaper.ucdeploy.username 和 com.ibm.landscaper.ucdeploy.password 属性,然后通过 service tomcat6 restart 命令重启 Web 服务器即可。

图 10. 在 IBM UrbanCode Deploy 中创建认证句柄

OpenStack 与 IBM UrbanCode Deploy with Patterns 集成

通过两种配置可以将 IBM UrbanCode Deploy with Patterns 连接到 OpenStack 云。选择哪种方法取决于选择使用 OpenStack 中的还是第三方认证比如 LDAP 服务中的认证用户访问云资源,在这里我们介绍第一种方式。为了使用 OpenStack 的认证用户连接云资源,首先需要在 IBM UrbanCode Deploy with Patterns 中创建一个指向 OpenStack 认证域,如图 11 所示:

图 11. IBM UrbanCode Deploy with Patterns 创建 OpenStack 认证域

至此服务器将在 IBM UrbanCode Deploy with Patterns 中创建与 OpenStack 云连接的 OpenStack 中的认证用户,同时将在 IBM UrbanCode Deploy with Patterns 的可用云中创建与 OpenStack 中的云对应的云项目,如图 12 ,图 13 所示:

图 12. 从 OpenStack 中导入的认证用户

图 13. 与 OpenStack 对应的云项目

在这之后还需要将新导入的 OpenStack 用户加入组并授予角色权限,并将已自动创建好的对应云项目加入对应的组中。如图 12 ,图 13 所示:

图 14. 将导入的 OpenStack 用户加入组并授予角色权限

图 15. 将自动创建的云项目加入对应组

向云系统部署环境的经典应用场景

在上一部分的基础上, IBM UrbanCode Deploy with Patterns 与 OpenStack 集成后即可向其部署环境,再与 IBM UrbanCode Deploy 集成后即可将后者中设计好的组件与应用部署到 OpenStack 的云系统中,向例如 OpenStack 的云系统部署环境的常见应用场景有以下两种:

直接在 IBM UrbanCode Deploy with Patterns 部署云环境

1. 确保已与 IBM UrbanCode Deploy 及 OpenStack 等云系统集成且已连接到作为待部署环境宿主的云项目。

2. 创建并编辑将要部署的环境的设计蓝图,如图 16 所示:

图 16. 带有 IBM UrbanCode Deploy 组件的环境蓝图范例

3. (可选)选择配置文件 / 设置属性,部署到 Amazon 和 VMware 时必须选择配置文件,部署到 OpenStack 时可以不选择配置文件,此时环境将被部署到登陆账户关联到的 OpenStack 服务器。各属性将按照配置文件中的设置进行初始化,也可在部署窗口重新修改属性。如图 5 所示。

4. 单击部署按钮部署环境。部署过程启动后,可查看环境部署的状态及其详细结果,如图 17 ,图 18 所示;部署完成后亦可在 OpenStack 中查看已部署的程序环境,如图 19 所示:

图 17. 环境蓝图部署状态监测

图 18. 环境蓝图部署详情

图 19. 在 OpenStack 中验证程序环境

在 IBM UrbanCode Deploy 中部署云环境

1. 在 IBM UrbanCode Deploy 中单击应用程序标签页选择一个应用程序然后创建环境

2. 填写环境名称,选择从 IBM UrbanCode Deploy with Patterns 中获得的可用环境蓝图,如图 8 所示,然后单击下一步

3. 选择需要部署到的云项目、蓝图版本、所需配置文件等信息,如图 20 所示:

4. 单击创建按钮

图 20. 在 IBM UrbanCode Deploy 中创建程序环境

总结

针对企业应用在多样云环境下的“持续交付”需求, IBM UrbanCode Deploy with Patterns 基于与 OpenStack 和 Amazon 等常见云系统及现有 UrbanCode 系列产品的灵活集成和拓展,提供了易用的文本/图形化编辑器,用户通过简单的拖拽和编辑即可设计自己的环境蓝图并在其基础上通过修改配置属性向多个云系统部署或者更新一个“全栈式”的环境,极大的提高了环境部署的可视性,灵活性和一致性和效率,是一款可用性和易用性都较好的环境管理与部署方案。

   
次浏览       
 
相关文章

云计算的架构
对云计算服务模型
云计算核心技术剖析
了解云计算的漏洞
 
相关文档

云计算简介
云计算简介与云安全
下一代网络计算--云计算
软浅析云计算
 
相关课程

云计算原理与应用
云计算应用与开发
CMMI体系与实践
基于CMMI标准的软件质量保证
最新活动计划
LLM大模型应用与项目构建 12-26[特惠]
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
业务建模&领域驱动设计 11-15[北京]
用户研究与用户建模 11-21[北京]
SysML和EA进行系统设计建模 11-28[北京]

专家视角看IT与架构
软件架构设计
面向服务体系架构和业务组件的思考
人人网移动开发架构
架构腐化之谜
谈平台即服务PaaS
更多...   
相关培训课程

云计算原理与应用
Windows Azure 云计算应用

摩托罗拉 云平台的构建与应用
通用公司GE Docker原理与实践
某研发中心 Openstack实践
知名电子公司 云平台架构与应用
某电力行业 基于云平台构建云服务
云计算与Windows Azure培训
北京 云计算原理与应用