项目经历
项目1:华为云计算公司SRE部的自动化巡检工具开发项目
- 项目简述: TROS(Tenant Resource Operation Service) 工具包括监控大屏、巡检和数据面运维功能。项目中的巡检板块通过连接本地数据库与远程数据库,方便进行测试。使用 Redis 来恢复停机时未执行的任务,并使用分布式锁防止多个服务器节点同时访问 Redis,确保巡检任务不重复执行,从而保证巡检结果的准确性。巡检任务分为一次性任务(即时任务)和定时任务,其中一次性任务通过线程池调度,而定时任务通过 ElasticJob 进行分配和管理。
- 负责板块: 负责TROS巡检板块中的告警检测,涵盖租户(tenant)、实例(instance)、节点(node)层面的告警检测。为满足运维人员需求,增加了局点(region)层面的巡检任务,确保更全面的告警检测。与运维人员沟通,详细了解局点层面巡检任务的需求。参与开发团队实现新需求,包括编写和修改代码、配置巡检任务、测试新功能等。进行功能测试和验证,确保新巡检任务正常运行,能有效检测到局点层面的告警问题。此外,在实施任务过程中,解决了Maven版本过期的问题,成功升级了Maven版本,并使用依赖树工具查看和管理相关依赖。
- 涉及技术: 用Java编程语言编写和修改巡检工具的代码,利用Postman工具用于API测试和验证,利用MySQL数据库技术管理巡检任务的相关数据、并用数据库进行debug,利用Git工具进行代码管理和版本控制,利用Maven依赖树工具查看和管理Maven依赖,通过云计算技术了解华为云平台的架构和运维工具。工作期间,了解了MySQL,Redis,分布式锁等的运作。
- 达成成果: 成功实施了局点层面的巡检任务,该任务已经上线现网,有效提升了告警检测的全面性和及时性,减少了潜在风险,优化了系统稳定性和可靠性。
项目2:用Java语言实现从生物数据库中挖掘目标序列模式
- 项目简述: 从生物数据库中挖掘出现最频繁的序列模式,生物数据库所要求的序列模式在一定程度上要求间隙约束(即两个位点距离不能相差太远,这个约束由用户定义)。然而, 用户有时候需要针对某个序列片段,挖掘包含这个片段的生物序列。据此,设计了新的研究方法(包括广度优先搜索和深度优先搜索)来进行该任务,并提出剪枝策略来提高算法的效率。
- 负责板块: 研究方案的设定,算法的设计,对既已存在的数据结构-网树(Nettree)进行合理运用,并设计剪枝策略加以编程实现。
- 涉及技术: 用Java进行数据处理,熟练掌握Java的IO输入输出流,文件读取,面向对象编程,集合类List,Set,Map的熟练掌握。
- 达成成果: 算法的运行时间及内存都有明显优化,运行时间相较于baseline算法时间减少1-3个数量级,运行内存减少到原来的20%-60%。
项目3:用Java实现从不确定的具有效用的序列数据库中挖掘概率模型下的高效用序列模式
- 项目简述: 由于设备、传输过程等问题,数据库的内容有可能是不准确的。在具有效用的数据库中,因为序列模式的效用不一定小于子模式的效用,因此通常使用定义效用上界的方法来提前终止序列的扩展从而进行剪枝。在这个背景下,给定一个不确定的概率型数据库,每个项对应有效用、概率两个参数。在这个数据库中挖掘满足效用值不小于用户定义的最小效用阈值的所有高效用序列模式。在这个任务中,我提出了具有概率下效用的计算方法,并提出更加紧凑的效用上界结合剪枝策略来提高算法的效率。
- 负责板块: 效用计算方式的敲定,算法的设计,效用上界的重新评估与设定,剪枝策略的设计,代码实现。
- 涉及技术: 用Java进行数据处理以及随机数生成,熟练掌握Java的IO输入输出流,文件读取,面向对象编程,集合类List,Set,Map的熟练掌握。
- 达成成果: 算法的运行时间及内存都有明显优化,运行时间相较于baseline算法时间减少1-3个数量级,最优时运行内存减少到原来的50%。