DevOps几年前来看,基本都在提概念,这几年很多公司都在落地了,公司里每个自动化运维平台都不好意思。具体落实下来,做得好还是不好,水平也层次不齐。
我们不说自动化运维的意义,不讨论要不要做自动化运维。做是肯定要做,然后每个人都会有一堆的问题或者想法冒出来,why,how,when,有想法是好的,最大的问题是不知道问题在那里。
从我的理解来简单说说基线,一般来说会有如下的几个问题,基本涵盖了3W
我们来逐个说一下,不对的地方欢迎拍砖,我及时纠正。
需要做一个什么样的平台
1)在这里确切的说是DB自动化平台,因为目前的主要是数据库方向的。
2)后期怎么和其他部门的平台集成
先把DB层面的工作做好,做好了,你说的话才能让人觉得靠谱。
内部先达成共识,我们要一起做,不是你做吧,我用就好了。
3)业务价值和技术价值
短期内看只有技术价值,业务价值不大,但是成为平台后,或者有一些业务对接之后,价值才能发挥出来,就好比一辆车停在那里,还要付停车费,一旦跑起来了,业务价值远大于技术价值
谁来开发维护自动化平台
1)常见的瓶颈
开发不了解DB层面的业务,DBA对于开发的技能不够熟练,这是现状也是普遍现象。
2)DBA全员开发
能者多劳,每个人都要参与,所以我最近疯狂调研,搞开发,搞前端。
分工协作,等定好了之后,一起看看怎么分工,每个人能够承担一部分的功能,都能参与进来。
3)开发能力不够怎么办
先抛开技术,看看能做什么,需要做什么 --产品规划
前期的引导和技术预研 --技术选型和规划
由小及大,模块化实现 --避免好高骛远,眼高手低
使用什么技术架构
个人理解主要分为Python栈和Java栈,还有其他的比如go等等。
1)Python栈
前端WEB
Bootstrap
后端WEB
Django
任务调度
Celery + Redis
Celery + MQ
批量操作
ansible
2)Java栈
前端WEB
后端WEB
任务调度
Jenkins
opencron
批量操作
3)数据库
MySQL
SQLlite
自定义ORM
是否需要agent
这个问题几乎无解,在有限的服务器规模怎么理解都没错。看你侧重于哪些考虑了。
有agent,数据采集和性能监控还是比较给力的。
没有agent,松耦合,部署快捷简单。
需要实现哪些功能
这个问题,如果是打算重构,重做,几乎每个人都会问,我们可以还个角度来考虑一下,自己问自己,这样也许也会有一定的收获。
1)可以反问,目前有哪些痛点
2)目前有哪些工作可以改进
3)希望今后做哪些方面的事情
可以借鉴的开源方案
目前可借鉴的方案还是蛮多的,而且国内目前开源的很多方案还是很不错的。开源项目可以参考最近火热的国内开源项目评选。
http://www.oschina.net/project/top_cn_2017?from=hometop
里面有很多非常不错的项目。