将应用交付服务引入到OpenStack-中国IC微专栏2016.6.16
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将应用交付服务引入到OpenStack-中国IC微专栏2016.6.16相关的知识,希望对你有一定的参考价值。
OpenStack正成为开源IaaS云计算平台的佼佼者,无论是私有云、公有云或者混合云都可以看到他的身影,并且也开始支撑关键生产应用。从OpenStack第六次用户调研可以发现,从2013年11月到2015年9月,短短两年的时间,将生产应用部署在OpenStack上的用户比例就从32%增加到60%。超过50%的用户开始将生产应用部署在OpenStack上,随之4到7层的应用服务就成为必备的组件。4到7层的应用服务可以提供进一步的安全、扩展和优化服务来确保关键业务应用的安全、高速和高可用。作为应用交付领域的领头羊,F5当仁不让,在业界率先将应用交付服务导入到OpenStack平台,为用户的云端业务保驾护航。
图1. Openstack的六次用户调查(n=351)
1. OpenStack简介
OpenStack是一种云计算的开源软件框架,兴起于NASA和RackSpace的一个联合项目,目前由OpenStack基金会管理,通过OpenStack社区推动云计算的发展。许多IT厂家都基于开源版本定制了自己的OpenStack发行版,增加了支持、咨询和服务等,为企业用户使用OpenStack提供支持。
OpenStack包括很多模块,这些模块提供了不同的服务来打造云计算平台。其中几个模块直接和应用交付相关,包括:
功能 | 模块 | 描述 |
计算 | Nova | 管理计算资源池,虚拟池和物理池都可以通过该模组管理 |
网络 | Neutron | 管理网络、IP地址和应用网络服务,包括负载均衡等 |
编排 | Heat | 通过模板和API来编排其他的OpenStack模组 |
OpenStack最根本的一个元素就是RESTfulAPI,它可以用来进行架构组件的配置和自动化。在各种OpenStack的应用场景中,API驱动的编排是不可或缺的,比如:构建多租户、自服务的云平台,亦或创建一个支持DevOps的基础架构。通过RESTfulAPI,可以帮用户大大缩减应用部署时间,从数周减少到几分钟,或者一天内部署数百种服务,这是很多用户上云平台的最主要驱动力。要达到这种效率,基础架构上的所有组件都必须归到自动化的框架来管理。很多应用必须和应用交付服务绑定才能真正上生产,比如应用安全或者访问控制等。因此,将应用交付服务和OpenStack的编排集成刻不容缓。
2. OpenStack和应用交付服务集成
OpenStack和应用交付集成后,可以为OpenStack上的应用提供生产所需的各种服务。目前,F5的应用交付服务可以通过两种方式集成到OpenStack框架中:一是通过Neutron加载负载均衡服务2.0(LBaaSv2.0),二是通过Heat进行编排。当然F5也支持LBaaSv1.0和Neutron的集成,但是自从OpenStack Liberty版本发布后,OpenStack社区就弃用了v1.0的API。这是为什么我们建议客户迁移到LBaaSv2.0上来,因为最新的OpenStack Mitaka版本都已经发布了。
2.1LBaaS
NeutronLBaaS提供了基本的应用负载均衡,当然只提供通用负载均衡最重要的功能。LBaaS服务交付模式将提供服务的资源从服务本身抽取出来,因此该模式有时被称为“云下部署”(Underthe cloud)。LBaaS通过RESTful API进行管理,租户可以通过API呼叫REST进行LBaaS对象创建、更新和删除等操作,租户通过API调用来变更在F5负载均衡实例上的配置,从而实现对LBaaS的管理和控制。
F5的LBaaS驱动包括两个独立的部分:F5LBaaS插件和LBaaS引擎。F5 LBaaS插件需要安装在运行Neutron API服务的一台服务器上,LBaaS引擎(包含驱动)也要安装在该服务器上。每个设备服务组(一个集群中BIG-IP设备的集合)需要一个独立的代理进程。租户进行LBaaS的API调用,LBaaS驱动就会收到租户的任务,LBaaS代理进程就会将该任务翻译成F5iControl的API调用,从而在BIG-IP设备或虚拟机(VE, Virtual Edition)上去创建或更新配置对象。由于所有租户的网络或VLAN都是相互隔离的,因此在单个BIG-IP实例或HA配置的设备组上,LBaaS驱动可以为多个租户提供服务。在共享BIG-IP实例的环境下,F5LBaaS插件提供了必须的API调用到BIG-IP实例和Nova,来确保每个租户的流量只会路由到租户自身隔离的侦听对象上。
图2. 云下LBaaS部署
2.2租户隔离
在多租户环境中,Nova的一个关键部分就是确保各个租户的相互隔离,BIG-IPLBaaS组件利用了BIG-IP多租户的功能来确保租户流量的隔离,确保租户之间的流量没有相互干扰。
组件 | 注释 |
支持网络覆盖 | 支持VXLAN和GRE隧道:租户的流量被完全封装到了BIG-IP系统 |
路由域 | 平台内严格定义地址空间,每个路由域对地址空间和路由信息进行隔离,地址空间可以在路由域之间复制,从而使得RFC 1918多租户私有地址易重用 |
隔离分区 | 创建单独的配置管理,每个租户配置包含在一个单独的管理分区中 |
LBaaS为OpenStack提供了一个简单的、API驱动的系统来进行负载均衡服务的部署,为大量客户提供基本的负载均衡服务。但API只提供全面应用交付控制器(ADC)功能的一个子集。下表比较了LBaaS和本地BIG-IP服务在一些关键的应用交付性能的差异,如协议支持、附加服务、健康监测等。
属性 | 基于LBaaS的BIG-IP服务 | 原生的BIG-IP ADC服务 |
支持的协议 | 仅支持TCP | TCP、UDP、SCTP |
7层协议 | HTTP、HTTPS | HTTP、HTTP/2、HTTPS、FTP、RTSP、Diameter、FIX、SIP、PCoIP、RDP |
应用层安全 | 无 | 完整的WAF |
网络层安全 | 无 | 完整的网络防火墙 |
应用层访问 | 无 | 完整的认证和SSO能力 |
流量分布算法 | 3 | 17 |
应用加速 | 无 | 全套的缓存、压缩和内容处理工具,包括TCP优化 |
健康健康指标 | 3 | 超过20个,包括SMTP、数据库、SNMP、SIP、 FTP、DNS) |
数据流路径可编程 | 无 | F5 iRules可以让用户完全控制应用数据的流向 |
2.3 Heat编排服务和模板
OpenStack Heat是基于模板生成应用的编排服务,Heat模板将基础设施的描述存放在一个或多个文本文件中,Heat服务执行适当的API调用来创建所需的组件。通过使用自定义插件,Heat服务可以将整个OpenStack扩展到核心模块之外,为用户提供灵活的定制能力。
F5Heat插件可以让Heat模板基于任何BIG-IP设备或VE创建高级的应用交付配置,唯一的要求就是F5Heat插件安装的服务器能够通过网络访问到BIG-IP设备或者VE,当然BIG-IP实例也需要访问到租户的实例,虽然BIG-IP实例到租户的连接不是通过Heat插件来管理的。
Heat模板使用一种简单的标记语言YAML来实现,方便了管理员的阅读和理解。Heat模板是声明性设计,也就是说,你只是定义了这些架构组件,最后的执行完全依赖于底层架构供应商来生成你所定义的配置。Heat模板可以和F5的iApps模板配合,生成各种复杂的高级应用交付场景。iApp模板可以重用,只需简单将相关参数传递给指定的应用,就可以重复生成各种应用配置。如果要使用高级特性的复杂应用交付配置,包括Web应用防火墙、应用加速和高级负载均衡算法等,都可以通过简单的API调用来实现。
Heat模板可以和云端VE或者部署在底层网络里的BIG-IP设备相配合,并且BIG-IP设备无需加入Neutron网络API调用,它只是被当做租户里的计算节点看待。下图展示了两种不同的部署方式。
图3.基于BIG-IP设备云上部署
图4. 基于VE云上部署
F5Heat插件可以从F5 Github库里获取,F5 Github库包含了Heat以上是关于将应用交付服务引入到OpenStack-中国IC微专栏2016.6.16的主要内容,如果未能解决你的问题,请参考以下文章
从OpenStack迁移到ZStack,农信互联打造混合云标杆
从OpenStack迁移到ZStack,农信互联打造混合云标杆