通过微服务架构改造,打造灵活、稳定、高效的系统平台,满足不同用户群体的个性化需求。
Ye Light tech
关于Ye Light tech
Ye Light tech成立于2021年,是一家热门电竞&体育赛事SaaS直播平台提供商,作为一家全球化新兴科技公司,主要业务覆盖菲律宾和越南等国家。Ye Light tech的愿景是成为东南亚最具影响力的赛事直播平台,平台最大特色是在给用户提供多种热门类型赛事直播的同时能够与不同的主播以多形态进行赛事直播互动,除此之外,用户还能够享受更为私密的聊天。
解决方案架构图
架构说明:
1. 基础架构:使用公网部署CDN和ELB来实现流量传输,通过私网部署直播系统服务、网关服务及相关服务应用系统、RDS和ElastiCache来实现系统的安全性和高可用性。多可用区域部署以确保系统的可靠性和容错性。使用不同的EC2机型如C5.4xlarge、C5.2xlarge、C5.large等进行测试和部署,能保证各业务系统可以水平扩展。
2. 数据存储:长期存储选择S3存储桶,用于存储大量数据;数据缓存采用ElastiCache for Redis,提高数据访问速度;用户数据存储选择关系型数据库Aurora/MySQL,用于持久化和管理用户相关数据。1个3节点的ElastiCache for Redis做交易系统数据库缓存,加快效率,加快效率,通过MQ保证事务消息和对账机制,保证资金流在直播系统和交易系统里面的数额一致性。
3. 资源监控:利用AWS CloudWatch监控和跟踪EC2、ElastiCache、S3等资源的指标,并收集相关日志数据。客户有分析应用日志数据的需求,可以利用CloudWatch提供的功能进行数据分析和监控。
4. 账户安全:根据团队成员的工作范围创建用户,并附加相应的角色和访问策略。所有用户都启用多因素身份验证(MFA)以提高账户的安全性。使用JSON实现自定义策略,确保对资源的访问权限得到适当控制。
5. 网络安全:通过安全组来限制最小化开放的网络端口,并严格限制入站网络范围,以确保只有经过授权的请求可以访问资源。核心资源采用私网部署,防止外网直接访问,从而保障客户VPC网络的访问安全。
6. 数据安全:对EBS、RDS等服务启用KMS(Key Management Service)进行数据加密,以防止数据泄漏。同时,设置EC2、ElastiCache和RDS的定期快照和自动备份功能,确保数据备份的安全性。对S3存储桶启用版本控制,以便在意外删除或覆盖操作时能够恢复数据。
7. 容灾备份:在香港区域定期自动创建EBS/DB Snapshot存储到 S3,通过S3实现跨Region自动同步备份。为用户提供有效的保护,免受任何范围灾难的影响。通过 AWS CloudFormation 在灾难发生时,能够快速在新加坡区域创建同样的基础设施,再从备份中恢复数据。
8. CICD部署:帮助客户搭建CICD持续集成持续交付工具,通过制定版本管理规范、分支管理策略规范和流水线自动化的规范,并编写流水线脚本、yaml资源清单文件,来实现流水线持续交付、自动化运维。
9. 微服务改造:直播平台主要分为后台服务端和前端app,后端服务端分为直播系统(答题模块、PK模块、购物、抢红包、弹幕推送、刷礼物等)、运营、计费、管理等,前端app分为安卓、IOS。后端服务直播系统采用springboot架构开发,通过将应用容器化部署在K8s中。因应用本身采用传统架构,无法满足新业务快速上线和敏捷交付需求、代码修改面影响比较广,修改代码小心翼翼、系统庞大,学习周期长。
项目背景
随着Ye Light tech的快速发展,东南亚国家的注册用户数量迅速增长。为了向用户提供更优质的服务以及保障平台稳定安全运营,客户计划从GCP迁移至香港区域来提供给亚洲用户更稳定的服务。但客户对香港区域供应商的了解有限,且开发和运维团队缺乏AWS云服务相关经验,需要一家经验丰富的服务商帮助其完成系统迁移工作,在持续为其提供技术支持的同时能够对其技术团队提供相关培训服务。
面临挑战
业务痛点:公司业务快速发展,东南亚注册用户量增长迅速,原有系统部署在GCP上对亚洲用户访问稳定性与访问速度都存在一定限制。为配合业务发展需求与提高用户体验,需要将系统从原有GCP迁移至香港区域。
缺乏AWS使用经验: 客户的开发运维人员没有AWS 使用经验,需要服务商能够在云迁移、架构设计、产品选择、等方面提供专业的解决方案并帮助其快速完成部署。 客户希望寻找AWS经验丰富和以技术为主导的合作伙伴,能够为客户提供优秀的解决方案以及部署技术实现,帮助客户快速平稳完成迁移工作,保障业务连续性。
客户收益
在沛逍网络的帮助下,客户快速平稳将原有系统迁移至AWS香港区域并将原有架构进行微服务架构改造。
更快的响应时间: 微服务架构可以使软件系统更灵活,能够更快地响应客户需求。通过将大型单体应用拆分成小的、独立的服务,可以更容易地对特定功能进行修改和更新,从而缩短新功能上线的时间,提高响应速度。
更高的可靠性和稳定性: 微服务允许系统以模块化方式构建,每个模块都可以独立部署和扩展。这意味着如果一个服务出现问题,其他服务仍然可以继续运行,有助于提高系统的可靠性和稳定性,减少了单点故障的风险。
更好的可伸缩性: 微服务允许根据需求独立地扩展特定服务,而不需要整体扩展整个应用。这种灵活性使得能够更好地应对流量高峰期,保持系统性能稳定。
更灵活的功能更新: 微服务的独立部署性质允许团队更容易地推出新功能,同时不影响整个系统。这使得快速迭代和持续交付成为可能,让客户能够更快地获得新特性和改进。
更好的定制化和个性化体验: 微服务架构使得针对不同用户群体或个别客户的定制化变得更加容易。通过灵活组合不同的服务,可以提供更符合客户需求的个性化体验。