2019年小结

2019年就要过去了,岁末之际, 回顾一下过去一年的的得失,展望一下未来。
今年8月份换了工作, 在1~8月主要是MongoDB方面的工作, 更具体的就是MongoDB分片相关,9月开始进行分布式文件系统相关的性能优化。
总的来说还在存储这个大类里面, 但是还是有很多的不同之处:

  • 之前的工作偏重于管理系统与分布式系统的设计, golang用的比较多, 用到的开源组件比较多;
  • 开源组件的代码, 看的比较多, 动手的机会比较少;
  • 现在更多地是分布式文件系统本身的开发, 难度要大了一些, 用到的组件少了一些, 需要对磁盘io, 网络传输等知识更加深入的理解, 当然这些也是之前的工作比较欠缺的, 趁这个机会要认真补一下;
  • 另外, 大量使用C++1x的特性, 也算比较新的练习, 虽然C++写过好多年, 但是C++1X的特性之前用的还是比较少, 需要深化一下;
  • 角色也有了变化, 从一个team leader兼开发转变成了架构师, 工作的方式也有了一些变化, 以前需要协调外部的沟通, 内部成员以及救火; 现在就比较单纯了, 需要将技术研究的更加深入, 能够从架构的优化方面入手, 不能只将眼光放在一个模块或者功能上面, 应该考虑整体框架的协调与吞吐能力, 需要系统级别的知识会更多一些, 包括分布式系统知识, 操作系统, 网络, 数据库,缓存以及磁盘IO方面的东西。总的来说, 一个系统就像人体一样, 是一个整体, 头疼医头,脚疼医脚的做法是不行的, 需要的实全面的望闻问切的技能。

未来的一年, 结合自己工作的范围,希望在如下几个方面有更加深入的研究:

  • 小文件存储方面;
    尽可能多研究当前的解决方案, 提炼出通用的解决方案, 运用到我们的系统里, 刚好这里存在性能问题需要解决;
  • redis源码, 尤其是集群方面;
    接触redis的时间不短了, 源码也是断断续续的看, 没有形成系统的知识体系, 需要进一步认真分析redis源码, 将整体架构以及关键技术点相关的源码摸清楚, 碰到问题可以很快找到相关的源码, 并认真阅读相关的部分。
    能够结合redis与codis之间的集群实现方案的差异以及优缺点;
    掌握hiredis-vip的实现方法, 尽量去优化这一块的代码。
  • docker相关知识;
    当前, docker的使用已经很熟练了, 将一个应用程序从主机进docker没有什么问题, 接下来需要进一步深化docker内部的原理, 结合操作系统,梳理清楚docker是如何工作的;
    有时间的化自己可以大家一套K8S系统, 理解K8S的原理以及使用方法。
  • 网络方面;
    主要进一步熟悉libenvent的源码, 对异步网络模型进一步掌握;
    熟悉TCP的技术细节, 以及TCP的优化方法, 以及基于UDP加上网络传输控制的UDT协议;
  • 软件架构方面的理论知识;
    这个比较杂一些, 主要是针对架构师的一些要求的技能的自查与提升。
  • 大数据计算框架
    目前的工作, 很大部分是大数据平台, 需要认真学习大数据相关的知识, 尤其是MapReduce的计算框架。静态计算框架和实时计算框架的异同点。

你可能感兴趣的:(编程感悟)