主题:《漫谈云之架构与运维的艺术》

主题:《漫谈云之架构与运维的艺术》

关键词: 云 架构 运维

  • 探讨云时代下的架构设计及运维挑战;
  • 运维人员的团队协作和架构师成长修炼;
  • 面对来自devops和云的挑战,运维工程师如何成长;
  • 怎么实现自动化运维,化被动为主动;

主题简介

云计算时代给大家带了很多机遇,同时也带来了很多挑战,尤其是架构和运维方面,面对海量机器的暴长和丰富的应用部署,我们如何面对挑战,把握机会。UPYUN作为专业的云垂直行业的佼佼者,这次分享将从架构设计,运维规划,指标可视化,团队管理等方面漫谈一些成长过程中的经验和心得。

演讲内容

云的真相

【Elastic】弹性

  • 基于虚拟化的硬件资源伸缩性;
  • 基于虚拟化的服务扩展性;
  • 提供按需付费,按时付费的弹性服务;

有三种虚拟化的技术及应用场景:

  • Cloud Foundry、OpenStack (云架构杰出代表,革命性技术潮流,但仍然属于快速成长和开发活跃期,对技术团队要求高,需要长期关注和跟进)
  • Vagrant(通过调用Vbox/VMware、AWS等虚拟化工具来创建虚拟机,适合开发、测试团队使用的统一开发环境,目前已经在内部广泛使用)
  • Docker(基于CGroup/LXC的统一宿主管理系统,内核级特性,稳定高效轻巧,虽然隔离不够彻底和灵活,适合公司私有云的资源整合和扩展性,已经做了跟进研究和分享

架构的本质

人:极客与团队

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

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

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

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

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

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

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

架构设计的原则

Unix编程艺术主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验。
伸、缩 Everything is planned with the question “what if load increases by 10x”.

Unix编程艺术——Unix哲学 阅读链接

Unix哲学一言以蔽之:

软件架构设计的关键

  组合原则 (设计时考虑拼接组合)
  分离原则 (策略同机制分离,接口同引擎分离)
  简洁原则 (设计要简洁,复杂度能低就低)
  吝啬原则 (除非确无它法,不要编写庞大的程序)
  透明原则 (设计要可见,以便审查和调试)
  健壮原则 (健壮源于透明与简洁)

参考资料

影响程序性能的四大杀手(数据拷贝,上下文切换,内存分配,锁竞争)

高并发

  1. 无共享,无竞争锁,使用消息队列,方便水平扩展
  2. 分库分表,引入中间件,分布式部署
  3. Erlang vs Go vs Clojure

快响应

  1. 异步解耦,事件驱动,举例银行的领号机制,还有雕爷牛肉的短信提醒业务;
  2. 任务池+调度分配

大流量

  1. 层层缓存,推、拉、粘、随,弥补IO短板
  2. 读写分离、动静分离
  3. Squid vs Varnish vs Nginx vs Apache Trafficserver

运维架构设计的关键

  经济原则 (宁花机器一分,不花程序员一秒)
  生成原则 (避免手工hack,尽量编写程序去生成程序)
  扩展原则 (设计着眼未来,未来总比预想来得快)

学会偷懒不断寻找更懒惰的办法,要聪明的工作。

  1. 不要重复造轮子(站在巨人的肩膀上)
  2. 运维自动化(使用脚本使工作流程化,自动化)
  3. 性能可视化(提供持续的健康报表)
  4. 监控常态化(及时报警及隔离)

闲下来

  1. 掌握bash,sed,awk三大利器,抽象业务模型,标准化组件,定制化脚本
  2. 自动化部署(ssh,scp,rsync,Ansible/Puppet),节省人力,减小内耗,降低负影响,提升整体效率
  3. 运维监控和自动报警,善于利用第三方资源,专业&专注服务

走出去

  1. 了解编程,熟悉和掌握一门能够帮助你成长,打通前后端的语言
  2. 多参与社区活动,积极分享,锻炼口才和交流能力

为什么

  1. 收集文档和整理WiKi,学思结合
  2. 信息多 -》 长知识 -》 生智慧
做一个会讲故事的有魅力的运维架构师,协调好上级与资源,运维与研发之间的节奏

一定要流程化和自动化

你不可能一直投入人力,时间和精力,事情既要办得对,还要快速及时。你就没有可能容忍人类犯错的可能性。

《极客与团队》中也提到“人就是一个间歇性发生变化的bug”,人有喜怒哀乐,也有生老病痛,不要指望一个人可以持续专一的执行操作,只有机器+流程自动化,才能够保持可靠性。

十年工作和生活心得

“这些年我一直提醒自己一件事,千万不要自己感动自己。大多人看似的努力,不过是愚蠢导致的。什么熬夜看书到天亮,连续几天只睡几小时,多久没放假了,如果这些东西也值得夸耀,那么富士康流水线上任何一个人都比你努力多了。人难免天生有自怜的情绪,唯有时刻保持清醒,才能看清真正的价值在哪里。”

所以说:

  • 方向比努力更重要(南辕北辙);
  • 流程比补位更重要(规矩成方圆);
  • 方法比拼命更重要(事半功倍);

当然,也离不开勤奋努力,主动补位,拼命三郎这些优秀品质,能够被提及的几个要素都很重要,我这里说的是“更”,所以不要太纠结,有感觉就好,一定要智慧的生活和工作。

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

  1. 请进来=了解外面的经验和成果,不至于井底之蛙,夜郎自大;
  2. 站出来=这是个人价值的体现,也可以锻炼演讲口才和临场表现能力,生活总是需要一些英雄;
  3. 走出去=互相学习,交叉分享,并行进步,学习是个翻翻的过程;
wiki/public/speech/创新工场-漫谈云上架构与运维的艺术.txt · 最后更改: 2025/11/17 10:10