目前在备考华为云的devops认证考试,特把近期的笔记整理好,方便复习

目标

  • 传统运维和云上运维的区别,云上运维的目标和挑战
  • 基础监控平台概述和华为云云上运维解决方案
  • 云上服务日志管理和审计
  • 云上应用性能监控和优化
  • 云上微服务治理概述和实现
  • 应用服务网格的概念和应用场景

持续运维和监控

运维的演进和devops

运维三阶段
  • 人工运维:无屏幕交互,脚本运维
  • 自动化运维:脚本工具化,事件驱动,大量人机交互
  • 智能运维:aiops,机器推动人工,少量人机交互,自动决策,规模化
传统运维

基础运维工作量大

  • 运维部门主要包括基础运维(针对企业IT基础设施的运维)、应用运维(针对企业具体业务的运维)。较大的运维部门还可能有单独的运维开发,负责为公司运维部门开发运维工具和平台。当用户决定上云(尤其是IaaS公有云),就表示用户已经把基础运维和相关的工具平台开发工作交付给云供应商,而把应用运维作为整个运维部门的核心

公共组件普遍服务化

  • 在企业内部,不同业务IT系统都会用到很多公共组件(如数据库、消息队列等),由于团队技术背景不同,业务要求不同,经常会出现这些公共组件选型的不一致性,导致上线后的运维负担较重。所以,企业内部运维部门的一个重要工作就是把这些公共组件标准化并最终服务化。能够对具体业务部门完全透明。降低运维部门的运维成本,提高业务部门的开发效率。
云上运维-海量场景下自动化运维的要求
  • 运维标准和规范:制定标准的运维规范,标准在工具里固化
  • 监控:数据化、可视化
  • CMDB:服务器相关的、网络相关的、应用相关的三个维度的相关信息
  • 高效的CI/CD:具备快速的交付能力,一是新开发的能力能否快速上线,二是想扩容一台机器能否快速扩出来
自动化运维-批量迁移和弹性伸缩

场景1:批量迁移,包括应用迁移、配置迁移、主机迁移、磁盘迁移

  • 传统:迁移工具
  • 现在:迁移服务,如从线下迁移服务到云上,可用云迁移服务完成业务的迁移

场景2:弹性伸缩

  • 主机弹性伸缩:配置触发条件,满足条件后,自动进行主机维度的扩缩容
  • 容器弹性伸缩:以容器的资源使用状态为扩缩容依据
devops下的运维系统特点
  • 高可用:运维系统高可用是基础
  • 高成功率:运维监控需要精准的指标,精确的操作,来保证运维动作的高成功率
  • 高效率:运维系统一定要具备高效率,快速扩容、快速部署
  • 可回滚:运维操作需要具备可回滚的能力
  • 自动化运维:减少人机交互,将更多的运维工作交给系统
  • 应用管理:以应用为中心,实现应用的持续部署、集成、运维等
云上运维

监控自动化、配置自动化、作业自动化、日志分析自动化

  • 配置自动化:环境参数由CMDB统一管理
  • 作业自动化:常用操作脚本化,杜绝后台操作,操作审计
  • 监控自动化:现网资源/业务/性能/可用性等10万+监控项
  • 分析自动化:集成pinpoint/elk/oneAPM,辅助问题定位
AIOPS实践

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GiP3p2lN-1616148346389)(img\07.png)]

关键技术:

通过运维数据,包括百种指标监控、KPI数据、调用跟踪数据自动完成故障根因分析

  • 单维度异常识别:根据历史指标数据动态生成指标基线,无需人工配置告警阈值
  • 复合事件异常识别:多维度异常指标因果关联分析,识别出根源告警
  • 业务根因分析:提取业务正常与异常上下文数据特征,如资源、参数、调用结构,通过聚类分析找到问题根因

监控平台

监控的目的
  • 当产品上规模后,在线上的运行状况是否良好?是否存在性能瓶颈和潜在的bug?
  • 产品实际运行在产品服务器时占用的内存平均和峰值有多少?是否合理?是否有调优的余地?
  • 服务的实际用户流量有多少?相比前段时间是增加还是减少了?

内容

  • 根据历史监控数据,为了作出预测
  • 发生异常时,及时报警,或作出相应措施
  • 根据监控报警及时定位问题根源
  • 通过可视化图表展示,便于直观获取信息
