网易云信运维工程师的主要职责,包括但不限于软硬件部署、网络管理、应用代码维护、安全漏洞修复、容量规划、故障处理、性能优化等。

网易的运维工程师们很相信一个神圣的定律——墨菲定律:事情如果有变坏的可能,不管这种可能性有多小,它总会发生(Anything that can go wrong will go wrong)。根据墨菲定律的推论,任何一个环节都不是100%靠谱的。而对于云信这样的及时通讯云平台来说,核心功能保证99.99%的可靠性,也就是说,一年不可用时长要小于52分钟。因此容灾是必不可少的,需要把容灾做到方方面面

首先,硬件资源都是冗余的,主要包括以下几点:

  1. 服务器:双电源,双网卡bonding,系统盘raid10

  2. 机柜:双电路接入,电源容量充足

  3. 交换机:接入交换机堆叠并且单个交换机网卡bonding

  4. 网络:核心路由器/核心交换机冗余

  5. IDC:到各ISP的光纤要大于等于两条

  6. 运维人员:应用运维、系统运维、DBA所有角色一主一备。

其次,整个应用架构的容灾,主要包含以下几个层次:

  1. 接入层:云信使用了ospf+nginx做为了前端接入集群的负载均衡,所有nginx机器配置统一,upstream配置里添加了到后端服务器(大于1个)的健康检查

  2. 应用层:各集群服务器无单点,并且保证服务器分布在不同机柜,不同交换机

  3. 中间件:hbase本身就是分布式系统,其他中间件云信也做了高可用改造

  4. 数据库:做为架构中最核心的一环,数据库的容灾设计也是最完善的。数据库支持主从同步,主库挂了之后,可以1分钟内自动切到从库,并且能够保证数据一致性

最后,IDC机房挂了怎么办?运维人员如何对业务运行了如指掌?

这个时候,就需要一个强大、好用的监控系统了,监控是稳定性建设的基石;网易IM云使用网易自研的哨兵监控系统,意指向哨兵一样迅速发现并相应异常状态。我们使用哨兵做了以下几个维度的监控:

首先,在监控完整性方面,自上而下做了业务监控、应用监控、基础监控,相关监控项类型如下:

如某业务指标的监控趋势图

其次,在监控有效性方面,通过哨兵监控系统,报警有效性达到90%以上

  1. 监控数据采集、数据上报有效:数据采集失败、数据不能上报监控agent的监控采集器每天以报表形式发送到运维负责人,运维负责人进行修改

  2. 报警发送方式(短信、邮件等)、报警接收人有效:每天统计短信、邮件及其他渠道的报警发送量,有异常变化(突增或者为0)以报表通知到运维负责人修改

  3. 报警1分钟内到达:对自身发送器进行监控,消息堆积时及时处理解决

最后是哨兵的报警收敛功能。哨兵通过增加报警重试次数,集群报警合并等手段进行报警收敛,有效的避免了服务器数量级达到一定程度后,过多的报警会让人麻痹,进而忽略掉了真正有效的报警。

然而,虽然做了以上的工作来预防故障、快速发现故障,但故障的发生还是在所难免的,一个合适的故障处理流程能够有效的缩短故障处理时长。现在来看看云信的故障处理流程:

为了避免在遇到故障时,故障处理人员手忙脚乱,相关人员配合不到位,加长故障时长,会定期进行故障演练;验证业务容灾能力,监控报警是否可达,人员应急处理能力。

一个产品随着业务的日益复杂,应用系统会变的错综复杂。所以产品的运维标准化是必须的。有人会问,1个人运维10台服务器和运维1000台服务器,哪个更难一些?如果监控方式、部署方式无任何规律,1个人要支撑10台服务器就已经疲于应付;相反,如果所有的服务,都是同样的监控方式、部署方式,那么1个人运维1000台服务器,也是轻松愉快的。所以当IM云的服务器数量达到一定规模时,为了提高运维效率,解决运维管理混乱的难题,我们制定了线上运维规范,包括但不限于以下几个方面:

  1. 应用部署规范:一台机器只部署一个应用;规范文件与目录结构,我们所有应用代码都在不同服务器的同一目录下,降低由于文件数量众多带来的运维风险,保证生产服务环境的整洁

  2. 日志运维规范:对日志输出目录、命名、格式、分割和归档进行了规范性约束。应用相关的日志统一存放在当前应用目录结构下面的logs目录。能够方便而有效地进行应用服务的多维度监控、应用日志分析,以及提升故障发现率。

  3. 代码发布规范:为减少代码上线引发的事故,提高代码上线效率。代码有固定的发布窗口,发布前必须进行发布审核,并且有完善且可执行的回滚方案

  4. 监控和报警规范:云信所有应用包含基础监控和应用监控;以及云信自身的业务指标监控。报警内容清晰明确,报警接收人有效且保证在两人以上

  5. 账号和权限规范:系统管理员使用root权限;代码发布使用公共账号权限;普通开发人员使用个人账号权限,个人账号权限不能在服务器上执行除家目录之外的写操作

无专职运维团队的企业,如何提高开发运维效率?

为了减少运维管理的成本,一定要做应用部署的隔离,有运维团队的公司会选择传统的虚拟化技术(kvm,lxc)对物理机进行初始化,现在业界比较流行的是物理机上运行Docker容器对服务进行隔离;也可以选择直接使用云计算公司提供的服务器资源。服务器的账号权限配置,软件环境配置等配置管理可以使用puppet来管理;代码部署方面可以使用gitlab+pipeline替代方案;监控系统业界比较常用的是开源的zabbix;持续集成通常使用jenkins;自动化运维工具比较流行的是使用ansible;提高应用的故障容错能力可使用Netflix Hystrix。

