2018年,袋鼠云技术团队决定在技术社区上开源我的项目,为开源社区贡献力量。
同年FlinkX、FlinkStreamSQL相继上线,通过三年的倒退,Star数别离达到2.2k和1.5k,位列Flink生态畛域前茅,取得宽泛的社区反对。
三年多的工夫里,袋鼠云数栈技术团队始终以技术为外围,保持开源凋谢、将数字化技术红利回馈社区的理念,一直的为大家分享成绩。
在往年4月份的ArchSummit2021年寰球架构师峰会上,数栈技术团队为大家分享了《云原生大数据系统架构的实际和思考》,并承诺将陆续开源数栈在云原生方面的实际。
一、EasyAgent是什么
EasyAgent是为近程对立治理主机端Agent生命周期而设计的零碎,从2017年上线至今,已累计在金融、政企等生产环境安稳运行超过数千万小时。
在大规模日志收集零碎里,通过EasyAgent能够集中管控10000+数量的日志采集器(如elastic filebeat),实现采集器的装置、降级、启停治理和配置更新。
在数栈运维管家EasyManager里,通过EasyAgent能够实现数栈服务的装置、降级、卸载、启停和配置管理。EasyAgent是数栈运维管家的要害组件,是实现数栈自动化部署的根底组件。
二、EasyAgent解决了什么问题
如果说当初“煊赫一时”的kubernetes是容器的编排调度者,那么基于EasyAgent则能够实现对传统主机过程(服务)的编排调度。EasyAgent如同部署在各个主机上的Daemonset,以Sidecar的形式管控所纳管过程(服务)的生命周期。
在Linux里,通过service和systemctl能够实现服务(过程)的开机自启和手动启停治理,开源库supervisor也能实现对服务(过程)的守护和手动启停,然而这两者都无奈原生反对对服务(过程)的近程调度和管控。
对于零碎级服务(可打进OS 镜像)的服务,应用零碎原生和supervisor等开源计划根本能够满足需要,但在须要动静对服务过程进行调度(装置、卸载、迁徙)、启停、变更配置时,零碎原生和supervisor的计划就无奈满足了。
EasyAgent就是在这样的需要背景下产生的,它在服务端和网络主机之间买通了一条链路,实现对指标主机服务(过程)的编排和生命周期的治理。
在企业级软件系统交付行业里,交付软件的第一步是部署,如何疾速实现自研商业软件的自动化部署和运维,往往代表着一家ToB企业的交付效率和交付老本。
成熟的商业公司抉择自研自动化部署和运维工具。EasyAgent是实现数栈云原生部署的根底组件,解决了部署和监控等环节的自动化问题。
三、EasyAgent如何解决上述问题
EasyAgent是为指标主机和下层利用之间搭起一座桥梁。接下来,咱们从下层利用和指标主机的角度来阐明如何解决上述问题。
1、从下层利用角度
EasyAgent初衷是为近程对立治理主机端服务(过程)生命周期提供一种解决方案,所以咱们首先对服务(过程)的生命周期进行了形象。
参考service和supervisor等,咱们把服务(过程)的生命周期形象为查问、装置、配置、启动、进行、执行、卸载七个过程,对应的咱们封装了七个API供下层业务零碎调用,下层业务依据业务要求,组织并调用对应的API来满足需要,如自动化部署平台业务视角。
2、从近程主机角度
主机端运行的Sidecar采纳Golang语言开发,可同时兼容多种OS和Arch的主机。为了升高对网络策略的要求,EasyAgent采纳Push模式,主机端单向注册到server端。
主机端sidecar的部署过程即是主机的接入过程,主机接入之后sidecar与server端建设TCP即可实时响应server端发送过去的管控指令。sidecar和server之间通过gRPC进行通信,次要有三个通信接口,详情请参考:
https://github.com/DTStack/ea...
syntax = "proto3";
service EasyAgentService {
rpc registerSidecar (RegisterRequest) returns (RegisterResponse);rpc readyForControl (ControlRequest) returns (stream ControlResponse);rpc reportEvent (Event) returns (EmptyResponse);
}
下层业务通过install装置的服务,在指标主机上以sidecar的子过程模式存在,sidecar守护并管制服务过程的启停。
同样,下层业务通过exec和config接口可近程实现服务的配置查看和更新。在sidecar端实时采集的服务状态/性能等信息通过接口reportEvent实时同步到server端,server端可选择性把服务状态/性能数据同步到第三方存储,例如Elasticsearch、influxdb等,这样能够实现对服务状态的动静观测。
四、如何体验EasyAgent
EasyAgent开源我的项目地址:
https://github.com/DTStack/ea...
如果你想要更好的理解 EasyAgent 我的项目,返回学习Quick Star(老手教程),三步理解 EasyAgent 应用办法:
https://github.com/DTStack/ea...
如果你有任何对于扩大 EasyAgent 的微妙想法,欢送返回 github 社区通过 Issue 来进行探讨。
数栈是云原生—站式数据中台PaaS,咱们在github和gitee上有一个乏味的开源我的项目:FlinkX,FlinkX是一个基于Flink的批流对立的数据同步工具,既能够采集动态的数据,也能够采集实时变动的数据,是全域、异构、批流一体的数据同步引擎。大家喜爱的话请给咱们点个star!star!star!
github开源我的项目:https://github.com/DTStack/fl...
gitee开源我的项目:https://gitee.com/dtstack_dev...