vieyahn2017 / repos

【已经迁移到goto/javaway】
2 stars 1 forks source link

小米弹性调度平台Ocean——从PaaS到DCOS - 掘金 #17

Closed vieyahn2017 closed 7 months ago

vieyahn2017 commented 6 years ago

小米弹性调度平台Ocean——从PaaS到DCOS - 掘金 https://juejin.im/post/5b1df418518825137d78b2fe

vieyahn2017 commented 6 years ago

摘录部分:

vieyahn2017 commented 6 years ago

监控——

全Push采集我们的监控系统叫做Open Falcon,目前已被开源。而全Push采集是Falcon比较重要的设计,所有的监控数据都是通过Falcon-agent推到serever端。这有两方面的优点,一方面和弹性环境更加亲和, 因为Agent会从部署的位置自动采集数据然后上报。另一方面使设备具有策略自发现能力。自动扩缩自动扩缩通过与Open Falcon对接完成。Falcon会自动采集CUP IDLE、MEM FREE、PROC QPS、PROC DELAY这四个基础指标,以此来提供自动扩缩的能力。

当某个用户要基于某个指标进行扩缩,就会自动的为该条指标添加一条集群监控策略。当监控策略满足预值要求时会自动通过HooK方式回调Marathon API完成自动扩缩。目前我们最短5s触发伸缩。

vieyahn2017 commented 6 years ago

日志查询

云原生环境与物理机运行不同,在物理机无论出现什么问题都可以在原先的位置查看日志,而在弹性环境中容器挂掉后,要从整个资源池找回已经挂掉的容器的日志是比较麻烦的,即便找到了也很难暴露给用户查看。

因此我们采用了ELK的解决方案,并将其中的L改成更轻量的客户端FileBeat。如果FileBeat运行在容器上,一旦容器挂掉后,FileBeat的一些日志就会来不及传输,所以我们将FileBeat运行在物理机上,同时在容器退出后延迟清除容器。

我们还制定了用户日志目录规范,通过修改FileBeat让它与目录的规范相配合,自动为日志添加标签数据。

vieyahn2017 commented 6 years ago

StackStorm

故障自愈用到了开源框架StackStorm,它是事件触发自动化处理的框架。

整个过程中由Sensors收集信息源,Rules完成需要统计计算或者判断触发的逻辑定义,当触发时随之启动一个Workflows,每个Workflows对应一组Actions。另外中心还有着可以贯穿所有模块的Audit模块,能够知道整个生命周期内所发生的情况。

在实际的建设时我们会将内部能够产生信息的基础设施作为输入对接到StackStorm中,StackStorm内的触发组件则对接到我们内部的控制系统。