基本信息
刘兰涛 Liu Lantao
所在地:北京 / 上海
在线信息:https://about.me/liulantao
基础技能
专注于大规模在线系统的管理和优化,
特别是建设运维基础设施体系,
以及现代应用架构中核心组件的应用研究。
- 10+ 年
Linux
和 FreeBSD
系统管理经验,精通 Linux 系统和网络配置调优
- 生产系统运维体系架构,建立适应运维指标的运维体系
- 使用 Puppet,Mesos,Jenkins,Ansible 等工具构建部署流程,CI/CD
- 监控系统建设,基于 Nagios,Ganglia,OpenTSDB,Grafana 等工具定制
- 统一日志系统搭建与维护,有 Flume 和 ELK 实践经验
- 流量分发/负载均衡/CDN 系统研发:基于
Nginx
, Squid
和 LVS
等构建高可用等系统
- 掌握基于 Docker/Marathon/Kubernetes 的容器管理体系
- 为大型网站提供系统调优和排错,以及 Java/Erlang 服务运维
- 分布式文件系统的应用实践,如:
MooseFS
, TFS
, Ceph
- 对开源软件 Kafka/Storm/Cassandra/Hadoop/Redis/Codis 有实践经验
- 掌握 Ruby/Shell/PHP/C,熟悉 Web 开发/移动开发的常规流程,了解 Python/Erlang/Objective-C
- 熟悉代码库管理,代码规范,代码 Review 流程
- 团队建设,工程师招聘、培训、绩效管理,运维文档建设和事件预案管理
- 项目生命周期管理
工作经历
环信 2014.09 - 2016.10
部门:研发部
岗位:运维总监
- 运维体系规划,系统架构设计
- 运维基础设施(监控、日志、持续集成、部署、集群管理)的系统选型、规范制定与推广
- 分析系统瓶颈,持续改进系统的架构以保证可维护性,从零起步构建出承载千万级同时在线的即时通讯云平台
- 云服务平台改进项目和功能开发
- 根据业务需求,调研成熟的开源软件,并引入业务系统。Kafka/Storm/Spring Boot/Codis 等
- 应用开发者后台统计数据功能的实现和维护
- 运维团队建设和项目进度管理
* 工具:Ansible、Jenkins、Flume、Zabbix、OpenTSDB、Grafana、Mesos、Marathon
* 运维对象:Usergrid、Ejabberd、音视频服务、Redis、Codis、Cassandra、Kafka、Zookeeper、Storm、ElasticSearch、Hadoop
大街网 2013.12 - 2014.09
部门:系统平台部
岗位:高级技术经理
- 运维体系架构实现,提高人力效率
- 配置管理系统建设。整合服务器资产管理管理、监控系统等,基于 Puppet
- 网站图片存储文件系统,图片实时访问压缩系统,图片缓存 CDN 系统
- 办公信息系统管理、账号权限管理
* 工具: Puppet、Nagios、Ganglia、Jenkins、OpenAMS
* 运维对象: IDC、服务器系统、Redis、Varnish、Nginx、Tomcat、TFS(文件系统)、OA 系统等
人人网(原校内网) 2009.06 - 2013.12
部门:系统运维部、网络运营部
岗位:技术经理
- 团队管理:带领系统工程师,推广配置管理方案、开发运维数据存储、测试分布式文件系统等
- CDN:自建 CDN 系统研发、第三方CDN提供商管理、流量精细调度系统(分运营商、地区,可精确到用户)
- 全站 Edge 代理服务:Nginx 集群,承担各个端的动态内容分发,涵盖国内主要运营商和海外流量
- 网站运行监控:从数百个服务中,实时发现突发流量、定位业务失败
- 大数据平台运维:人人网 Hadoop 集群运维
- 报警平台:报警短信、邮件规范管理
- 其它的研发支持系统运维:代码托管与 review 平台维护
部门:系统运维部
岗位:系统工程师
- 监控系统开发:主机监控系统、图片访问质量真实用户监控
- 系统运维:服务器初始化、配置参数优化
- 业务支持:线上业务故障排查协助
* 技术与工具:Nagios/Ganglia/Nginx/Squid/Xulrunner, PHP/Ruby/Python 等
教育经历
北京师范大学 2005.09 - 2009.07
专业:计算机科学与技术
学位:理学学士
开源项目
联系方式
ruby -e "info = %q{TmFtZTogTGl1IExhbnRhbwpHaXRIdWI6IGh0dHBzOi
8vZ2l0aHViLmNvbS9MYXgKVHdpdHRlcjogaHR0cHM6Ly90d2l0dGVyLmNvbS9
saXVsYW50YW8KV2VpYm86IGh0dHA6Ly93ZWliby5jb20vMTY1MzY0NDIyMC9w
cm9maWxlCkVtYWlsOiBsaXVsYW50YW9AZ21haWwuY29tClFROiAxMDMwNzQ=}
puts info.unpack('m')[0]"