以上部分工具,网易目前也同样在使用,而且很好用;关于工具的使用方式,google有比较成熟的文档,大家可以按需调研学习。

最后必须说一句:一个可运维、方便运维的产品,开发同学的投入功不可没。

网易云信∣真正稳定的IM云服务

http://netease.im  长按识别,关注精彩

我在网易云信是如何做运维的?相关推荐

  1. java去携程就是做运维,从携程到知乎,运维人该如何觉醒?

    当前位置 > 相关资讯 > 行业资讯 > 从携程到知乎,运维人该如何觉醒? 最近互联网也是非常有意思,接二连三的发生故障,让我们一起先回顾一下. 2015年5月11号晚上21点左右开 ...

  2. 从自来水公司到社会工作者再做运维,我深耕 IT 一线的这 8 年

    作者 | 邓伟斌 出品 | CSDN博客 前尘往事 云破月来 在想着该如何下笔的时候,时光倒流到2013年10月21日,其实,在进IT行业前,金鱼哥还有一段插曲,当年离开自来水公司时,所从事工作的并不 ...

  3. 想学习linux服务器、做运维、部署项目的同学看这,linux部署

    Linux服务器.运维视频链接:b站的链接 这个视频从我们没见过的服务器硬件一直讲到软件,讲的确实细,我看了一段时间,并且与这个视频的up主素不相识,真是讲的太细了,所以推荐给想做运维工作的学弟学妹们 ...

  4. 我在腾讯做运维--快速玩转蓝鲸社区版6.0【直播公开课】

    本次蓝鲸直播系列公开课特邀腾讯运维专家来到直播间,分享蓝鲸产品的设计理念和场景案例,快来一起来围观"我在腾讯做运维--快速玩转蓝鲸社区版6.0",抓住时机预约报名! 温馨提示:参与 ...

  5. 自动执行任务_中小企业如何做运维自动化?

    Spug运维 http://spug.dev 不管大小公司,运维面对最多的工作就是发布部署,近些年各种运维自动化工具也越来越多,运维自动化每个人都有一套自己的理解,那么中小公司一般都怎么做运维自动化呢 ...

  6. 开博啦——半路出家做运维以来的一些杂感

    14年从某科毕业,在经历了一段短暂的不愉快的工作经历后,可能因为缘分或者看中了我在广东移动的实习经历,被深圳的某个企业叫过去面试网络优化工程师的职位,经过一段戏剧性的面试入职了这家公司,正式开启了我转 ...

  7. 【感恩】为做运维的重病老同事李静波寻求帮助

    李静波是我人人网的老同事,做运维开发,跟DBA算是同行,并且平时接触良多. 李静波是个安静勤奋的人,平时少言寡语,但工作积极,做事认真,在繁重的运维岗位上是不可多得的人才. 李静波是个热爱生活的人,平 ...

  8. 【答学员问】女生适合做运维吗?

    女生适合做运维吗? 毕业两年女linux运维一枚,目前迷茫期,找不到当前工作的意义了,看到大家有人说女生在运维行业不占优势,也有人说不看性别看能力,还有一些人说招聘人员看到女生简历会直接略过,想问一下 ...

  9. 腾讯最赚钱的部门是怎么做运维的?

    2012年,我们开始提倡运维转型,鼓励运维向运维开发转型,让运维自己开发所需的工具来实现自动化.现在,我们提倡运维服务化和平台产品化.本文从文化.组织.人.流程.工具这几个维度分享运维管理的点滴经验. ...

最新文章

  1. 戚薇在冰箱放香水,是贫穷限制了想象力!
  2. 纯css3实现的鼠标悬停动画按钮
  3. 软件架构设计的三个维度,软件架构师需要知道的点,了解一下吧!
  4. 大部分人不知道的 5 个强大HTML5 API
  5. 使用with关键字让你的Python代码更加Pythonic
  6. VIIRS和DMSP夜间灯光数据(1992-2020)
  7. [FOI2020]楼房搭建
  8. EXCEL函数之“VLOOKUP”
  9. el-table的自定义行高设置
  10. 李想创业20年总结:从普通人到顶尖领袖的五个认知楼层
  11. 【2023/2/25 更新】Windows Server 2019 服务配置与管理汇总
  12. OUC软件开发实验3
  13. 920优化大师v1.0.1.0官方版
  14. 计算机软件漏洞防御方法,溢出(漏洞)***的实现及防御
  15. Alamofire使用进阶
  16. python实战-抽答小软件(老师专属版)
  17. 【LOJ】#2041. 「SHOI2015」聚变反应炉
  18. 泰坦尼克号python数据分析统计服_泰坦尼克号乘客数据分析
  19. matlab 根据顶点坐标绘制三维立方体(当部分边有权值时)
  20. 量产教程-(ut165)

热门文章

  1. java工程中的.classpathaaaaaaaaaaaaaaaa转载
  2. 在MyEclipse中添加 XML Catalog (xwork-validator dtd )
  3. 理解SQLNET.AUTHENTICATION_SERVICES参数|转|
  4. C++跨平台IDE之CodeBlocks
  5. 华测服务器进不去系统,华测rtk单点到固定怎么操作步骤
  6. linux杀sqlplus进程,sqlplus / as sysdba 在linux系统所发起进程
  7. python顺序结构实验_Python程序设计实验报告二:顺序结构程序设计
  8. html 价格列表组件,评价列表ratings组件
  9. C语言中fun的功能是将字符串,下列给定的程序中,fun()函数的功能是:将p所指字符串中......
  10. linux前10ip,检查网口流量与前10名流量大IP