时间飞逝,转眼之间做运维开发工作已经过了2年多,对这项工作有些体会,这里总结下来,希望可以帮助到对运维感兴趣的同学。
运维的职责
简单介绍一下运维工程师职责:主要是保证网站可用性,并完成相关工具研发。
参考百科:http://baike.baidu.com/view/8535239.htm?fr=aladdin
项目过程中的技术点
下面介绍一下一个运维工程师(OP or SRE)在一个互联网项目的价值和技术点。
一.立项和详细设计阶段
项目开始,产品经理(Product Manager)获得调研结果,完成产品的详细需求设计(MRD)。研发工程师(RD)和产品经理(PM)沟通MRD的合理性和技术实现难度,这时,研发工程师(RD)会完成对项目技术实现的详细设计,产品经理(PM),运维工程师(OP)与研发(RD)一起共同讨论这份实现详设是否满足各自要求,这里运维(OP)就需要考虑如下问题:
1.技术选型,这里需要注意的几个要点和原则:
1)使用实现技术安全可靠:如已经广泛使用的,有成功案例的,或者已经经过我们测试多次测试调研的有数据支持的新技术等的
2)如满足需求,使用技术尽量收敛,减轻运维复制度:如我们的web项目都使用java tomcat,进一步我们使用jdk1.6/tomcat6.0.41/mysql,框架使用spring struts mybatis等等
我们以一个常见的web项目为例。
开发语言 | java | php | c++ | python | 其他 |
框架 | pring,struts,mybatis,hibernate | Yii,zend | STL | flask,webpy,django | |
常用的关联 | rmi,mcpack,HTTP | socket,HTTP | socket | socket,HTTP | |
通信框架 | protobuf,thrift | ||||
2.项目多模块之间做到高内聚低耦合,使用较轻的关联解耦方式。
3.预计容量,设计容量,方案瓶颈,冗余:如设计实现的容量是否有充足冗余
4.需要的资源:如机器数,虚拟IP,域名等
二、项目开发测试阶段
这个阶段OP需要做的事:关注项目上线时间点,提前准备好需求资源,及时协助RD,QA处理项目开发测试阶段问题,对于项目中的重要变化反馈意见。
三、项目上线和维护阶段
当项目开发测试完成后,项目团体集体合作完成上线和检查。由于项目刚上线迭代,修复bug较多可以先考虑RD自主运维,然后等项目稳定后,OP将完成从参与到主导运维过程,这期间OP需要完成工作如下:
1.变更,有一套可靠的变更系统完成日常的上线,检查,回滚等
2.监控,对服务做尽量做全方面的数据收集,异常报警和问题定位。
3.预案、备份,对于特殊的,极端的服务异常采取必要可靠的措施。
以上就是一个运维工程基本需求的素质,对于近几年比较热门的devOps将另外编写,敬请期待,谢谢