如何向 OpenStack 添加 F5application交付服务

介绍

OpenStack 正在迅速成为提供基础设施即服务 (IaaS) 的主导云平台,目前正在为私有云、公共云和托管私有云提供支持。 随着 OpenStack 云越来越多地托管关键任务生产应用s,第 4 层至第 7 层的高级应用交付服务变得至关重要。 这些服务提供额外的安全性、扩展和优化,以确保这些关键任务应用s保持安全、快速和可用。 F5 是跨数据中心、公共和私有云(包括由 OpenStack 提供支持的云)的高级应用交付服务的领先供应商。 F5应用交付服务可以设计到 OpenStack 云中,提前考虑可用选项有助于有效规划 OpenStack 架构和部署。

什么是 OpenStack?

OpenStack是一个用于提供云计算的开源软件平台。 OpenStack 最初是美国宇航局和 RackSpace Hosting 的联合项目,目前由 OpenStack 基金会管理,其职责是推广该软件和 OpenStack 社区。

现在,一些商业组织要么生产自己的 OpenStack 发行版,要么提供支持、咨询或预配置设备等附加服务。

OpenStack由许多组件组成,这些组件提供创建云计算环境所需的各种服务。 这些组件在其他地方有充分的记录。 但是,有许多模块与 F5 OpenStack 部署直接相关。

功能 成分 描述
计算 新星 管理跨各种虚拟化和裸机配置的计算机资源池
网络 中子 管理网络、覆盖、IP 寻址和应用网络服务(例如负载平衡)
编排 使用模板和 API 协调其他 OpenStack 组件

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

项目、租户和网络

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

提供商网络

提供商网络通常使用扁平(未标记)网络或更常见的 VLAN(802.1Q 标记)网络。 这些与传统数据中心网络紧密映射。 OpenStack网络由管理员定义和创建,并在租户之间共享。

在某些情况下,租户的计算实例将直接与提供商网络接口。 租户不定义自己的网络,而只是使用提供商管理员定义的 IP 地址范围连接到配置的提供商网络。 在其他情况下,租户将在提供商网络内创建虚拟网络配置。

租户网络

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

F5application交付服务

F5 产品提供一系列先进的应用交付服务,旨在提供可扩展性、可用性和多层安全性。 一些关键(但不详尽)的例子包括:

安全 高级网络防火墙服务
  • 使用超越 IP:端口:协议的标准(例如地理位置或端点信誉)来做出流量控制决策
  • HTTP 协议验证
  • 日期和时间表
Webapplication防火墙服务
  • 全面的工具用于识别 Web应用威胁并阻止恶意流量
  • 出站数据丢失防护 (DLP) 服务
访问和身份服务
  • 高级身份验证服务,如双因素令牌、CAPTCHA 或地理限制
  • 客户端证书检查和端点检查
  • SAML 服务提供商 (SP) 和身份提供商 (IdP) 服务
拒绝服务 (DoS) 缓解
  • 主动机器人防御
  • 第 7 层 DoS 检测和缓解
SSL 和加密
  • SSL 解密、流量检查和重新加密
  • 从计算节点资源卸载 SSL 工作负载
可用性 应用程序级监控
  • 高级应用健康检查(使用多步监视器)
  • 多级健康检查(例如检查数据库和应用是否可用)
  • 非 HTTP 健康检查(例如 SIP、Microsoft Windows SQL Server 和 FTP)
  • 先进的算法可以更好地将流量分配到运行最佳的服务器
全球可用性
  • 跨不同云提供商或数据中心的异构组合的application可用性
  • 与 BIG-IP 高级监视器集成
  • DNSSec 支持
表现 网络和传输优化
  • 可配置的 TCP 堆栈,可进行优化以跨 WAN 和蜂窝网络进行传输
  • HTTP/2 网关无需改变后端基础设施即可带来额外压缩和请求多路复用的优势
