点击空白处退出提示
老板梦装饰平台
我要开发同款作品详情
“老板梦” 服务端原一个单体架构应用,前端拥有 APP 、小程序、及 Web 端管理员/设计师/监理/连锁客户/供应商;
涉及功能性业务包含:装修订单、装修材料管理、门店售后服务、门店设备管理、线上设备/耗材商城、商品库存管理、智能设备物联网、汽车货运物流、在线支付、消息推送、在线聊天、远程摄像监控、远程设备控制等;
涉及非功能性需求包含:安全控制、权限管理、版本管理、配置管理、日志采集、性能监控、异常处理等;
由于业务不断增长,需求迭代增加,原应用由于是单体遗留系统,常常牵一发动全身,bug 频发,再由于先后多人维护过该项目,导致代码混乱耦合度极高难以维护;基于问题空间大问题分解成小问题,职责明确划分归类,将项目进行了面向微服务的拆分与重写,以解决需求迭代、降低耦合度,明确职责等问题,及降低日常开发维护的成本;
由于近几年云原生容器化的成熟,项目逐渐迭代成云原生微服务架构,以解决项目运维监控及高可用成本;
项目的服务拆分策略基于领域驱动设计的限界上下文指导;降低核心业务复杂性;
项目中使用成熟的 Springboot 系列框架完成基本的代码编写指导;
使用事件驱动架构, 以构建更高性能的异步调用通信系统,及使用 Saga 模式管理事务,以解决分布式事务问题;
对核心业务相关服务使用命令查询职责读写分离(CQRS )架构方式实现业务的输入与查询的输出之间的解耦;
项目使用 PostgreSQL、Elasticsearch、Redis 等完成数据持久化和必要的缓存;
使用 Kafka&Zookeeper、CDC (数据变更捕获) 等中间件及服务处理消息,以解决服务间事件的发布与订阅事件及事务性命令消息的调用通信问题;
Http 接口全部采用 RESTFul 风格设计,遵循 Swagger Open API 3.0规范,使用 yaml/json 描述编写 API 文档,以实现 API 先行策略,解决前端开发进度完全受制于后端接口编写进度的问题,API 文档和服务端代码实现彻底分离,降低耦合度;
使用 GraphQL 技术实现 BFF 查询网关,实现不同需求及不同端的数据格式,以解决跨服务查询需求数据聚合和降低传输流量成本;
使用 Jenkins 持续 发布到k8s集成测试和生产环境,以降低项目迭代发布成本;
使用k8s平台、istio 网格 实现服务容器化部署、服务治理、服务发现,入口流量访问控制及访问路由;大大的降低了运维成本、服务可用稳定性、和服务器采购的金钱成本;
1、 引导团队需求收集与问题空间问题点的分解,对应每个点商讨对应解决方案;
2、 核心业务域定位、主导服务拆分、技术选型;
3、 组织通用语言、编写开发文档、制定开发规范、业务建模;
4、 框架搭建、完成核心功能代码编写、后端代码 CodeReview;
5、 集成测试环境 kubernetes 集群搭建;
6、 新版本的的迭代发布及日常运维中问题的定位于修复;
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论