序言
天气晴朗,蓝天无云。
想躺在床上挣钱,转念一想,挣钱又不是目的,所以躺在哪里都无所谓了。。。
日思夜想,时刻念叨,看书没意义,出门浪没意义,那么什么是有价值的事呢?
从问题说起
最近在看容器的监控系统,监控系统无非就是需要几个方面的功能。
数据如何采集?是服务端主动到监控节点拉取信息?还是客户端主动上报相关的信息,从而划分为两种类型,一种是有专门的客户端,一种是使用主机自带的协议,例如snmp协议。在进行网络设备的监控的时候,好像只能用snmp协议了,因为。。。不能安装客户端,容器中可以使用cadvisor或者使用prometheus的各种exporters。专用的客户端。
数据如何存储?数据存储在文件中?还是数据存储在数据库中?还是数据存储在分布式文件系统中?zabbix是存储在数据库中,那么需要考虑的问题是,如果存储在数据库中,保存多久的数据?一年还是更久,使用什么样的方式来定时清理数据?数据库influxdb不错,prometheus也还好。
数据如何展现?使用图表来显示?使用表格来显示?柱状图?饼图?主要取决于你关心的数据而已,例如容器总量是多少个,容器停止状态的有几个,容器运行状态有几个,容器使用的内存,CPU等相关的性能数据。。。人嘛,总是喜欢花花绿绿的,这样才能吸引眼球,grafana还是很不错的。
告警如何通知?使用短信通知?使用邮件通知?使用电话通知?是否支持这样的通知机制,使用prometheus这是一套解决方案。
那么如果是我写一套监控系统我能怎么做?
语言使用python?我要使用docker模块?我怎么使用docker的方法?我如何远程监控?
使用专用的客户端,那么就会有一个agent,在每个监控节点上运行,那么这个接口采用restful接口?
数据存储在mysql中,那么mysql如何来清理数据?
数据展现框架?flask?django?tornado?
数据通知机制,怎么设置阀值?怎么通知?邮件的模块?短信的模块?还是其他的模块?
那么问题来了,想做一件事需要考虑这么多东西,复杂的问题该怎么办???
世间万物,均有联系
每天各种杂事缠身,每天花费时间处理各种琐事,然而就是这些组成了你的一天。。。
有的人躺在床上一天,有的人出去浪一天,有的人出去做头发一天。。。时间都是均衡的,每个人每天都是那么长的时间。。。
有的人过一天是一天,第二天太阳一样升起,有的人过一天是新的一天,第二天能力提升一点。。。
不好好对生活,生活就会好好怼你,投资多少,会回报多少。
可曾分析了每一天时间的消耗?例如消耗在一件琐事上,下次如何更好的处理?下次更加有效率的处理?下次是否可以不处理?下次是否可以一句话解决?有没有想过更好的方法来处理。。。动脑总是头疼,因为脑子不见了么?
可曾想过一天的时间构成?每天浪了多久,怎么浪,如何浪的更加有意思?会更有创意?会更有想法?会想到更好玩的事情。。。。怎么改进也是需要动脑子的,但是你的脑子呢?
日积月累。。。那么怎么日积月累?
在空闲时间,我写了一个restful接口,可曾分析过我以后怎么用?非要书到用时方恨少。。。
在闲暇时间,我写了一个通信接口,使用http协议,可曾想过使用的场景?非要到用的时候才去看?
在碎片化时间,我看了一个片段信息,可曾想过如果是你,你怎么去设计,你怎么去写,你怎么去考虑,在以后碰到了类似的问题,如何去解决?
一阵妖风吹过
一阵妖风吹过。。。。那么怎么解决复杂问题?积累。。。反思。。。应用。。。反馈、、、循环。。。
看到容器的时候,就会想起来,容器的网络是什么样的,桥接?主机模式?ingress网络?
看到容器的时候,就会思考到,容器的存储是什么样的,分布式存储?共享存储?volume存储?
看到容器的时候,就会有念想,容器怎么做资源隔离?和vm一样资源隔离?和process一样做资源隔离?
看到容器的时候,就会考虑到,容器怎么做成集群?服务怎么调度?服务怎么分布?和其他的分布式系统一样有区别?
我想要的我都有!!!
我要网络,啪,给你一个网络分布图,给你分配一个网络段;我要负载均衡,给我VIP;我要存储,分你几个bucket;我要我的脑子。。。那不可能。。。你本身就没有脑子!!!
对于复杂问题,一个能力在于拆解,就像微服务一样,一个庞大的系统,拆拆拆,拆成一堆的积木;一个能力在于组合,将各种积木进行搭建,组建成功能强大的系统。
当没有基础的时候,多看看别人是怎么做的,去反思,去应用,去思考,去找脑子。。。多看,多问,多做。
当有基础的时候,多改进,多优化。。。这也就是为什么面试的时候需要优化的技能,明知道用不上,为什么还要问。。。因为只有优化的时候,才会发现你动了脑子。。。
总结
对于复杂的东西,要进行拆解,拆解之后,有目的的进行强化练习,时刻不要忘记你做这种练习的目的是什么,是为了在以后的使用。
对于简单的东西,要进行组合,联系过往,在哪个地方使用了,使用的场景是什么,为什么要那么做,做的动机是什么,达成了什么效果,怎么改进。