一、分布式存储工程师技能栈
1、能力基础
基础知识:如数据结构与算法、网络通信协议、计算机系统结构、软件工程,设计模式等。
基本技能:IDE与编码基础、GIT代码仓日常操作、代码调试工具、性能分析与优化、OS基本操作,常见中间件、开源软件、数据库的使用等。
2、分布式系统
基础知识:CAP定理、分布式Cache、分布式事务、Paxos与Raft算法、数据分布sharding、负载均衡、消息队列等。
基本技能:分布式系统的不确定性处理、任务高效协同、性能分析优化实践等;Nginx、kubernetes、redis、zookeeper、kafka、mysql等常见组件的应用集成、二次开发、部署与维护等。
3、存储系统
基础知识:各种存储介质,存储接口协议、存储网络协议,存储服务器硬件、硬件冗余结构,软件高可靠、高可用设计,块、文件、对象存储服务,垃圾回收,数据缩减,Qos,磨损均衡、快照、复制、备份,SCM、PIM,NDP等。
基本技能:RDMA网络、SPDK/PMDK,熟悉开源Ceph、GFS、Swift、hadoop等使用。
二、分布式系统可能工作方向
从功能上看:分布式系统按照其任务功能可以分为分布式存储系统(如Ceph)、分布式计算系统(如MapReduce)和分布式管理系统(如zookeeper)。
从职业上看:分布式系统相关的岗位可以是开发、测试、文档交付实施、维护、产品管理、解决方案、市场开拓、产业发展、规划等,可涵盖产品和商业全流程。
三、参考材料
书籍类:
《设计模式:可复用面向对象软件的基础》
《大规模分布式存储系统:原理解析与架构实战》
《Paxos到Zookeeper:分布式一致性原理与实践》
《分布式系统:概念与设计》
《大话存储I&II》
《存储技术原理分析》
《海量网络存储系统原理与设计》
《信息存储与管理》
......
网上资料类:
http://docs.ceph.org.cn/start/intro/
https://aws.amazon.com/cn/dynamodb/
https://kubernetes.io/docs/home/
https://zookeeper.apache.org/
......