客户简介
中国新天地是立足中国的高端商业地产项目的投资者、经营者、管理者及社交空间构建者。公司传承 “集生活、工作、娱乐休闲于一体”的理念,负责营运管理瑞安房地产旗下的商业物业,并致力于建造充满活力的社区,从而带动整个区域的商业繁荣。凭借对市场的深刻洞察,中国新天地持续为人们提供优享生活体验,为业务创造长期价值。目前,中国新天地的资产组合包括商业零售、办公楼、酒店与娱乐休闲类物业。
- 客户名称:中国新天地
- 网站:https://www.xintiandi.com/
- 行业:商业地产、零售
- 成立时间:1996年
- 全球总部:上海
业务痛点
客户的数据分析系统,用于对其线上\线下交易数据、客户浏览记录的汇总分析,为其后续销售运营提供数据支撑;该系统目前已无法满足业务数据快速增长的性能及功能要求,比较突出的问题点在于:
技术层面:
- 原系统的数据处理部分是单机的批处理系统,其数据处理、分析能力存在瓶颈,在大促等交易高峰期,处理速度过慢,需要人为介入扩展处理能力,但是数据量的动态特定导致其很难被准确预测,往往需要超量预置资源,进而带来成本的升高;
- 应用研发与交付团队技术人员,对自动化构建、发布的工具及流程了解较少,均采用手动方式完成日常的软件打包、上线发布等环节,正常情况下发布需要超过30分钟;
开发协作方面:
- 项目迭代过程中,各角色人员协作不顺畅,经常出现某段时间开发人员功能未开发完成,测试人员无事可做;而由于前期沟通不足,测试阶段又问题频出,干扰后续功能的开发。
业务方面:
- 目前客户的数据分析系统无法满足业务的数据增长;
- 目前客户的数据分析系统无法为销售运营数据提供强有力的支撑。
解决方案
方案描述
我方技术人员与客户方各团队进行了深入的沟通,针对其主要痛点问题,设计出以下解决方案:
业务系统重构:
我方技术人员与客户方各团队进行了深入的沟通,针对其主要痛点问题,设计出以下解决方案:
业务系统重构:
- 针对其业务数据量波动性的特点,数据处理、分析系统选用AWS Batch作为核心组件,可以提供足够的海量数据并行处理能力,而且仅需为所使用的资源付费,不会存在资源浪费的情况;
- 通过S3存储桶作为业务数据存储方案,不受容量限制且安全度高;
- 使用Lambda集成数据变更事件,作为数据处理的触发器,减少业务系统的人工参与;
项目管理流程重构:
- 将Jenkins构建任务与GitLab代码发布相集成,实现代码提交、系统构建、发布流程的全自动化,加快构建和发布速度;
- 梳理开发、测试及运维人员在DevOps迭代流程中的角色和职责,沟通协调各角色在流程各个阶段中所需要关注的问题及具体任务;
- 完善项目管理和任务跟踪制度,通过项目管理工具(Jira)、每日站会、每周总结等,在迭代周期初期团队人员充分的沟通,保障目标一致;迭代过程中任何一方有问题及时周知,尽量避免因沟通不足造成的问
2 方案架构
3 使用的AWS产品
Amazon Elastic Compute Cloud (EC2):作为Jenkins和GitLab的运行环境
Amazon ECR:存放构建后应用系统镜像
AWS Cloudwatch:监控资源状态、任务执行流程及获取告警
AWS Cloudformation:资源编排
AWS S3: 业务数据存储
AWS Lambda:用于自动触发批处理任务
AWS Batch:批量处理
Amazon Elastic Container Service (ECS):作为应用运行环境
AWS CloudTrail: 记录资源操作,用于安全性分析及问题排查
AWS IAM: 权限管理
AWS VPC:虚拟网络
4 使用的第三方产品/服务
Jenkins:Jenkins实现类似于AWS CodePipeline的功能,在其上进行代码的构建、编辑等动作,将CI/CD过程集成在一起
Gitlab:存放源代码
5 实施步骤
- 安装并配置代码仓库软件:GitLab及自动化构建工具:Jenkins
- 创建AWS ECR仓库
- 编写Jenkins脚本,将应用构建、发布流程自动化
- 创建S3仓库,构建Lambda应用
- 编写CloudFormation模板文件,通过模版创建Batch环境和任务队列,以达到资源操作的规范化和标准化;同时通过模版方便的创建开发、测试及生成多套环境,资源相互隔离,进一步提供规范性与安全性
- 进行客户项目管理流程培训,协调人员角色与职责,促使其对原有的人员组织进行调整:融合原有开发和运维人员,组成DevOps团队,使业务开发、运维工作紧密结合;
团队组织架构转变
- 对客户讲解基础环境组件关系与开发流程,与客户DevOps及测试人员一起进行代码构建和部署测试,包括代码构建发布流程、资源部署释放流程的测试工作
- 多次执行迭代流程,与客户沟通其反馈的问题,对项目管理和DevOps迭代流程进行微调,以更加符合其实际情况,至各环节能够顺利协作
6.流程图
客户收益
1,业务系统自动化扩展的数据处理能力:
- 业务数据自动分配处理能力,将业务高峰期前人工2~4天的资源预置工作量降低为0;
2,业务数据存储高度安全,且无容量限制:
- 免除备份、存储扩容等各种数据维护工作,每年度降低工作量10~15人/天;
3, 高效的、无需人工干预的应用发布流程:
- 原有的构建发布时长超过30分钟,重构后加速到5~6分钟;
- 实现开发、测试、运维、运营人员的无缝配合,持续参与到应用迭代流程中,整体迭代速度提升40%;
4,高效、低成本的资源使用:
- 按需付费,无需为业务高峰预置资源;平日资源成本降低40%以上,业务高峰期资源成本降低超过60%;
5,技术团队能力提升:
- 通过对DevOps的运用,团队成员整体对项目目标有了一致、清晰的认识;更新了成员对协作流程的认识,在迭代流程的各个环节各司其职,功能开发、测试质量与效率大幅提升,以往测试等待功能开发、开发受测试干扰的问题被完全解决;
- 双方技术人员前期沟通,中期协作完成项目,后期交付与培训,客户扩宽了对新技术的认识,提高了对新技术的接纳程度;
6,业务方面的提升:
- 目前的数据分析系统快速并强有力的支撑销售运营数据。
经验教训
1,充分、积极的沟通在项目的每个阶段都非常重;及早规避各种沟通问题,团队效率会更高;
2,云技术快速变化,需要保持开放的视野与心态,团队成员需要不断学习各类新用具并加以应用;
3,在满足客户需求的前提下,没有“最好”只有“最适合”的解决方案;在制定方案时充分考虑客户现状及变更成本,争取做到客户收益最大化。