监控平台-整体介绍

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o4khHIey-1616148346391)(img\08.png)]

一个完整的监控平台至少包含两部分:监控和告警

使用脚本、工具等方式获取整个系统的不同指标值,涵盖基础设施、应用

获取监控项比如进程的CPU/内存,节点的磁盘使用状态等,同时针对每种指标设置告警,一旦指标发生异常,可通过多种方式告知运维人员及时修复

具体监控指标:

  • 主机监控指标
    • 网络:如网络流速、数据包个数、错误包个数等
    • 磁盘:磁盘读写速率、磁盘读写状态、可用磁盘空间
    • 显卡:显存容量、显存使用率、GPU使用率
    • 主机系统:CPU内核总量、CPU使用率、可用虚拟内存、NTP服务器状态等
  • 应用监控指标
    • 进程:CPU内核总量、CPU内核占用、CPU使用率、句柄数、物理内存总量、物理内存使用率、进程状态、虚拟内存总量

监控指标周期要求:一般以1分钟为监控周期,重要的指标做到秒级监控,如1s/5s一个采样点

传统运维工具
  • 日志:kibana、logstash、elastic
  • 监控:zabbix、grafana、prometheus
  • 调用链追踪:zipkin、bucky、pinpoint
主机监控-zabbix

指标采集流程:

采集器agentd需要安装到被监控的主机上,负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展示和绘图

监控平台-Prometheus

开源的监控&报警&时间序列数据库的组合。

特点:

  • 时序数据库存储监控数据能存储更大量的数据,不依赖其他存储系统,安装简单
  • 灵活的查询语言promQL
  • 通过基于http的pull方式采集时序数据,可通过pushgateway进行时序数据推送
  • 多种可视化和仪表盘支持

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wr4yW2QQ-1616148346392)(img\09.png)]

server由三部分组成

  • retrieval:负责定时去指定的API上抓取采样指标数据
  • storage:负责将采样数据高效安全的持久化存储到磁盘
  • promQL:负责提供查询

Prometheus server端存储所有数据,对数据分析,基于规则进行报警

Alertmanager是独立于Prometheus的一个组件,提供灵活的报警方式,另外,可通过web UI、grafana、API clients等可视化界面查询数据

Prometheus支持通过配置文件、文本文件、zk、consul、dns srv lookup等方式指定抓取目标。Prometheus主动获取的方式采集数据,但客户端有两种方式输送数据:一种是业务服务提供http接口,Prometheus定时从业务服务中获取数据;另一种是业务服务推送数据到Pushgateway,Prometheus定时从Pushgateway获取数据。

主流用法:

  • Prometheus作为监控指标处理中心,对接grafana进行指标展示
云上运维实践-华为云云上运维解决方案

完成基础设施层、应用层、应用性能层三层的一站式运维,工作原理:在云服务器上安装采集器和探针。采集器主要用来采集指标、日志、事件等运行、运维数据,探针主要是安装在应用中,用来采集应用的调用链、用户体验等数据。采集器和探针会将基础设施数据、应用数据、用户体验数据采集并分析处理,之后通过监控指标、日志、拓扑、事务、调用链等展现出来,实现资源、云商业务、用户体验全面运维。

应用运维管理AOM

云上应用的一站式立体化运维管理平台,实时监控应用及云资源,采集各项指标、日志及事件等数据分析应用健康状态,提供告警及数据可视化功能,帮助用户及时发现故障,全面掌握应用、资源及业务的实时运行情况。

监控对象:

  • 主机监控:主机包括弹性云服务器ECS、裸金属服务器BMS和GPU加速云服务器GACS
  • 应用监控:应用是根据业务需要,对相同或相近业务的一组服务进行逻辑划分,类型包括系统应用和自定义应用
  • 容器监控:对象仅为通过CCE部署的工作负载、通过serviceStage创建应用
  • 中间件监控:当购买了弹性负载均衡ELB、虚拟私有云VPC、关系型数据库RDS、分布式缓存服务DCS后,无需安装插件,即可在AOM界面监控这些云服务的运行状态和各项指标
AOM告警管理

告警指AOM自身,或AOS、serviceStage、CCE、APM等外部服务在异常情况或在可能导致异常情况下上报的信息,并且需要采取相应措施清除故障,否则会由于AOM自身或外部服务的功能异常引起业务的异常。

