文章目录
  1. 1. 翻译 10 Common Ops Mistakes
    1. 1.1. 1. 基础设施配置错误
    2. 1.2. 2. 测试环境设计不合理
    3. 1.3. 3. 配置管理不正确
    4. 1.4. 4. 部署方法不正确
    5. 1.5. 5. 事件处理不正确
    6. 1.6. 6. 忽略监控与报警
    7. 1.7. 7. 没有持续备份
    8. 1.8. 8. 忽略高可用性原则
    9. 1.9. 9. 陷入常见的安全陷阱
    10. 1.10. 10. 忽略内部IT需求

翻译 10 Common Ops Mistakes

PagerDuty 的运维经理Arup Chakrabarti,在Heavybit总部讨论运维团队易犯的最大错误,应该如何避免这些错误,总结了10个错误,完整的视频可以查看Heavybits Video Library

1. 基础设施配置错误

  1. 创建账户
    使用个人账户作为基础设施部署。这个所带来的问题就是员工离职时,个人账户一旦删除,基础设施将不可用。所有一切与该账户相关的公共设施将都受到影响。据个人了解:国内很多公司都这么干,包括某个大公司。
    个人密码存储,这个细节也很容易被忽略。比如在git/svn中存有明文密码,本地也有类似情况。其中可以使用1password,lastpass等密码管理工具来管理你的密码。

  2. 选择工具
    作为创业团队,或者是做小项目实验的团队,建议利用PaaS工具。这样你可以专注志如何获取更多的客户,而不是基础设施的管理。

2. 测试环境设计不合理

  1. 保留测试和生产环境分离
    测试环境与生产环境一定要物理隔离,这里包括:账户,代码,应用

  2. 虚拟机
    为了保持本地电脑与服务器的环境一致,这里需要采用虚拟机。我觉得这也是Docker为什么火的关键因素之一。

3. 配置管理不正确

Ansible 和 Salt 是比较容易学的两个工具。Ansible能够帮助你快速部署你的代码。这其实就是命令执行系统,效率如何,谁用谁知道。
不管你用那个,需要注意的就是限制、限制、限制。

  1. 权限限制,不是所有人都可以执行所有命令
  2. 命令限制,危险命令一定要加入黑名单
  3. 机器限制,并不是所有机器都要统一管理,例如DB

4. 部署方法不正确

  1. 一致性
    每一段代码都必须部署一致,强型按你的规范来。很多人都在提倡什么规范化,标准化,流程化,其实没有必要限制死,有效即可。

  2. 编排你的部署系统
    功能强大的自动化软件肯定是能帮你保持系统一致性,但只适用于规模较大的部署。推荐了Git作为系统的底层工具,Capistrano作为部署工具,Ansible和Salt做为配置管理工具。

5. 事件处理不正确

  1. 制定一个流程
    创建和记录事件管理流程是绝对有必要的。不管是不是好看,是不是够华丽,这是必须要有的。

  2. 保持随叫随到
    一般,公司都有7X24小时值班人员,遇到故障时随时通知。比较优秀的做法就是做一个平台,遇到故障时以不同的方式通知不同的人。紧急事件可以在线oncall。

6. 忽略监控与报警

无论从那里启动,你都需要添加监控,像开源的监控软件:Nagios、Zabbix,都是不错的选择。所以说,你没有理由不用。

7. 没有持续备份

很多时候我们做了备份,但没有持续备份,所以说定期备份到S3是现在的行业惯例。我觉得,代码可以扔到git,在那有一个副本即可。数据可以定期dump后,做异地,甚至本地计算机备份。

8. 忽略高可用性原则

  1. 喊喊口号
    每一层,每个状态,是否都做了高可用呢?很多时候,大部分人只是说我们做了LVS,就够了,其实更多层面的是你的代码是否人容错与高可用机制。而不仅仅是负载均衡层面。另外一个就是HA是否做了优化。这个涉及开发层面上的意识了。

  2. 数据库
    现在数据库都是主从逻辑了,但是dump出来,异地来一份还是很有必要的。如果是重要的数据最好是多机房容灾。

9. 陷入常见的安全陷阱

  1. 仅依赖SSH
    通过SSH连接数据库和负载均衡时,最好能加一层防火墙,对你的登录进行全面的检查与验证,以确保没有被入侵。这个环节,很多人都忽略掉了。

  2. 没有配置单独的用户账户
    这个问题和第一个问题相似,所以大家都在使用LDAP

  3. 开发周期没有使用加密
    代码在开发期,并没有加强加密,导致开发人员在开发时并没有注意这一项。如果在开发期,就全面监控代码,可以避免后期很多问题。

10. 忽略内部IT需求

一般不会有严格的操作问题,但有几点是需要注意的:

  1. 设备的通用性:办工设备的通用与备用
  2. 访问工具的权限:文件共享,内部分享
  3. 备份本地计算机:USB磁盘镜像,这个在国内应该是很少做的。
  4. 磁盘加密:这个的确很有必要,万一笔记本丢失了,数据不会存在问题。
文章目录
  1. 1. 翻译 10 Common Ops Mistakes
    1. 1.1. 1. 基础设施配置错误
    2. 1.2. 2. 测试环境设计不合理
    3. 1.3. 3. 配置管理不正确
    4. 1.4. 4. 部署方法不正确
    5. 1.5. 5. 事件处理不正确
    6. 1.6. 6. 忽略监控与报警
    7. 1.7. 7. 没有持续备份
    8. 1.8. 8. 忽略高可用性原则
    9. 1.9. 9. 陷入常见的安全陷阱
    10. 1.10. 10. 忽略内部IT需求