之前的**项目总结**自我感觉厉害得不得了(至少自认超越了我当前职位所要求的能力)。但是简历写出去,感觉反响一般般。
明明从前端做到后端,又搞开发又搞测试还搞发布,即负责维护机器又负责用户支持与解惑,搞得了各种大数据,也搞过Java性能调优,自我要求Github workflow,保持清晰的代码和适当的重构。套用流行的说法是“DevOps”、“全栈工程师”,实际是人少事多活杂,一个人至少干四个人的活(开发、测试、运维、服务支持,至少得四个人吧)。
也许问题在于公司走的不是项目式的管理方式,从我入职到现在就一直是那个**中央日志项目**,后来又弄一个”PO”(Project Owner)制,由PO全部负责项目的各个方面。我也不是Owner,干活的而已,项目中处处有我,却看起来像个外围打杂的。
罢,重新按照时间进度,以小项目的方式重新组织一遍工作历程吧。
项目历程
2013.12~2014年中:入职,熟悉项目。做Collector分流写DB Log功能。配合第三方用户,拉取相关Database相关日志,供其分析;开发Storm的分析Log功能,将统计结果到入MySQL。
2014年中~2014秋季:独立完成一个带界面的监控项目(从前端到后端)。监控自身项目中其他各应用的关键指标,现在仍一直在使用。
2014秋季~2014冬季: 参与项目的Portal开发,使用AngularJS。开发“应用启动事件”功能,查看与分析定位应用发布版本与启动时间等;开发“相似APP报错曲线”功能,分析具有相似报错曲线的应用,帮助排查Root Cause。
2015年初~2015年中: 调到新项目组–异步消息中间件,主要工作是公司各种流程,前期调研,压力测试,集成发布等。期间项目组从2人逐渐扩展到6人。
2015年中~2015秋季: 火线支援回中央日志项目(加上我共2人)。构建基于Jenkins的自动发布平台,将所有项目全部接入Jenkins。从原来手工发布转到自动发布,为项目持续改进打下了坚实的基础。
2015秋季~2015冬季: 将项目中原生的Java项目转变为Spring-Boot项目(字越少,说明项目越难);引入Spring-config-server,构建了基于Git的中央配置中心,解决了以前各个环境机器上配置不一致的问题;引入Spring-boot-admin项目,进一步监控各个应用(例如发布代码的Git版本,增加应用注册机制等)。
2015秋季~2015冬季: 扩容,参与HBase Schema重构与优化。期间数据量显著增加,写入端压力极大。后优化Schema和写入Index,代码优化等,性能显著提升(写入至少2倍)。单单说说Schema优化不难,但是在已持续运行系统上重构,类似于高速公路上换轮胎,真的很难。
2015秋季~2015冬季: 组件接入新的监控系统(是的,虽然该项目自己可以做监控,还有另一套新的监控系统)。单独列出,以示其重要性。
2016年初~2016春季: 接入公司新的的发布系统(是的,我搞了一套基于Jenkisn的发布系统,然后这是公司全新团队全新开发的发布系统)。
2016年初~2016春季:调研弃用HBase,使用Elasticsearch方案的可能的。搭建Elasticsearch+Kibana,研究es源代码等。最后确定Elasticsearch+HDFS可以替代原有的HBase方案。
2016春季~2016年中: 开发直接Collector将日志分发到Kafka的功能。鉴于第三方用户从我们自己研发的Collector拉取日志的功能使用不便,开发了个根据日志特征直接转发到对于的Kafka Topic的功能。特色是能动态新增和修改相关配置。
2016春季~2016年中: 参与“多机房多活”项目。改造统计数据的读取引擎支持多机房查询。
最近: Collector上的Thrift Server的Connection数量好像成了瓶颈,无法响应Agent端的每个请求。但是,却和机房也有点关系(仅某个主机房内的机器有该问题,其他机房没有)。排查和优化中。