如何选择适合自己的云管理平台(二)
上篇我们讲到如何选择适合自己的云管理平台的费用管理模块,这一篇就来讲讲大家最关心的运维相关的模块。
Consumption & operations
一个云管理平台需要能够帮助运维人员
- 监测云资源性能,发现,告警
- 事故处理
- 管理DNS,SSL等非云资源
- 管理系统备份和灾难恢复
- 管理数据库备份
- 提供或者与第三方软件集成来配置管理功能
- 提供一定程度的应用性能监测
- 安全管理(预防,发现,处理发生在云资源上的安全威胁)
- 。。。
这里大家可能会有一个问题,为什么不使用原生的云服务商的运维管理产品而引入另外一个平台呢?
- 原厂产品没有引入中国
- 原厂产品不支持多云管理(Note: Microsoft OMS 支持多云管理)
- 原厂产品监测仪表板很难按需定制
- 运维需要一个out of box的管理平台
- 。。。
实时监测
我们先看一下Datadog的一个用户监测Azure订阅里的虚机的仪表盘
用户可以很容易的监测到,在一个动态变化的云环境里
- 过去一天里有多少虚机在运行,有多少虚机停止
- 各个region运行的虚机最大数
- 虚机CPU utilization的前5名
- 虚机disk I/O读写
- 虚机disk I/O读写速度的前5名
- 。。。(还可以加入另外两个重要指标memory utilization 和 network traffic)
从以上图标我们可以注意到运维人员方便地在一张dashboard 查看到所有虚机资源,虚机状态和虚机性能。那么怎么实现这个功能呢?
Step By Step
1. 激活虚机的Diagnostics,建议在部署虚机时候就激活诊断配置并配置告警规则
2. 从Azure后台收集数据,理论上应该用API取得实时性能和告警数据,如果不可行可以使用step 1的数据
Tips: Azure 中国的monitoring API版本复杂,Api,powershell。。。哪个work用哪个吧
3. 编程实现各种业务逻辑或者用PowerBI等工具来展示数据
Tips: 表格,柱状图, 条形图,饼图,折线图。。。都有开源代码库的
接下来我们再看一下Datadog用户怎么监测Azure PaaS服务的
在上面的仪表板上可以看到一个App Service的健康情况
- 过去一小时内的HTTP Response分别是 2xx,3XX,4xx和5XX的数目
- 过去5分钟内平均response时间
- 每秒收到的request数目
- VM的CPU和Memory
这些信息同样也来源于Azure的Monitoring API。另外对于虚拟机的监控,还可以采用安装agent来采集数据。Agent不但能采集到更多的Host层面系统数据(eg.system.cpu.util),还能采集到运行在VM上的应用的性能数据(eg. SQL server, IIS, Nginx…). 这方面的方案有不少,例如zabbix(http://www.zabbix.com/),Nagios(https://www.nagios.com/solutions/agent-based-monitoring/)。
Tips:最基本的服务器和网站的监控指标是Uptime。技术实现是相对简单,就是用ping监测网络延迟或用HTTP监测页面响应,国内外有不少公司(eg.Pindom)都提供相应的服务并可在问题发生时候用短信email的方式通知运维人员
Tips:工具不能完全代替人的工作,不管是SaaS还是自己开发,在云运维管理平台的后端必须存在一个7*24运维团队。
事故处理
服务台,事故处理,事件管理,配置管理,变更管理等功能做为ITIL流程已经成为IT运维的标准之一。如何把ITIL在云运维管理落地也是对云管理工具集的要求之一。如果企业已经开始使用ITIL流程管理的相关的工具,可能只需要云运维平台提供开放接口来实现和流程管理工具的集成。New comer则可以考虑采用完全集成整套流程管理工具的云管平台
以下是一个常见ITIL工具集(包括SaaS服务)的列表
Zendesk,Bugzilla, Jira, HPE…
日常运维自动化
由于云技术的日新月异,云服务商大多采用迭代开发的方式推出新的产品,云管理平台这个产品本身因为需要调用云服务商的API并开发出对应于新产品的管理功能从而需要有开发团队长期专注于开发维护。
这里,我们建议使用自主开发云管理平台的团队关注常见的运维自动化任务. 通过在平台支持此类功能来减轻运维人员的压力。
- 虚机、数据库备份状态报告(email)
- DNS,SSL等非云资产管理报告(email)
- 订阅内资源额度报告(email)
- 虚机开关机
- 动态资源报告(email)
- 其他相关的管理报告
- 。。。
Tips: 可以使用Azure的api,powershell,cli来实现常见运维任务。 Azure的自动化也可以提供底层的实现
安全管理
我们可以参考以下Global Azure的security center的安全策略想一下在云管理平台里可以实现哪一项安全管理功能。或者用第三方工具实现安全监测结合云管理平台的监测告警功能。比方使用WSUS来管理system update,再由云管理平台发出更新告警
- 系统更新
- 操作系统漏洞
- 磁盘加密
- 端点保护
- 网络安全组
- SQL安全监测
- Web应用防火墙
- 存储加密
- ..