通过一段时间的学习,写了一个简单的运维管理平台小项目,先看看啥样吧!
前端
下面说明下具体实现:数据库
软件架构:HTML+CSS+Jquery+Bootstrap+Ajax+Python2.7+Django1.9+SaltStack+MySQL编程
功能描述:后端
数据可视化:采用百度开源的ECharts绘图,经过Python脚本每分钟统计Nginx日志分析PV/UV量写到数据库。浏览器
资产管理:采用SaltStack Restful API二次封装调用收集主机配置信息入库,并提供增删改查。前端框架
主机批量管理:也是调用SaltStack Restful API实现批量执行命令,结果返回到前端页面,并提供Minion增删。服务器
自动部署软件:目前是使用预写好的脚本完成安装,准备改为Salt sls配置管理部署软件。架构
其余功能还在继续开发中…框架
到干货区了,刚入门的朋友,耽误你几分钟时间,请仔细阅读,必定会对你有帮助!运维
个人学习心得:
用了小一个月时间写了这个运维管理平台,算是一段学习的总结吧!实现了一些基本的功能,跟生产环境的系统还有很大距离!如今一想其实实现起来没想象的那么高不可攀,能够说用到的技术都是基础的东西,并无多高深,因此学习起来并非很难。本身要完成这样的平台,思路很重要,好比数据可视化该怎么展现,数据怎么处理等等。涉及到从前端到后端再到数据库表设计及存储的一系列流程,这些都要有所了解,不然会局限你的思路。所以写好一个比较完善的平台,开发能力会有很大的提升。固然薪资也紧跟着蹭蹭的涨啦!
该怎么学习呢?
刚入门的同窗,大都会问这个问题,本身毫无头绪,不知如何下手!能够理解,每一个人都会经历这个阶段,跨过去你就称为群里所谓的大牛了。哈哈,是否是颇有成就感。没错!
那么,如下给你们提供些学习思路,仅供参考:
第一步:掌握Python基础,至少能写到面向对象编程这个层次。
第二步:掌握一种Python Web框架,推荐使用重量级Django框架,虽然刚开始入门有点难,可是如今最为主流,使用最多,功能齐全,通常都能知足咱们的需求了。固然,若是对Django感冒,能够选择轻量级Flask框架,入门简单,学习成本低。在这里,顺便再看看HTTP协议工做原理,好比几种请求方式、工做流程等。
第三步:数据库基本的增删改查必会。
第四步:后端的东西前三步就差很少了。该前端了,毋庸置疑HTML/CSS基础必会,能够先学习经常使用的标签、选择器、样式属性等。原生JavaScript基础先要了解下,再考虑使用封装好的JS库Jquery作页面行为控制,重点看看Jquery事件处理、获取属性内容、设置元素内容等,比原生JS用着更简单,也是主流的。学习完后试着写几个小页面检查本身的学习成果。
第五步:本身写HTML/CSS页面刚开始入门,写起来比较费劲,并且浏览器兼容性不是很好。能够考虑使用开源的前端框架,提升开发速度,不用过多考虑兼容性。我所知道这样的前端框架有Bootstrap、SemanticUI、EasyUI,还有不少,选一个本身喜欢的就好,先学习其中一些经常使用的样式,好比表格、表单、按钮等。其余的用到啥再看也来得及。
第六步:选择一个本身喜欢模板。决定使用哪一个前端框架后,在网上搜索下找一个好看的前端页面模板,好比搜索关键词为"Bootstrap模板",会有不少。咱们主要就是用它的排版和一些主页面,再去除一些功能,简单修改下本身想要的页面就出来了,再加上你所学的前端框架样式,能够很快捷的实现某个功能,很省心。
第七步:与后端交互数据,常常用到Ajax技术,好比实时从后端获取新数据展现、传数据到后端等。Ajax也建议使用Jquery的,缘由仍是使用简单。这时要学习一下JS定时器,用于控制Ajax获取数据时间间隔,常常会用到,也很简单。还有WebSocket技术,是一种浏览器与服务器创建长链接,进行实时传输数据。在某种场景下很实用,好比WEB SSH,能够简单了解下。
第八步:嵌入主流的管理工具,完成某项工做。好比我想作批量管理,就不必本身再去写脚本去作批量执行了,像SaltStack、Ansible都是这类主流的工具,到时直接调用它们的API就好,功能上也要比本身写完善不少,不是挺好嘛!
通过这八步循环渐进的学习,我相信你已经有足够能力开发一套属于本身的运维管理平台了。
群里朋友常常问,能看懂代码,就是写不出来,怎么办啊?这是一个很典型的问题,仍是在于代码写的少,即便写的多也都是复制别人的,没有实际学习意义。要想提升技术能力,只有一个不变的真理,多学习、多实践、多总结!
就说这么多了,以上就是我我的对想转运维开发的朋友们一点学习思路,不能说彻底是对的,可是思路我以为没问题。
少了一步很重要的,学习期间不免会遇到各类各样的问题,这时该怎么办呢?不要一有问题就立刻问同事、技术群,先试着网上查资料,问度娘、谷狗,要学会去独立排查问题,长此以往处理问题思惟就很强了。实在解决不了,这时你应该会想到加技术群了,没错!在群里,会有一些热心的前辈给你传授经验,不但能解决问题,还能吸收其余的经验,多好!
技术群太多了!闲聊群更多!针对运维开发的群更少!故此,我本身建立了一个运维开发群,创群的目的是为了让志同道合的同仁聚在一块儿,共同窗习,共同提升。而不是为了当群主想踢谁就踢谁寻找成就感!所以,为营造一个更好的学习氛围,很注重群成员质量,不欢迎以瞎扯淡、斗图、发广告这类为目的的人加入。
QQ技术群:
Python运维开发群(249171211)
Docker技术交流群(719105297)