application和数据优化
  • 根据检测到的网络或客户端特征进行选择性图像优化,以实现即时优化
  • 通过 SSL 加密隧道实现 WAN 加速,具有自适应压缩和 TCP 优化
灵活性 数据路径可编程性
  • 对应用流量进行完全编程控制
  • 读取、写入和检查应用数据各个方面的能力
  • 事件驱动和综合语言
控制平面可编程性
  • 根据事件(例如服务器负载、应用行为或基础设施的变化)修改配置的能力
  • 完全自主或外部 API 驱动的触发器
BIG-IP 平台

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

  功能 F5 软件模块
安全 网络层安全 BIG-IP® 高级防火墙管理器™ (AFM)
application层安全 BIG-IP®application安全管理器™ (ASM)
身份和访问 BIG-IP® 访问策略管理器® (APM)
可用性 application可用性和流量优化 BIG-IP® 本地流量管理器™ (LTM)
全球可用性和 DNS BIG-IP® DNS
表现 application和网络优化 BIG-IP®application加速管理器™ (AAM)

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

BIG-IP 平台架构
图 1: BIG-IP 平台架构

客户端连接到 BIG-IP 设备或实例,后者连接到后端服务器(或者在某些情况下,例如 DNS 服务,处理应用流量并直接响应客户端)。 这会创建一个 TCP“空气间隙”,并在客户端和服务器之间完成 TCP 会话的再生。 在这个逻辑差距内,BIG-IP 平台提供应用交付服务。 当应用流量传输平台时,可以对其进行检查、更改和控制,因此 BIG-IP 平台可以完全控制入站和出站应用流量。

BIG-IP 平台还通过了网络和 Web应用防火墙的ICSA Labs 认证,对其流量分离和平台安全性进行了严格测试,提供了额外的平台安全保障。

综合起来: F5 和 OpenStack

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

LBaaS

Neutron LBaaS 为计算(以及应用)实例提供基本的负载平衡服务。 这些服务仅限于各种负载平衡平台所共有的核心功能和特性子集。

LBaaS 服务交付模型将提供服务的资源从服务本身中抽象出来。 提供服务的资源是作为 OpenStack 基础设施的一部分存在的,而不是在 OpenStack 租户资源中存在的。 这种模型有时被称为“云下”。

云下LBaaS部署
图 2: 云下LBaaS部署

OpenStack LBaaS 依赖于许多逻辑对象来创建负载平衡配置。

目的 描述
负载均衡器 根对象。 指定虚拟 IP (VIP) 的子网(可静态分配或分配)、租户和提供商
听众 负载均衡器 VIP 特定端口上的侦听器。 指定端口和有限数量的协议类型
水池 侦听器将向其发送流量的池。 指定协议、父级侦听器和负载平衡算法
成员 游泳池的成员。 指定可将流量定向到的应用实例的 IP 地址、端口号和(可选)子网
健康监测 创建与池绑定的健康监视器。 指定监视器的类型、频率和超时,以及 HTTP 路径、方法和预期代码的选项
lbaas_sessionpersistences 定义应如何处理会话持久性(例如仅限于 cookie 或源 IP 持久性)

对象模型如图3所示。

OpenStack LBaaS 对象模型
图 3: OpenStack LBaaS 对象模型

与所有 OpenStack 操作一样,LBaaS 通过 RESTful API 进行管理。该 API 允许租户进行 REST 调用来创建、更新和删除 LBaaS 对象,租户的 API 调用与 BIG-IP 实例上发生的配置更改之间有许多步骤。

OpenStack LBaaS 架构
图4: OpenStack LBaaS 架构

LBaaS 对象与 API 调用之间的映射(用于在 BIG-IP 实例上创建或更新它们到配置中)由F5 OpenStack LBaaS 驱动程序处理。 LBaaS 驱动程序使 BIG-IP 实例成为 OpenStack 驱动的云中的负载平衡服务提供商。

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

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

