项目一:内部DNS高可用方案
项目介绍:hadoop、kafka等服务依赖于hostname,刚开始大数据团队通过修改/etc/hosts文件来处理,随着群集节点的增加,维护/etc/hosts文件越来越困难,所以提出了自建内部dns server的需求。
我的职责:负责整个项目,具体考虑方向及实施如下:
1、 业务分布在国内外,国内访问facebook等海外服务是有问题的,所以在国内外机房各选一个核心机房部署一套dns server,一共4台服务器。
2、 dns server作为一个基础服务,必须保证其高可用,所以在物理上,把服务器放在不同的机柜,在软件上采用Keepalived实现高可用,通过VIP对外提供服务。
3、 负载均衡方面,经过压力测试,dns server每秒能处理1700左右的请求,出于越简单越好的运维原则,同时为了提高服务器利用率,所以弃用lvs进行负载均衡,把暂时空闲的服务器暂时用于其它服务。
4、 为了确保dns server服务的正常,对可用性、请求量进行监控。
相关技术:shell、bind9、Keepalived、lvs
项目二:服务器标准化上线
项目介绍:随着公司业务发展,采购服务器的需求越来越多,随之而来的是服务器的上架及管理越来越乱。随着服务器数量的增加(目前5000+),因配置不一而导致的管理成本越来越大。所以对服务器按配置来确定14款机型,相同机型的配置统一起来。
我的职责:
1、 按机型编写shll脚本,对新机器进行初始化。
2、 按机型编写shell脚本,对新机器上线进行验收。只有验收通过了,才允许交付上线。
3、 维护初始化\验收脚本,有新的配置需求及时修改脚本。
4、 对线上3500+服务器的配置进行管理,如iptables规则的变更。
5、 对iptables的拒绝情况进行监控,判断是否有拒绝了正常的请求。
相关技术:shell、iptables、监控。
项目三: 基于Spark的业务实时监控
项目描述:
该项目主要分为数据传输、数据消费、数据分析三个阶段。通过实时计算nginx日志的http响应状态码、反向代理调用后端java接口的响应时长,为线上业务健康监控提供数据基础。
软件架构:filebeat + kafka + Spark + MySQL
责任描述:
1、 负责整个系统的架构环境搭建及代码编写。
2、 统一nginx日志格式。
3、 filebeat采集数据,实时监控nginx日志文件,传入kafka topic。
4、 基于Spark Streaming实时计算nginx日志的http响应状态码、反向代理后端java的接口的响应时长,对异常情况通过短信邮件告警。
5、 MySQL维度建模。根据对应的数据指标创建对应的MySQL数据表, Spark 写入到MySQL表中。