精通 主力/日常/运维/开发 Linux: 精通以Linux为基础的x86开发环境,熟悉基本的Linux本地调试、远程调试,熟悉GPerf、BPF等手段,辅以火焰图等工具进行调试及性能调优。熟练使用容器,并且了解容器内部实现以及容器中的应用调试以及网络抓包。对常见服务、网络协议、工具大都比较熟悉,不熟悉的工具也可以通过同类比较发展历史和需求等方式,快速了解工具并上手。
精通 主力/日常/运维/开发 Python: 对Python本身的实现相对比较熟悉,熟练使用Django、Flask/Sanic、Tornado等框架构建Web应用,熟练使用fabric、ansible等工具做自动化运维和部署。
精通 主力/日常/运维 以Bash为代表的各类脚本及工具生态: 熟练使用Bash Script等脚本语言以及awk、sed、perl和jq等文本处理工具,快速用强壮的解决方案快速解决问题。
精通 朱莉/业务/开发/K8S Golang: 对 Linux 上的运行时实现、业务开发、Operator 开发、浏览器自动化都非常熟悉。可以使用或者自研类似于 protoc-gen-go 或者 controller-gen 这类 codegen 工具,来补足 Go 的 design pattern。
了解 开发/爱好/算法 C/C++/Rust: 对C++ 模板、类、STL等略有了解,大致了解包括智能指针、Move Semantics、函数式等在内的C++11到C++20的新特性以及部分的Best Practise。通过比较C++也大致学习了Rust的基本语法,现在正在了解Rust的基本设计思路以及生态,对使用Rust构建的Web应用,以及Rust实现的算法实现及安全工具颇有兴趣。
了解 开发/爱好 前端: 对HTML5提供的基础设施非常感兴趣,希望能用webrtc之类的技术重写常用工具,替代掉一些不好使的手机App,大致了解HTML、CSS和JS,了解各类布局思路,了解过少量JavaScript设计模式,熟练使用TypeScript,并使用过webpack、rollup等前端构建工具,在业务、运维工具的开发中使用过React、Vue和Polymer等组件复用库。这系列博客曾使用基于React、React Router等工具封装的Gatsby构建的,主题使用React Bootstrap手写,后来因为构建机配置过低,我又不想本地拖着一个 node_modules,就换回了基于 Go templates 的 hugo。
熟练 听/说/读/写 科技/小说 英语:英语四级。平时经常读英文的资料、论文、小说等。
了解 听/读 科技 日语:会读一些日语的论文。
Hi, 我是郭超。没有什么特别的定义,大概来说就是……从初中高中开始瞎折腾的,一个随心所欲的Linux狂人,致力于用Linux创造更好的生活。简单说,我什么都想学,我什么都想做,什么都想试试。不给自己设限,分解问题,突破障碍。
有同学问过我:你是做什么的,怎么看你什么都做什么都搞,顾的过来吗?
顾……当然是顾不过来的,人的一生不到百年,其中可以真正追寻自己内心实现价值的时间不到四十年,这四十年中还有家人,现在没有、但是未来说不定还会有孩子,其中可以做事情的时间,远少于我们想象的。和人生中美好的、有趣的、有价值的东西相比,我们的精力是完全不够的。不说能不能做完有趣的事情了,可能其中的十分之一二都难以触及。
所以我虽然不给自己设限,但是会有侧重点。目前暂时以后端、算法和运维为主,希望以后可以更多的在算法和架构上有收获,做出贡献。另一方面,我觉得效率也非常的重要,同样长的时间中,效率高做的事情就会越多,那么效率怎么提高呢?我认为效率的提高取决于非常多的因素,比如说周边知识的多寡、沟通效率的高低、工作时专注的程度。
希望未来有机会和更多的优秀的同行,一起打造一个更好的世界。
参与平台研发,编写、维护后端服务,协调工作以完成 K8S 架构演进。
分析项目需求,梳理部署要求,维护部署工具。
参与项目实施,针对网络问题、国产化要求等暂时没有积累的情景,进行分析、调研、攻关。
深入分析 Kubernetes,提高 APIServer 可用性、可靠性,针对预置 controller / scheduler 的问题进行分析、调研和调优。
在网络、存储解决方案方面:初期做基础选型。分析插件源码、工作机制、细节,针对特定场景结合大数据等业务进行性能分析和架构设计。向开源社区提交反馈和补丁。
编写、维护 operator,解决部署等问题。
在团队及公司内进行宣讲,针对 K8S 不同的部分讲解设计、原理、最佳实践,协助同事在 K8S 平台上进行研发。
维护 CI 等公司内研发用软件设施。
阅读源码,梳理Chromium及系统服务中的C++/Rust逻辑、服务间通过 DBus 通信的调用关系,撰写文档及 Demo ,制定开发计划。
在前期主要是调研 ChromeOS 的架构及各个部分有关的实现。整理了大量文档。例如 Chromium 的启动过程、call hierarchy、inheritance hierarchy、初次启动系统的引导界面实现、WebUI 实现、登录流的实现、同步引擎的实现等等。
作为成果写了 WebUI、登录流等模块的 demo,编写了简易的 Best Practise,把任务按团队分配给有关团队的同事,为同事做了一些技术支持。
根据服务数量确认规格,部署 K8S 基础设施及服务,编写容器打包规范及 shell 基础库,撰写打包相关的 Guideline。调研 APISIX 及有关生态,尝试将 APISIX 集成进 k8s实例中。
以 Infra as Code 为核心,探究架构中的瓶颈,根据需求研究新需求实现所需要的基础设施,编写 Infra 配套的脚本和状态定义,维护文档。
在职期间学习研究了
- xtrabackup的使用方法
- MariaDB 的 Flashback 使用方法和原理
- GlusterFS 的使用方法以及常见问题
- LVS 的原理及代码实现
- IPSec 的协议LibreSwan
- Cassandra/Zookeeper不同版本间的协议及升级过程
- K8S基础使用
在职期间验证、部署和实施了
- 坚果云的加速节点(类似于 自己实现的场景化的CDN)的部署及维护
- 利用 Flashback 处理数据库节点重新加入集群问题的自动化工具
- 开源项目共享状态所需的GlusterFS分布式文件系统
- 机房内使用 LVS/DR 替换部分 haproxy 和 nginx
- 机房间的 LibreSwan Tunnel
- Cassandra升级中清理不干净的集群状态的自动化脚本
作为结果
- 在运维和开发过程中踩坑后,详细编撰为了文档,规范公司内运维流程,梳理架构,避免了自己和同时在运维中的很多失误
- 针对 MariaDB、GlusterFS 等分布式系统有了一定的了解,为后期开发打下基础
- 通过自动化节约了大量人力成本,同时以代码为架构,通过多人 review,避免了常见的人力运维出错导致的事故
根据需求研发为用户自动化开票的系统。主要是用了 Azure Storage 中的 Table/CosmosDB、Blob Storage 和 Queue,使用 Azure 中的 Load Balancer 做负载均衡,实现了开票信息的存储、异步任务的管理、分布式锁以及高可用。相比较之前财务的同事收到邮件后手动开纸质发票,节约了大量的人力劳动。