1、双985计算机相关专业硕士学历,先后在BAT中的两家公司从事云计算工作; 具备扎实的操作系统、数据结构与算法能力和编程能力、代码风格良好,可扩展性强;
2、有大规模分布式系统实践经验,擅长对现实问题进行建模并运用解决; 具备从0到1落地产品的能力;熟悉微服务架构及微服务治理;
3、熟悉Linux环境下的 Golang语言; 深入理解RPC原理,熟悉相关开源框架,如Thrift/gRPC等;熟悉TCP/IP等常用网络协议,有丰富的网络编程、故障定位、性能调优经验,熟悉研发领域工具,如 GitLab、Prometheus 等;
4、对 Serverless 相关领域有较深了解; 熟悉Kubernetes、Etcd、Knative 、Kubeedge等开源产品经验;
5、熟悉 AWS Lambda、Google Function、Azure Function 等产品;
6、熟悉分布式任务调度,有相关实践经验。
1、作业调度系统
需要对大规模的在线和离线作业进行调度,其中在线业务QPS 1000w,要保证低延迟,离线作业是DAG模型。
- 准实时调度和离线调度,支持短周期任务,作业计划的变更,即时生效
- 灵活的调度策略,触发方式需要支持:时间触发,依赖触发或者混合触发,支持多种依赖关系等
- 系统高可用,组件模块化,核心组件无状态化
- 丰富的作业类型,能够灵活拓展
- 支持用户权限管理,能和各种周边系统和底层存储计算框架即有的权限体系灵活对接
- 做好多租户隔离,内建流控,负载均衡和作业优先级等机制
- 开放系统接口,对外提供REST API,便于对接周边系统
2、元数据管理系统
元数据的可用性直接影响着服务的可用性,为保证元数据的 高可用,主导设计了新的系统。整体架构分为控制面和数据面,控制面引入Raft协议,主节点负责管理元数据,多节点保证服务的可靠性;对元数据建模,通过websocket,加速元数据分发,数据面组件间通过pub-sub订阅元数据,在数据面所在机房,将元数据持久化,保证重启服务时或者断网时,数据面组件不依赖控制面启动,保证机房自洽。引入Ack机制在应用层保证websocket推送数据的可靠性。
3、多租户隔离系统
共享的资源无法满足资源要求敏感或函数执行环境有隔离需求的业务场景,数据隔离性差,通过Label标签,将资源进行池化,给租户创建专属资源池后,租户可以使用我们提供的接口对资源池进行分配;计算和存储资源可以做到租户级别的隔离,使用优化后的调度策略,保证租户请求及时调度到租户的资源上