LBaaS 驱动程序接收租户发出的 LBaaS API 调用所产生的任务,并将其转换为 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 多租户功能来确保租户流量的分离。

成分 笔记
网络覆盖支持 支持VXLAN和GRE隧道: 租户流量完全封装在 BIG-IP 系统内和系统外
路由域 平台内严格定义的地址空间。 每个路由域隔离IP地址空间和路由信息。 IP 地址空间可以在域之间复制,从而允许多个租户轻松重复使用 RFC 1918 私有寻址
管理分区 创建管理上独立的配置。 每个租户配置都包含在单独的管理分区中

要详细了解如何以及何时使用这些多租户功能,请参阅F5 OpenStack LBaaS 驱动程序和代理自述文件

LBaaS 提供了一个简单的、API 驱动的系统,用于在 OpenStack 内部部署负载平衡服务,为大量客户端提供基本的负载平衡。 然而,API 仅提供了综合应用交付控制器 (ADC) 的一部分功能。 该表对 LBaaS 和本机 BIG-IP 服务的一些关键应用交付属性(例如协议支持、附加服务和健康监视器)进行了比较。

财产 通过 LBaaS 提供 BIG-IP 服务 原生 BIG-IP ADC 服务
协议 仅 TCP TCP、UDP、SCTP
L7 协议 HTTP、HTTPS HTTP、HTTP/2、HTTPS、FTP、RTSP、Diameter、FIX、SIP、PCoIP、RDP
application层安全 没有任何 完整的 Web应用防火墙 (WAF)
网络层安全 没有任何 全网络防火墙
application层访问 没有任何 完整的身份验证和 SSO 功能
流量分配算法 3 17
application加速 没有任何 全套缓存、压缩和内容处理工具,包括 TCP 优化
健康监测器 3 20+(包括 SMTP、数据库、SNMP、SIP、FTP、DNS)
数据路径可编程性 没有任何 F5 iRules® 提供所有应用数据的全面可视性和控制力

在需要成熟的应用层代理的高级功能时,使用 OpenStack Heat 编排服务和相关模板部署 F5应用交付服务可以将简单、自动化的服务创建与更复杂的服务配置结合起来。

Heat 编排服务和模板

OpenStack Heat 是一种基于模板生成运行applications的编排服务。 Heat 模板在一个或多个文本文件中描述基础设施,Heat 服务执行适当的 API 调用来创建所需的组件。 通过使用自定义插件,Heat 服务可以扩展到核心模块之外。

F5 Heat 插件允许Heat 模板在任何 BIG-IP 设备或虚拟版本上创建高级应用交付配置,并且可以通过运行 Heat 服务的服务器进行网络访问。 BIG-IP 实例还需要连接和路由到租户实例,因为该连接不是由 Heat 插件配置的。

Heat 模板使用一种简单的标记语言 YAML,该语言旨在方便人类阅读和使用。 Heat 模板是声明性的,这意味着您只需定义所需的基础设施组件并依靠底层提供程序来创建您定义的配置。

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

Heat 模板可与单个租户网络环境(“云端”)中的 BIG-IP 虚拟版本实例以及部署在底层物理网络中的 BIG-IP 设备配合使用。 BIG-IP 设备不需要参与任何 Neutron 网络 API 调用,因为它被视为租户内的任何其他计算节点。

使用 BIG-IP 设备进行云部署
图5: 使用 BIG-IP 设备进行云部署
使用 BIG-IP 虚拟版本进行云部署
图6: 使用 BIG-IP 虚拟版本进行云部署

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

灵活的平台选项

F5应用交付服务可在多个平台上使用,所有平台都提供相同的应用交付功能,因为它们运行相同的核心操作系统和 F5 微内核。

F5 设备和 F5 VIPRION® 机箱

