zoukankan      html  css  js  c++  java
  • cmdb面试题

    CMDB的面试题

    1、CMDB的架构是啥?

    • agent方案
    """
    	将采集的脚本放置在每一台待采集的服务器上,这脚本本质上是使用了subprocess模快来执行Linux的命令,最终获取命令执行结果,进行第一次分析。然后将分析得到的结果通过requests的模块发送给API端。API端获取结果之后,进行数据分析和比对(二次分析),然后将数据入库,最后django起一个webserver将数据从数据库中获取出来,进行展示管理。建议:可以现场面试的时候画个架构图.
    """
    
    • ssh类方案
    """
    	在中控机上安装paramiko模块,通过这个模块就可以登录到待采集的服务器上进行数据采集,然后执行Linux相关的命令,最后返回执行结果,将分析到的结果通过requests模块发送给API,API获取到数据以后进行二次数据比对,然后将比对的结果存入数据库中,最后起一个文本server从数据库中将数据获取出来,进行展示。
    """
    

    2、总共分成几个部分?你负责哪一个部分?

    """
    	总共分成三个部分,需要三个人,采集端是一个人,API数据分析和入库是一个,前端是vue做的也需要一个人,完美这个项目总共做了半年的时间
    	你负责那一部分的整体回答原则是:拿着个项目最有含金量的部分去说
    	答:我主要哦负责数据的采集
    """
    

    3、你负责这一部分的时候是怎么做的?遇到了那些问题?是怎么解决的?

    """
    a.怎么做的?
    	我主要是参考了django的高级配置文件,然后将该项目也做成集成用户自定义的配置,以及全局的高级配置。代码中大量使用到了反射。
    	在采集信息的时候,使用到了高类聚低耦合的思想,将每一个服务器的信息做成一个个的独文件,比如CPU相关的信息,全放在该文件下,且该文件只包含CPU相关的信息,,这样的话方便后续功能的扩展和问题的查找
    	参考了django的中间件,实现了插件的可插拔式的采集 django的中间件(django的请求生命周期流程图)
    b.你遇到了那些问题?是怎么解决的?
    	可以从技术的角度   eg:linux的有些命令还不是很熟悉,以及subprocess模块不熟悉等 解决:查资料,请教运维
    	沟通的角度  eg:  在遇到问题的时候,我及时的和团队成员沟通交流等,可自由发挥
    """
    

    4、你从这个项目中获取到了啥?

    """
    这个问题就是纯开放性的问题了,你可以自由发挥:
    	eg:比如通过这个项目我对Linux的命令又收获了很多
    	   再比如做了这个项目之后我对自动化运维有了更深层次的了解
    	   再比如技术提升的角度:以前我做项目可能更多的是面向过程的写法,现在更多的是考虑整体项目的规划
    	   再比如提升了沟通的能力,对多人协作开发的能力等...
    	   ...
    """
    

    上述的四个问题同样可以运用到其他的项目中,比如说xxxx

    CMDB项目是一个ToB(面向企业用户)的项目, 即这种类型的项目做出来是给企业的员工用的,类似的有CRM,erp系统。因此此项目的优势是:每一个公司的方案都差不多。但是ToC的项目就不一样。

    对自己简历上写的项目, 一定要熟练

  • 相关阅读:
    Java模拟ATM运行过程(第一版)
    双色Hanoi塔问题及判断指令
    一点编程风格
    游戏程序员养成计划
    OGRE编译
    Python学习收藏
    case 语句注意
    [c、c++]宏中"#"和"##"的用法(zz)
    网络代码平台tortoise svn+google code
    使用delegate进行解耦
  • 原文地址:https://www.cnblogs.com/yafeng666/p/12588334.html
Copyright © 2011-2022 走看看