如何将F5应用交付服务添加到OpenStack

简介

OpenStack正迅速成为提供基础设施即服务(IaaS)的主流云平台,目前已为私有云、公有云和托管私有云提供支持。随着越来越多的OpenStack云承载关键任务生产应用,第4层至第7层的高级应用交付服务变得不可或缺。这些服务可增强安全性、扩展能力和优化水平,帮助关键任务应用保持安全、快速且可用。F5为数据中心、公有云和私有云(包括基于OpenStack构建的云)提供高级应用交付服务,在行业中占据重要地位。F5应用交付服务可集成到OpenStack云的设计中;提前评估可用选项,有助于高效规划OpenStack架构和部署。

什么是OpenStack?

OpenStack是一个用于提供云计算服务的开源软件平台。OpenStack最初是NASA与RackSpace Hosting的联合项目,目前由OpenStack基金会管理,旨在推动该软件及OpenStack社区的发展。

目前,多家商业机构或推出自己的OpenStack发行版,或提供支持、咨询、预配置设备等附加服务。

OpenStack由多个组件构成,这些组件提供创建云计算环境所需的各种服务。有关这些组件的详细文档可参阅其他资料。不过,其中有一些模块与F5 OpenStack部署直接相关。

OpenStack的一个基础要素是RESTful API,可通过该API配置基础设施组件并实现自动化。在许多OpenStack用例中,例如构建多租户自助式云,或创建支持DevOps实践的基础设施,由API驱动的编排至关重要。将部署时间从数周缩短至数分钟,或每天部署数百项服务的能力,往往是迁移到云平台的主要推动力。要实现这一目标,基础设施的所有组件都必须纳入自动化框架。许多应用需要高级应用交付服务(例如应用安全或访问控制),才能真正满足生产环境要求。因此,应用交付服务必须与OpenStack编排和置备工具集成。

项目、租户和网络

多租户是OpenStack中的一个重要概念。在OpenStack中,一组用户称为项目或租户。(这两个术语可互换使用。)可以为项目分配计算、存储或镜像等资源的配额。在设计多租户架构时,一个重要的决策点是如何为租户设计网络。F5® BIG-IP®平台提供多种多租户和网络隔离选项,以实现与OpenStack多租户的互操作。

提供商网络

提供商网络通常使用扁平(无标记)网络,或更常见的VLAN(带802.1Q标记)网络。这些网络与传统数据中心网络高度对应。OpenStack网络由管理员定义和创建,并由多个租户共享。

在某些情况下,租户的计算实例会通过接口直接连接到提供商网络。租户无需定义自己的网络,只需使用提供商管理员定义的IP地址范围连接到已配置的提供商网络。在其他情况下,租户会在提供商网络中创建虚拟网络配置。

租户网络

管理员可以允许租户创建自己的特定网络架构。这些架构通常由OpenStack Neutron通过计算节点上的Open vSwitch实例进行控制,但也可以使用其他软件定义网络(SDN)解决方案。VLAN或采用GRE或VXLAN技术的透明以太网隧道均可实现租户计算实例之间的通信,并将其与其他租户隔离。截至2016年初,GRE隧道一直是最常见的部署方式。租户可以创建自己的网络和IP地址范围,不同租户的地址范围可能会重叠。每个租户都可以配置一个OpenStack路由器,以便与其网络之外进行通信。具体方法是为租户分配一个或多个浮动IP地址,由租户路由器将其转换为已配置的租户私有IP地址。(请注意,OpenStack Neutron浮动IP地址与BIG-IP浮动IP地址并非同一概念;后文将介绍BIG-IP平台如何管理租户隔离。)

F5应用交付服务

F5产品提供一系列高级应用交付服务,旨在实现可扩展性、可用性和多层安全防护。主要示例包括但不限于:

BIG-IP平台

The BIG-IP平台提供物理、虚拟和云版本。该平台通过BIG-IP软件模块提供应用服务。BIG-IP平台可运行一个或多个软件模块,以满足应用需求,并可作为独立单元部署,也可部署在高可用性集群中。

BIG-IP平台是一种高性能、有状态、双向的零拷贝代理。了解这一基本架构原则,有助于理解BIG-IP平台如何交付服务,并明确架构选择。

图1:BIG-IP平台架构

客户端连接到BIG-IP设备或实例,再由该设备或实例连接到后端服务器(在某些情况下,例如DNS服务,BIG-IP设备或实例会处理应用流量并直接向客户端响应)。这会形成一个TCP“隔离区”,在客户端与服务器之间完整地重新生成TCP会话。BIG-IP平台在这一逻辑隔离区内提供应用交付服务。应用流量经过该平台时,可以接受检查、修改和控制,因此BIG-IP平台可全面控制入站和出站应用流量。

