1 熟悉云计算平台 Kubernetes 相关的开发与运维。从2018年开始从事kubernetes相关的开发与运维。从2019开始从事基于kubernetes的serverless开源项目knative的开发与调优。
2 熟悉云计算平台 CloudFoundry 相关的开发与运维。从2016年开始进入cloudfoundry社区开始开源社区的开发工作,主要负责app-autoscaler项目的设计、开发与维护,是项目核心贡献者。
3 熟悉 Golang 开发。从2016年开始一直从事golang的开发工作,主要在cloudfoundry和knative开源社区贡献代码。
4 熟悉 Java 开发。
2019.12至2021.02 IBM基于kubernetes与knative云平台CodeEngine
项目背景:
IBM CodeEngine是基于开源项目knative在kubernetes平台上构建的为用户提供serverless服务的云平台。用户可以部署自己的代码,容器镜像到平台,并可以和IBM Cloud 服务绑定以获取各个IBM Cloud services的支持,如翻译服务,对象存储服务等。
项目职责:
平台相关kubernetes controller的开发。
调优knative的性能与改进。1 通过获取knative autoscaler的golang profile文件发现http频繁连接造成CPU过高的问题,和社区沟通并解决。2 在高并发的测试中发现knative的queue-proxy由于reverse-proxy造成性能下降的问题,和社区沟通等待改进计划。3 在大量的knative service的创建测试中发现knative的controller没有对kubernetes的资源创建过滤器造成内存占用大的问题,向社区提交PR改进。
调优knative冷启动。在IBM kubernetes环境中,knative的冷启动需要花费几秒钟,image获取和pod启动花费了大多数时间。解决方案是通过containerd pause/resume container接口来实现毫秒级的启动。
实现CodeEngine与IBM Cloud 服务绑定的功能。此功能主要是和redhat社区合作,以ibm/cloud-operators和redhat-developer/service-binding-operator两个开源工具实现。我积极参与社区的设计与讨论,提交新功能和bug fix,得到了redhat社区的认可,被接纳为社区的code reviewer.
实现了一个公共组件common-utils, 其他golang micro-service可以引用以提供统一格式的日志输出,暴露operators的prometheus数据,并可以获取golang profile用作性能分析。
2016.03-2019.12 CloudFoundry社区app-autoscaler项目
项目背景:
CloudFoundry是开源的Platform-as-service平台。app-autoscaler是CloudFoundry社区用于提供对用户应用基于运行数据和定制计划的自动化伸缩功能的项目。项目启动与2016年3月,由来自IBM,SAP和富士通的成员共同开发和维护。
项目地址:
https://github.com/cloudfoundry/app-autoscaler
https://github.com/cloudfoundry/app-autoscaler-release
项目职责:
项目核心贡献者,github id: qibobo
参与项目架构设计与技术选型。项目采用micro-service架构,各个组件采用根据成员的技术采用不同的方案。分别有golang, java(springboot), nodejs。
编写用户服务注册的service-broker。该组件基于nodejs express实现。
编写用于定制计划服务的scheduler。以springboot为基本框架,使用quartz的定时任务实现计划缩放的服务。
编写数据汇总和聚合的组件event-generator。此组件用golang编写,以gorilla/mux构建rest-server, 以tedsuo/ifrit实现进程管理。
编写用于从CloudFoundry平台搜集应用运行数据的metrics-gateway。此组件用golang编写,http-server和进程管理同上。主要使用了grpc客户端从平台抓取应用的运行时数据。
使用ginkgo和gomega框架实现整个项目的集成测试。
编写用于部署到CloudFoundry平台的bosh脚本。
部署项目到IBM Bluemix平台,后台数据库采用postgresql集群,采用一主两从的架构实现高可用性。
后期开始在开源项目的基础上,实现autoscaler各个组件在kubernetes的部署。此项采用了SUSE的scf方案,将bosh部署脚本转换为docker image。
2015.01-2019.12 IBM paas平台Bluemix auto-scaling service
项目背景:
Bluemix是IBM于2014年发布的Plat
CloudFoundry 是开源的 Platform-as-service 平台。app-autoscaler 是 CloudFoundry 社区用于提供对 用户应用基于运行数据和定制计划的自动化伸缩功能的项目。项目启动与 2016 年 3 月,由来自 IBM,SAP 和富士通的
service binding operator是有redhat(红帽)和IBM合作开发的能够提供将kubernetes平台的上的用户应用与相关的云服务进行绑定的组件。