新的征途,前进!

新的征途,前进!

个人介绍和感悟

  • 新浪微博“@海洋之心-悟空”,HZLUG组织者HZGDG核心成员及讲师,资深运维架构师,业余撰稿人,致力于开源软件及前沿科技的探索和研究。
  • 70后,曾优良学生,后问题少年,闭门思过,重新做人,过黑色七月,杀过独木桥,在中国教育改革的早期完成了蜕变。
  • 精通系统及网络管理,定制嵌入式系统,安全防御及CDN加速,互联网高性能网络及架构设计、NoSQL先行者、分布式文件系统、虚拟化及X-Stack云平台的研究等新技术,喜交流,活跃于社区,积极投身于开源活动的组织和传播,真诚待人,授人以渔,共同进步。
  • 新浪微博: http://weibo.com/gg618 (@海洋之心-悟空)
  • 人生信条:“无功就是过,平庸即是错”(过去式了) 万事先修德,养性必制怒
  • 人生态度:“活到老,学到老,学思结合”

人生小感悟

  1. 兴趣是最好的老师,也是学习的最大动力,尽早找到自己兴趣爱好,全面发展;
  2. 永远不要做井底之蛙,多参加社交活动,结交阅历丰富的朋友,学会分享,教是最好的学;
  3. 技术是个竞技项目,勤能补拙,贵在坚持;多学多做,切勿眼高手低;
  4. 收集文档和整理WiKi,学思结合,才能举一反三;信息多→长知识→生智慧是一个沉淀的过程;

每一天都追求进步,哪怕只是一点点,功不唐捐,机遇总是给有准备的人。

运维工程师存在的价值

我更喜欢称运维为: 基础/底层 + 工程师/架构师

运维工程师的主要工作是

  1. 精通操作系统
  2. 精通网络服务和各种配置
  3. 精通各种系统软件如:数据库,LAMP组合,Memcache,Redis……
  4. 精通自身业务软件的配置架设
  5. 精通监控,系统调化,自动化部署

运维工程师的挑战(快,狠,准): 限时拆弹,随机应变,运筹帷幄

其实,每个人的工作经历都是曲折的,有人不小心做了程序员,也有人不小心做了运维师,更有人做了销售,这些都不是问题,“从业有先后,术业有专攻”,只要坚持努力下去,本质是殊途同归。

理论上,优秀的软件工程师完全可以把部分/甚至全部运维工程师的工作做掉,比如说业务软件性能的监控,如果程序员在程序中插入很多的钩子或探针,就可以统计出数据来,不需要运维费心监控;比如说程序员在设计程序的时候,考虑到了分库分表,考虑到了大并发和分布式的设计,那运维就可以水平扩展机器就行;如果。。。还有很多如果。。。但是,现实是残酷的,具备这种高水平的程序员不多,再加上精通底层及系统软件的全面发展的程序员,在中国就更少了。

举个例子,我们可以看看开源的软件,光是程序日志信息非常详尽,我们可以通过标准的syslog或者日志去监控它,但在我接触到所有的公司和程序员中,大家都忙于实现业务功能,迭代和打补丁,连个文档甚至注释都不愿意写,更别提能够考虑这么周全了,所以

运维工程师是现实中的软件工程师的互补,因为大家的能力侧重点不同,所以大家是团结一体的

打个比方

运维工程师 = 冲锋陷阵的将军
软件工程师 = 坐阵帐中的军师

所以要能够打胜仗,离开谁都是不行的,前期排兵布阵固然重要,但“将在外,皇命有所不受”,运维在现场随机应变是非常重要的,运维作为生产线上最后一道防线,在现场随机应变的能力非常重要,限时排错的要求也非常高,老实说,运维是所有现场中心理素质最过硬的工程师。

所以,无论结果如何,我希望上层都要给运维工作给予高度的评价,然后再慢慢总结吸取教训,制定计划规避风险。

我认为架构师的本质

人与团队

架构师是所有IT人向往的殿堂,但架构师的职能包括:

  • 基础底层架构师(组成人群:运维工程师)
  • 软件开发架构师(组成人群:软件工程师)
  • 业务运营架构师(组成人群:产品经理,销售总监,市场运营,CEO)

最后,我仍然要不断强调的一个观点:

架构师它可能不是一个人的角色,而是一个团队的统称,它可以

  • 不必冲锋陷阵,就可以纵观全局,运筹帷幄,调度所有的资源(运维架构师的功能)
  • 可以带领和团结团队,高屋筑瓴,因时制宜的实现解决方案(软件架构师的功能)
  • 可以把握公司业务方向和深度,洽谈合作,控制成本(业务架构师的功能)

随着时间的推移,每一类型的架构师都是可以从上述一个个岗位中成长起来的,比尔盖茨最初也要亲自码代码,李开复最初也要组建和带领google中国团队,所以,没有从天而降的天才,只有一步一个脚印的磨炼才有他们现在的成就(认清自己不是天才,就算是天才也要努力)。

