聚美优品运维的过去现在与未来-阿里云开发者社区

开发者社区> 中生代技术> 正文

聚美优品运维的过去现在与未来

简介: 本文作者张川分别从过去现在未来讲述他在聚美做运维曾遇到的一些问题。

过去

我是在13年2月底加入的聚美,我简单的用三个事情说说我们曾面临的一些问题吧。

日常支持

刚进公司那会,公司整个运维团队只有3个人,就我一人在成都,让我印象最深的是,那时几乎每天都会有一大堆的研发同学来找我,甚至还排队,处理各种线上问题,而其中很多问题都是比较重复的。为了提高效率,我只有想着法子去"偷懒",比如,一些日常的任务,会用expect写个任务脚本什么的,然后把某个帐户的登录shell改成这个,当研发同学再找到我的时候,我会告诉他,执行条什么命令就可以了。这时研发同学通常都会很诧异,

 "咦,还能这么玩?厉害"。

 ":D"

线上扩容

大概是在13年底的时候,我开始和北京的同事一起负责自动化和负载均衡这两个运维最核心的系统,那会我们用是bcfg2+fabric,通过主控机的fabric去调用各个服务器的bcfg2进行批量管理。但是每次看到满屏的刷屏我就懵了,因为这么多机器我根本不知道到底哪些执行成功,哪些执行失败。针对这个问题,我在fabric中加入了一个日志输出的逻辑,将屏幕输出同时输出到日志文件,每次执行完,再用脚本去检查执行结果,有问题,再重新执行,这时心里才算有了底气。

后来琢磨着效率和稳定还能再提高提高,于是用salt重写了bcfg2规则,并作了一些优化,开始的时候刷屏的问题仍然存在,虽然salt有一套成熟的return的机制,但是在命令行这么玩着总感觉有些别扭。

突发事件

有一次,我们部门有一个兄弟结婚大喜,请大家吃饭唱歌,大家玩得正Happy,不觉就到了12点,突然,线上出问题了,而且不是一般的问题。而我们刚好都在负一楼,手机信号都比较差。。。领导联系上我的时候已经有一会儿了,匆匆赶回公司后,通过分析日志把问题給堵上了,然后第二天我就新买了张手机卡。

随着公司的快速发展,类似这样的事情特别多,而且大多都是发生在晚上。

那时候,我想的最多的就是如何提高效率,让工作更有意义。

现在

一切靠人去保证稳定的系统都是在耍流氓"

针对上面的一些问题,在14年年底的时候,我们开始了运维平台的建设,最初,只有一个开发运维,两个系统运维,加上我四个人,用了不到3个月的时间,完成了资产系统,自动化系统及监控系统的开发及上线,随后很快就完成了成都这边所有项目的接入,这是我们团队比较自豪的一件事,当然也离不开前面的积累。

在做这个平台的时候,开始的想法也比较简单,就是要把运维日常的工作都平台化,降低操作门槛,通过这样的方式,保证人员的互备及系统稳定。以至于后来每当有新同事入职的时候,我最常说的一句话就是:工作中如果有什么觉得还需要优化的地方,一定要提出来,别不好意思,我们一起完善。

整个运维平台是由多个子系统构成。其中每个子系统主要是负责垂直的一部分功能,每个系统的侧重点也不一样,像自动化系统对运维的功底要求就非常的高,服务的优化,系统的优化,这些必须要做到非常的熟悉,在大流量,高并发的场景下,一个小小的参数就可能会引起一次事故。而通过大规模部署后更会将这样的问题放大化。

而监控系统,在保证量级支撑及水平扩容的前提下,对整个系统的易用性也有比较高的要求,因为整个系统是直接提供給整个技术部门使用,不同的团队可能又有不同的需求,所以只有不断的去细化功能,往产品化的方向发展。

整个平台的建设一直朝着最初的目标迈进,从最初的功能化也逐渐向产品化过渡,像类似上面突发事件这样的事情,目前也是作成了平台子系统的一个功能,实现了全自动化,几乎已不需要人工干预,而负责这个功能底层支撑的同学,刚好也是当时结婚的那个同学。

在完成了人工化,工具化到平台化到过渡后,这时,我想的更多的就是团队发展以及运维的价值。很多人觉得做运维是个苦逼活,背锅侠什么的,当玩笑听听就好,如果做运维的人都这么想,那就真的完了。

未来

容器化与智能化

虚拟化技术的兴起,传统的运维模式已经在慢慢改变,最早的时候,机器上架可能还需要运维去扛服务器,到后来,这块基本已由机房处理,再到后来,像很多公司都是直接用公有云,这些资源对他们已完全不可见。

虚拟化技术,不管xen,kvm,lxc,openstack, docker本质是都是出于对资源利用率的考虑。要做到资源利用率的最优,我们是一台物理机群跑5个虚拟节点合适,还是跑10个虚拟节点合适?怎样去评估?在保证稳定的前提下,是否可以做到动态的弹性管理及资源的合理分配?等等等等,这些也是我们不断要去探索和解决的问题。

容器化是必然的趋势,目前我们也是在向这个方向迈进,今年除了一些关键服务,都要向容器化过渡。通过容器化技术,降低成本,弹性管理。

智能化,如果容器化是将资源透明化,智能化的本质从我的理解,就是将运维透明化,比如像资源申请到最终上线这样一个流程,传统可能是这样的一个流程,发邮件,处理,回邮件,然后通过运维平台上线。我们能不能将沟通这个流程做到像开通公有vps那样自助?下单之后可以直接就交付机器资源?肯定是可以的,这也是我们以后的一个发展方向。

能力的互换

当真正做到了容器化和智能化后,运维做什么呢?所以我希望的是,每个网站运维都有系统运维的能力,每个系统运维都有开发运维的能力,每个开发运维都有系统运维,网站运维的能力。大家互相学习,共同成长。


本文作者:张川,聚美优品网站运维及开发运维集团总负责人

本文转载自微信公众号 中生代技术 freshmanTechnology

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
官网链接