得益于云,应用自动扩缩容几乎已成为可扩展性的代名词。在大多数人看来,如果无法支持自动扩缩容,就不具备可扩展性。
无论是在云、容器还是传统环境中,应用自动扩缩容都高度依赖于跨多个系统协调特定操作。这种协调通过API实现,而API正是云环境和容器化环境的基石。
直到最近,使用Mesos自动扩缩应用仍主要依靠手动操作。对于超过半数(51%)使用容器部署单体应用和旧版应用的Mesos用户(根据其调查)而言,这种方式或许尚可。但对于希望通过Mesos提高资源利用效率,并借助可扩展性增强敏捷性的用户来说,这种方式难以持续。每当不得不改用手动方式扩缩应用时,都会面临人为错误的风险,并产生运营成本,导致每笔交易的成本上升。毕竟,人力并非没有成本;如果员工将时间用于扩缩应用,就无法投入其他可能对组织发展和成功至关重要的项目。此外,每笔交易的成本也是云和容器环境中的一项重要指标,因为采用这些环境的部分目的正是降低此类成本。每笔交易的成本越高,利润或生产力就越低,而这两者如今都是衡量企业健康状况的重要指标。
Gaurav Kumar是较早采用Mesos的一家企业的工程师。他秉持开源精神,应对这一挑战:亲手构建了一个解决方案。API和开源技术让社区和客户能够做到这一点。

要使用F5 BIG-IP实现Mesos内应用的自动扩缩容,需要采用两个现有的开源解决方案:
- F5 Container Connector for Marathon,负责侦听Marathon事件,然后相应地配置BIG-IP。
- 一个用于BIG-IP指标的Prometheus导出器,由现有开源项目BIG-IP Exporter派生而来,用于从BIG-IP收集相关遥测数据(TCP连接数、HTTP请求数等)。
随后,Kumar开发了该解决方案的第三个组成部分,即“基于F5的DCOS/Marathon服务自动扩缩容组件”(称为“F5 Autoscaler”)。
F5 Autoscaler组件从F5 Exporter获取统计数据,并将其与定义的阈值进行比较。当达到其中一个阈值时,F5 Autoscaler会向DCOS主节点提交扩缩容请求,以添加池成员。Marathon会按常规方式处理该请求,即部署新的容器或应用实例,然后通过F5 Container Connector for Marathon通知BIG-IP,由该连接器在BIG-IP中配置新的池成员。
应用自动扩缩容就这样实现了。
该解决方案充分体现了开源不仅能帮助组织降低成本、缩短产品上市时间,还能为解决实际业务挑战提供框架。
本期专题重点介绍的开源软件:
- F5 Marathon Autoscaler(github)(Docker),贡献者:Gaurav Kumar
- F5 Exporter(github),贡献者:ExpressenAB
- Prometheus F5 Exporter(github),贡献者:Gaurav Kumar
- F5 Container Connector(github)(Docker),贡献者:F5 Networks
- DC/OS
- Marathon
关于作者

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。
Lori Mac Vittie 的更多博客文章相关博客文章
Thingbot正转变为攻击平台
Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。
借助F5全新Quick Start,在AWS上快速开展业务
在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。