我们现在要做的就是一方面内修本领,提升自身能力,另一方面外联志朋,寻找身边可以互补的志同道合的人,共同迎接机遇和挑战。做公司跟做人一样,也需要合作者,才能快鱼胜慢鱼,四两拨千斤。

你的嵌入式背景以及 UPYun Style Ops 的故事

在2005~2010年一直在威盛(VIA中国)做嵌入式的x86的车载小系统,大家可以学习LFS的这个项目,按照教程做过一二次后,基本对整体linux有个非常深入的理解。

有了对Linux庖丁解牛的能力,你就能有针对性的裁剪Linux系统,这样的好处是:

  1. 系统体积小,无需安装过程,运行速度快,直接便携式插拔设备引导启动;
  2. 定制自由,只保留特定业务所需的软件,避免了第三方软件引入的风险;
  3. 生产环境没有gcc,make,缺少依赖库,无法入侵;
  4. 嵌入式系统内置了rsync,puppet,具备了卫星系统的扩展性;
  5. 有了嵌入式系统以后,可以在几分钟里实现脱胎换骨的升级;
  6. 有了这个嵌入式系统后,服务器的部署可以移交给经销商安装并检验硬件,节省了运维的精力和减少了中间开销;

又拍云存储目前在所有的外围节点基本实现了这种精简+便携式的嵌入设备,这取决于我们的硬件定制环境,全网加速(DNSPOD平滑切换),节点集群规模效应,无单点故障,才能把嵌入式灵活应用起来。

UPYun的运维团队介绍,以及你在UPyun的运维团队职责

我现在在又拍云存储担任运维总监一职,作为初创的合作伙伴,也付出大量的时间和精力去呵护培养这个产品。。。很高兴看到又拍在静态存储领域专注耕耘了8年,经过坚持不懈的努力,现在我们的服务得到了互联网大量客户(>30000家客户)的认可。非常感谢大家的厚爱,我们一定会做好自己的本份工作,再接再厉。

作为团队负责者,我希望能够做到如下几点:

请进来=了解外面的经验和成果,不至于井底之蛙,夜郎自大;
站出来=这是个人价值的体现,也可以锻炼演讲口才和临场表现能力,生活总是需要一些英雄;
走出去=互相学习,交叉分享,并行进步,学习是个翻翻的过程;

UPYun的运维和开源,包括监控,日志及部署自动化

又拍云整个体系内部是主张用好轮子,改造好轮子,非万不得已不会重造轮子的。这就像是站在巨人的肩膀上,做一些更有意义的事情。所以,我们在Nginx,riak,erlang,hadoop,redis。。。等很多领域都有深入的研究,包括和开源的团队或者朋友们一起沟通,如GDG,各种开源组织,淘宝阿里团队的互动。。。

  1. 监控体系早期使用nagios+cacti,现在慢慢转向使用zabbix;
  2. 日志分析策略是基于Nginx的C扩展模块,在内存保留5分钟日志,做简单的冷热链分析,然后再保存到磁盘,后端使用hadoop做流量方面的统计;
  3. 自动化用的最多的是rsync+ssh+slackware风格的包管理和部署,但现在也有在研究puppet/ansible自动化工具;

UPyun的云存储未来,以及运维工程师在UPYun未来扮演的角色

简单的说:就是 专注,专业,坚持,共赢

专业、专注: 我们只做针对移动,游戏和互联网公司的静态资源的存储和分发加速,就像挖金矿的故事一样,我们只卖牛仔裤和铲子,现在的互联网已经转向以服务卖点的,未来会更加细分,所以用我们的专长去弥补互联网的短板,让创业者更加轻松简单,我相信可以把这一领域深耕服务好。专业的事交给专业的人去做,这也是我们的宗旨,包括我们一直使用兄弟公司如DNSPOD,监控宝的VIP服务一样,感谢他们。

坚持、共赢 我们在图片领域到静态资源,坚持了8年,经历了一些风雨,而且一直坚持技术为主导,并没有很花哨的做市场公关和推广,现在主要的销售策略还是以口碑营销来服务好客户。除此之外,我们也跟Ucloud,Discuz等伙伴,及InfoQ,CSDN,开源社区保持良好的沟通,希望能为互联网创业环境越来越好贡献自己的力量。

这样的好处是,又做生意又交朋友,我们很享受这种互惠互利的过程。

谈谈数据安全,网络安全,以及培养安全防范意识

因为我不是专业的白帽,红帽,黑客,红客,这个问题也许问我们的合作伙伴ucloud-季昕华(老季)更加合适吧。我对抗过CC/DDoS攻击,我只能说说这方面的经验:

  1. 技能:要有整体的架构意识,原则就是不能是单点,性能不能是单点,流量不能单点,必须要有分布式或者集群的概念。动态网站动静分离,动态元素在性能上要充分利用内存缓存,如memcache,redis;要去除无状态化(如分布式消息和任务队列,这是程序员做的事),静态网站可使用CDN加速服务,像又拍云存储的CDN是全网加速,可以避免单点故障;
  2. 业务:任何攻击都有作案动机和攻击成本,不要为了技术而技术,而是联系业务部门协助,查清楚来历,共同寻找对策;
  3. 资源:对抗攻击是个公司上下团结一心的系统工程,没有资源没有预算,是做不成事情的,但要用老板听得懂的话寻找帮助,明白什么才是公司长久发展的根本;

