公司简介
索尼是日本一家全球知名的大型综合性跨国企业集团。总部设于日本东京。索尼是世界视听、电子游戏、通讯产品和信息技术等领域的先导者,是世界最早便携式数码产品的开创者,是世界最大的电子产品制造商之一、世界电子游戏业三大巨头之一、美国好莱坞六大电影公司之一。索尼中国在AWS China上部署了近百台以上的虚拟机以及主流的PaaS服务,主要涉及电商平台、内部OA系统、大数据计算等多个关键应用系统。
通过对应用程序和基础设施生成的数据进行采集、分类和分析,可以了解变更或更新如何影响用户,同时深入了解出现问题或意外变故的根本原因。由于服务必须全天候持续可用,而且应用程序和基础设施的更新频率不断提高,因此主动监控变得日益重要。本文主要结合客户索尼运维中的具体场景深入探讨,如何利用AWS多种服务工具实现进行高效的监控与运维。
- 客户名称:索尼中国
- 网站:https://www.sony.com.cn/
- 行业:其他金融业
- 成立时间:1996年
- 全球总部:日本
业务挑战
伴随着业务量日益增加,客户需要兼顾业务逻辑、后期运维等多方面问题,业务逻辑层面的优化通常涉及架构设计、底层代码两大块,运维层面主要涉及CI&CD,监控,权限控制,安全、成本控制等。由于用户没有太多经验可以借鉴,未基于AWS特定及时制定完善、标准的运维开发管理流程,造成了人力资源成本增加,环境却愈发难以管理的局面。
整体来说在运维前期过程中,我们发现了用户如下的问题:
- 客户资源较为混乱,命名缺乏有效的规范
- 监控不够灵活,某些关键指标力度不够
- 权限管理粗糙,有安全隐患,CI/CD系统存在缺陷,交付质量低
- 业务系统可伸缩性差,部分模块缺乏必要的数据备份
- 组织架构较为分散,不同职责的人员间沟通效率低
解决方案
1.方案描述
充分利用AWS提供的各类基础服务,结合用户业务特点、相关服务最佳实践来构建高可用、可伸缩,易维护的业务架构,帮助用户便捷的进行安全审计。
2.方案架构
- 使用的AWS产品/服务
AWS Identity and Access Management (IAM)
AWS CloudFormation
AWS CloudTrail
AWS Lambda
AWS Config
Amazon ElasticCache
Amazon RDS
Amazon CloudWatch
AWS VPC
Amazon Elastic Compute Cloud (EC2)
Elastic Load Balancing
AWS Auto Scaling
Amazon CloudFront
Amazon Simple Storage Service (S3)
AWS Simple Notification Service
- 使用的第三方产品/服务
ELK Stack
Apache Skywalking
3.方案实施步骤
1 )资源配置标准化
为了方便不同项目,不同团队人员之间的信息同步并实现业务级别的成本核算功能,我们将相关资源进行了标准化定制,经过优化后的资产结构更加清晰,标准化的提现主要在以下两个方面:
- 资源命名标准化
提供资源的命名标准规范,资源命名做到见名知义
- 资源标签标准化
资源标签的维度标准化,提供至少两个维度用于标示资源的使用范围,业务部门等,针对不同的资源有不同的维度描述
对生产环境核心模块的缓存使用Amazon ElasticCache进行高可用,替换原有自建模式,通过基于安全组间的授权,实现了访问权限的标准化控制,进一步减少了误操作的风险。
3) 基础架构优化
- 备份策略优化
使用AWS Lambda 对线上EC2,RDS设备进行自动快照备份,进一步降低了业务恢复的RPO,并解决了RDS原生服务仅支持35天备份保留期的问题。
- 监控系统优化
通过CloudWatch对EC2 RDS 等服务进行监控,设定相应阈值通过SNS实现告警,后期结合lambda或者业务埋点推送到CloudWatch实现细粒度更高的业务逻辑监控。
针对客户多业务线、多环境,业务模块日益繁多的问题基于AWS CloudFormation实现业务架构部署,以提升工作效率,减少重复劳动,通过降低配置和部署相关服务的时间,使客户把更多的精力花在应用层面。
5) 持续构建与交付
为实现高效、可靠的交付,帮助客户进行如下方面的优化:
使用AWS Lambda 、S3 结合 Gitlab,Jenkins 缩短 CI/CD的时间。此处使用gitlab不仅仅作为用户代码的存储,版本控制工具,通过使用gitlab-runner组件进一步完成了持续构建的功能;构建后的文件会上传至S3,保证了后续代码分发的效率;AWS Lambda将S3 、Jenkins以及通知、审批流程进行了很好的串联;Jenkins结合ansible-playbook主要用于持续交付阶段的流程控制,其贯穿了整个持续交付阶段。
6) 分布式应用跟踪
结合Apache Skywalking 使得客户更容易的实现对应用和服务的依赖分析、慢服务检测,为业务性能的优化提供了有力的支撑。
7) 资源合规性审计
以AWS Config 服务为核心,记录并追踪AWS 所有的基础设施配置,并通过Lambda 自定义规则,审计评估资源及配置,将审计结果通过SNS 进行通知。
通过使用ELK Stack对 AWS CloudTrail提供的账户活动的事件历史记录进行过滤,分析展示,实现对AWS 账户的监管、合规性检查、操作审核和风险审核。
8) 成本优化
将部分EC2实例替换为新一代实例类型 ,结合Lambda实现对低利用率设备、及不常用的设备的定时开关机,以降低AWS资源成本。
一系列标准化、自动化方案的落地,使资产、业务、技术等不同团队人员的交流、协作更加顺畅,在一定程度上降低了人力资源成本。
1)资产标准化有效实现云端资源的梳理和整合,方便了业务成本的分摊,使得抽象、分散的业务资源更容易被管理
a) 多种类型、数量的AWS基础资源
b) 三大业务模块及环境,30+子业务系统
2)对比传统的应用系统运行模式,进一步提高了业务架构稳定性;监控细粒度提升降低了故障定位、恢复时间,综合提高订单转化率
a) AWS基础设施基于cloudwatch 及 OpsNow 创建的监控阈值来提高故障定位时间,业务系统恢复时间取决于备份策略,通过部分测试,确立infra层面的复原时间目标(RTO)为15分钟,恢复点目标(RPO) 为24小时
b) 在产品的创建、运营生命周期中,促进了开发人员与运营人员之间的协作;在以客户为中心的商业世界中,赋予了运营更高的价值,伴随着商城导流效率提高,订单转化率提升20%
3)通过安全审计工具使得权限管理更加透明,用户行为更容易被分析,进一步保证了业务系统的安全;代码交付、回滚更加效率
a) 通过6大维度对AWS层面的操作日志进行可视化审计
b) 核心业务批量部署、回滚操作可以在5分钟内完成
4)应用性能管理系统使用户可以持续对业务性能进行优化
a) 业务逻辑拓扑自动化生成,接口性能的指标捕获,用于发现系统瓶颈
b) 持续对数百个业务接口进行跟踪,提供综合的SLA分析,通过持续进行的功能性能监视、优化,进一步缩短了订单完成时间
5)使公司更加敏捷,更具成本效益和运营弹性
a) 打破了运维及开发人员间的壁垒,使其协同更加紧密,沟通更加高效,紧凑的人员组织架构,带来了员工生产力和满意度的提升,从而奠定客户忠诚度基础
b) 优化后AWS资源的月综合成本降低7%
经验教训
1)运维标准化降低了操作失误的几率,是运维自动化的基础;运维自动化提高了生产力,降低了成本, 使业务架构更加可靠
2)“云计算”越来越重要,但更重要的是“云安全”,充分利用云产品带来的便捷建立良好的安全管理体系,有助于我们在今后更加自如的应对未知的风险
3)拥抱开源,开源软件为我们提供了更多的功能、更广阔的思路,使我们可以更快的构建易用、好用的系统
4)搭建完善的业务性能监控系统使得我们能够快速诊断出问题发生的根本原因,有利于我们进行快速、明确的团队沟通