天旦,用互联数据打造“次世代”微服务架构下容器中的应用监控

时间:2018-10-11 15:41  作者:茴香  来源:PChome       返回首页
  如果说选一件东西作为全球贸易的基础,那一定是「集装箱」。这一发明诞生于1950年的货运物流体系,使得任何商品的流通都可以规格化,进而通过批量操作和工业化作业实现低成本化、高效率化和规模化。

  而在数字世界,也有这样的「集装箱」,那就是当下的热门技术——容器。在过去,企业业务运行于物理机上,运维人员就要从最底层的硬件开始来管理整个IT系统,硬件、操作系统、网络、库、服务、应用程序……而随着业务的迅速增长与数字化程度的大大提高,对IT系统进行维护的成本也迅速提升。容器正是应对这一趋势而诞生的。容器正是应对这一趋势而诞生的。

  它是一种操作系统层虚拟化(Operating system–level virtualization)技术。它将应用软件系统打包成一个包含应用程序本身、以及所需操作系统核心和库的容器(Container),通过统一的命名空间和共用API来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得Linux用户可以容易的创建和管理系统或应用容器。

  容器使得运维人员无需担心底层的系统和硬件,保证应用在各种软硬件环境中都能正常运行。而「微服务」的软件架构则与容器技术珠联璧合,天生一对。与过去整体式架构(Monolithic Architecture)不同,微服务架构是指将过去完成复杂业务的一整套大型应用系统拆散成多个只负责单一应用的模块,模块之间通过通用的方式连接。而这些模块则可以分别装入不同的容器,从而实现轻量、敏捷的开发与管理。

  打个比方,过去的整体式架构就像是微信,将聊天、支付、朋友圈社交、资讯阅读、小程序拓展等打包成一个庞大而臃肿的应用程序,如果任意一个部分出现问题、或者需要功能更新,都必须对整体进行极大工作量的改动,连带业务频繁变动的需求响应速度也十分迟缓;而如果将各个部分拆分成独立的专用性应用程序,则可以根据需要单独改动某一业务部分,而无需影响剩余部分。而且更棒的是,将复杂应用拆分为多个单一小应用的微服务集合之后,大大降低了系统的复杂程度,因此出现故障的概率以及运维的维护难度也大大降低了。

  但是,任何技术都是两面性的。分散的微服务架构和隔离化的容器技术,使得容器内的应用日志收集变得极为复杂。而日志是记录和分析业务状态的重要数据来源,对于企业业务的正常运行、运维的持续可用性维护都非常重要。

  容器中的应用监控实现——日志收集

  Linux内核提供了cgroups功能,它能控制和限制单个或多组进程的资源使用,使进程之间相互隔离(即进程虚拟化)。内核也提供了命名空间隔离的功能,对应用程序来说,操作系统被隔离成包括进程树、网络、用户id以及挂载文件系统的独立空间。LXC (Linux Containers,Linux软件容器)利用cgroups与命名空间,为应用程序创建一个独立的操作系统环境。

  LXC镜像提供版本控制和移植性,确保能够在开发人员PC环境运行的应用同样也能在生产环境中正常运行。虽然LXC运行消耗的资源少于虚拟机,却在很大程度上保持了应用的隔离。

  LXC的重要价值在于它提供了一套完整的底层工具库集来创建和管理容器。但是这套底层工具集使用起来并不是很方便。Docker的出现使得容器的编排更为简单。



