我在会议上发言后,经常有人问F5为何关注这一领域。最近,这个话题通常是DevOps,或与DevOps有某种关联。
实际情况是,负载均衡等与应用紧密相关的服务正逐渐向应用靠拢,进入构成应用网络的更敏捷、由软件驱动且自动化的环境。缓存(例如memcached和redis)、数据库及容器等以计算和应用为中心的系统,正是在这种环境中采用高度依赖自动化和编排的持续集成和持续交付(CI/CD)方法进行部署。
F5,尤其是BIG-IP,几乎已成为负载均衡的代名词。早在本世纪之交以前,我们就已开始从事负载均衡;如今其他负载均衡器采用的许多核心算法和概念,实际上都源自F5。因此,说我们对应用负载均衡略知一二,显然过于保守。我们通过部署在定制硬件上,甚至部署在云端的软件来实现负载均衡。
该软件支持通过API进行操作。这个API名为iControl,同时提供SOAP和REST两种形式,便于以编程方式使用。任何人(甚至包括我)都可以通过此API,为任意应用预配、配置和控制BIG-IP的负载均衡及其他服务。
正如我所说,与应用紧密相关的服务正日益向应用侧迁移。可扩展性(即负载均衡)就是其中之一。如今,它是任何应用的关键组成部分,对构成现代应用的微服务而言也愈发重要。正如Microsoft在2015年一篇有关服务扩展的论文中指出的那样:
“面对种类繁多且数量充足的机器,开发人员不得不考虑如何划分应用工作负载,以及支持每种划分方案所需的网络连接。连接的一个重要方面是外部用户与服务本身之间的连接。除规模最小的服务外,都需要采用某种负载均衡机制,将传入连接的负载分配到各个前端(FE)服务器。许多超大规模服务还包含子服务,而这些子服务本身也需要进行负载均衡。[着重号为引者所加] ”
负载均衡并非事后才考虑的事项,而是当今应用和服务的自然补充,有助于实现让用户满意、保障业务持续运行所需的规模和可靠性。因此,负载均衡正日益成为整体应用架构的一部分。它也理应如此,因为在应用架构中添加任何组件,都可能带来需要解决的问题或集成难题。这些问题需要在应用投入生产之前解决,而不是之后。在生产环境中发现并修复问题所需的时间,往往是在开发或测试环境中的数倍。因此,将负载均衡纳入应用架构,可以让应用更顺畅、更快速地投入生产并交付用户使用。
但这意味着,需要将负载均衡器集成到由DevOps工具链自动执行的流程中。这些流程正日益推动开发和测试环境中的集成与交付。为此,需要提供一套全面的编程工具,例如API和模板,以便将基础设施作为代码进行管理,并自动完成其置备和配置。这正是iControl(REST或SOAP)为F5实现的功能。
利用BIG-IP的原生API,几乎可以使用任何所需的语言(例如Powershell、Python和Perl),也可以通过Chef和Puppet等框架,以及Ansible等工具和SaltStack,在部署、测试和发布阶段将BIG-IP集成到DevOps中。iApps是用于描述应用服务配置的模板,可以像代码一样处理:将其存储在Github中,检索后直接部署,或使用脚本进行自定义。
总体而言,应在CI/CD流程的早期阶段集成负载均衡等BIG-IP应用服务,以及其中的多项应用性能和安全服务,以确保这些关键服务按预期与应用无缝协同工作。
随着更快、更频繁且以更少中断交付应用的压力持续推动业务和IT领导者加速迈入应用经济,越来越多传统意义上的“网络”设备最终将融入DevOps体系。
如需深入了解可与BIG-IP配合使用的DevOps工具,请阅读DevCentral上的这篇文章“F5 Friday:DevOps工具与F5”
关于作者

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服务。