通过静态阈值规则可对资源的指标设置阈值条件。当指标数据满足阈值条件后,会产生阈值告警;当没有指标数据上报时,会产生数据不足事件

AOM已对接消息通知服务(simple message notification,SMN),通过在SMN界面设置通知策略,当静态阈值规则的状态(正常、超限阈值、数据不足)发生变化时,会以邮件或短信等方式通知。

要使用告警,先设置告警条件,即告警阈值规则。AOM支持一条一条或批量设置告警规则。告警规则可言是各类指标,主机、网络、磁盘、文件系统、服务、进程等的指标,如状态、CPU、内存、磁盘可用空间、磁盘读写速率等。应用的吞吐量、成功率、时延、错误调用数等指标。

设置好条件后,会产生告警,呈现在告警列表中。告警列表支持按照时间、名称、告警源、清楚状态、级别过滤。

告警通知:告警中心对接消息通知服务,支持通过邮件、短信、http等方式将告警信息通知到用户。

告警订阅:如果需要将告警转发到第三方系统,可使用告警订阅功能将数据转发到分布式消息服务的kafka队列中,然后第三方从kafka中消费数据。

云上服务日志管理与审计

日志

网络设备、系统及服务程序等,在运行时会产生一个叫log的事件记录,每一行日志都记载着日期、时间、使用者及动作等相关操作的描述。

日志使用场景

运维:

  • 需要日志管理系统统一记录设备、系统的运行情况,用于监控服务器状态、定位排查故障、分析性能瓶颈等
  • 要求:日志采集/导出功能便捷,索引功能快速、全面、易用

审计:

  • 需要记录服务器、防火墙等设备的日志,供安全审计系统使用,用于监控系统安全、进行可信取证等
  • 要求:数据完整、安全传输、加密保存等

运营:

  • 需要提供业务信息,例如页面的PV、UV、停留时间等,用于了解业务运营状况、分析用户行为特征等。
  • 要求:日志服务提供多样化的可视化报表展示功能
网络日志分析nginx

nginx日志分两种:access_log(访问日志)和error_log(错误日志)

  • 错误日志:记录访问出错的信息,可帮助定位错误的原因

  • 访问日志:可得到用户的IP地址、浏览器的信息,请求的处理时间等信息

linux系统日志
日志类型 日志路径 内容
整体系统日志 /var/log/message 公共日志文件,记录linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等
启动日志 /var/log/boot.log 一般包括系统启动的日志
登录失败日志 /var/log/btmp 记录所有失败登录信息。非文本文件,可用last -f /var/log/btmp查看
cron计划日志 /var/log/cron cron计划任务的日志,每当cron任务被执行的时候都会在这个文件里面记录
安全日志 /var/log/secure 包含验证和授权方面信息,如sshd会将所有信息记录在这里

通常定位应用问题时,如果发现应用运行日志没有发现异常,会排查OS日志,查看问题发生时是否环境有问题

mysql日志binlog

binlog是个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对库表等内容的查询不会记录。默认情况下,binlog日志是二进制格式,需要使用mysqlbinlog解析查看。

作用:

  • 恢复:用户误删除的数据,可能根据历史数据对数据库表进行恢复
  • 复制:主从数据同步,实现高可靠
  • 审计:追踪数据库历史操作记录,用于安全分析等
容器日志

k8s日志收集:

  • 应用pod级别
  • 节点级日志记录
  • 集群级日志

docker日志:

  • 容器引擎日志一般都交给了系统日志,不同的操作系统放在不同的位置
  • 容器日志可理解为运行在容器内部的应用输出的日志,默认情况,docker logs显示当前运行的容器的日志信息,内容包含STOUT和STDERR

kubernetes日志:

  • 应用pod级别,默认和docker容器一致,输出到标准输出和标准输入
  • 节点级别,容器化应用写入stdout和stderr的任何数据,都会被容器引擎捕获并重定向到某个位置。如docker容器引擎将这两个输出流重定向到某个日志驱动,该日志驱动在kubernetes中配置为以json格式写入文件。
  • 集群级别,有三种:
    • 使用在每个节点上运行的节点级日志记录代理
    • 在应用程序的pod中,包含专门记录日志的sidecar容器
    • 将日志直接从应用程序中推送到日志记录后端
业务运行日志

