运维不仅仅是懂Linux就行,因为还有一大部分的Windows运维,最近看一个报道说,windows的服务器占了47.71%。嗯,向windows运维人员致敬。当然我们这篇文章不是说运维除了懂Linux,还要懂Windows,而是涉及运维的其他方方面面。

环境部署

一开始这个世界是开发的,然后才是运维的。 
开发实现产品逻辑,将产品开发完成后,然后提交运维进行部署。此时允许就需要准备好部署环境,如部署在Linux服务器上,安装相应的软件,如Apache、Nginx、tomcat、JDK、PHP、MySQL等等。你不能只装了软件吧,还需要看看具体是哪个版本,java 7 和java 8 的差别还是有点的,php5和php7也有些语法不兼容。把软件都安装好了,就可以上线了?还是不行。还需要测试吧,那就还需要部署一套测试环境。有些时候,开发环境也是需要运维来部署的。

排错和调优

事情从来都没有一帆风顺的。 
上线没多久,服务就502了,还不被老板骂死。尽管你有一肚子的委屈,我只是个运维,代码不是我写的,为什么要我来背这锅?!委屈归委屈,服务访问不了了,就是运维的事。尽快定位问题,解决问题才是王道。怎么来定位问题呢?最简单直接的办法就是看日志,看系统日志,看软件相关的日志,结合故障现象和经验,快速的进行定位和恢复。然后就是总结经验,吸取教训,写事故报告。OK,现在你知道,需要对系统环境需要进行一定的调优操作,不再做背锅侠。 
相关技术: top, vmstat, iftop, awk, sed, sar, iostat, strace, ...

备份

做最好的计划,做最坏的打算。 
前不久的gitlab删库事件的教训犹在眼前,丢失了几小时的数据,虽然大部分的备份策略都失效了,但还是挽救了几小时前的一个备份,才没有造成更大的数据丢失和公司损失。我们需要对设备进行备份冗余,需要对数据库进行备份及离线备份,需要对网站静态进行备份冗余,需要对机房进行备用,能做到双活,那是更好的啦。 
相关技术: rsync, crontab, lvm快照, mysqldump, extrabackup, 完全备份, 差异备份, 增量备份, 离线异地备份, ...

高可用和集群

没有永垂不朽,我们不能保证硬件24小时在线,但需要保障服务24小时在线。 
出现故障后,如果做好高可用和冗余,故障自动切换,移除故障节点,那样也就保障了服务的实时在线。在老板和用户不知情的情况下,悄么的把故障处理好的,KPI算是保住了,奖金也许就会有的吧。 
相关技术: F5, Nginx, LVS, HA-proxy, MHA, Zookeeper, 各种其他分布式集群方案, ...

监控告警

运维工程师的第一次解放运动。 
时刻担心网站挂掉,一年365天、每周7天、每天24小时,时刻保持精神高度紧张,就算你是神仙都会撑不住的。我们需要一个机器来监督其他的机器工作,我们需要解放我们自己。当有故障发生的时候,通过短信、微信、钉钉、邮件等等通知对应的运维工程师来处理,甚至是自动切换或摘除故障节点,然后我们离线对故障节点进行问题排查。 
相关技术:Zabbix, Nagios, Cacti, Prometheus, open-falcon, Ganglia, sar, ...

安全和审计

狂奔在互联网的康庄大道上,不过有些人是在裸奔。 
不安全的网络环境和服务器配置,无异于在网络世界裸奔,任何人都可以窥探你的隐私。你的应用是否做了SQL防注入?你的防火墙是否开启?是否还在用root+密码的方式登录服务器?网站开启了https么?是否对系统操作进行审计? 
相关技术: iptables, firewalld, waf, auditd, 各服务的正确配置, ...

自动化和DevOps

运维工程师的第二次解放运动。 
偷懒是社会进步的第一动力。聪明的我们怎么会让自己一直在重复枯燥的事情上浪费时间,装系统、部署环境、发版本、批量操作,把这一切交给程序去实现吧,我们需要的是享受生活。 
相关技术: shell, python, go, rundeck, ansible, saltstack, puppet, chef, cobbler, fabric, ...

虚拟化和云服务

正在发生的一场运维革命。 
这场革命的发起人是买书的亚马逊,这家伙希望卖一切可以卖的东西,包括自己闲置的服务器资源。现在国内的阿里云和腾讯云也发展得如日中天,他们几乎提供了运维所需要的一切,甚至可以让一个公司不再需要运维的岗位。你需要服务器,只需要几秒钟,就可以创建一台。你需要数据库集群,只需要鼠标点击几下,就可以开通。 
相关技术:docker, Moby, kubernetes, Xen, CoreOS, Hyper-V, KVM, ... 

最后如果觉得所讲的东西能够帮助到你,并且希望了解更多的知识,进行更详细的深入的学习,欢迎加群632109190进行讨论和学习。

最新文章

  1. MySQL Dll语句
  2. 微信小程序 关于底部导航设置
  3. 二叉树[C实现]
  4. Linux SVN 命令详解(zz)
  5. webpack的最简单应用,只使用js与css的打包
  6. 100offer 为专业程序打造的招聘平台
  7. iPhone开发技巧之日志保存教程
  8. Linked List 实例
  9. The 2013 ACMICPC Asia Regional Chengdu
  10. JAVA--可变长参数
  11. iOS开发之AutoLayout中的Content Hugging Priority和 Content Compression Resistance Priority解析
  12. Axure学习笔记(一)
  13. Sql Server 2008日志满的解决办法
  14. php.ini 开发和线上配置的差异
  15. openshift 容器云从入门到崩溃之三《安装openshift》
  16. Pandas基本功能之reindex重新索引
  17. java学习碰到死胡同了
  18. XML反序列化出错,XML 文档(2, 2)中有错误
  19. JAVA-JSP内置对象之application对象获得其他信息
  20. python 查找文件内容

热门文章

  1. java实现多线程的4种方式
  2. Oracle dbms_random随机函数包
  3. Oracle 中运用rollup和cube实现汇总运算
  4. 在用 Node.js 起服务之前,我们应该知道这些
  5. Ubuntu14.04下完美安装cloudermanage多种方式(图文详解)(博主推荐)
  6. Derby的jar说明
  7. The Add-in 'VMDebugger' failed to load or caused an exception.....的解决办法
  8. Java的协变、逆变与不可变
  9. vue-cli 基础搭建
  10. Django settings.py添加静态文件夹