监控系统实践第2天:确定监控系统的脚手架
啰嗦一下
准备确定脚手架,才发现自己疏忽了,居然还没确定需求。
还好没开始,不然后面准备的脚手架不知是小题大做,还是大材小用了。
就好比我要造一个草屋,结果材料不足够建造一栋大楼。或者我要建造一栋大楼,结果只有草。
确定需求
至于监控系统需求是什么,我现在也还不确定。只能先简单的罗列几个了基础功能,以后实际使用过程中再增加其它的吧。
现在有这么几个功能方向是一定要的:
- 用户系统,可以通过用户名密码登录系统,可以新增用户,编辑用户;
- 查看服务器中的网站日志;
- 查看谁连过我现在的服务器;
操作系统选择
系统:Centos 7
不想浪费太多的时间,Windows有时候这个系统文件出错,那个因为某某文件丢失启动不起来,直接跑个Linux,装个靠谱的集成环境完事。
语言选择
语言,我选择PHP
个人觉得开发一套程序,最基本、最先进行的,是选择语言,其次就是围绕这个语言的服务和框架。
通过以上这几个简单的功能可以知道,我可能只需要建个草屋了。
首先说到这几个功能中,最基础的,也是最通用的,就是:用户系统。
用户的创建查询,可能只需要CURD就够了,因此这个地方我选择上手最快、个人最熟悉、全世界最好的语言:PHP,就拿PHP来打底了。
为什么没有选JAVA、PYTHON、GOLANG?
原因很简单:
- 现在功能没那么复杂;
- 我想快点出产品,要上手快,快速开发;
- 要让维护人员容易维护;
- 仅仅只是普通的CURD,只需要PHP打先锋就够了,其它的大将后面再上。
在这里,我不建议新手深究PHP,简单的熟悉一下就行,或者把它纳入自己的技能树里,成为一个技能分支就行。
因为最近几年,PHP工资不太高,加上很多人对原理理解不够透彻,让PHP被更多人误解。
人生苦短,还是选择一个在当前更有前景的语言比较重要。
PHP是否用框架?
用框架吗?答案是:用!
说到PHP,它本来就只是它自己的作者Rasmus Lerdorf开发出来做自己的个人网站的,谁知因为上手简单,被越来越多的人接受。乃至它的框架也随之而生。
虽然现在PHP被人吐槽越来越像JAVA,热度更是不及以前,但是它的框架和类库还是比较成熟的。
单单类库不说,框架就一大把,比如 Yii,ThinkPHP,Laravel,Phalcon,Symfony2,CodeIgniter,Zend,Yaf等等等等,这里不一一列举了,再说下去就是涉嫌凑字数了。
在以前我比较喜欢写原生代码,就是不依托别人的框架来进行PHP的程序开发,全部自己写,自己实现简单的视图、模型、控制器、路由等等,因为PHP本身就是一个模板语言,我们再一次的封装它,只会让它性能更差。
再一个原因就是,想知道PHP的极限在哪里,怎么能让它发挥到极致。
最后一个原因是,大厂的朋友们说出它们实际生产环境的运行结果,我更加坚定了自己写原生代码的路线。
现在呢,我建议朋友们用框架。
首先,抛开信任和技术经验问题,最主要的是,用人单位需要啊,团队需要啊,而且现在这个社会流行用框架啊。
有些公司或者团队本身就已经用熟悉了一套框架,这个时候要他们重新学习,他们需要一定得成本,而且不一定接受。
其次,是人与人之间的信任问题啊!
如果你基础扎实,信任你的人觉得你没问题。不熟悉你的人呢?他怕翻车啊,感觉用框架肯定比你自己写要稳定很多啊。
就好像很多公司都用开源程序二次开发一样。我们以为公司是真的很急说要二次开发,但是有些实际是怕你经验不足,怕你翻车。
再次,你基础扎实,自己写了一套程序一套框架,但是你要花时间让所有人熟悉你这套框架的用法。
你和团队里的人的功底不同,你代码写简单了,别人觉得太low,你写复杂了,别人觉得太难接受。
你的代码思维也不是所有人都认同,或者你的代码给到他们后,因为他们思想跟你不同步,在实际开发的时候把你的代码改得乱七八糟。
从次,下一任公司或者团队或者项目说需要用到某某框架来写,你可以跟别人说你功底深厚,一下就熟悉框架了,但是对方会这样认为吗?可能会,但不是所有人都敢冒这个险。
最后,为了有一个稳定的工作,为了跟上这个社会的潮流,我用PHP框架!
PHP框架我选 Laravel
其实我心中的框架早就选好了,那就是Laravel,也许它的缺点很明显,但是我还是选它。
同样是为了找工作为目的,打开国内的招聘网站,你会发现,招聘初级、中级PHP开发人员的需求里,Laravel、ThinkPHP、Yii的份额会相对多一点。我们就从这三个里面选取Laravel。
为什么选Laravel?
- 需要编译扩展来支持的框架,为了方便部署,我就不用了;
- 文档不全的框架,虽然我们可以追代码看方法,但是可能会遗漏这个框架作者特意写出的非常好用的方法,也不用了;
- 文档不全不止会引起可能遗漏一些方法的可能,还有可能磨掉一个人接纳它的耐性,更加不会考虑了;
- 有一些框架是国外的,可能中文文档都没,英语查的阅读起来吃力,不适不会考虑,是不敢考虑;
- 国内有个
ThinkPHP虽然有点年代了很久远了,但是被大批黑帽子捏着漏洞,我承认我不敢用; - 以前用
Yii,但是它平时更新太慢了,尤其是去年2020年9月才在更新文档里确定自己支持PHP8,中途有很长一段时间,PHP官方要用户赶紧升级PHP到 7.3 版以保证安全性,但是它就是不快点更新起来去支持PHP7.3; Laravel不开加速扩展opcache速度感人,但是无奈我们的Laravel方方面面看起来比较丰富,加上现在服务器成本比以往低,很多公司也不在乎了费用了,就选它了。
选服务
实际上有了开发语言, 就应该来选适合它的服务来存储数据了。
可以选数据库服务,或者选内存缓存服务之类的。当然不选服务,用文本存储数据也行。
现在我这几个需求功能里面,只是需要保存用户和其它的一部分数据,这里我就选个PHP的黄金搭档MYSQL好了。
没有选择任何的NOSQL,比如MONGODB,没选,听说新的MYSQL已经追上了它的性能,再说我现在也不需要它。
还有比较优秀的key-value服务REDIS,我这个量级也还用不上它。
至于其它的数据库服务,更用不上。一个是文档少,二是有些坑出现了会让自己麻烦,时间要用在刀刃上,有时候不要太较真。
再说了,MYSQL出故障,网上的解决方案是一搜一大把的。
最后决定的脚手架
好了,废话了一大堆,最后的脚手架就是:
操作系统:Centos 7
开发语言:PHP
框架:Laravel 8.5
数据库服务:MYSQL
好了,今天就先到这里,下次我就要来盘一下操作系统了。
以上的阐述只对有基础的朋友有作用,如果对以上的知识点有质疑或者不懂的可以在下方留言。

本文介绍了监控系统搭建初期的需求分析及技术选型过程,包括操作系统、开发语言、框架和数据库服务的选择,并最终确定了Centos7、PHP、Laravel8.5和MYSQL作为核心组件。

2万+

被折叠的 条评论
为什么被折叠?



