记近一年线上项目经验及架构变更记录
简介 M 项目, 是一个电子社保业务系统,2019.8 月团队接手了这个项目的开发工作,到 2020.7 月客户的业务量翻了4倍,工作日同时在线员工数量40人,以下记录总结 2019.8-至今项目的架构变化,以及项目中积累的一些经验。 [2019.8] 项目接手后的初始架构 物理架构 M 项目的原始物理架构非常的简单,属于最简单的单机单体系统,大部分服务都寄宿在一台双核,8G 内存的虚拟机中(包含 MySQL 数据库服务和文件存储服务),只有邮件发送服务使用的是第三方服务 SendGrid 。相对于客户最多 10 人同时在线的需求,日均 300 张发票的业务场景,此虚拟机的配置和物理架构足够支撑客户的业务。 逻辑架构 项目初期的逻辑架构也非常简单,有 2 个可用站点,分别是业务系统站点 Gateway 和项目宣传站点 Portal 。所有的业务都封装在 Gateway API 中。数据持久化使用了单机版的 MySQL 实例。 其中 Gateway API 是项目的核心部分,程序的所有业务代码都集中于此,小到发送邮件,创建 PDF, 大到提交发票,社保索赔,支付订单都放置与此。这种设计方式很适合初期堆功能,虽然后期客户发展,这种设计造成了很大的问题,但是在项目初期,我觉着这种方式还是非常适合帮助客户快速拓展业务的。 在逻辑架构上,我觉着唯一存在问题就是 Gateway API