运维相关思想及概念
一、运维概念(一)
运维是一个非常广泛的定义,在不同的公司不同的阶段有着不同的职责与定位,如果以operation字面的含义去理解,认为就是敲几行操作命令的工作,那肯定是不对的。 对于初创公司,运维工程师的工作可能需要从申请域名开始,购买/租用服务器,上架,调整网络设备的设置,部署操作系统和运行环境,部署代码,设计和部署监控,防止漏洞和攻击等等。
对于大型的公司,对于运维工作的要求越来越高,也催生了更细化的运维分工:从大的方向,可以分为网站运维,系统运维,网络运维,数据库运维,IT运维,运维开发,运维安全等方向。
运维概念(二)
运维自动化的步骤的三个层级
Bootstraping,系统安装:装机层级,可以在裸机上(cobbler),或者在虚拟化上安装,工具如下
裸机:pxe, cobbler
虚拟机e:image file template(通过创建合适的示例作为模板)
Configuration,配置:配置层级,配置资源和服务,如安装包,启动服务,工具如下
ansible(agentless)
puppet(master/agent)(ruby)
saltstack(python)
Command and Control:部署或者执行任务,指挥机器做相关操作,工具如下
ansible(playbook)
fabric(fab)
func
运维工具根据有无agent的分类:
agent:puppet, func, ...
agentless(ssh,):ansible, fabric
程序发布的不同阶段如下:
人工智能(手动发布)-->脚本-->发布程序(运维工具)
程序发布一般的要求如下:
1、不能影响用户体验;
2、系统不能停机;
3、不能导致系统故障或造成系统完全不可用;
二、运维基本思想
1. 保证系统的SLA:
保障系统99.99999% 的可用时间
2. 系统容灾
机房容灾
程序容错
xxx
3. 运维效率
PE 脚本自动化
运维白屏化
推动系统架构设计和系统自动容错
4. 资源成本控制
一年一度的预算,需要做好
机器资源水位 35%
架构设计上评估资源是否合理;
通过架构优化来节省机器资源
全链路的机器把控
5. 监控优化(快速发现)
监控覆盖面要全
监控添加效率要高
监控误报要少,避免狼来了
6. 快速恢复
梳理现在系统的问题、风险点
针对可能出现的问题和风险点,制定对应的应对措施;重要的措施要预先进行演练
问题的沉淀、解决方案的成熟
7. 全链路的容灾、水位摸底、压测
8. 流量入口来源的把控(统一接入平台)
作为一个平台,把控流量入口,最好只有一个或者<3个入口;这样才好统一把控
流量来源的埋点和报表
避免出现因为业务进行系统拆分,如果拆分交把分拆后的成本交给最大受益方
9. 要走进业务、了解业务、支持业务
业务是根本,所有的技术、工作都是为业务服务的;所以要了解业务,怎么深入都不过分