(Docker的结构示意)

  Docker是一个基于LXC和cgroup的上层工具,通过对LXC、cgroup及相关系统命令的封装,用户可以非常方便地使用LXC。Docker本身并没有革命性的创新,其核心是Container这一多年前就提出、并且在Linux、Unix、 FreeBSD上都有技术实现的理念。

  Docker关注在临时的、无状态的、最小化容器上面,通常不会升级或重新配置,而是整个被替换掉。正是这个特点使得docker内日志收集变得复杂。

  Docker 使用logging drive的方式收集日志,默认使用json-file驱动,json-file会将容器的日志保存在json文件中,Docker负责格式化并输出到STDOUT和STDERR。

  通过扫描容器主机的json-file 目录可以实现容器STDIN/STDERR日志的收集。Docker官方提供了其他驱动:


  开源的Elastic Stack可用来收集、管理日志,Filebeat是其中一个组件,其内置的多种模块(auditd、Apache、NGINX、System 和 MySQL)可实现对常见日志格式的收集,通过在Docker中挂载共享的磁盘卷,Filebeat 可以读取所有日志文件。


  集群中的应用监控实现

  集群可以想象为多台服务器彼此连接形成的计算网络。借助微服务架构和容器技术,业务线的多个应用模块不必集中在同一台物理机上,因此可以通过集群方便的拓展。Kubernetes是运行于集群的开源系统,用于自动部署、扩展和管理容器化应用程序。Kubernetes定义了一组构建块,它们可以共同提供部署、维护和扩展应用程序的机制。Kubernetes官方给出了三种日志收集方案:

  1.利用宿主机收集


  2.通过日志收集引擎挂靠Pod方式收集


  3.通过网络内部转发方式收集


  Fluentd是另外一种面向多种数据来源及数据出口的日志收集器。它使用JSON文件来统一日志数据,通过灵活的插件机制,可支持丰富多样的日志输入应用、输出应用,以及多种日志解析、缓存、过滤和格式化输出机制。