BIG-IP平台还获得了ICSA Labs认证,该认证涵盖网络防火墙和Web应用防火墙,并对流量隔离和平台安全性进行严格测试,为平台安全提供进一步保障。

整合应用:F5与OpenStack

OpenStack与F5应用交付服务和平台相结合,为OpenStack托管的应用提供生产级服务。在OpenStack中,可通过两种方式访问F5应用交付服务:Neutron负载均衡即服务(LBaaS)版本2服务和Heat编排。(F5还支持LBaaS版本1与Neutron集成,但从OpenStack的Liberty版本开始,OpenStack社区已弃用版本1 API。)

LBaaS

Neutron LBaaS为计算实例(进而为应用实例)提供基本的负载均衡服务。这些服务仅包含各类负载均衡平台普遍具备的核心功能和特性子集。

LBaaS服务交付模型将提供服务的资源与服务本身抽象分离。提供服务的资源属于OpenStack基础设施,而非OpenStack租户资源。此模型有时称为“云下”。

图2:云下LBaaS部署

OpenStack LBaaS依靠多个逻辑对象来创建负载均衡配置。

对象模型如图3所示。

图3:OpenStack LBaaS对象模型

与所有OpenStack操作一样,LBaaS通过RESTful API进行管理。租户可通过该API发出REST调用,以创建、更新和删除LBaaS对象。从租户发出API调用到BIG-IP实例上的配置发生更改,中间需要经过多个步骤。

图4:OpenStack LBaaS架构

LBaaS对象与API调用之间的映射由F5 OpenStack LBaaS驱动程序处理,这些API调用用于在BIG-IP实例上创建或更新相应配置。借助LBaaS驱动程序,BIG-IP实例可在基于OpenStack的云中提供负载均衡服务。

F5 LBaaS驱动程序实际上由两个独立的组件构成:

  • F5 LBaaS插件,安装在运行Neutron API服务的服务器上
  • F5 LBaaS代理进程(包括驱动程序),安装在将运行该代理进程的主机上。每个设备服务组(集群中的一组BIG-IP设备)都需要单独的代理进程。

租户调用LBaaS API后,LBaaS驱动程序会接收相应任务,并将其转换为F5 iControl® API调用,以便在BIG-IP设备或虚拟版本上创建或更新配置对象。当租户使用隔离的租户网络以及网络覆盖隧道或VLAN时,LBaaS驱动程序支持通过单个BIG-IP实例或高可用性(HA)配置为多个租户提供服务。F5 LBaaS插件会创建对BIG-IP实例和Nova的必要API调用,确保租户流量路由到共享BIG-IP实例上与租户隔离的侦听器对象(在BIG-IP中称为VIP)。

租户隔离

在多租户环境中,Nova的一项关键功能是确保租户彼此隔离。BIG-IP LBaaS组件利用多项BIG-IP多租户功能,确保不同租户的流量相互隔离。

要详细了解这些多租户功能的使用方式和适用场景,请参阅F5 OpenStack LBaaS Driver and Agent Readme。

LBaaS提供了一个由API驱动的简单系统,用于在OpenStack中部署负载均衡服务,为大量客户端提供基本的负载均衡功能。不过,该API仅提供综合应用交付控制器(ADC)的部分功能。下表从协议支持、附加服务和运行状况监控器等关键应用交付属性方面,对LBaaS与原生BIG-IP服务进行了比较。

需要功能完备的应用层代理所提供的高级能力时,可使用OpenStack Heat编排服务及相关模板部署F5应用交付服务,从而将简单的自动化服务创建与更复杂的服务配置相结合。

Heat编排服务和模板

OpenStack Heat是一项编排服务,可根据模板生成运行中的应用程序。Heat模板通过一个或多个文本文件描述基础设施,Heat服务则执行相应的API调用,以创建所需组件。通过使用自定义插件,可将Heat服务扩展到核心模块之外。

The F5 Heat插件支持使用Heat模板在任何可通过网络从运行Heat服务的服务器访问的BIG-IP设备或虚拟版本上创建高级应用交付配置。BIG-IP实例还需要与租户实例建立连接并配置路由,因为Heat插件不会配置此连接。

Heat模板使用一种简单的标记语言YAML,该语言旨在便于阅读和使用。Heat模板采用声明式语法,只需定义所需的基础设施组件,底层提供程序便会创建已定义的配置。