运行日志内容包括:运行时间+模块名+线程号+级别+类名/方法名+执行结果(返回值)

作用:问题分析和业务分析(了解业务的执行情况)

业务日志输出规范
  1. 日志内容使用英文描述,语义完整准确,涉及到度量信息要标识相应的度量单位,不允许出现不明含义的魔鬼数字
  2. 在所有出错或业务失败的地方,必须记录日志,日志包含错误描述
  3. 密码等敏感信息不能明文的形式记录在日志文件
  4. 在INFO级别日志中,不能出现error、fail、fault这些敏感词
  5. 执行成功的调用和过程禁止打印warn及以上级别的日志
  6. 禁止循环中打印日志
  7. 禁止短时间内频繁重复输出相同信息的日志点
  8. 单服务实例在非debug级别下产生的运行日志,最大应小于30KB/min
AOM日志管理

日志搜索:日志文件支持开启实时日志查看功能以持续查看最新日志。使用日志检索功能可帮我们快速在海量日志中查询到所需的日志,还可结合日志的来源信息和上下文原始数据一起辅助定位问题。同时可对原始日志进行查询和分析,也可对结构化后的日志进行SQL查询和分析

日志转储:根据购买套餐的不同,AOM提供7天或30天的日志存储时长。支持将日志转储到对象存储服务(Object Storage Service,简称OBS)的OBS桶中,以便长期存储,如果有更长时间的日志存储需求,可添加日志转储。

统计规则:日志包含系统性能和业务等信息,如关键词ERROR的多少反映了系统的健康度,关键词BUY的多少反映了业务的成交量等,当需要了解这些信息,可创建统计规则。创建成功后,AOM能针对配置的关键词周期性的统计,并生成指标数据,以便实时了解系统性能及业务等信息。针对日志指标添加阈值规则,当满足阈值条件产生阈值告警,以便第一时间发现异常并进行处理

日志订阅:需要将AOM的日志实时对接到运维平台时,可开启日志订阅功能,开启后,AOM通过调用分布式消息服务DMS的发送接口发送日志到指定的kafka队列,可从DMS的kafka队列中消费日志

分词配置:通过配置分词,将日志内容按照分词符切分多个单词,在日志搜索时使用切分后的单词进行搜索。

云日志服务LTS

日志组:loggroup,是云日志服务进行日志管理的基本单位,可以创建日志流以及设置日志存储时间

日志流:logStream,是日志读写的基本单位,日志组中可创建日志流,方便对日志进一步分类管理

日志采集:采集器agent,支持三种数据类型

  • 在ecs或私有云节点上安装采集器,通过配置日志路径即可完成采集
  • SDK/API:用户通过接口的方式上报日志数据
  • 云服务:ELB/VPC/WAF/CCE等云服务自动完成数据对接
操作日志

按照操作的触发者可分为用户操作日志、系统操作日志

  • 用户日志:跟踪用户(最终用户,系统管理员、操作维护员和系统监控员等)的业务相关操作的记录
  • 系统日志:对系统定时任务执行或事件触发的操作的记录

操作日志和运行日志的区别:

  • 操作日志记录用户通过客户端或API访问业务系统时,记录的业务操作行为,如登录、下单等CRUD事件,一般业务系统要求完整的记录用户的操作,用于后续的审计或问题分析工作。
  • 运行日志主要是用于记录系统内部函数的运行结果和调用关系等,通常用于问题分析
  • 操作日志有严格的输出规范和要求,如时间、用户名、操作类型、操作结果等;运行日志通常没有严格的输出规范,输出的内容也很灵活
华为云操作日志:云审计服务CTS

云审计:提供云账户下资源的操作记录,通过操作记录可实现安全分析、资源变更、合规审计、问题定位等场景

应用性能监控

云时代,海量业务应用运维面临挑战:

  • 大型分布式应用关系错综复杂,分析定位应用问题困难,应用运维面临如何保障应用正常、快速完成问题定位、迅速找到性能瓶颈的挑战
  • 应用体验差导致用户流失,运维人员不能实时感知并追踪体验差的业务,未能及时诊断应用异常,严重影响用户体验
APM

全称Application Performance Management,指对应用程序的性能和可用性的监控管理