你是如何来治理UPYun的运维团队的

化“天花板为托板”:把自己放在一个培养新人的管理角色,不让自己成公司瓶颈和员工的天花板,鼓励新人们去尝新和处理故障,增加自身的技能和实战经验;信任,互助,激励,他们会持续不断创造惊喜。

制作“自动化工具”:利用自己的经验抽象业务成程序模型,制作或培训自动化脚本的编写,提高团队的工作效率,让员工节省精力和时间去学习其它新知识;

承担“高精专”项目:提前准备最新知识的研究和可行性分析,整理成文档作公开培训,再交给团队去深入研究和实施,转化成生产力,积累一线经验再反馈完善文档,良性循环;

积极提倡“知识分享”:各种案例和“坑”都会整理成wiki文档,通过文档共享,定期分享讲座,鼓励员工撰写高质量的,可读性很强的文档,开口培训,增加感染力和自信心;

鼓励“参与开源交流”:公司会有经费鼓励员工走出去参与技术交流大会,闭门造车耗时耗力,不如专业的人点拨。也会有购书经费,团建活动经费,茶歇文化;

合格靠谱的运维工程师是如何长成的

运维工程师的修炼之路是做个懂业务、运营、开发的运维工程师(@Ucloud优刻得@benjurry 的原话),信息量很大,但很受用。

具体现在运维工程师要面临的挑战:

  1. 面临devops的挑战
  2. 面临新兴技术,如云平台的挑战
  3. 面临海量,大并发的运维能力的挑战

因此我建议

  1. 至少学门可以打通前后端的编程语言如python,ruby,无论是运维还是开发,都能够灵活应用;
  2. 修炼自己的运维能力,运维工作要标准化,流程化,尽量做到脚本自动化,才能有时间研究新兴技术;
  3. 面对云的挑战,博,可以熟悉各种云的部署和云端运维;专,或者加入云服务团队,专注于某个云服务领域,如云存储,云加速;
  4. 多参与社区活动,结交朋友,扩大交际圈,也可以做做技术支持,锻炼口才,提高与客户的互动;

运维工程师的职业规划,路在何方

  • 目标职位:架构师(其实架构师是个头衔,也可以是一个团队)
  • 目标内容:做个懂业务、运营、运维的软件工程师(信息量大,够喝一壶了)

技术领域

  1. 闲下来:精通bash,sed,awk三剑客编程;rpm/puppet自动化部署,节省时间和精力;关注新技术,了解和掌握,甚至深入研究,做好铺垫
  2. 跳出去:学着3P编程,至少精通一门编程语言,能够打通前后端的最好,如Python,Ruby;喜欢后端的可以是erlang/go,前端可以是js/php/Nodejs
  3. 常动手:技术是个竞技项目,无论是否有天分,都要勤加练习,熟而巧,巧而精,因为运维是个限时拆弹的高压工作,速度与激情的结合

非技术领域

  1. 多看书:看书很重要,查漏补缺,技术书和情商的书都要看,可以文艺,但不要抱怨,懂得感恩和回馈,心明见性(十年学佛小结);
  2. 方法论:多做笔记,温故而知新,修订完善(WiKi);学思结合,学而不思则罔,思而不学则怠;信息多!=长知识!=生智慧,要学会沉淀,举一反三
  3. 心态正:正确理解牛人的内涵,要学会与人同行,任何人都有可以学习的本领,关键是你的心态
  4. 讲故事:尝试发表文章练文笔,或翻译英文的最新资料,尽多参加甚至组织开源活动,锻炼自己的口才和交际能力,经营好自己的影响力,可以交到更多的朋友

上述观点都是告诉大家,如何修炼内功,其实我更强调团队协助,其实个人英雄和团队协作并不矛盾:

  1. 内修提升能力,外练结朋交友,两手准备,脚踏实地;
  2. 戒骄戒躁,贵在坚持,每天进步一点点,功不唐捐;
  3. 能力决定高度,细节决定成败,成功总是眷顾有准备的人;

最后,我仍然要不断强调的一个观点:

架构师它可能不是一个人的角色,而是一个团队的统称,它可以:

  • 不必冲锋陷阵,就可以纵观全局,运筹帷幄,调度所有的资源(运维架构师的功能)
  • 可以带领和团结团队,高屋筑瓴,因时制宜的实现解决方案(软件架构师的功能)
  • 可以把握公司业务方向和深度,洽谈合作,控制成本(业务架构师的功能)
wiki/public/speech/teahour采访实录之运维艺术.txt · 最后更改: 2025/11/03 16:04