Heat模板支持创建更高级的应用交付场景,与F5 iApps®模板系统结合使用时尤其如此。只需传入所需模板和实例特定值,iApps模板即可重复创建应用交付配置。使用Web应用防火墙服务、应用加速和高级负载均衡算法等高级功能的复杂交付配置,可通过简单的API调用实现。

Heat模板既可与各租户网络环境中(“云上”)的BIG-IP虚拟版实例配合使用,也可与部署在底层物理网络中的BIG-IP设备配合使用。由于BIG-IP设备在租户中被视为普通计算节点,因此无需参与任何Neutron网络API调用。

图5:使用BIG-IP设备的云上部署
图6:使用BIG-IP虚拟版的云上部署

可从F5 Github存储库获取F5 Heat插件。该存储库包含安装在运行Heat引擎的服务器上的Heat插件,以及示例Heat模板。

灵活的平台选项

F5应用交付服务可在多种平台上使用。由于这些平台运行相同的核心操作系统和F5微内核,因此均可提供相同的应用交付功能。

F5设备和F5 VIPRION®机箱

F5硬件平台具备高性能和强大的可扩展性,适用于需要支持大量客户端或租户,或要求高吞吐量的环境。单个高可用性(HA)设备对可为数百个租户和数百万个客户端提供服务。F5硬件设备使用专用硬件处理SSL和TCP,不仅可提供连接速率服务级别协议(SLA),还可显著减轻底层计算环境的负载。在需要网络安全服务和分布式拒绝服务(DDoS)缓解的场景中,F5硬件平台可提供出色的性能和高水平的防护。通过支持多个重叠地址空间和网络覆盖协议,硬件设备可用于大多数多租户环境。

F5 BIG-IP虚拟版

F5 BIG-IP虚拟版适用于大多数虚拟机监控程序(包括KVM),也可在Amazon AWS和Microsoft Azure等公有云基础设施即服务(IaaS)提供商的环境中使用。BIG-IP虚拟版(VE)提供多种容量规格,从实验室版本到生产就绪版本,吞吐量范围为25 Mb至10 Gb,并支持按需扩容升级。批量许可和灵活的许可证池支持对测试和开发环境中的BIG-IP实例进行动态生命周期管理。公有云环境还支持按使用量计费。BIG-IP虚拟版可提供与硬件平台相同的应用交付服务,但不具备设备所采用的专用硬件,也无法达到其扩展规模。

BIG-IP虚拟版可完全部署在租户网络内。OpenStack将其视为普通计算实例,可通过Heat模板进行配置,也可用作LBaaS提供程序。

1有关详细信息,请参阅《F5 and OpenStack Integration Guide》。

由于F5 LBaaS插件可支持多个F5代理和驱动程序实例,因此可以在同一LBaaS配置中混合使用硬件设备和BIG-IP虚拟版。

与所有架构决策一样,合适的选项应充分满足解决方案的具体要求。使用BIG-IP硬件或虚拟版本均可构建高性能、可扩展的解决方案。整体规模和服务要求有助于基础设施架构师选择硬件、软件或两者的组合。对于只想预置服务的使用者或租户而言,选择LBaaS还是Heat比选择交付平台本身更为重要。

高可用性

高可用性对于任务关键型网络和应用堆栈至关重要。BIG-IP平台具备稳健的高可用性(HA)架构,符合预期。BIG-IP设备和虚拟版本可部署为独立设备(例如用于测试和开发环境)、高可用性设备对,或最多包含4台设备的N路主动设备组。OpenStack平台支持上述所有部署类型。

可扩展性

通过为LBaaS或租户BIG-IP资源增加容量,管理员或租户可以应对应用吞吐量或租户数量的增长。要构建敏捷且可扩展的云,必须在不中断服务的情况下进行纵向或横向扩展。

BIG-IP平台既可纵向扩展,也可横向扩展:设备和虚拟版本可通过许可证升级进行纵向扩展,VIPRION机箱则可通过增加硬件刀片进行纵向扩展。BIG-IP LBaaS插件将管理多个代理和驱动程序(每个代理和驱动程序分别管理一个BIG-IP实例或集群),从而实现横向扩展。使用多个代理时,默认情况下,F5 LBaaS插件会将特定租户的所有LBaaS负载均衡器对象分配给同一BIG-IP设备(或集群)。

在租户中使用BIP-IP VE实例时,同样可以通过许可证升级来纵向扩展实例,也可以添加更多实例来承载新工作负载。

结论

随着OpenStack部署承载的关键生产应用日益增多,对OpenStack内部稳定可靠的高质量应用交付服务的需求也随之增长。F5应用交付服务可提供这些关键应用所需的容量、安全性和高级功能,同时兼具OpenStack云带来的敏捷性和较低的运维开销。