运维
运维体系建设
- 以应用为核心
标准化
标准化的过程实际上就是对运维对象的识别和建模过程,从纷繁复杂中抽象出标准规范的东西,是后续一系列自动化和稳定性保障的基础
- 识别对象
- 识别对象属性
- 识别对象关系
- 识别对象场景
对基础架构组件做了统一标准之后,下一步要做的就是服务化,要做的是封装这些组件的API,以提供更加便捷的运维能力
应用的生命周期
- 创建阶段:确认应用的基础信息和与基础服务的关系,要同时固化下来,从应用创建之初,就将应用与各类基础服务的生命周期进行挂钩
- 研发阶段:要有完善的持续集成体系和工具链支持
- 上线阶段
- 运行阶段:运维方面要做好监控报警、业务方面要做好持续交付、可用性保障
- 销毁阶段:不仅仅是应用自身要销毁,绕着某个应用所产生出来的基础设施、基础服务以及关联关系都要一并清理
CMDB
- Configuration Management DataBase
识别出运维对象和对象间的关系,并形成了统一的标准之后,接下来要做的事情就是将这些标准固化,固化到某个信息管理平台中,即配置管理
CMDB 是面向资源的管理,应用配置是面向应用的管理
应用管理的思路:产品线 - 业务团队 - 应用,建立应用 - 集群服务分组 - 资源的对应关系
作用
- 为监控系统、发布系统提供应用、服务、机器等基础信息
- 为服务化框架提供配置与注册功能
- 为基础服务提供与保存元数据
运维组织架构
做什么:
- 运维基础平台体系建设:标准化体系以及 CMDB、应用配置管理、DNS 域名管理、资源管理等偏向运维自身体系的建设
- 分布式中间件的服务化建设:一些第三方以及二开的中间件要做好标准化以及服务化建设,即包装后对外服务
- 持续交付体系建设:是拉通运维和业务开发的关键纽带,是提升整个研发团队效率的关键部分
- 稳定性体系建设:如何快速发现线上问题、如何快速定位问题、如何快速从故障中恢复业务、如何有效评估系统容量等
- 技术运营体系建设:从人、体制的角度确保制定的标准、指标、规则和流程能够有效落地
有谁:
- 基础运维,包括 IDC 运维、硬件运维、系统运维以及网络运维
- 应用运维,主要是业务和基础服务层面的稳定性保障和容量规划等工作
- 数据运维,包括数据库、缓存以及大数据的运维
- 运维开发,主要是提供效率和稳定性层面的工具开发
稳定性保障
- 用户访问模型:提前预测系统的峰值压力及分布得到模型,这其中有可预测的模型,也有不可预测的突发事件导致流量剧增
稳定性的保障需要根据模型来选取适合的技术:
- 运维自动化:要有自动化的资源支持
- [容量评估](/软件工程/容量保障.html)和压测
- [限流](/软件工程/架构/系统设计/流量控制.html)[降级](/软件工程/架构/系统设计/可用性.html#降级):难点和关键还是在于整体技术栈的统一,以及后期对每个应用限流降级资源策略的准确把握和配置
- 开关预案:由某些特定事件触发的系统变更
- [故障模拟](/软件工程/架构/系统设计/混沌工程.html)
- 监控
安全
- 入网管控:环境的第一道防线,VPN 接入的管控,并与员工的统一登录鉴权结合,做到一键登录
- 堡垒机:登录主机和网络设备做维护工作,需要有另外一道关卡,就是硬件或虚拟设备的登录管控,堡垒机维护的主机列表、主机用户名、权限配置等信息
- 主机安全管控:在主机上运行Agent,实时地对可疑进程、可疑端口、可疑账号、可疑日志以及各类操作进行监控,一旦发现异常就会及时告警
- 黑盒扫描:针对主机上对外开放的端口和使用的服务进行扫描
- 白盒扫描:持续交付流水线中针对代码中明显的漏洞进行审计
- 应急响应中心:共享漏洞信息、沉淀检测规则