应用交付网关-原理和技术实现(三)

应用安全

应用交付网关部署在应用系统的前端,如果能够提供足够强大的安全功能,则既可以有效保护企业应用免于各类攻击同时降低运维的成本。成熟的应用交付网关都会支持以下安全功能:

ACL 访问控制功能

通过ACL访问控制功能实现针对应用的IP/端口级别的黑白名单控制。

DDOS防护

为虚拟服务提供DDos防护,针对特定攻击源,控制TCP连接,限制TCP并发总量,限制TCP新建速率实现DDos防护的功能。

灵活的攻击源定制,实现源IP范围定制,可以基于每个源IP进行防护或者基于整体源IP范围进行防护。

HTTP Flood 防护

是专门为七层的虚拟服务提供的针对慢速CC攻击或者HTTP泛红攻击的防护功能,可以基于定制化的策略实现基于规则的HTTP Flood 防护,也可以实现针对攻击源实施防护,包括:限制TCP并发数量,限制HTTP请求速率等。

Web应用防火墙

WAF 是现今保护Web应用不受黑客攻击的有效武器,应用交付网关技术通过引入WAF功能为应用系统提供了基于应用就别的保护能力。成熟的应用交付网关产品都具备比较完备的WAF功能。WAF功能不要包括:

基于策略规则进行WAF防护,防护规则可定制,支持规则白名单

7层SLB VS启/停WAF防护

攻击防护措施

仅阻断

仅告警(记录日志)

告警及阻断

WAF白名单功能

HTTP协议清洗

为了保证Web应用的安全,可以采用HTTP协议清洗功能严格约束客户端的访问,确保只有符合RFC2616标准的HTTP请求才能访问到后台的Web服务器。

弹性计算

大多数企业都在采用云计算和虚拟化的技术来降低能耗提高效益,而几乎所有的Web应用产生的流量并不均匀,反而遵循了28原理,即一年中20%的时间产生了80%的流量,甚至有极端的5%的时间中产生了95%的流量。特别是大众消费品的电商业务,常常是节假日产生了绝大多数的流量和交易。比较明智的应对策略是在流量的高峰期部署较多的服务器而在流量的低潮期部署较少的虚拟服务器。

应用交付网关可以有效感知互联网的压力变化,并与云计算的控制中心(vCenter)实时的联动,从而动态的分配计算资源(增减后台的服务器)达到节能增效的目的。

大数据分析

我常说:“观测性、观测性、观测性。”,网络是一个天生不可靠的东西,负载均衡器应该提供状态、跟踪以及日志,协助运维人员甄别故障,从而进行修复。负载均衡器的检测输出差距很大。高级的负载均衡器供应包含数字统计、分布式跟中和自定义日志的大量输出。我认为增强的观测性并不是从天而降的,负载均衡器需要做出很多附加工作来完成这一任务。对性能造成的负面影响,相对于这一系列数据的好处来说,不值一提。

通过大数据工具比如Elastic Search等,实现针对Web访问的日志进行梳理,分析可以为企业提供其应用的:访客分析,业务分析,商业智能,故障诊断,性能分析以及日志管理和保存。

应用交付网关自身的高可用性可扩展性

除了确保应用系统的安全、高效、稳固、可控,应用交付网关自身的高可用性也是需要考虑的核心功能。另外,在极端的情况下,也会出现应用交付网关本身的性能瓶颈现象,成熟应用交付网关产品即提供了完善的自身高可用性,也提供了性能扩展性的方法。

主备模式

顾名思义,主备模式将部署两台应用交付网关,一台为主一台为备。在主备模式下,要想确保应用在主备切换时不会出现交易和会话中断,需要具备以下几个条件:

第一:备机实时检查主机的心跳

第二:主机向备机实时配置同步

第三:主机向备机实时会话同步

多主模式

多主模式其实是主备模式的改进型,以VIP为基本单位,在第一台设备以VIP1为主,VIP2和VIP3位备,在第二台设备上以VIP2为主,VIP1和VIP3为备,在第三台设备上部署VIP3为主,VIP1,VIP2为备机。这样任何两台或者一台应用交付网关出现故障,依然可以实现完整的应用交付功能。

不足是性能并没有提升,配置管理比较复杂。而且如果是单一VIP提供服务,则这样的设计只能变成一主多备的方式。

集群模式

通过利用路由交换机的等价路由(ECMP),可以轻松实现集群模式,可以针对一个Web服务,采用负载均衡集群方式达到高可用性和性能的扩充。

通过这种模式,可以为后台的Web应用提供高达几十个Tbps的处理能和高可用性能。

开源负载均衡怎么样?

开源的负载均衡技术有很长的发展历史,无论网络四层还是七层的负载均衡都有众多的开源负载均衡为初创的互联网企业提供了非常有效的工具。

这其中著名的开源负载均衡产品包括:

IPVS(LVS)提供网络四层的负载均衡功能,已成为Linux的核心组件

HAProxy 提供完备的HTTP代理功能,可以完成大部分的7层负载均衡功能需求

Squid 最早的HTTP Proxy , 其缓存功能比较强大和著名

Nginx 来自战斗种族俄罗斯的优秀的七层负载均衡,性能较高,功能强大

开源的负载均衡软件的优点非常明显:免费,有源代码。一般每个开源的负载均衡软件都在4万行源代码左右,基本都是C语言开发的,只要你对自己的开发能力以及代码阅读能力很自信,就可以利用开源产品构建自己的负载均衡解决方案。

开源负载均衡的缺点也很明显:界面太差或者基本没有界面,维护成本很高,代码可读性不高,性能瓶颈。一般专业的负载均衡都会采用用户态协议栈,以实现线速转发的能力,而上述的开源负载均衡均采用Kernel的协议栈,常常在10万-100万在线会话环境中无法使用。

开源负载均衡在企业应用中部署反而会提高部署和运维的成本,一般一位可以驾驭这些开源负载均衡软件的专业开发工程师年薪至少20万人民币以上,而一台中端负载均衡只需要10万人民币左右,每年维护费用只有三四万元。而配备专门的负载均衡开源工程师可能每年要20万以上。

应用交付技术展望

根据Gartner最新的(2017年11月22日) 的ADC市场报告,Gartner 资深分析师 Mark Fabbi 和Andrew Lerner 认为应用交付控制器市场将会产生分化。如下图所示:

究其原因,是应用架构在发生变革。微服务/微架构/松耦合/Restful 等名词成为时代最强音。新时代的应用架构将发生翻天覆地的变化。这种变化包括:

应用正在向微服务转化

应用团队(60人-200人)向小型化小功能团队演进(6-12)

应用服务器向超级轻量级应用引擎转变(Spring Boot , Chrome V8)

操作系统被内核代替(Core OS)

虚拟机被容器代理(Docker , Rocket , Garden)

关系型数据库向非关系型数据库转变

数据绑定向数据分片和复制转化(Replication)

Java/C 语言向 Go / RoR / NodeJS转变

XML 向Restful JSON 转变

因此,应用交付技术也会向小型化、开放式、微服务转变:

可以预见随着松耦合、微服务成为企业应用系统的主流架构,应用交付网关也将从专有的硬件设备转换成为Docker 容器中的一个实例。

总 结

应用交付技术是企业应用和数据中心乃至云计算以及未来的微服务架构的关键核心部件。企业需要根据自身需要和现实,制定既照顾到眼前需求,又考虑长远和未来的架构发展需要。选择合适的应用交付解决方案将使你的应用系统如虎添翼,畅游在勃勃发展的互联网世界中!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180228B0BQSR00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励