一,期中架构考核概述
1.1 架构图
1.2 架构图公司背景概述
- 公司是一个新兴的人脸识别高新创业公司,公司名称xxxx
- 老总是博士生导师,还有一个副总是研究生导师
- 副总同时是研发总监,负责所有的研发人员管理
- 产品研发一共有4个小组,总共27人左右,每个小组有一个产品研发经理(在读博士生),成员绝大多数都是在读硕士生,偶尔也会外聘有经验的研发人员。
- 运维这里本来只有我和一个网管两个人,但最近随着业务需要,又刚刚新招了一个负责线上展示环境的大数据运维(主要是hadoop,zookeeper等)。我则主要负责公司产品线的生产环境运维。
- 在这个架构图中,我负责所有的搭建、维护、监控、备份、脚本编写还有权限管理。数据库我只负责部署和备份,其他方面由开发总监负责。
- 公司一共有四条产品线,三个PHP的一个JAVA的。在权限管理上,我是通过sudo来管理权限的,在我的规划中,不论运维还是开发,都不会给root权限;只有产品经理或者研发总监我才有可能给相应服务器级别的权限;针对运维总监(也就是我们的副总)才会给root权限。
- 我们的普通用户是根据项目来的,我们公司有四条产品线,我为每一个项目建立一个普通用户,因此不论nginx还是tomcat都是跑在普通用户下的。
- 就算日后要扩充一些公共服务,我也可以让它跑在普通用户下。总的来说是这样的,我对运维的理解是,运维做运维的事情,开发做开发的事情。运维负责网络系统,只要系统没有故障,只要网络没有故障,只要系统资源还够用,那么我们运维的职责就到位了。
- 我的运维理念是项目负责制,也就是说每个项目的责任人是开发,我们运维大概占30%-40%的责任。我们的开发占60%的责任。当进程上线的时候,这个服务是由普通用户跑的。它的每个站点目录都是普通用户的权限,也就是700的权限普通用户,这个是最安全的。无论是项目的启动,停止,以及代码上线,日志收集,日志分析都是通过我们进程跑的普通用户实现的。我们在管理这个项目的时候,我们可以把开发的用户加到这个项目组里面,这样负责相应项目的开发人员就有对应项目的所有权限。
1.3 项目经验相关简述参考
(1)实现nginx反向代理分业务
- 公司的4个业务以前在云上,我来之后,公司希望将业务迁回本地。但只申请了一个域名,因此需要将公司的多个业务合并到一个域名下。
(2)实现LNMP的分离式部署及调优
(3)利用rsync+inotify实现NFS的读写分离
(4)实现MySQL数据库主从复制多实例
(5)利用rsync实现全网备份(NFS时时同步备份+全网备份+数据库全备)
(6)部署jumpserver跳板机及Linux服务器安全加固
(7)Zabbix实现全网服务器监控(SNMP,IPMI,JMX,agent主被动,Web监测)
(8)利用keepalived实现nginx反向代理高可用和NFS存储高可用
(9)为防止root权限泛滥,利用sudo管理普通用户(nginx+tomcat利用普通用户启动)
1.4 考核范围及要求
所有没到24岁(不包含24)的学生必须参加,24-27岁的学生建议参加,28岁及以上学生直接参加期末架构的考核。
同学们利用本架构作为参考,筹备撰写个人简历。项目经验不能少于5个。
在进行期中架构的找工作试炼当中,没有特殊情况,不能耽误上课。
期中架构考核以offer达8000者作为合格标准。24岁以下同学达8K可自行选择是否直接入职(建议直接入职),后续授课内容,可发视频。24岁到27岁的同学offer达10K者可自行选择是否直接入职。
1.5 服务器硬件规划
- 可参考IDC机房解密章节进行硬件规划,服务器可用戴尔R730等型号,服务器内部组成,比如双CPU,24个内存插槽,8个3.5寸热插拔硬盘槽等,需要提前准备清晰。
- 各个服务的raid规划,也要提前做参考。