六个人如何运维一万台服务器?(3)
数据互通。 主机管理去哪儿网的主机管理系统是以 OpenStack 和 DNSDB 为核心的, OpenStack 负责调度创建虚拟机, DNSDB 是域名管理系统。 通过 DNSDB 我们可以将一个机器的名称、部门、用途和它所在的机房组成一个唯一的域名,我们用这个唯一的域名来标识这台主机。 在 OpenStack 、 DNSDB 之上,我们写了大量的脚本文档和工具,将这些脚本文档和工具编排起来,封装成一个一个的操作,并且我们给这些操作赋予一些相关的权限。 我们把主机的信息、流通的管理、权限的配置还有操作日志的查询都会存在日志库里。最后我们会把一个主机管理系统的界面暴露给运维人员,运维人员通过这个界面来管理我们的主机。 有了主机管理平台之后,运维人员就可以非常方便的在这个平台上创建、销毁主机,查看主机的相关信息,比如说它的配置、过保信息等等。 我们在新加每台机器的过程中都会默认给这个机器加上监控报警,机器有报警的时候也会通知到相关的负责人。 这样做还是会存在一个比较大的问题,即我们这个系统是怎么开发给运维人员使用的,开发人员并没有权限登录这个系统。 假如说开发人员提出来一个需求,我要创建一台主机,就需要给 OPS 发邮件,OPS 创建这台主机的时候,其实并没有非常准确的记录到这个负责人是谁,他可能会写在备注里,这个备注随着时间的推移,有可能不准了。 因为当时的负责人可能离职了或者转岗,这种情况都是经常发生的。 这个机器所负责的部门也没有去很好的记录,因为这个部门很多只是体现在主机这个名称上,但是有可能这台机器在使用的过程中可能会转给其他业务线的部门使用,这样我们拿到的部门信息也是不准确的。 还有一个问题 DB 系统只对运维人员开放,业务线参与很少,导致整个主机的相关信息其实是不够准确的,因为 OPS 人员毕竟有限,不可能非常准确的维护这些信息。 这样我们就想到一个方案,通过应用树去解决。 去哪儿网把业务线按照功能区划分到各个 BU,应用树 BU 作为第一级,下面有部门,部门下面还有更小的部门,这个层级可能是多个的。 最后一级是部门下面所负责的应用,应用是作为最后一级的。我们把所有的级别都作为一个节点,在每个节点上都可以绑定主机,给节点添加负责人,给节点添加审批人,下面我会介绍审批人的权限和角色。 有了这个应用树之后,业务线开发参与进来,参与管理主机,他们的负责人和部门信息更加准确。 一台机器出现异常,我想非常迅速找到这个机器的负责人也非常容易。 假如说宿主机马上要过保了,它上面的所有的虚机我都需要找到这个虚机的负责人,通知这些人去执行相关的操作,比如像虚机下线、应用下线,这样可以避免很多运维宿主机过保而导致的故障。 因为机器的负责人比较精确了,我们的报警通知会默认把机器的监控报警都通知给相关的负责人,由负责人来处理机器相关的基础硬件报警。 每个季度都会统计资源的消耗,也会对下个季度机器的采购做规划和预算。 拿到比较上级的部门,比如拿到一个 BU 节点,可以通过应用树很容易拿到这个部门下都有哪些机器,他这个月的增长量是多少,我们就可以很方便的预测下个季度我们需要采购多少量的机器,从而制定更加合理的预算。 有了用户之后,负责人、部门和机器的关系都是比较明确的。 但是存在一个问题,申请资源的时候,仍然需要由 OPS 进行操作,账号添加也是由 OPS 负责,一个开发人员想要扩容一台机器或者给一个机器去添加账号,要怎么做? (编辑:ASP站长网) |