主要针对企业关键业务的IT应用性能和用户体验的监测、优化,提高企业IT应用的可靠性和质量。旨在确保最终用户获得高质量的体验,降低IT总拥有成本TCO(total cost of ownership),包括产品采购到后期使用、维护的成本。是一种公司经常采用的技术评价标准。

常见的应用性能监控管理包括应用的接口性能和错误监控,分布式调用链跟踪,以及其他各类用于诊断(内存、线程等)的监控信息,随着云管端的不断延伸,已经延伸到前端、手机app端、IOT等领域监控,且与容器监控、服务器监控,以及其他平台组件如中间件、数据库等层面的监控一起协同,将整个应用看护起来

分布式调用链路跟踪

目前市面的系统基本都是参考Google的dapper做的。跟踪业务请求的处理过程,完成对应用系统在前后端处理服务端调用的性能消耗跟踪,通过汇聚业务系统各处理环节的实时数据,实现对应用的全链路性能监控。

背景:因为在分布式系统中一次请求中会包含很多的RPC,迫切需要一些可以帮助理解系统行为和分析性能问题的工具,需要诊断具体哪个服务性能容量存在问题,从而对整个系统造成瓶颈。

Google基于标注的方案annotation-based:分布式跟踪系统要做的就是记录每次发送和接收动作的跟踪标识符message identifiers和时间戳timestamped events,将以此请求涉及到的所有服务串联起来,弄清楚一次请求的完整调用链。

华为云APM实践-业务会话监控

监控每笔交易的KPI数据,提升用户体验。VMALL作为一个电商应用,主交易线为登录网站-选择商品-下单购买-支付,就是业务会话。该业务中,各个流程的时延、错误都影响vmall的用户体验。用户体验在业界有个标准,就是Apdex。它从用户角度出发,将应用响应时间的表现,转为用户对应用的满意度评价,量化范围为0-1,值越小,用户体验越差。根据vmall性能测试估值出一个apdex阈值。当响应时间在1倍阈值内,表示用户满意,1-4倍,用户可容忍,超过4倍,用户烦躁。业务会话监控将整个业务的调用次数、错误、时延、apdex都用数字量化出来,这样错误和慢响应就比较明显。针对错误或慢响应,可查看事务拓扑,查看该事务和其他的服务联系及情况,评估影响范围;可设置阈值告警,以保障异常出现时快速响应;可查看调用关系,找到真正慢或者错误在哪里的代码。

华为云APM实践-应用拓扑

应用关系与异常一目了然,精准下钻定位故障。拓扑图是对应用间调用关系和依赖关系的可视化展示。拓扑图主要是由圆圈、箭头连线、资源组成。每个圆圈表示一个应用,圆圈上每个分区表示一个实例。每个圆圈上的分数表示正被调用的实例数/可调用实例数。分数下的内容分别表示在当前所选的时间中应用被调用次数、响应时延、错误数。每个箭头连线表示一个调用关系。调用次数越多,连线越粗。连线上的数据表示调用次数和整体时延。拓扑使用Apdex对用户满意度进行量化,并使用不同颜色对不用区间Apdex的值进行标识。红色表示体验较差,黄色一般,绿色满意。针对体验差的调用,可查看调用链进一步定位原因。拓扑图也支持按照时间、事务、topsql等维度筛选。

华为云APM实践-调用链追踪

调用链可跟踪、记录业务的调用过程,可视化的还原业务请求在分布式系统的执行轨迹和状态,主要用于性能和故障快速定界。针对崩溃问题也可进行堆栈追踪。

微服务治理

微服务:是一种用于构建应用的架构方案,可将应用拆分为多个核心功能,每个功能都被称为一项服务,可单独构建和部署,意味着各项服务在工作和出现故障时不会相互影响。

能力列表:

  • 服务发现:如何通过一个标志来获取服务列表,且这个服务列表时能够随着服务的状态而动态变更的
  • 负载均衡:将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性
  • 灰度发布:新功能上线时,能够实现未上线功能平稳过渡上线的一种方式
  • 服务熔断和容错:下游服务因访问压力过大而响应异常时,为保护系统可用性,上游服务可暂停调用下游服务
  • 服务降级:服务超出上限阈值时,拒绝部分请求或者将一些不重要/不紧急的服务进行延迟或暂停
  • 服务限流:监控应用流量指标,当达到指定阈值时,对流量进行控制,避免被瞬时的流量高峰冲垮
服务发现