(Fluentd结构示意图)

  集群中的应用监控日志收集很困难,原因在于不同业务应用的负载不同,系统会自动对应用容器在集群中迁移(比如将负载较重的应用容器迁移至计算资源空闲的节点上),从而对日志收集的持续性和完整性造成影响。

  次世代的应用监控技术——互联数据(Wire Data)

  业务系统被分拆为运行于多个容器中的单一应用模块,但应用模块之间仍然会相互连通、交换数据来完成业务。Gartner 将这些流经网络的数据称为「Wire Data」,也就是互联数据。

  Wire Data 是指连接客户端和服务器之间的网络光纤所承载的全量、双向的通讯数据,它是被处理过的高价值的业务可用数据源,是能够实时、直观了解系统业务运行状况最全面、客观的参考数据资源。

  Gartner在2016年3月的一份报告中指出,相对于未经处理的系统原始数据,Wire Data将在未来的数据分析环节扮演越来越重要的角色。在未来五年内,Wire Data将被证明是越来越重要的数据来源。

  微服务的监控方式除日志收集外,还可以通过网络互联数据(Wire Data)进行应用监控。通过镜像网络上的真实流量并解码,就可以实时获取应用的运行情况与交易数据,无需收集日志即可实现高效、灵敏、实时的应用监控。

  在基于容器的微服务架构中,由于服务运行的位置、数量和时间不确定,传统用于虚拟机的性能监控和日志收集方式很难适应容器应用动态变化的特点。通过互联数据进行应用监控与传统的日志收集方式相比,可以做到20ms低延迟实时输出;通过旁路技术保证数据完整性,系统架构简单易用,对运维人员要求较低,降低开发运维成本,并且不需要对现有业务进行大改造即可快速落地。

  应用容器化也使得企业可以很方便地将业务应用托管于公有云和私有云环境,以节省基础设施投入。在云环境下(特别是绝大部分公有云),云服务提供商几乎都不提供获取流量的端口,租户无法突破其封闭式的底层架构而获得详细的业务过程数据。一方面,这让业务的性能变化过程「两眼一抹黑」,无从知晓业务应用状况;另一方面,一旦业务容器在非人为的情况下产生迁移,就会逃出运维人员的监控视野。随着云计算的普及,这将是广泛存在的运维盲区。

  天旦多年来致力于通过互联数据向业务与网络性能管理提供价值的研究与技术积累,开发了一款网络流量镜像监控工具——Packet Agent,并彻底开源。它可以抓取本机网卡数据包发送到另一设备,从而实现云上环境的应用性能监控。Packet Agent 是一套高性能且低开销的抓包工具,包含以下组件:

  Pktminerg,该工具可以轻松地在网卡上抓取数据包,用GRE头进行封装并发送到远端的设备,来进行数据包监控和分析。


  2.Pcapcompare,用于比较两个pcap文件。

  3.Gredump,根据特定的过滤规则抓取GRE数据包,并存储为pcap文件。

  4.Gredemo,一个demo应用程序,可以从pcap文件读取数据包,然后把它们发送到远端网卡。


  Packet-Agent旨在帮助用户解决在云环境、虚拟机等复杂环境下无法实时获取完整业务过程数据、感知业务变化的问题,无需硬件设备即可进行网络镜像,可适用于Linux,Unix,Mac, Windows等各种操作系统。与PacketBeat、Splunk App for Stream等工具比较,天旦 Packet Agent大大节省了机器开销,并且实现了自定义化的协议支持,甚至直接导出数据包(其他工具尚无法实现)等功能。

  如果您想体验天旦Packet Agent,请关注天旦公众号“天旦Netis”,回复“镜像”,即刻获得下载链接。

  基于互联数据的业务价值创新

  行业内大部分科技企业对互联数据的处理能力依然处于较低层面的“传输层”。天旦作为业内极少数可以准确解读互联数据“业务层”价值的企业,自研「天旦互联数据引擎」对数据解析的准确率可以达到99.9995%(误差产生是因为某些数据不在网络中传输),在行业中处于非常领先的地位。

  基于互联数据引擎输出的高价值数据,天旦BPC产品则是将互联数据的价值真正提升到了业务层。对于后台,无论是公有云、私有云、虚拟化环境,BPC都能够精准获得业务的运行指标、准确告警、自动化故障分析,保障关键业务的持续不间断运行。对于中台互联数据引擎还能将高精度的业务过程数据输出给实时风控、交易反欺诈、精准营销、大数据分析等应用场景,并为前台实现业务的可视化管理,落地数据驱动的业务决策。这是互联数据远胜于其他应用监控手段的重要价值。


  互联数据告警准

  恒丰银行平台与自动化中心高级经理曾表示:

  “天旦BPC业务性能管理产品,可以计算应用运营系统的交易指标,让我们第一时间了解业务影响的程度和范围。当出现问题的时候,我们可以知道是应用系统的哪个模块出现了什么样的问题,使用BPC的交易追踪和多维统计功能,我们可以加快问题定位和排障的过程。”

  互联数据落地快

  包商银行信息科技部总经理助理说:

  “50多套重要的信息系统1个月在BPC的监控下落地投产,整体的全行业务情况、还有系统的使用情况、响应情况,全部能够第一时间地给我们反馈在这儿,对我们的生产运维工作起到了很大的帮助。”

  互联数据助力业务创新

  南京银行信息科技部副总经理叶照表示:

  “天旦BPC项目为我们的风控业务提供实时的数据指标依据,让我行风控业务从T+1成功升级到T+0的管理模式,有效缓解了因为数据时滞而带来的风控瓶颈。我们非常看好BPC。”

  来源转于:PChome

(广告)

声明:本网站所提供的信息仅供参考之用,并不代表本网赞同其观点,也不代表本网对其真实性负责。您若对该稿件内容有任何疑问或质疑,请尽快与上海热线联系,本网将迅速给您回应并做相关处理。联系方式:shzixun@online.sh.cn QQ:2805422593

推荐阅读
| 关于我们 | 联系我们 | 隐私条款 | 广告服务 | 频道合作 | 站点地图 |
 许可证编号:3112006002 沪ICP备09025212号 沪网文[2014]0028-028号 营业执照信息
互联网违法和不良信息举报中心 中国文明网 上海青年公益门户网站 放心搜
©1996- 上海热线信息网络有限公司版权所有
沪公网安备 31010602000009号 服务举报电话:52122211-361 合作QQ:2805422593