技术架构设计


公众号回复'架构'获取架构师电子书及视频课程

目录

  1. 背景

  2. 架构设计目标

  3. 架构设计原则

  4. 架构设计方案


  • 背景介绍

(1)历史欠债:现有多条产品线,历史悠久,覆盖用户广,业务量大。但之前的产品受限于时间人力,系统架构简单,且各自为战,不成体系。维护,学习成本高。

(2)问题爆发:2020年在线教育业务爆发增长之下,历史系统架构面对高速增长的流量,力不从心,设计弊端凸显,问题频发,制约业务发展。

(3)未来规划:今年将推出战略级产品智慧教育大脑,整合各产品线;探索开拓C端市场,直面互联网海量用户。

  • 架构目标

(1)高可用:整体系统可用率大于99%,全年系统不可用时间小于12小时。

(2)易伸缩:架构清晰,简单;应用系统之间低耦合,业务功能灵活增减;可以通过水平扩展,快速提升整体性能和可用性。

(3)低成本:开放平台,便捷接入外部服务,同时可对外赋能,创造价值;增强代码复用性,提升开发效率;利用成熟开源技术,降低软硬件成本;

(4)高性能:TOP90的接口响应小于200ms,TOP99的接口响应小于500ms

(5)高安全:防范互联网已知常见威胁和攻击手段;及时响应防范新威胁。

  • 架构设计原则

(1)合适原则:合适优于业界领先。在企业当前人力、条件、业务等各种约束下设计出来的,能够合理地将资源整合在一起并发挥出最大功效,并且能够快速落地。

(2)简单原则:简单优于复杂。如果简单方案和复杂方案都可以满足要求,架构设计应选择简单方案

(3)演化原则:演化优于一步到位。不要贪大求全;软件需要不断变化;不符合业务的架构再领先也没用

(4)稳定原则:稳定高于一切。以稳定为中心,不过度设计

(5)容错原则:容错才能持久。任何架构方案,软硬件平台都会有几率出错。好的架构能抵御错误的影响,从而能给出时间去修复错误。

  • 架构设计方案

(1)应用架构

应用架构

(2)基础架构

(3)服务网络拓扑

负载均衡,网关,微服务,注册中心,配置中心,存储集群,其他

服务网络拓扑

(4)前后端服务框架

简单,稳定,根据业务发展,逐步演进;以微服务为最终目标,逐步迭代。

架构演进

  • 统一技术栈

前端:VUE,APP跨平台框架(uniapp,React native)

后端:JAVA8,SpringBoot,Mysql ,MongoDB,Redis,RabbitMq,Elastic search

  • 标准化,规范化

脚手架:用户管理,角色管理,部门管理,字典管理,代码生成,多数据库适配

管理:建立产品项目研发规范流程:需求,设计,开发,测试,上线。执行编码规范。

  • 模块化公共服务

公共包管理&服务:maven私服,SSO单点登录,工作流,短信,邮件,OAuth2登录,任务调度,推送,规则引擎,配置中心,消息中心

  • 微服务化

微服务&服务治理:注册中心,调用中心,部署中心,日志中心,监控中心,追踪中心。

(5)数据库架构

  • 主流数据库

支持MySQL,MongoDB,Redis ,ES 等主流数据库。

覆盖关系型,nosql型。

满足不同存储需求,支持OLAP,OLTP 业务场景。

  • 服务高可用

一主多从,主库故障,从库自动切换。

数据库实时监控预警。

  • 数据高可靠

定期快照备份,增量备份,快速恢复数据

最小数据权限管控

  • 高性能易扩展

多数据源,读写分离:sharding-jdbc

分区分库分表:sharding-jdbc

(6)研发基础设施架构

  • 代码库规范管理,jenkins自动化部署

  • 测试,生产 环境隔离

  • 持续集成(可选)

基础设施架构

更多推荐

什么是软件和软件架构

软件架构到底是要解决什么问题?

系统架构设计:进程缓存和缓存服务,如何抉择?

架构腐化之谜

“架构”到底指什么

集中式架构与分布式架构,你了解多少?

       

免责声明:

本公众号部分分享的资料来自网络收集和整理,所有文字和图片版权归属于原作者所有,且仅代表作者个人观点,与本公众号无关,文章仅供读者学习交流使用,并请自行核实相关内容,如文章内容涉及侵权,请联系后台管理员删除。

戳“阅读原文”海量文档免费阅读下载

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值