在疫情期间由于公司业务量的急剧增长,导致现有服务器资源吃紧,从而使用户体验有所下降。
公司想实现一套基于业务维度的会议服务弹性伸缩系统来解决上述问题。这项任务最终交给我来实现。
架构团队建议该服务最好使用Serverless架构来实现。基于该要求,我最终选择使用AWS Lambda作为Serverless架构的实现手段。同时,因为架构团队决定将该功能实现为API Service从而能够对外提供功能,因此我选择使用Django REST framework来作为API Service的实现方式。在具体的实现过程中,我引入了AWS DynameDB、AWS EventBridge、Ansible Runner以及Celery等云服务和开源组件来实现该服务。并且为了保证该服务后续的可扩展性和可维护性,我使用面向对象设计对内部的各个功能模块进行了抽象封装以及解耦。最后,我将设计思路、二次开发步骤以及部署步骤都统一记录在相应的开发文档中,供其他同事阅读理解。
经过验证,该服务上线后能够根据业务数据来动态扩缩会议服务集群,提高了用户体验;并且帮助公司在云服务器方面节省了很大开销。同时,运维团队中的其他同事也能够参与到该系统的后续迭代开发和维护中。