F5 硬件平台为需要大量客户端或租户或高吞吐量用例的环境提供高性能和大规模可扩展性。 单个 HA 对可以为数百名租户和数百万名客户提供服务。 F5 硬件设备通过使用专门的硬件进行 SSL 和 TCP 处理,为底层计算环境提供连接速率服务级别协议 (SLA) 和显著的卸载。 在需要网络安全服务和分布式拒绝服务 (DDoS) 缓解的地方,F5 硬件平台可提供出色的性能和高水平的保护。 对多个重叠地址空间和网络覆盖协议的支持使得硬件设备能够在大多数多租户环境中使用。

F5 BIG-IP 虚拟版本

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

BIG-IP 虚拟版本可以完全包含在租户网络中。 OpenStack 将它们视为另一个计算实例,它们由 Heat 模板配置,或可用作 LBaaS 的提供商。

用例 租户隔离 可能的架构
LBaaS 配置,隔离数千个租户、数百万个客户端 VLAN、VXLAN 或 GRE 整合的 BIG-IP 硬件平台
LBaaS 配置,隔离数千个租户、数百万个客户端 GRE,VXLAN 高吞吐量 BIG-IP 虚拟版本,可根据需要扩展1
LBaaS 配置,较低的规模要求 GRE,VXLAN 吞吐量较低的 BIG-IP 虚拟版本1
热配置、高级应用交付服务 没有任何 租户内的 BIG-IP 虚拟版本

1有关详细信息,请参阅 F5 和 OpenStack 集成指南。

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

与所有架构决策一样,正确的选择是最适合解决方案的个性化要求的选择。 可以使用 BIG-IP 硬件或虚拟版本构建高性能、可扩展的解决方案。 规模和服务的总体要求应该有助于引导基础设施架构师选择硬件、软件或两者的结合。 对于只想提供服务的消费者或租户来说,LBaaS 或 Heat 之间的选择比交付平台本身更为重要。

高可用性

高可用性是关键任务网络和应用堆栈的关键,并且正如预期的那样,BIG-IP 平台具有强大的 HA 架构。 BIG-IP 设备和虚拟版本可以部署为独立设备(例如,用于测试和开发环境)、高可用性对或最多四台设备的 N 路主动设备组。 OpenStack 平台支持所有这些部署类型。

可扩展性

能够为 LBaaS 或租户 BIG-IP 资源添加额外容量,使管理员或租户能够应对应用吞吐量或租户数量的增加。 在不中断服务的情况下进行扩展或扩大对于构建敏捷且可扩展的云至关重要。

BIG-IP 平台可以纵向和横向扩展: 设备和虚拟版本可以通过许可证升级进行扩展,而 VIPRION 机箱可以通过添加额外的硬件刀片进行扩展。 BIG-IP LBaaS 插件将管理多个代理和驱动程序(每个代理和驱动程序管理一个 BIG-IP 实例或集群),允许水平扩展。 在使用多个代理时,F5 LBaaS 插件将默认保留分配给 BIG-IP 设备(或集群)的特定租户的所有 LBaaS 负载均衡器对象。

在租户内使用 BIP-IP VE 实例时,可以通过许可证或添加额外实例再次扩大实例规模,以覆盖新的工作负载。

结论

随着 OpenStack 部署越来越多地承载关键生产应用s,对 OpenStack 内强大、高质量应用交付服务的需求也日益增长。 F5应用交付服务提供这些关键应用s所需的容量、安全性和高级功能,再加上 OpenStack 云提供的灵活性和低运营开销。

其他资源

F5 Github

F5 OpenStack 文档

F5 多租户设计

F5 OpenStack 集成指南

2016 年 4 月 19 日发布
  • 分享至 Facebook
  • 分享到X
  • 分享至 Linkedin
  • 分享至电子邮件
  • 通过 AddThis 分享

通过 F5 进行连接

F5 实验室

最新的应用威胁情报。

DevCentral

F5 社区,提供讨论论坛和专家文章。

F5 新闻中心

新闻、F5 博客等等。