我们经常使用“跳出框框思考”的比喻来鼓励创造性思维。 虽然现在看来这是陈词滥调,但它却是有效的——尤其是当你从字面上和比喻上理解它的时候。
从字面意义上来说,盒子就是盒子。 其材料组成不会改变其形态或功能。 纸箱仍然是一个盒子。 它比木箱更灵活,但它仍然是一个盒子。
将其应用于应用交付使我们认识到软件盒仍然是一个盒子。 是的,更加灵活。 也更加脆弱。 但归根结底,它仍然是一个盒子。 应用交付的未来属于那些能够跳出字面和比喻框架思考的人。
近十五年来,应用交付控制器(一个盒子)一直是组织扩展和保护应用的中心。 即使我们已经进入“软件优先”战略时代,应用交付领域提供的解决方案仍然基于网络中的软件盒。
对于相当大比例的组织和应用来说,这种方法是(并且将继续是)正确的方法。 因为大多数组织都是多代人的。 他们支持四代和五代应用架构,其中一些将继续依赖这些盒子。 但对于其他应用(尤其是现代和云原生的应用程序),是时候跳出固有的思维模式了。
现代应用不再局限于单个服务器和通过单个网络交付。 如今的应用不再是单一的软件,而是松散耦合、高度分布式的系统,其中 70% 是可重用的(通常是开源的)组件(来源: 白帽子 (White Hat )。 考虑使用作为专门功能服务提供的组件,例如地图和图像。 云计算的兴起——尤其是其基于效用的成本模型——创造了一种可以实现组件级专业化的新市场经济。 现代应用设计利用专业化的力量,使开发人员能够专注于增加价值或提供竞争优势的功能,而几乎不需要投资。
高度分布式组件的使用和云规模经济确保了“网络”现在是“网络”。 当今的企业依赖公共云,其中 60% 的企业采用两到六家不同的提供商。 其中近一半 (44%) 的组织已在这些环境中部署了超过四分之一 (25%) 的应用程序组合(来源: F5 | 2019 年应用服务状况)。
因此,现在也是时候跳出固有的思维模式来思考应用交付了。
指导 ADC 设计的原则基于当时的传统网络和应用架构。 两者都受到网络和计算限制的约束,需要采用限制外部网络访问的聚合方法。 与网络活动相关的延迟太高,无法提供所需的速度和可靠性,从而无法让人们对网络(以及互联网)产生信任,无法将其作为可行的商业媒介。 网络速度已经足够快,可以支持基于 API 的通信和高可用性。 互联网已发展到可以支持跨多种环境实现操作控制的速度。
现今网络的稳定性和速度使得应用交付进入了一个新时代,网络让我们能够作为一个分布式、可扩展的系统。 应用交付不再是部署在盒子上的系统,而是可以发展为采用现代的基于堆栈的设计。 现在可以分发它,以更好地利用过去十五年来技术和软件设计的进步。
通过利用容器和容器编排的能力来提供类似于进程管理的机制,并将网络视为进程之间的命名管道,我们可以设计一个无缝可扩展、无限可扩展的应用交付架构。 我们可以利用一流的软件组件,不仅支持可观察性和编排需求,还易于与运营分析和自动化部署工具链集成。 我们可以动态地组合数据路径,而不受电缆和配置的约束。
我们可以将应用交付重新想象为一个分布式交付堆栈——一个不受软件或硬件盒约束的堆栈。
为了实现应用交付的如此重大的转变,我们采用了 Agile 等现代方法,并采用了自动化和协调集成、构建和测试的 DevOps 方法和原则。 这项工作遵循一系列设计原则,不仅要求关注功能和特性,还要求关注操作需要和多云现实。 我们致力于提供超出客户期望的“开箱即用体验”,重点关注五个关键特征:
过去十五年里,ADC 在幕后帮助数以万计的客户取得了成功。 但这并不是盒子造成的。 正是硬件辅助的应用服务和软件实现了这一点。 现在是时候再次重新构想应用交付了,这些相关的根源就是我们有信心再次打破常规做到这一点的原因。
如果你不明白我们的意思,下面是一些关于应用交付的创新思维的很好的例子: