演讲嘉宾

刘琦

百度智能云单机团队,资深虚拟化工程师

百度智能云单机团队,资深虚拟化工程师

议题:云环境动态修复技术实践

云服务相关场景下,往往对各组件的热升级有需求,但又要避免组件进程重启影响客户业务。尽管某些组件的升级,可以做到业务无感,但整体上看, 仍缺乏通用性的热升级方法。本文提出一种通用的热升级方法,主要针对云环境下,对隐患 bug进行动态修复。主要包括生成和打入补丁两部分。 在生成阶段,需对OBJ文件进行二进制diff。有两个思路,解析DWARF信息并diff,或解析ELF信息并diff。我们选择后者,并比较各自的优劣,及难点。 在打入阶段,通过ptrace控制目标进程,实现补丁的load与link。并讨论反复打补丁时,每次应予更新并保存的runtime信息。 最后讨论实践中遇到的问题,如TLS数据访问,不同语法块内的同名变量的处理方案等等。