在一个微服务应用中,一组运行的服务实例是动态变化的,实例有动态分配的网络地址,因此了,为了使得客户端能够向服务发起请求,必须有服务发现机制,在此基础上进行微服务的其他治理功能。

  • 客户端服务发现:客户端通过查询服务注册中心,获取可用的服务的实际网络地址(ip和端口),然后通过负载均衡算法来选择一个可用的服务实例,并将请求发送到该服务
    • 优点:架构简单,扩展灵活,方便实现负载均衡
    • 缺点:强耦合,有一定的开发成本
  • 服务端服务发现:客户端向load balancer发送请求,LB查询服务注册中心找到可用的服务,然后转发请求到该服务上,和客户端一样,服务都要到注册中心进行服务注册和注销
    • 优点:服务的发现逻辑对客户端是透明的
    • 缺点:需要额外部署和维护高可用的负载均衡器

服务发现的核心:服务注册中心,保存可用服务实例的网址(IP和端口),可用性和实时更新功能

  • self-registration:服务实例必须自己主动去注册中心注册和注销,如可使用heartbeat机制实现注销
  • third-party-registration:通过其他组件实现服务注册功能
灰度发布

CESjavaSDK支持灰度发布功能,支持按百分比引流和按请求参数特征引流两种方式,百分比引流举例:

假设一个系统要上线一个功能some-feature,需要用户Alice做内部测试后才完全发布:

  • 线上正在运行服务some-feature-A,新部署一个服务some-feature-B,使用新版本的image和ConfigMap
  • 去负载均衡器页面修改转发规则,新增header转发规则,将name=Alice的流量分配给some-feature-B,剩余的流量给A
  • 登录Alice用户进行测试,并更新some-feature-B的image和ConfigMap,直至验证通过
  • 修改A的image和configMap,与B一致
  • 删除负载均衡器的转发规则,所有流量指向服务A
  • 删除服务B
服务限流

通过对并发访问/请求进行限速或者一个时间窗口内的请求进行限速保护系统,一旦达到限制速率则可以拒绝服务(定向到错误页或告知资源没有了)、排队或等待(如秒杀、评论、下单)、降级(返回兜底数据或默认数据,如商品详情页库存默认有货)

一般限流策略:

  • 限制总并发数(如数据库连接池、线程池)
  • 限制瞬时并发数(如nginx的limit_conn模块,用来限制瞬时并发连接数)
  • 限制时间窗口内的平均速率(如guava的RateLimiter、nginx的limit_req模块,限制每秒的平均速率)
  • 其他的还有如限制远程接口调用速率、限制MQ的消费速率
  • 另外还可根据网络连接数、网络流量、CPU或内存负载限流

华为云CES支持default、微服务、schema(契约)、operation(接口)限流四个粒度的限流

服务降级

降级有三个概念:

  • 隔离:是一种异常检测机制,常用的检测方法是请求超时、流量过大等,一般的设置参数包括超时时间、同时并发请求个数等
  • 熔断:是一种异常反应机制,熔断依赖于隔离,熔断通常基于错误率来实现,一般的设置参数包括统计请求的个数、错误率等
  • 容错:是一种异常处理机制,容错依赖于熔断,熔断以后,会调用容错的方法,一般的设置参数包括调用容错方法的次数等

应用服务网络

服务治理的三种实现方式
  • 服务治理能力内嵌在业务代码中
  • 服务治理能力抽象到统一的SDK中实现
  • 服务治理能力归一到服务网格,非侵入,无感知

istio是k8s上原生的服务网格技术,是一个提供连接、保护、控制以及观测功能的开放平台,通过提供完整的非侵入的微服务治理解决方案,能很好的解决云原生服务的管理、网络连接以及安全管理等服务网络治理问题。

服务网格(service mesh)通常用于描述构成应用程序的微服务网络以及应用之间的交互,需求包括服务发现、负载均衡、故障恢复、指标收集和监控以及通常更复杂的运维需求,如A/B测试、金丝雀发布、限流、访问控制和端到端认证等。

应用服务网格在逻辑上分为控制层和数据层

  • 控制层:管理代理(默认为envoy),用于管理流量路由、运行时策略执行
  • 数据层:由一组以sidecar方式部署的智能代理envoy组成,这些代理可调节和控制微服务以及mixer之间所有的网络通信
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